]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
added qemu tests
authorYann Collet <yann.collet.73@gmail.com>
Sun, 29 Aug 2021 23:28:41 +0000 (16:28 -0700)
committerYann Collet <yann.collet.73@gmail.com>
Sun, 29 Aug 2021 23:28:41 +0000 (16:28 -0700)
running zstd library on emulated targets

.github/workflows/dev-long-tests.yml
.github/workflows/dev-short-tests.yml

index bc88c4a6a1fe10f5defb74909759d1c4deb528b1..0f0c36e332cc1100652faaf4ddb7a5edebc4dcb4 100644 (file)
@@ -1,7 +1,7 @@
 name: dev-long-tests
 # Tests longer than 10mn
 
-concurrency: 
+concurrency:
   group: long-${{ github.ref }}
   cancel-in-progress: true
 
@@ -10,6 +10,7 @@ on:
     branches: [ dev, release, actionsTest ]
 
 jobs:
+  # lasts ~24mn
   make-test:
     runs-on: ubuntu-latest
     env:
@@ -20,6 +21,7 @@ jobs:
     - name: make test
       run: make test
 
+  # lasts ~26mn
   make-test-osx:
     runs-on: macos-latest
     steps:
@@ -41,6 +43,7 @@ jobs:
     - name: thread sanitizer zstreamtest
       run: CC=clang ZSTREAM_TESTTIME=-T3mn make tsan-test-zstream
 
+  # lasts ~15mn
   tsan-fuzztest:
     runs-on: ubuntu-latest
     steps:
@@ -48,6 +51,7 @@ jobs:
     - name: thread sanitizer fuzztest
       run: CC=clang make tsan-fuzztest
 
+  # lasts ~23mn
   gcc-8-asan-ubsan-testzstd:
     runs-on: ubuntu-latest
     steps:
@@ -113,6 +117,7 @@ jobs:
         sudo apt-get install clang
         CC=clang FUZZER_FLAGS="--long-tests" make clean msan-fuzztest
 
+  # lasts ~24mn
   clang-msan-testzstd:
     runs-on: ubuntu-latest
     steps:
@@ -145,6 +150,7 @@ jobs:
         make clean
         make -C tests test-fuzzer-stackmode
 
+  # lasts ~20mn
   oss-fuzz:
     runs-on: ubuntu-latest
     strategy:
index 1f676c46b977b8c7c8cc8ba95d7d1bf18daf1e78..a5b1b122cd51557f1fbb17f5135c7c847225efd2 100644 (file)
@@ -2,7 +2,7 @@ name: dev-short-tests
 # Faster tests: mostly build tests, along with some other
 # misc tests
 
-concurrency: 
+concurrency:
   group: fast-${{ github.ref }}
   cancel-in-progress: true
 
@@ -140,7 +140,7 @@ jobs:
         sudo apt-get -qqq update
         make libc6install
         CFLAGS="-Werror -m32" make -j all32
-  
+
   gcc-8-make:
     runs-on: ubuntu-latest
     steps:
@@ -184,7 +184,7 @@ jobs:
       run: >
         msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140
         /t:Clean,Build /p:Platform=${{matrix.platform}} /p:Configuration=${{matrix.configuration}}
-  
+
   minimal-decompressor-macros:
     runs-on: ubuntu-latest
     steps:
@@ -200,6 +200,59 @@ jobs:
         make clean && make -j all MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
         make clean && make check MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
 
+
+  qemu-consistency:
+    name: QEMU ${{ matrix.name }}
+    runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false  # 'false' means Don't stop matrix workflows even if some matrix failed.
+      matrix:
+        include: [
+          { name: ARM,      xcc_pkg: gcc-arm-linux-gnueabi,     xcc: arm-linux-gnueabi-gcc,     xemu_pkg: qemu-system-arm,    xemu: qemu-arm-static     },
+          { name: ARM64,    xcc_pkg: gcc-aarch64-linux-gnu,     xcc: aarch64-linux-gnu-gcc,     xemu_pkg: qemu-system-arm,    xemu: qemu-aarch64-static },
+          { name: PPC64LE,  xcc_pkg: gcc-powerpc64le-linux-gnu, xcc: powerpc64le-linux-gnu-gcc, xemu_pkg: qemu-system-ppc,    xemu: qemu-ppc64le-static },
+          { name: S390X,    xcc_pkg: gcc-s390x-linux-gnu,       xcc: s390x-linux-gnu-gcc,       xemu_pkg: qemu-system-s390x,  xemu: qemu-s390x-static   },
+          { name: MIPS,     xcc_pkg: gcc-mips-linux-gnu,        xcc: mips-linux-gnu-gcc,        xemu_pkg: qemu-system-mips,   xemu: qemu-mips-static    },
+        ]
+    env:                        # Set environment variables
+      XCC: ${{ matrix.xcc }}
+      XEMU: ${{ matrix.xemu }}
+    steps:
+    - uses: actions/checkout@v2 # https://github.com/actions/checkout
+    - name: apt update & install
+      run: |
+        sudo apt-get update
+        sudo apt-get install gcc-multilib g++-multilib qemu-utils qemu-user-static
+        sudo apt-get install ${{ matrix.xcc_pkg }} ${{ matrix.xemu_pkg }}
+    - name: Environment info
+      run: |
+        echo && which $XCC
+        echo && $XCC --version
+        echo && $XCC -v  # Show built-in specs
+        echo && which $XEMU
+        echo && $XEMU --version
+    - name: ARM
+      if: ${{ matrix.name == 'ARM' }}
+      run: |
+        LDFLAGS="-static" CC=$XCC RUN_ENV=$XEMU make clean check
+    - name: ARM64
+      if: ${{ matrix.name == 'ARM64' }}
+      run: |
+        LDFLAGS="-static" CC=$XCC RUN_ENV=$XEMU make clean check
+    - name: PPC64LE
+      if: ${{ matrix.name == 'PPC64LE' }}
+      run: |
+        LDFLAGS="-static" CC=$XCC RUN_ENV=$XEMU make clean check
+    - name: S390X
+      if: ${{ matrix.name == 'S390X' }}
+      run: |
+        LDFLAGS="-static" CC=$XCC RUN_ENV=$XEMU make clean check
+    - name: MIPS
+      if: ${{ matrix.name == 'MIPS' }}
+      run: |
+        LDFLAGS="-static" CC=$XCC RUN_ENV=$XEMU make clean check
+
+
 # For reference : icc tests
 # icc tests are currently failing on Github Actions, likely to issues during installation stage
 # To be fixed later