11. TCF release v0.11¶
This release of TCF brings several new important high level features, such as:
- multiple targets: allows a testcase to request multiple test targets where to execute (versus previous limitation of none or one)
- interconnected targets: allows a testcase to request targets that are interconnected, related or grouped (eg: targets in an IP network, or in Bluetooth or Wifi radio proximity)
- things: allows the specification and control of things that can be plugged to a target (eg: a USB device,
- default to use Python as a testcase programming language, providing
a well defined
API
to interact with the system running the testcase and report information and to manipulate thetargets
. - many improvements to the documentation, with the addition of step-by-step guides for installation, testcase development, etc
- Support for more hardware components and boards
On the server side, the installation has become easier (specially when using RPMs), as the daemon runs now under a dedicated user (ttbd) which is given the right privileges so udev configuration is minimized
- ttbd, the server
- the daemon is now run under the ttbd user (versus the nobody user previously); thus, udev configuration is simplified (rules might have to be updated if upgrading an existing system). The daemon is also given the dialout and root groups and CAP_NET_ADMIN so almost no changes are needed in most systems.
- the location for virtual images has been set to /var/lib/ttbd, the $HOME for user ttbd
- support for: - Zephyr Xtensa and RISCv32 targets - Zephyr DFU targets - USB controlled relays for power control - QEMU-based Linux VMs as targets
- IP port tunneling from client to target
- multiple robustness improvements to the console logger
- client:
- Main language for testcases is now Pyton, old .tc format discontinued; ability to refer to targets with well defined API extensible via plugins to support new server-side interfaces
- introduce concept of App Builders, plugins that know how to build applications for different environment and deploy them to targets for you (sketch, Zephyr)
- builds in temporary directories
- logical expression language to select targets and testcases
- multiple examples on networking, zephyr, sketch, linux
- report drivers for logfiles and MongoDB databases
- test case drivers for Python-based test cases, Zephyr samples and Sanity check
- much improved interactive console-write mode
- add multiple self-test unit test cases
- add multiple scripts: generating virtual images, fixing FRDM k64f boards
Known issues:
- random (<1%) failures to detect a string from the console
- interconnect selection limited to a single interconnect
- the standard output of the Zephyr kbuild commands is lost (the lines that print CC some/file/name.o); this is a weird interaction with the Make jobserver that hasn’t been fully triaged (TCF/run re-runs itself under a make jobserver to improve paralellism). To workaround, invoke tcf –no-make-jobserver run OTHERARGS).