summary refs log tree commit diff stats
path: root/tests/functional/arm/test_microbit.py
diff options
context:
space:
mode:
authorThomas Huth <thuth@redhat.com>2025-08-19 13:23:44 +0200
committerThomas Huth <thuth@redhat.com>2025-08-27 09:46:55 +0200
commit8de42cb748287d8dcc521d057b107f32d98e5edd (patch)
tree967bbd99b3b1ec097ee23f538d93eee3028b0e0e /tests/functional/arm/test_microbit.py
parente534eee5ba6aefd905c16bcb714d1ff8156a0c45 (diff)
downloadfocaccia-qemu-8de42cb748287d8dcc521d057b107f32d98e5edd.tar.gz
focaccia-qemu-8de42cb748287d8dcc521d057b107f32d98e5edd.zip
tests/functional: Move arm tests into architecture specific folder
The tests/functional folder has become quite crowded, thus move the
arm tests into a target-specific subfolder.

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250819112403.432587-8-thuth@redhat.com>
Diffstat (limited to 'tests/functional/arm/test_microbit.py')
-rwxr-xr-xtests/functional/arm/test_microbit.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/functional/arm/test_microbit.py b/tests/functional/arm/test_microbit.py
new file mode 100755
index 0000000000..68ea4e73d6
--- /dev/null
+++ b/tests/functional/arm/test_microbit.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python3
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright 2025, The QEMU Project Developers.
+#
+# A functional test that runs MicroPython on the arm microbit machine.
+
+from qemu_test import QemuSystemTest, Asset, exec_command_and_wait_for_pattern
+from qemu_test import wait_for_console_pattern
+
+
+class MicrobitMachine(QemuSystemTest):
+
+    ASSET_MICRO = Asset('https://ozlabs.org/~joel/microbit-micropython.hex',
+        '021641f93dfb11767d4978dbb3ca7f475d1b13c69e7f4aec3382f212636bffd6')
+
+    def test_arm_microbit(self):
+        self.set_machine('microbit')
+
+        micropython = self.ASSET_MICRO.fetch()
+        self.vm.set_console()
+        self.vm.add_args('-device', f'loader,file={micropython}')
+        self.vm.launch()
+        wait_for_console_pattern(self, 'Type "help()" for more information.')
+        exec_command_and_wait_for_pattern(self, 'import machine as mch', '>>>')
+        exec_command_and_wait_for_pattern(self, 'mch.reset()', 'MicroPython')
+        wait_for_console_pattern(self, '>>>')
+
+if __name__ == '__main__':
+    QemuSystemTest.main()