-
-
Notifications
You must be signed in to change notification settings - Fork 8.3k
tools/ci.sh: Test building all natmod examples with all ARM-M archs. #17737
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tools/ci.sh: Test building all natmod examples with all ARM-M archs. #17737
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #17737 +/- ##
=======================================
Coverage 98.38% 98.38%
=======================================
Files 171 171
Lines 22238 22238
=======================================
Hits 21879 21879
Misses 359 359 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Code size report:
|
d8151ff
to
6f0b4c3
Compare
@agatti FYI |
Nice! I wonder if it makes sense to also test those under QEMU. If memory serves ARMv7 is a superset of ARMv6 so Maybe I can give a shot at the hardfp targets for inclusion in the next release? |
6f0b4c3
to
494f308
Compare
Good idea. I've now added armv6m tests under QEMU. See what you think.
Yes, that would be good. Shouldn't be too difficult. |
Indeed. Here's something working on the QEMU side: 6515cd0...agatti:micropython:qemu-armv7-machine - I haven't created a PR for it as I'll wait for this to get merged first. My plan was also to change the default Arm target from the '385 to the '500 but that may have some unintended consequences I'm not fully aware of. |
That is pretty simple. Well, let's wait for this PR to be merged, then we can take the next step there. If you have any further comments about this one, let me know. Otherwise I think it's good to go in. |
LGTM! In fact, I've successfully run tests for all variants using my mps2_an500 machine definition with this: diff --git i/ports/qemu/Makefile w/ports/qemu/Makefile
index b854a4ba2..7813a7e59 100644
--- i/ports/qemu/Makefile
+++ w/ports/qemu/Makefile
@@ -1,7 +1,7 @@
################################################################################
# Initial setup of Makefile environment
-BOARD ?= MPS2_AN385
+BOARD ?= MPS2_AN500
BOARD_DIR ?= boards/$(BOARD)
ifeq ($(wildcard $(BOARD_DIR)/.),)
diff --git i/tools/ci.sh w/tools/ci.sh
index 7733ba494..e558e6b4c 100755
--- i/tools/ci.sh
+++ w/tools/ci.sh
@@ -346,15 +346,12 @@ function ci_qemu_build_arm_thumb {
ci_qemu_build_arm_prepare
make ${MAKEOPTS} -C ports/qemu test_full
- # Test building native .mpy with all ARM-M architectures.
- ci_native_mpy_modules_build armv6m
- ci_native_mpy_modules_build armv7m
- ci_native_mpy_modules_build armv7emsp
- ci_native_mpy_modules_build armv7emdp
-
- # Test running native .mpy with armv6m and armv7m architectures.
- make ${MAKEOPTS} -C ports/qemu test_natmod RUN_TESTS_EXTRA="--arch armv6m"
- make ${MAKEOPTS} -C ports/qemu test_natmod RUN_TESTS_EXTRA="--arch armv7m"
+ # Test building and running native .mpy with all ARM-M architectures.
+ for ARCH in armv6m armv7m armv7emsp armv7emdp
+ do
+ ci_native_mpy_modules_build $arch
+ make ${MAKEOPTS} -C ports/qemu test_natmod RUN_TESTS_EXTRA="--arch ${ARCH}"
+ done
}
function ci_qemu_build_rv32 { |
To get division helper functions, eg `__aeabi_uidiv`, `__aeabi_idiv` and `__aeabi_uidivmod`. Signed-off-by: Damien George <damien@micropython.org>
Signed-off-by: Damien George <damien@micropython.org>
And run both armv6m and armv7m under qemu. Signed-off-by: Damien George <damien@micropython.org>
494f308
to
f6e23fd
Compare
Summary
This adds a few more tests to CI, to build all natmod examples with all possible ARM-M architectures.
Testing
To be tested by CI.