diff options
author | Kostya Serebryany <kcc@google.com> | 2017-11-09 05:49:28 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2017-11-09 05:49:28 +0000 |
commit | 6e673e80d269757d7979fc0b7c60ad1e32a4157b (patch) | |
tree | b53453c88a04c49ac1c6b013a8660e7eb09e22b0 /test | |
parent | fd65fa524d19c69cfb4f4b4ae813927d261a7657 (diff) |
[libFuzzer] allow merge to resume after being preempted
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@317767 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/fuzzer/merge-control-file.test | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/test/fuzzer/merge-control-file.test b/test/fuzzer/merge-control-file.test new file mode 100644 index 000000000..fef6d0f10 --- /dev/null +++ b/test/fuzzer/merge-control-file.test @@ -0,0 +1,47 @@ +RUN: mkdir -p %t +RUN: %cpp_compiler %S/FullCoverageSetTest.cpp -o %t/T + +RUN: rm -rf %t/T0 %t/T1 %t/T2 +RUN: mkdir -p %t/T0 %t/T1 %t/T2 +RUN: echo F..... > %t/T0/1 +RUN: echo .U.... > %t/T0/2 +RUN: echo ..Z... > %t/T0/3 + +# Test what happens if the control file is junk. + +RUN: echo JUNK > %t/MCF +RUN: not %t/T -merge=1 %t/T1 %t/T2 -merge_control_file=%t/MCF 2>&1 | FileCheck %s --check-prefix=JUNK +RUN: echo 3 > %t/MCF; echo 0 >> %t/MCF; echo %t/T1/1 >> %t/MCF +RUN: not %t/T -merge=1 %t/T1 %t/T2 -merge_control_file=%t/MCF 2>&1 | FileCheck %s --check-prefix=JUNK +JUNK: MERGE-OUTER: non-empty control file provided: {{.*}}MCF +JUNK: MERGE-OUTER: bad control file, will overwrite it + + +# Check valid control files + +RUN: rm -f %t/T1/*; cp %t/T0/* %t/T1 +RUN: echo 3 > %t/MCF; echo 0 >> %t/MCF; echo %t/T1/1 >> %t/MCF; echo %t/T1/2 >> %t/MCF; echo %t/T1/3 >> %t/MCF +RUN: %t/T -merge=1 %t/T1 %t/T2 -merge_control_file=%t/MCF 2>&1 | FileCheck %s --check-prefix=OK_0 +OK_0: MERGE-OUTER: control file ok, 3 files total, first not processed file 0 +OK_0: MERGE-OUTER: 3 new files with {{.*}} new features added + +RUN: rm -f %t/T1/*; cp %t/T0/* %t/T1 +RUN: echo 3 > %t/MCF; echo 0 >> %t/MCF; echo %t/T1/1 >> %t/MCF; echo %t/T1/2 >> %t/MCF; echo %t/T1/3 >> %t/MCF +RUN: echo STARTED 0 1 >> %t/MCF +RUN: echo DONE 0 11 >> %t/MCF +RUN: echo STARTED 1 2 >> %t/MCF +RUN: echo DONE 1 12 >> %t/MCF +RUN: %t/T -merge=1 %t/T1 %t/T2 -merge_control_file=%t/MCF 2>&1 | FileCheck %s --check-prefix=OK_2 +OK_2: MERGE-OUTER: control file ok, 3 files total, first not processed file 2 +OK_2: MERGE-OUTER: 3 new files with {{.*}} new features added + +RUN: rm -f %t/T1/*; cp %t/T0/* %t/T1 +RUN: echo 3 > %t/MCF; echo 0 >> %t/MCF; echo %t/T1/1 >> %t/MCF; echo %t/T1/2 >> %t/MCF; echo %t/T1/3 >> %t/MCF +RUN: echo STARTED 0 1 >> %t/MCF +RUN: echo DONE 0 11 >> %t/MCF +RUN: echo STARTED 1 2 >> %t/MCF +RUN: echo DONE 1 12 >> %t/MCF +RUN: echo STARTED 2 2 >> %t/MCF +RUN: echo DONE 2 13 >> %t/MCF +RUN: %t/T -merge=1 %t/T1 %t/T2 -merge_control_file=%t/MCF 2>&1 | FileCheck %s --check-prefix=OK_3 +OK_3: MERGE-OUTER: nothing to do, merge has been completed before |