What The App Must Do
- Send a hard reset to ensure a consistent state (though this shouldn't matter, perhaps make it an optional thing)
- Disable log streaming before commencing (again, this shouldn't matter, but will ease the logic in this app, again, optional, if the app can filter packets)
- Query information about the firmware that it is connected to and include them in the results
- Send predefined data in appropriate packet wrappers to the device and correlate replies with this
- Compare the reply with the defined expected reply
- Summarise the results of all tests in some sort of output (console and/or gui and optionally file)
- Read in individual test files or a test file with many tests in it and execute them all
- Nice-to-have: Be able to enter data into some sort of UI to execute as a test live
CLI or GUI are both fine, perhaps even a tab in Tunix could handle this, unsure.
Test Setup Format
- TestName = <arbitrary string>
- TestDescription = <arbitrary string>
- IDOfFunctionUnderTest = <0 - 65535>
- ArgumentData = <string of comma separated hex values>
- ExpectedReturnState = Error/OK
- ExpectedReturnData = <empty or up to about 2k of whatever, including required error code if expecting an error>
The packet types/payload IDs are:
Code: Select all
#define requestInterfaceVersion 0x0000
#define requestFirmwareVersion 0x0002
#define requestHardSystemReset 0x000A
#define requestUnitTestOverSerial 0x6666
#define requestDecoderName 0xEEEE
So, anyone care to write this? I'd say it would take a decent dev less than a day to knock out. Longer with a GUI or in Tunix.
Fred.