mirror of https://github.com/thesofproject/sof.git
78 lines
2.2 KiB
YAML
78 lines
2.2 KiB
YAML
---
|
|
|
|
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
|