[all-commits] [llvm/llvm-project] 428beb: [libFuzzer] Fix value-profile-load test.

Dokyung Song via All-commits all-commits at lists.llvm.org
Wed Aug 19 15:15:25 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 428bebaf10e177db5e42206ca8f871f0bcbef058
      https://github.com/llvm/llvm-project/commit/428bebaf10e177db5e42206ca8f871f0bcbef058
  Author: Dokyung Song <dokyungs at google.com>
  Date:   2020-08-19 (Wed, 19 Aug 2020)

  Changed paths:
    M compiler-rt/test/fuzzer/LoadTest.cpp
    M compiler-rt/test/fuzzer/value-profile-load.test

  Log Message:
  -----------
  [libFuzzer] Fix value-profile-load test.

The behavior of the CrossOver mutator has changed with
bb54bcf84970c04c9748004f3a4cf59b0c1832a7. This seems to affect the
value-profile-load test on Darwin. This patch provides a wider margin for
determining success of the value-profile-load test, by testing the targeted
functionality (i.e., GEP index value profile) more directly and faster. To this
end, LoadTest.cpp now uses a narrower condition (Size != 8) for initial pruning
of inputs, effectively preventing libFuzzer from generating inputs longer than
necessary and spending time on mutating such long inputs in the corpus - a
functionality not meant to be tested by this specific test.

Previously, on x86/Linux, it required 6,597,751 execs with -use_value_profile=1
and 19,605,575 execs with -use_value_profile=0 to hit the crash. With this
patch, the test passes with 174,493 execs, providing a wider margin from the
given trials of 10,000,000. Note that, without the value profile (i.e.,
-use_value_profile=0), the test wouldn't pass as it still requires 19,605,575
execs to hit the crash.

Differential Revision: https://reviews.llvm.org/D86247




More information about the All-commits mailing list