This doc lays out a basic testing plan for verifying myceli functionality in a lab, dev, or live setup.
This doc will not cover any hardware or system specifics around running myceli. This includes radio configuration, how/where to run myceli, or even how to configure myceli. All of these specifics are assumed to be system dependent and will change based on the hardware and it's deployment configuration.
This doc will cover generic behavioral testing plans for myceli which can be used to validate any myceli installation or configuration.
Steps:
- Using controller software, send the
RequestAvailableBlockscommand to themyceliground instance.- This step passes if an
AvailableBlocksresponse is received. Any other response / no response is a failure.
- This step passes if an
- Using controller software, send the
RequestAvailableBlockscommand to themycelispace instance.- This step passes if an
AvailableBlocksresponse is received. Any other response / no response is a failure.
- This step passes if an
Command Details:
RequestAvailableBlockstakes no parameters. Amycelinode which receives this command will respond with anAvailableBlocksmessage to the sending address.- Example:
./controller myceli-service:8001 -l request-available-blocks
- Example:
This test case passes if both steps pass.
Steps:
- Using the controller software, send the
ImportFilecommand to themyceliground instance with a known good path for the one-pass payload file.- This step passes if an
FileImportedresponse with CID is received. Any other response / no response is a failure.
- This step passes if an
- Using the controller software, send the
TransmitDagcommand to themyceliground instance with the CID obtained from theFileImportedresponse and with the network address of the ground-to-space radio link. - Using the controller software, send the
ValidateDagcommand to themycelispace instance with the CID obtained from theFileImportedresponse.- This step passes if an
ValidateDagResponseresponse with true. Any other response / no response is a failure.
- This step passes if an
- Using the controller software, send the
ExportDagcommand to themycelispace instance with the CID obtained from theFileImportedresponse and a writeable file path.- This step passes if
myceliis able to correctly write a file to the given file path.
- This step passes if
Command Details:
ImportFiletakes one parameter, the path of the file to import. Amycelinode which receives this command will respond with aFileImportedmessage to the sending address.- Example:
./controller myceli-service:8001 -l import-file /path/to/file
- Example:
TransmitDagtakes three parameters: the CID of the dag to transfer, the address to transmit the dag to, and the number of retries allowed in the transfer. Amycelinode which receives this command will begin a dag transmission session with the specified address, which is assumed to be anothermycelinode, and will not respond back to the sending address.- Example:
./controller myceli-service:8001 transmit-dag cid-here radio-service:8002 5
- Example:
ValidateDagtakes one parameter: the CID of the dag to validate. Amycelinode which receives this command will respond with aValidateDagResponseto the sending address, which is assumed to be anothermycelinode.- Example:
./controller myceli-service:8001 -l validate-dag cid-here
- Example:
ExportDagtakes two parameters: the CID of the dag to export and a filepath to export to. Amycelinode which receives this command will not send a response back.- Example:
./controller myceli-service:8001 export-dag cid-here /path/to/file
- Example:
This test case passes if the final step is successful and the resulting written file matches the onboard payload file.
Steps:
- Using the controller software, send the
ImportFilecommand to themyceliground instance with a known good path for the one-pass payload file.- This step passes if an
FileImportedresponse with CID is received. Any other response / no response is a failure.
- This step passes if an
- Using the controller software, send the
TransmitDagcommand to themyceliground instance with the CID obtained from theFileImportedresponse and with the network address of the ground-to-space radio link. - Using the controller software, send the
ValidateDagcommand to themycelispace instance with the CID obtained from theFileImportedresponse.- This step passes if an
ValidateDagResponseresponse with true. Any other response / no response is a failure.
- This step passes if an
- Shutdown the
myceliground instance, delete the storage database, and start themyceliground instance again. - Using the controller software, send the
TransmitDagcommand to themycelispace instance with the CID obtained from theFileImportedresponse and with the network address of the space-to-ground radio link. - Using the controller software, send the
ValidateDagcommand to themyceliground instance with the CID obtained from theFileImportedresponse.- This step passes if an
ValidateDagResponseresponse with true. Any other response / no response is a failure.
- This step passes if an
- Using the controller software, send the
ExportDagcommand to themyceliground instance with the CID obtained from theFileImportedresponse and a writeable file path.- This step passes if
myceliis able to correctly write a file to the given file path.
- This step passes if
Command Details:
ImportFiletakes one parameter, the path of the file to import. Amycelinode which receives this command will respond with aFileImportedmessage to the sending address.- Example:
./controller myceli-service:8001 -l import-file /path/to/file
- Example:
TransmitDagtakes three parameters: the CID of the dag to transfer, the address to transmit the dag to, and the number of retries allowed in the transfer. Amycelinode which receives this command will begin a dag transmission session with the specified address, which is assumed to be anothermycelinode, and will not respond back to the sending address.- Example:
./controller myceli-service:8001 transmit-dag cid-here radio-service:8002 5
- Example:
ValidateDagtakes one parameter: the CID of the dag to validate. Amycelinode which receives this command will respond with aValidateDagResponseto the sending address.- Example:
./controller myceli-service:8001 -l validate-dag cid-here
- Example:
ExportDagtakes two parameters: the CID of the dag to export and a filepath to export to. Amycelinode which receives this command will not send a response back.- Example:
./controller myceli-service:8001 export-dag cid-here /path/to/file
- Example:
This test case passes if the final step is successful and the resulting written file matches the originally transmitted payload file.