testsuite: added mocked serial monitor for integration tests #2379
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Please check if the PR fulfills these requirements
See how to contribute
before creating one)
our contributing guidelines
UPGRADING.md
has been updated with a migration guide (for breaking changes)configuration.schema.json
updated if new parameters are added.What kind of change does this PR introduce?
Adds a mocked serial monitor to perform integration tests that require a working serial monitor.
The mocked monitor can be "implanted" with the command:
This command will replace the original serial monitor with the mocked one. There is no way to restore the original monitor, so tests that do not require the mocking should be written separately.
The mocked serial monitor sends over the "emulated" serial port the name of the opened port and the initial port configuration.
If the monitor receives the string
"QUIT"
from the emulated serial port it quits and closes the port.To actually allow the arduino-cli to send the
QUIT
command over the emulated port, I had to remove theIsTerminal
check from thearduino-cli monitor
command that prevented runningarduino-cli monitor
in a scripted environment (as the CI).This change has the good side-effect of allowing the
arduino-cli monitor
command in a script to send data to the board.An integration test that exercises the
monitor
command flags has been added as well.What is the current behavior?
What is the new behavior?
Does this PR introduce a breaking change, and is titled accordingly?
Other information