Skip to content

fuzz them all

fuzz them all #1

Workflow file for this run

name: Fuzzing
on:
# Uncomment to enable scheduled runs.
#schedule:
# Run every day at 22 CET
# - cron: '0 21 * * *'
pull_request:
branches: [ main ]
merge_group:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build_and_test:
runs-on: ${{ matrix.os }}
name: Build & Test
strategy:
matrix:
os: [ubuntu-22.04, windows-2022, macos-14]
jdk: [21, 8]
include:
- jdk: 21
# Workaround for https://github.com/bazelbuild/bazel/issues/14502
extra_bazel_args: "--jvmopt=-Djava.security.manager=allow"
- os: ubuntu-22.04
arch: "linux"
- os: macos-14
arch: "macos-arm64"
bazel_args: "--xcode_version_config=//.github:host_xcodes"
- os: windows-2022
arch: "windows"
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 21
- name: Set Build Buddy config
run: .github/scripts/echoBuildBuddyConfig.sh ${{ secrets.BUILDBUDDY_API_KEY }} >> $GITHUB_ENV
shell: bash
- name: Install Clang on Windows
if: matrix.os == 'windows-2022'
run: |
choco install llvm --version=19.1.0 --force
echo "C:\Program Files\LLVM\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Cache Fuzzing Corpus
uses: actions/cache@v4
with:
path: |
~/fuzzing-corpus
key: "Catch-22"
- name: Build & Fuzz
run: |
mkdir ~/fuzzing-corpus/ArgumentsMutatorFuzzTest &&
bazelisk run ${{env.BUILD_BUDDY_CONFIG}} --java_runtime_version=remotejdk_${{ matrix.jdk }} ${{ matrix.bazel_args }} ${{ matrix.extra_bazel_args }} //selffuzz/src/test/java/com/code_intelligence/selffuzz/mutation:ArgumentsMutatorFuzzTest -- -runs=200000 ~/fuzzing-corpus/ArgumentsMutatorFuzzTest
- name: Copy Bazel log
if: always()
shell: bash
run: cp "$(readlink bazel-out)"/../../../java.log* .
- name: Upload test logs
if: always()
uses: actions/upload-artifact@v4
with:
name: testlogs-${{ matrix.arch }}-${{ matrix.jdk }}
# https://github.com/actions/upload-artifact/issues/92#issuecomment-711107236
path: |
bazel-testlogs*/**/test.log
java.log*