From 1763ef1d49cc1263b40f157060a61cdd6e91d3a4 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 13 Nov 2020 15:22:07 +0900 Subject: [PATCH 1/2] meson: do not build fuzzers when fuzz-tests=false Closes #17578. --- meson.build | 8 ++++---- test/fuzz/meson.build | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/meson.build b/meson.build index 43e328f5a6..0727fd5589 100644 --- a/meson.build +++ b/meson.build @@ -3438,7 +3438,7 @@ endif fuzzer_exes = [] -if get_option('tests') != 'false' +if fuzz_tests or fuzzer_build foreach tuple : fuzzers sources = tuple[0] link_with = tuple[1].length() > 0 ? tuple[1] : [libshared] @@ -3560,7 +3560,7 @@ foreach tuple : sanitizers if name != prev if want_tests == 'false' message('Not compiling @0@ because tests is set to false'.format(name)) - elif slow_tests or fuzz_tests + elif fuzz_tests exe = custom_target( name, output : name, @@ -3570,12 +3570,12 @@ foreach tuple : sanitizers '@OUTPUT@'], build_by_default : true) else - message('Not compiling @0@ because slow-tests/fuzz-tests is set to false'.format(name)) + message('Not compiling @0@ because fuzz-tests is set to false'.format(name)) endif endif prev = name - if want_tests != 'false' and (slow_tests or fuzz_tests) + if fuzz_tests test('@0@:@1@:@2@'.format(b, c, sanitizer), env, env : ['UBSAN_OPTIONS=print_stacktrace=1:print_summary=1:halt_on_error=1'], diff --git a/test/fuzz/meson.build b/test/fuzz/meson.build index 772e07e7fc..7a83961d11 100644 --- a/test/fuzz/meson.build +++ b/test/fuzz/meson.build @@ -15,7 +15,7 @@ sanitize_address_undefined = custom_target( project_source_root, '@OUTPUT@', 'fuzzers', - '-Db_lundef=false -Db_sanitize=address,undefined @0@'.format(optimization), + '-Dfuzz-tests=true -Db_lundef=false -Db_sanitize=address,undefined @0@'.format(optimization), ' '.join(cc.cmd_array()), cxx_cmd]) From 85a03fda7df4d45dc0c2414784b1da5991c39efa Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 13 Nov 2020 15:27:51 +0900 Subject: [PATCH 2/2] ci: also set -Dfuzz-tests=true if -Dslow-tests=true --- .github/workflows/ubuntu-build-check.sh | 2 +- semaphoreci/semaphore-runner.sh | 2 +- travis-ci/managers/debian.sh | 2 +- travis-ci/managers/fedora.sh | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ubuntu-build-check.sh b/.github/workflows/ubuntu-build-check.sh index 0892e08dd1..d4f1106538 100755 --- a/.github/workflows/ubuntu-build-check.sh +++ b/.github/workflows/ubuntu-build-check.sh @@ -103,7 +103,7 @@ for args in "${ARGS[@]}"; do SECONDS=0 info "Checking build with $args" - if ! AR="$AR" CC="$CC" CXX="$CXX" CFLAGS="-Werror" CXXFLAGS="-Werror" meson -Dtests=unsafe -Dslow-tests=true --werror $args build; then + if ! AR="$AR" CC="$CC" CXX="$CXX" CFLAGS="-Werror" CXXFLAGS="-Werror" meson -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true --werror $args build; then fatal "meson failed with $args" fi diff --git a/semaphoreci/semaphore-runner.sh b/semaphoreci/semaphore-runner.sh index 715a5aafb1..8b18f799c9 100755 --- a/semaphoreci/semaphore-runner.sh +++ b/semaphoreci/semaphore-runner.sh @@ -86,7 +86,7 @@ EOF # disable autopkgtests which are not for upstream sed -i '/# NOUPSTREAM/ q' debian/tests/control # enable more unit tests - sed -i '/^CONFFLAGS =/ s/=/= --werror -Dtests=unsafe -Dsplit-usr=true -Dslow-tests=true -Dman=true /' debian/rules + sed -i '/^CONFFLAGS =/ s/=/= --werror -Dtests=unsafe -Dsplit-usr=true -Dslow-tests=true -Dfuzz-tests=true -Dman=true /' debian/rules # no orig tarball echo '1.0' > debian/source/format diff --git a/travis-ci/managers/debian.sh b/travis-ci/managers/debian.sh index ab8a5b5fb8..558a55a0a1 100755 --- a/travis-ci/managers/debian.sh +++ b/travis-ci/managers/debian.sh @@ -61,7 +61,7 @@ for phase in "${PHASES[@]}"; do ENV_VARS="-e CC=clang -e CXX=clang++" MESON_ARGS="--optimization=1" fi - docker exec $ENV_VARS -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dsplit-usr=true -Dman=true $MESON_ARGS build + docker exec $ENV_VARS -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true -Dsplit-usr=true -Dman=true $MESON_ARGS build $DOCKER_EXEC ninja -v -C build docker exec -e "TRAVIS=$TRAVIS" -it $CONT_NAME ninja -C build test ;; diff --git a/travis-ci/managers/fedora.sh b/travis-ci/managers/fedora.sh index 3a917564ed..463696a32e 100755 --- a/travis-ci/managers/fedora.sh +++ b/travis-ci/managers/fedora.sh @@ -83,12 +83,12 @@ for phase in "${PHASES[@]}"; do RUN) info "Run phase" # Build systemd - $DOCKER_EXEC meson --werror -Dtests=unsafe -Dslow-tests=true build + $DOCKER_EXEC meson --werror -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true build $DOCKER_EXEC ninja -v -C build $DOCKER_EXEC ninja -C build test ;; RUN_CLANG) - docker exec -e CC=clang -e CXX=clang++ -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dman=true build + docker exec -e CC=clang -e CXX=clang++ -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true -Dman=true build $DOCKER_EXEC ninja -v -C build $DOCKER_EXEC ninja -C build test ;;