Skip to content

probe: Convert to module API #14297

probe: Convert to module API

probe: Convert to module API #14297

Workflow file for this run

---
name: IPC fuzzing
# 'workflow_dispatch' allows running this workflow manually from the
# 'Actions' tab
# yamllint disable-line rule:truthy
on:
workflow_call:
inputs:
fuzzing_duration_s:
type: number
default: 300 # 5 minutes
workflow_dispatch:
inputs:
fuzzing_duration_s:
type: number
default: 300
pull_request:
# TODO: can we provide a default inputs here too?
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: [3, 4]
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@v4
with:
path: ./workspace/sof
filter: 'tree:0'
- 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
duration="${{inputs.fuzzing_duration_s}}"
duration="${duration:-301}" # pull_request has not 'inputs.' :-(
# Note libFuzzer makes a difference between -jobs and -workers (capped at nproc/2)
sof/scripts/fuzz.sh -i '${{ matrix.IPC }}' -o fuzz-stdout.txt -t "$duration" -j"$(nproc)"
- name: Upload stdout
uses: actions/upload-artifact@v4
if: failure()
with:
name: ${{ matrix.IPC }} logs
path: |
workspace/crash-*
workspace/fuzz-stdout.txt
workspace/fuzz-*.log