diff mbox series

[1/1] support/testing: micropython: add micropython-lib test

Message ID 20240204093148.11282-1-ju.o@free.fr
State Accepted
Headers show
Series [1/1] support/testing: micropython: add micropython-lib test | expand

Commit Message

Julien Olivain Feb. 4, 2024, 9:31 a.m. UTC
Commit 8f403f0 "package/micropython-lib: merge with, and install
as part of micropython" brought micropython library within the
package.

This commit improves the micropython runtime test by enabling the
micropython-lib and by also adding a runtime test using one of its
module.

Signed-off-by: Julien Olivain <ju.o@free.fr>
---
 support/testing/tests/package/test_micropython.py | 13 ++++++++++++-
 .../test_micropython/rootfs-overlay/root/zcat.py  | 15 +++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)
 create mode 100755 support/testing/tests/package/test_micropython/rootfs-overlay/root/zcat.py

Comments

Yann E. MORIN Feb. 5, 2024, 11:18 a.m. UTC | #1
Julien, All,

On 2024-02-04 10:31 +0100, Julien Olivain spake thusly:
> Commit 8f403f0 "package/micropython-lib: merge with, and install
> as part of micropython" brought micropython library within the
> package.
> 
> This commit improves the micropython runtime test by enabling the
> micropython-lib and by also adding a runtime test using one of its
> module.

I added a little blurb explaining why we can't use the gzip module
itself to generate the compressed file.

> Signed-off-by: Julien Olivain <ju.o@free.fr>

Applied to master, thanks.

Regards,
Yann E. MORIN.

> ---
>  support/testing/tests/package/test_micropython.py | 13 ++++++++++++-
>  .../test_micropython/rootfs-overlay/root/zcat.py  | 15 +++++++++++++++
>  2 files changed, 27 insertions(+), 1 deletion(-)
>  create mode 100755 support/testing/tests/package/test_micropython/rootfs-overlay/root/zcat.py
> 
> diff --git a/support/testing/tests/package/test_micropython.py b/support/testing/tests/package/test_micropython.py
> index 0ecd4790bd..371deb2978 100644
> --- a/support/testing/tests/package/test_micropython.py
> +++ b/support/testing/tests/package/test_micropython.py
> @@ -7,6 +7,7 @@ class TestMicroPython(infra.basetest.BRTest):
>      config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
>          f"""
>          BR2_PACKAGE_MICROPYTHON=y
> +        BR2_PACKAGE_MICROPYTHON_LIB=y
>          BR2_ROOTFS_OVERLAY="{infra.filepath("tests/package/test_micropython/rootfs-overlay")}"
>          BR2_TARGET_ROOTFS_CPIO=y
>          # BR2_TARGET_ROOTFS_TAR is not set
> @@ -64,5 +65,15 @@ class TestMicroPython(infra.basetest.BRTest):
>          output = self.run_upy_code(py_code)
>          self.assertEqual(output[0], expected_output)
>  
> -        # Finally, Check a small script can execute.
> +        # Check a small script can execute.
>          self.assertRunOk("/root/mandel.py", timeout=10)
> +
> +        # Check we can use a micropython-lib module.
> +        msg = "Hello Buildroot!"
> +        filename = "file.txt"
> +        gz_filename = f"{filename}.gz"
> +        self.assertRunOk(f"echo '{msg}' > {filename}")
> +        self.assertRunOk(f"gzip {filename}")
> +        out, ret = self.emulator.run(f"/root/zcat.py {gz_filename}")
> +        self.assertEqual(ret, 0)
> +        self.assertEqual(out[0], msg)
> diff --git a/support/testing/tests/package/test_micropython/rootfs-overlay/root/zcat.py b/support/testing/tests/package/test_micropython/rootfs-overlay/root/zcat.py
> new file mode 100755
> index 0000000000..3b8c60bdd1
> --- /dev/null
> +++ b/support/testing/tests/package/test_micropython/rootfs-overlay/root/zcat.py
> @@ -0,0 +1,15 @@
> +#! /usr/bin/env micropython
> +
> +import gzip
> +import sys
> +
> +
> +def main(fname):
> +    with open(fname, "rb") as f:
> +        with gzip.GzipFile(fileobj=f) as g:
> +            s = g.read()
> +            print(s.decode("UTF-8"), end="")
> +
> +
> +if __name__ == "__main__":
> +    main(sys.argv[1])
> -- 
> 2.43.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
diff mbox series

Patch

diff --git a/support/testing/tests/package/test_micropython.py b/support/testing/tests/package/test_micropython.py
index 0ecd4790bd..371deb2978 100644
--- a/support/testing/tests/package/test_micropython.py
+++ b/support/testing/tests/package/test_micropython.py
@@ -7,6 +7,7 @@  class TestMicroPython(infra.basetest.BRTest):
     config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
         f"""
         BR2_PACKAGE_MICROPYTHON=y
+        BR2_PACKAGE_MICROPYTHON_LIB=y
         BR2_ROOTFS_OVERLAY="{infra.filepath("tests/package/test_micropython/rootfs-overlay")}"
         BR2_TARGET_ROOTFS_CPIO=y
         # BR2_TARGET_ROOTFS_TAR is not set
@@ -64,5 +65,15 @@  class TestMicroPython(infra.basetest.BRTest):
         output = self.run_upy_code(py_code)
         self.assertEqual(output[0], expected_output)
 
-        # Finally, Check a small script can execute.
+        # Check a small script can execute.
         self.assertRunOk("/root/mandel.py", timeout=10)
+
+        # Check we can use a micropython-lib module.
+        msg = "Hello Buildroot!"
+        filename = "file.txt"
+        gz_filename = f"{filename}.gz"
+        self.assertRunOk(f"echo '{msg}' > {filename}")
+        self.assertRunOk(f"gzip {filename}")
+        out, ret = self.emulator.run(f"/root/zcat.py {gz_filename}")
+        self.assertEqual(ret, 0)
+        self.assertEqual(out[0], msg)
diff --git a/support/testing/tests/package/test_micropython/rootfs-overlay/root/zcat.py b/support/testing/tests/package/test_micropython/rootfs-overlay/root/zcat.py
new file mode 100755
index 0000000000..3b8c60bdd1
--- /dev/null
+++ b/support/testing/tests/package/test_micropython/rootfs-overlay/root/zcat.py
@@ -0,0 +1,15 @@ 
+#! /usr/bin/env micropython
+
+import gzip
+import sys
+
+
+def main(fname):
+    with open(fname, "rb") as f:
+        with gzip.GzipFile(fileobj=f) as g:
+            s = g.read()
+            print(s.decode("UTF-8"), end="")
+
+
+if __name__ == "__main__":
+    main(sys.argv[1])