tests: add full, automated, top-level test runner for hardware#16112
Draft
dpgeorge wants to merge 44 commits into
Draft
tests: add full, automated, top-level test runner for hardware#16112dpgeorge wants to merge 44 commits into
dpgeorge wants to merge 44 commits into
Conversation
Member
Author
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #16112 +/- ##
=======================================
Coverage 98.46% 98.46%
=======================================
Files 176 176
Lines 22784 22784
=======================================
Hits 22435 22435
Misses 349 349 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Contributor
|
Octoprobe is ready so far to run these tests fully automated, including build of all firmware variants and to be triggered from github workflows. We have to agree on triggers (github action on PR, github manual action). I will start the discussion when I am back from vacation. |
b8ce03c to
2047b05
Compare
2047b05 to
39adb22
Compare
39adb22 to
31a289e
Compare
31a289e to
6ef6bd8
Compare
|
Code size report: |
This was referenced Aug 12, 2025
7875959 to
d668cbe
Compare
d668cbe to
943efd1
Compare
Signed-off-by: Damien George <[email protected]>
TODO: make it a CLI option Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
To reduce output clutter. Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
If it's too big PYBLITEV10 will run out of memory when running `extmod/deflate_decompress.py`. Actually, 32-7 is the default... so this ioctl could be removed. Really need to benchmark it to see if it makes any difference having it large. Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
To decrease the variation in time taken to send. Eg ARDUINO_NANO_33_BLE_SENSE fails without this change (but only when `tests/extmod/machine_uart_irq_txidle.py` is run before it...). Signed-off-by: Damien George <[email protected]>
On bare-metal lwIP targets, there's only enough buffer space for 4 groups. Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Fixed on tests-improvements-for-octoprobe. Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
Signed-off-by: Damien George <[email protected]>
943efd1 to
63531a4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
With the aim to speed up testing for a release, I put together a script to automatically run tests on devices running MicroPython. We have a lot of different tests these days, with different ways to run them. The idea with this top-level test runner is:
Basically all you need to do is connect boards to your PC via USB and run:
Then it does the rest. It takes between 10 and 15 minutes per board, so if you have many connected it can take a few hours. You can also restrict to given devices by specifying them on the command line, eg:
(Probably the name of the script
hwtest.pycan change to something better.)Testing
This was used to test 16 distinct boards for the recent v1.24.0 release.
Trade-offs and Alternatives
This is a bit of a hacky script at the moment but can be improved over time.
Currently there are no boards that pass all tests (!!) and so over time we need to fix things and improve the tests so more of them can pass.