--- name: IPC fuzzing # 'workflow_dispatch' allows running this workflow manually from the # 'Actions' tab # yamllint disable-line rule:truthy on: [pull_request, workflow_dispatch] jobs: simple-IPC-fuzz_sh: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: # Keep these names short due to questionable Github UI choices IPC: [IPC3, IPC4] steps: - name: add i386 arch run: | sudo dpkg --add-architecture i386 sudo apt-get update - name: apt-get install i386 packages run: | # We don't know why Github requires us to explicit all these i386 # dependencies. On a vanilla Ubuntu 22.04 the last apt-get is # enough. # Also, it does not seem possible to download Github images for # local testing which means trial and error for this requires a # force-push every time: excruciatingly slow! sudo apt-get -y install \ libgcc-s1:i386 libc6-dev:i386 libstdc++6:i386 \ libgomp1:i386 libitm1:i386 libatomic1:i386 \ libasan8:i386 libubsan1:i386 libquadmath0:i386 \ sudo apt-get -y install \ libc6-dev-i386 libstdc++-12-dev:i386 - name: apt-get install build tools run: sudo apt-get -y install clang llvm ninja-build device-tree-compiler python3-pyelftools - uses: actions/checkout@v3 with: path: ./workspace/sof - name: west update run: | cd workspace/sof pip3 install west west init -l west update --narrow --fetch-opt=--filter=tree:0 - name: build and run fuzzer for a few minutes run: | cd workspace clang --verbose set -x case '${{ matrix.IPC }}' in IPC3) cmake_arg='-DCONFIG_IPC_MAJOR_3=y' ;; IPC4) cmake_arg='-DCONFIG_IPC_MAJOR_4=y' ;; esac sof/scripts/fuzz.sh -o fuzz-stdout.txt -t 300 -- "$cmake_arg" - name: Upload stdout uses: actions/upload-artifact@v3 if: failure() with: name: ${{ matrix.IPC }} logs path: | workspace/fuzz-stdout.txt