From 162de0ceaf6147fe166b9a0dddac5820056ac61b Mon Sep 17 00:00:00 2001 From: Andrea Fioraldi Date: Tue, 13 Dec 2022 21:19:44 +0100 Subject: [PATCH] Fix CI diffing (#944) * fix build_and_test_fuzzers to diff from origin/main * fix fuzzbench_forkserver --- .github/workflows/build_and_test.yml | 1 + fuzzers/fuzzbench_forkserver/src/main.rs | 10 ++-------- scripts/test_all_fuzzers.sh | 2 +- utils/build_and_test_fuzzers/src/main.rs | 11 +++++++++-- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index aafd58e132..be95cc8f48 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -201,6 +201,7 @@ jobs: - uses: actions/checkout@v3 with: submodules: true # recursively checkout submodules + fetch-depth: 0 # to diff with origin/main - uses: Swatinem/rust-cache@v2 - name: Build and run example fuzzers (Linux) if: runner.os == 'Linux' diff --git a/fuzzers/fuzzbench_forkserver/src/main.rs b/fuzzers/fuzzbench_forkserver/src/main.rs index 21a5d853fa..2ebd9d2ff9 100644 --- a/fuzzers/fuzzbench_forkserver/src/main.rs +++ b/fuzzers/fuzzbench_forkserver/src/main.rs @@ -19,7 +19,7 @@ use libafl::{ corpus::{Corpus, OnDiskCorpus}, events::SimpleEventManager, executors::forkserver::{ForkserverExecutor, TimeoutForkserverExecutor}, - feedback_and_fast, feedback_or, + feedback_or, feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback}, fuzzer::{Fuzzer, StdFuzzer}, inputs::BytesInput, @@ -262,13 +262,7 @@ fn fuzz( ); // A feedback to choose if an input is a solution or not - // We want to do the same crash deduplication that AFL does - let mut objective = feedback_and_fast!( - // Must be a crash - CrashFeedback::new(), - // Take it onlt if trigger new coverage over crashes - MaxMapFeedback::new(&edges_observer) - ); + let mut objective = CrashFeedback::new(); // create a State from scratch let mut state = StdState::new( diff --git a/scripts/test_all_fuzzers.sh b/scripts/test_all_fuzzers.sh index 7a7198228e..3a2005ba07 100755 --- a/scripts/test_all_fuzzers.sh +++ b/scripts/test_all_fuzzers.sh @@ -10,7 +10,7 @@ if [[ -z "${RUN_ON_CI}" ]]; then backtrace_fuzzers=$(find ./fuzzers/backtrace_baby_fuzzers -mindepth 1 -maxdepth 1 -type d) else cargo build -p build_and_test_fuzzers - fuzzers=$(cargo run -p build_and_test_fuzzers) + fuzzers=$(cargo run -p build_and_test_fuzzers -- remotes/origin/main) backtrace_fuzzers="" fi diff --git a/utils/build_and_test_fuzzers/src/main.rs b/utils/build_and_test_fuzzers/src/main.rs index 1a0327c51f..a9ece18e1b 100644 --- a/utils/build_and_test_fuzzers/src/main.rs +++ b/utils/build_and_test_fuzzers/src/main.rs @@ -5,16 +5,23 @@ pub use diffing::*; fn main() { let args: Vec = env::args().collect(); - let commit = if args.len() > 1 { &args[1] } else { "HEAD^" }; + let commit = if args.len() > 1 { + &args[1] + } else { + "origin/main" + }; let files = get_diffing_files(commit); let mut diff_crates = get_diffing_crates(&files); let all_crates = find_all_crates(); extend_diffing_crates_with_deps(&mut diff_crates, &all_crates); + let mut fuzzers = vec![]; for file in diff_crates { if file.starts_with("./fuzzers") || file.starts_with("fuzzers") { - print!("{} ", file.parent().unwrap().display()); + fuzzers.push(file.parent().unwrap().display().to_string()); } } + + println!("{}", fuzzers.join("\n")); }