Mercurial > hg
view tests/test-fuzz-targets.t @ 46087:64292addbe67
diff: add --from and --to flags as clearer alternative to -r -r
I think it was mistake to let the `-r` flag accept two revisions in
`hg diff` in 98633e60067c (Support for 0, 1, or 2 diff revs,
2005-05-07). The command clearly acts on two revisions and having a
single flag to indicate which those are is unclear. It got worse when
it started accepting revsets as input.
This patch introduces `--from` and `--to` flags, each taking a single
revision and each defaulting to the working copy. That means that `hg
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 09 Dec 2020 18:31:19 -0800 |
parents | 19da643dc10c |
children | b918494198f7 |
line wrap: on
line source
#require test-repo $ cd $TESTDIR/../contrib/fuzz $ OUT=$TESTTMP ; export OUT which(1) could exit nonzero, but that's fine because we'll still end up without a valid executable, so we don't need to check $? here. $ if which gmake >/dev/null 2>&1; then > MAKE=gmake > else > MAKE=make > fi $ havefuzz() { > cat > $TESTTMP/dummy.cc <<EOF > #include <stdlib.h> > #include <stdint.h> > int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { return 0; } > int main(int argc, char **argv) { > const char data[] = "asdf"; > return LLVMFuzzerTestOneInput((const uint8_t *)data, 4); > } > EOF > $CXX $TESTTMP/dummy.cc -o $TESTTMP/dummy \ > -fsanitize=fuzzer-no-link,address || return 1 > } #if clang-libfuzzer $ CXX=clang++ havefuzz || exit 80 $ $MAKE -s clean all PYTHON_CONFIG=`which python-config` #endif #if no-clang-libfuzzer clang-6.0 $ CXX=clang++-6.0 havefuzz || exit 80 $ $MAKE -s clean all CC=clang-6.0 CXX=clang++-6.0 PYTHON_CONFIG=`which python-config` #endif #if no-clang-libfuzzer no-clang-6.0 $ exit 80 #endif $ cd $TESTTMP Run each fuzzer using dummy.cc as a fake input, to make sure it runs at all. In the future we should instead unpack the corpus for each fuzzer and use that instead. $ for fuzzer in `ls *_fuzzer | sort` ; do > echo run $fuzzer... > ./$fuzzer dummy.cc > /dev/null 2>&1 > done run bdiff_fuzzer... run dirs_fuzzer... run dirstate_fuzzer... run fm1readmarkers_fuzzer... run fncache_fuzzer... run jsonescapeu8fast_fuzzer... run manifest_fuzzer... run mpatch_fuzzer... run revlog_fuzzer... run xdiff_fuzzer... Clean up. $ cd $TESTDIR/../contrib/fuzz $ $MAKE -s clean