|
|
%!s(int64=5) %!d(string=hai) anos | |
|---|---|---|
| .. | ||
| Kconfig | %!s(int64=6) %!d(string=hai) anos | |
| README.md | %!s(int64=6) %!d(string=hai) anos | |
| sdkconfig | %!s(int64=6) %!d(string=hai) anos | |
| test_confserver.py | %!s(int64=5) %!d(string=hai) anos | |
| testcases_v1.txt | %!s(int64=6) %!d(string=hai) anos | |
| testcases_v2.txt | %!s(int64=6) %!d(string=hai) anos | |
Install pexpect (pip install pexpect).
Then run the tests manually like this:
./test_confserver.py --logfile tests.log
If a weird error message comes up from the test, check the log file (tests.log) which has the full interaction session (input and output) from confserver.py - sometimes the test suite misinterprets some JSON-like content in a Python error message as JSON content.
Note: confserver.py prints its error messages on stderr, to avoid overlap with JSON content on stdout. However pexpect uses a pty (virtual terminal) which can't distinguish stderr and stdout.
Test cases apply to KConfig config schema. Cases are listed in testcases.txt and are each of this form:
* Set TEST_BOOL, showing child items
> { "TEST_BOOL" : true }
< { "values" : { "TEST_BOOL" : true, "TEST_CHILD_STR" : "OHAI!", "TEST_CHILD_BOOL" : true }, "ranges": {"TEST_CONDITIONAL_RANGES": [0, 100]}, "visible": {"TEST_CHILD_BOOL" : true, "TEST_CHILD_STR" : true} }
*) is description>) is changes to send<) is response to expect backTest cases are run in sequence, so any test case depends on the state changes caused by all items above it.