From 73a1927fce29f461945708675b82bd3d29f9f568 Mon Sep 17 00:00:00 2001
From: Damien George <damien@micropython.org>
Date: Thu, 17 Feb 2022 12:01:49 +1100
Subject: [PATCH] github/workflows: Add new workflow to test .mpy file format
 and tools.

Signed-off-by: Damien George <damien@micropython.org>
---
 .github/workflows/mpy_format.yml | 18 ++++++++++++++++++
 tools/ci.sh                      | 17 +++++++++++++++++
 2 files changed, 35 insertions(+)
 create mode 100644 .github/workflows/mpy_format.yml

diff --git a/.github/workflows/mpy_format.yml b/.github/workflows/mpy_format.yml
new file mode 100644
index 0000000000..ab90bb339a
--- /dev/null
+++ b/.github/workflows/mpy_format.yml
@@ -0,0 +1,18 @@
+name: .mpy file format and tools
+
+on:
+  push:
+  pull_request:
+    paths:
+      - '.github/workflows/*.yml'
+      - 'tools/**'
+
+jobs:
+  test:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Install packages
+      run: source tools/ci.sh && ci_mpy_format_setup
+    - name: Test mpy-tool.py
+      run: source tools/ci.sh && ci_mpy_format_test
diff --git a/tools/ci.sh b/tools/ci.sh
index 3e78ae4a05..075e5e423a 100755
--- a/tools/ci.sh
+++ b/tools/ci.sh
@@ -67,6 +67,23 @@ function ci_code_size_build {
     tools/metrics.py build bm | tee ~/size1
 }
 
+########################################################################################
+# .mpy file format
+
+function ci_mpy_format_setup {
+    sudo pip3 install pyelftools
+}
+
+function ci_mpy_format_test {
+    # Test mpy-tool.py dump feature on bytecode
+    python2 ./tools/mpy-tool.py -xd ports/minimal/frozentest.mpy
+    python3 ./tools/mpy-tool.py -xd ports/minimal/frozentest.mpy
+
+    # Test mpy-tool.py dump feature on native code
+    make -C examples/natmod/features1
+    ./tools/mpy-tool.py -xd examples/natmod/features1/features1.mpy
+}
+
 ########################################################################################
 # ports/cc3200
 
-- 
GitLab