-
Notifications
You must be signed in to change notification settings - Fork 2.1k
[TRACKING] The RIOT shell as a testing interface #10994
Copy link
Copy link
Open
Labels
Area: build systemArea: Build systemArea: Build systemArea: testsArea: tests and testing frameworkArea: tests and testing frameworkType: trackingThe issue tracks and organizes the sub-tasks of a larger effortThe issue tracks and organizes the sub-tasks of a larger effort
Description
Description
The RIOT testing system uses the shell quite extensively. While this is in itself a good idea, the current embodiment has a few issues:
- A few bug in the shell.
- Lack of a programmatic way of interacting with it (this was pointed out before in Programmatic shell access #4967,) It would be desirable to have a library for interacting with the shell that can also be used from the testing scripts
- The build system / OS integration, via tools like pyterm which modify the input and output.
- Parsing is done by each test scripts via pexpect. Without strict restrictions on what to expect (and in particular which output to reject) a common failure mode of tests is to time out waiting for text that is never going to show up.
The plan is to:
- Fix the bugs.
- Remove the requirement for pyterm, in favour of a dumber terminal (if someone needs command history, there is rlwrap for that.)
- Write a module that abstracts shell interaction.
- Define and implement an easily parseable format for command output.
- Integrate all of that into the testing infrastructure.
Breakdown
- Fix shell bugs
- sys/stdio_uart: do not cast function pointer. sys/stdio_uart: do not cast function pointer. #10312
- sys/shell: ensure character is flushed when echoing. sys/shell: ensure character is flushed when echoing. #10630
- sys/shell: correctly detect and handle long lines
sys/shell: correctly detect and handle long lines #10635sys/shell: correctly detect and handle long lines #13195
- Easily parseable commands:
- doc/rdm: RDM on a common api for testing doc/rdm: RDM on a common api for testing #10624
- Self describing interfaces
- sys/app_metadata: Add a way to print application metadata sys/app_metadata: Add a way to print application metadata #10961
- sys/optparse: Add command line parser. sys/optparse: Add command line parser. #9538
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Area: build systemArea: Build systemArea: Build systemArea: testsArea: tests and testing frameworkArea: tests and testing frameworkType: trackingThe issue tracks and organizes the sub-tasks of a larger effortThe issue tracks and organizes the sub-tasks of a larger effort