RUN: rm -rf %tmp RUN: mkdir %tmp && cd %tmp # Create a shared corpus directory RUN: rm -rf FuzzerJobsTestCORPUS RUN: mkdir FuzzerJobsTestCORPUS RUN: rm -f fuzz-{0,1}.log # Start fuzzer and in parallel check that the output files # that should be created exist. RUN: LLVMFuzzer-EmptyTest -max_total_time=4 -jobs=2 -workers=2 FuzzerJobsTestCORPUS > %t-fuzzer-jobs-test.log 2>&1 & export FUZZER_PID=$! # Wait a short while to give time for the child processes # to start fuzzing RUN: sleep 2 # If the instances are running in parallel they should have created their log # files by now. RUN: ls fuzz-0.log RUN: ls fuzz-1.log # Wait for libfuzzer to finish. # This probably isn't portable but we need a way to block until # the fuzzer is done otherwise we might remove the files while # they are being used. RUN: while kill -0 ${FUZZER_PID}; do : ; done RUN: rm -f fuzz-{0,1}.log RUN: rm -rf FuzzerJobsTestCORPUS RUN: FileCheck -input-file=%t-fuzzer-jobs-test.log %s RUN: rm %t-fuzzer-jobs-test.log RUN: cd ../ CHECK-DAG: Job 0 exited with exit code 0 CHECK-DAG: Job 1 exited with exit code 0