From 171fb3b9af9a8c735b199c6eafaa15dacd44cd5d Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Mon, 7 Feb 2022 15:53:20 +0100 Subject: [PATCH] [clusterfuzz] Split directory structure After https://crrev.com/c/3416191 there are too many mixed concerns in the clusterfuzz directory. We split it into js-fuzzer, foozzie and trials. Change-Id: I9a21ee83985e6113d77acba4583e99df88723c60 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3443505 Commit-Queue: Michael Achenbach Auto-Submit: Michael Achenbach Reviewed-by: Almothana Athamneh Commit-Queue: Almothana Athamneh Cr-Commit-Position: refs/heads/main@{#78981} --- BUILD.gn | 6 ++--- test/mjsunit/BUILD.gn | 6 ++--- test/mjsunit/tools/foozzie.js | 2 +- test/mjsunit/tools/foozzie_archs.js | 4 ++-- test/mjsunit/tools/foozzie_webassembly.js | 4 ++-- tools/clusterfuzz/{ => foozzie}/BUILD.gn | 7 +----- tools/clusterfuzz/foozzie/PRESUBMIT.py | 24 +++++++++++++++++++ .../{ => foozzie}/testdata/baseline/d8.py | 0 .../testdata/baseline/v8_build_config.json | 0 .../{ => foozzie}/testdata/build1/d8.py | 0 .../testdata/build1/v8_build_config.json | 0 .../{ => foozzie}/testdata/build2/d8.py | 0 .../testdata/build2/v8_build_config.json | 0 .../{ => foozzie}/testdata/build3/d8.py | 0 .../testdata/build3/v8_build_config.json | 0 .../{ => foozzie}/testdata/failure_output.txt | 0 .../testdata/failure_output_arch.txt | 0 .../testdata/failure_output_second.txt | 0 .../{ => foozzie}/testdata/fuzz-123.js | 0 .../testdata/smoke_test_output.txt | 0 .../{ => foozzie}/toolchain/BUILD.gn | 0 .../clusterfuzz/{ => foozzie}/v8_commands.py | 0 tools/clusterfuzz/{ => foozzie}/v8_foozzie.py | 0 .../v8_foozzie_harness_adjust.js | 0 .../{ => foozzie}/v8_foozzie_test.py | 0 .../{ => foozzie}/v8_fuzz_config.py | 0 .../{ => foozzie}/v8_fuzz_experiments.json | 0 .../{ => foozzie}/v8_fuzz_flags.json | 0 tools/clusterfuzz/{ => foozzie}/v8_mock.js | 0 .../{ => foozzie}/v8_mock_archs.js | 0 .../{ => foozzie}/v8_mock_webassembly.js | 0 .../{ => foozzie}/v8_smoke_tests.js | 0 .../{ => foozzie}/v8_suppressions.js | 0 .../{ => foozzie}/v8_suppressions.py | 0 tools/clusterfuzz/trials/BUILD.gn | 8 +++++++ tools/clusterfuzz/{ => trials}/PRESUBMIT.py | 15 +++--------- .../clusterfuzz_trials_config.json | 0 tools/v8_presubmit.py | 2 +- 38 files changed, 48 insertions(+), 30 deletions(-) rename tools/clusterfuzz/{ => foozzie}/BUILD.gn (79%) create mode 100644 tools/clusterfuzz/foozzie/PRESUBMIT.py rename tools/clusterfuzz/{ => foozzie}/testdata/baseline/d8.py (100%) rename tools/clusterfuzz/{ => foozzie}/testdata/baseline/v8_build_config.json (100%) rename tools/clusterfuzz/{ => foozzie}/testdata/build1/d8.py (100%) rename tools/clusterfuzz/{ => foozzie}/testdata/build1/v8_build_config.json (100%) rename tools/clusterfuzz/{ => foozzie}/testdata/build2/d8.py (100%) rename tools/clusterfuzz/{ => foozzie}/testdata/build2/v8_build_config.json (100%) rename tools/clusterfuzz/{ => foozzie}/testdata/build3/d8.py (100%) rename tools/clusterfuzz/{ => foozzie}/testdata/build3/v8_build_config.json (100%) rename tools/clusterfuzz/{ => foozzie}/testdata/failure_output.txt (100%) rename tools/clusterfuzz/{ => foozzie}/testdata/failure_output_arch.txt (100%) rename tools/clusterfuzz/{ => foozzie}/testdata/failure_output_second.txt (100%) rename tools/clusterfuzz/{ => foozzie}/testdata/fuzz-123.js (100%) rename tools/clusterfuzz/{ => foozzie}/testdata/smoke_test_output.txt (100%) rename tools/clusterfuzz/{ => foozzie}/toolchain/BUILD.gn (100%) rename tools/clusterfuzz/{ => foozzie}/v8_commands.py (100%) rename tools/clusterfuzz/{ => foozzie}/v8_foozzie.py (100%) rename tools/clusterfuzz/{ => foozzie}/v8_foozzie_harness_adjust.js (100%) rename tools/clusterfuzz/{ => foozzie}/v8_foozzie_test.py (100%) rename tools/clusterfuzz/{ => foozzie}/v8_fuzz_config.py (100%) rename tools/clusterfuzz/{ => foozzie}/v8_fuzz_experiments.json (100%) rename tools/clusterfuzz/{ => foozzie}/v8_fuzz_flags.json (100%) rename tools/clusterfuzz/{ => foozzie}/v8_mock.js (100%) rename tools/clusterfuzz/{ => foozzie}/v8_mock_archs.js (100%) rename tools/clusterfuzz/{ => foozzie}/v8_mock_webassembly.js (100%) rename tools/clusterfuzz/{ => foozzie}/v8_smoke_tests.js (100%) rename tools/clusterfuzz/{ => foozzie}/v8_suppressions.js (100%) rename tools/clusterfuzz/{ => foozzie}/v8_suppressions.py (100%) create mode 100644 tools/clusterfuzz/trials/BUILD.gn rename tools/clusterfuzz/{ => trials}/PRESUBMIT.py (80%) rename tools/clusterfuzz/{ => trials}/clusterfuzz_trials_config.json (100%) diff --git a/BUILD.gn b/BUILD.gn index 3ceaee954d..701b0330f6 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -5931,7 +5931,7 @@ group("v8_clusterfuzz") { deps = [ ":d8", ":v8_simple_inspector_fuzzer", - "tools/clusterfuzz:v8_clusterfuzz_resources", + "tools/clusterfuzz/trials:v8_clusterfuzz_resources", ] if (v8_multi_arch_build) { @@ -5940,7 +5940,7 @@ group("v8_clusterfuzz") { ":d8(//build/toolchain/linux:clang_x64_v8_arm64)", ":d8(//build/toolchain/linux:clang_x86)", ":d8(//build/toolchain/linux:clang_x86_v8_arm)", - ":d8(tools/clusterfuzz/toolchain:clang_x64_pointer_compression)", + ":d8(tools/clusterfuzz/foozzie/toolchain:clang_x64_pointer_compression)", ] } } @@ -6156,7 +6156,7 @@ v8_executable("d8") { } if (v8_correctness_fuzzer) { - deps += [ "tools/clusterfuzz:v8_correctness_fuzzer_resources" ] + deps += [ "tools/clusterfuzz/foozzie:v8_correctness_fuzzer_resources" ] } defines = [] diff --git a/test/mjsunit/BUILD.gn b/test/mjsunit/BUILD.gn index 9cc6d6b652..b749aa43df 100644 --- a/test/mjsunit/BUILD.gn +++ b/test/mjsunit/BUILD.gn @@ -13,9 +13,9 @@ group("v8_mjsunit") { data = [ "./", "../../tools/arguments.mjs", - "../../tools/clusterfuzz/v8_mock.js", - "../../tools/clusterfuzz/v8_mock_archs.js", - "../../tools/clusterfuzz/v8_mock_webassembly.js", + "../../tools/clusterfuzz/foozzie/v8_mock.js", + "../../tools/clusterfuzz/foozzie/v8_mock_archs.js", + "../../tools/clusterfuzz/foozzie/v8_mock_webassembly.js", "../../tools/codemap.mjs", "../../tools/sourcemap.mjs", "../../tools/consarray.mjs", diff --git a/test/mjsunit/tools/foozzie.js b/test/mjsunit/tools/foozzie.js index 759df0e983..fa3cc5a84a 100644 --- a/test/mjsunit/tools/foozzie.js +++ b/test/mjsunit/tools/foozzie.js @@ -3,7 +3,7 @@ // found in the LICENSE file. // Flags: --allow-natives-syntax --correctness-fuzzer-suppressions -// Files: tools/clusterfuzz/v8_mock.js +// Files: tools/clusterfuzz/foozzie/v8_mock.js // Test foozzie mocks for differential fuzzing. diff --git a/test/mjsunit/tools/foozzie_archs.js b/test/mjsunit/tools/foozzie_archs.js index 9023428324..bdaec97e01 100644 --- a/test/mjsunit/tools/foozzie_archs.js +++ b/test/mjsunit/tools/foozzie_archs.js @@ -3,8 +3,8 @@ // found in the LICENSE file. // Flags: --allow-natives-syntax -// Files: tools/clusterfuzz/v8_mock.js -// Files: tools/clusterfuzz/v8_mock_archs.js +// Files: tools/clusterfuzz/foozzie/v8_mock.js +// Files: tools/clusterfuzz/foozzie/v8_mock_archs.js // Test foozzie architecture-specific mocks for differential fuzzing. diff --git a/test/mjsunit/tools/foozzie_webassembly.js b/test/mjsunit/tools/foozzie_webassembly.js index d5130a393b..0bb2172e87 100644 --- a/test/mjsunit/tools/foozzie_webassembly.js +++ b/test/mjsunit/tools/foozzie_webassembly.js @@ -3,8 +3,8 @@ // found in the LICENSE file. // Flags: --allow-natives-syntax -// Files: tools/clusterfuzz/v8_mock.js -// Files: tools/clusterfuzz/v8_mock_webassembly.js +// Files: tools/clusterfuzz/foozzie/v8_mock.js +// Files: tools/clusterfuzz/foozzie/v8_mock_webassembly.js // Test foozzie webassembly-specfific mocks for differential fuzzing. diff --git a/tools/clusterfuzz/BUILD.gn b/tools/clusterfuzz/foozzie/BUILD.gn similarity index 79% rename from tools/clusterfuzz/BUILD.gn rename to tools/clusterfuzz/foozzie/BUILD.gn index 9cbc1f52eb..90113e5aa4 100644 --- a/tools/clusterfuzz/BUILD.gn +++ b/tools/clusterfuzz/foozzie/BUILD.gn @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("../../gni/v8.gni") +import("../../../gni/v8.gni") if (v8_correctness_fuzzer) { copy("v8_correctness_fuzzer_resources") { @@ -23,8 +23,3 @@ if (v8_correctness_fuzzer) { outputs = [ "$root_out_dir/{{source_file_part}}" ] } } - -copy("v8_clusterfuzz_resources") { - sources = [ "clusterfuzz_trials_config.json" ] - outputs = [ "$root_out_dir/{{source_file_part}}" ] -} diff --git a/tools/clusterfuzz/foozzie/PRESUBMIT.py b/tools/clusterfuzz/foozzie/PRESUBMIT.py new file mode 100644 index 0000000000..6d4cab3de4 --- /dev/null +++ b/tools/clusterfuzz/foozzie/PRESUBMIT.py @@ -0,0 +1,24 @@ +# Copyright 2018 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import json + + +def _RunTests(input_api, output_api): + return input_api.RunTests(input_api.canned_checks.GetUnitTestsInDirectory( + input_api, output_api, '.', files_to_check=['v8_foozzie_test.py$'])) + +def _CommonChecks(input_api, output_api): + """Checks common to both upload and commit.""" + checks = [ + _RunTests, + ] + + return sum([check(input_api, output_api) for check in checks], []) + +def CheckChangeOnCommit(input_api, output_api): + return _CommonChecks(input_api, output_api) + +def CheckChangeOnUpload(input_api, output_api): + return _CommonChecks(input_api, output_api) diff --git a/tools/clusterfuzz/testdata/baseline/d8.py b/tools/clusterfuzz/foozzie/testdata/baseline/d8.py similarity index 100% rename from tools/clusterfuzz/testdata/baseline/d8.py rename to tools/clusterfuzz/foozzie/testdata/baseline/d8.py diff --git a/tools/clusterfuzz/testdata/baseline/v8_build_config.json b/tools/clusterfuzz/foozzie/testdata/baseline/v8_build_config.json similarity index 100% rename from tools/clusterfuzz/testdata/baseline/v8_build_config.json rename to tools/clusterfuzz/foozzie/testdata/baseline/v8_build_config.json diff --git a/tools/clusterfuzz/testdata/build1/d8.py b/tools/clusterfuzz/foozzie/testdata/build1/d8.py similarity index 100% rename from tools/clusterfuzz/testdata/build1/d8.py rename to tools/clusterfuzz/foozzie/testdata/build1/d8.py diff --git a/tools/clusterfuzz/testdata/build1/v8_build_config.json b/tools/clusterfuzz/foozzie/testdata/build1/v8_build_config.json similarity index 100% rename from tools/clusterfuzz/testdata/build1/v8_build_config.json rename to tools/clusterfuzz/foozzie/testdata/build1/v8_build_config.json diff --git a/tools/clusterfuzz/testdata/build2/d8.py b/tools/clusterfuzz/foozzie/testdata/build2/d8.py similarity index 100% rename from tools/clusterfuzz/testdata/build2/d8.py rename to tools/clusterfuzz/foozzie/testdata/build2/d8.py diff --git a/tools/clusterfuzz/testdata/build2/v8_build_config.json b/tools/clusterfuzz/foozzie/testdata/build2/v8_build_config.json similarity index 100% rename from tools/clusterfuzz/testdata/build2/v8_build_config.json rename to tools/clusterfuzz/foozzie/testdata/build2/v8_build_config.json diff --git a/tools/clusterfuzz/testdata/build3/d8.py b/tools/clusterfuzz/foozzie/testdata/build3/d8.py similarity index 100% rename from tools/clusterfuzz/testdata/build3/d8.py rename to tools/clusterfuzz/foozzie/testdata/build3/d8.py diff --git a/tools/clusterfuzz/testdata/build3/v8_build_config.json b/tools/clusterfuzz/foozzie/testdata/build3/v8_build_config.json similarity index 100% rename from tools/clusterfuzz/testdata/build3/v8_build_config.json rename to tools/clusterfuzz/foozzie/testdata/build3/v8_build_config.json diff --git a/tools/clusterfuzz/testdata/failure_output.txt b/tools/clusterfuzz/foozzie/testdata/failure_output.txt similarity index 100% rename from tools/clusterfuzz/testdata/failure_output.txt rename to tools/clusterfuzz/foozzie/testdata/failure_output.txt diff --git a/tools/clusterfuzz/testdata/failure_output_arch.txt b/tools/clusterfuzz/foozzie/testdata/failure_output_arch.txt similarity index 100% rename from tools/clusterfuzz/testdata/failure_output_arch.txt rename to tools/clusterfuzz/foozzie/testdata/failure_output_arch.txt diff --git a/tools/clusterfuzz/testdata/failure_output_second.txt b/tools/clusterfuzz/foozzie/testdata/failure_output_second.txt similarity index 100% rename from tools/clusterfuzz/testdata/failure_output_second.txt rename to tools/clusterfuzz/foozzie/testdata/failure_output_second.txt diff --git a/tools/clusterfuzz/testdata/fuzz-123.js b/tools/clusterfuzz/foozzie/testdata/fuzz-123.js similarity index 100% rename from tools/clusterfuzz/testdata/fuzz-123.js rename to tools/clusterfuzz/foozzie/testdata/fuzz-123.js diff --git a/tools/clusterfuzz/testdata/smoke_test_output.txt b/tools/clusterfuzz/foozzie/testdata/smoke_test_output.txt similarity index 100% rename from tools/clusterfuzz/testdata/smoke_test_output.txt rename to tools/clusterfuzz/foozzie/testdata/smoke_test_output.txt diff --git a/tools/clusterfuzz/toolchain/BUILD.gn b/tools/clusterfuzz/foozzie/toolchain/BUILD.gn similarity index 100% rename from tools/clusterfuzz/toolchain/BUILD.gn rename to tools/clusterfuzz/foozzie/toolchain/BUILD.gn diff --git a/tools/clusterfuzz/v8_commands.py b/tools/clusterfuzz/foozzie/v8_commands.py similarity index 100% rename from tools/clusterfuzz/v8_commands.py rename to tools/clusterfuzz/foozzie/v8_commands.py diff --git a/tools/clusterfuzz/v8_foozzie.py b/tools/clusterfuzz/foozzie/v8_foozzie.py similarity index 100% rename from tools/clusterfuzz/v8_foozzie.py rename to tools/clusterfuzz/foozzie/v8_foozzie.py diff --git a/tools/clusterfuzz/v8_foozzie_harness_adjust.js b/tools/clusterfuzz/foozzie/v8_foozzie_harness_adjust.js similarity index 100% rename from tools/clusterfuzz/v8_foozzie_harness_adjust.js rename to tools/clusterfuzz/foozzie/v8_foozzie_harness_adjust.js diff --git a/tools/clusterfuzz/v8_foozzie_test.py b/tools/clusterfuzz/foozzie/v8_foozzie_test.py similarity index 100% rename from tools/clusterfuzz/v8_foozzie_test.py rename to tools/clusterfuzz/foozzie/v8_foozzie_test.py diff --git a/tools/clusterfuzz/v8_fuzz_config.py b/tools/clusterfuzz/foozzie/v8_fuzz_config.py similarity index 100% rename from tools/clusterfuzz/v8_fuzz_config.py rename to tools/clusterfuzz/foozzie/v8_fuzz_config.py diff --git a/tools/clusterfuzz/v8_fuzz_experiments.json b/tools/clusterfuzz/foozzie/v8_fuzz_experiments.json similarity index 100% rename from tools/clusterfuzz/v8_fuzz_experiments.json rename to tools/clusterfuzz/foozzie/v8_fuzz_experiments.json diff --git a/tools/clusterfuzz/v8_fuzz_flags.json b/tools/clusterfuzz/foozzie/v8_fuzz_flags.json similarity index 100% rename from tools/clusterfuzz/v8_fuzz_flags.json rename to tools/clusterfuzz/foozzie/v8_fuzz_flags.json diff --git a/tools/clusterfuzz/v8_mock.js b/tools/clusterfuzz/foozzie/v8_mock.js similarity index 100% rename from tools/clusterfuzz/v8_mock.js rename to tools/clusterfuzz/foozzie/v8_mock.js diff --git a/tools/clusterfuzz/v8_mock_archs.js b/tools/clusterfuzz/foozzie/v8_mock_archs.js similarity index 100% rename from tools/clusterfuzz/v8_mock_archs.js rename to tools/clusterfuzz/foozzie/v8_mock_archs.js diff --git a/tools/clusterfuzz/v8_mock_webassembly.js b/tools/clusterfuzz/foozzie/v8_mock_webassembly.js similarity index 100% rename from tools/clusterfuzz/v8_mock_webassembly.js rename to tools/clusterfuzz/foozzie/v8_mock_webassembly.js diff --git a/tools/clusterfuzz/v8_smoke_tests.js b/tools/clusterfuzz/foozzie/v8_smoke_tests.js similarity index 100% rename from tools/clusterfuzz/v8_smoke_tests.js rename to tools/clusterfuzz/foozzie/v8_smoke_tests.js diff --git a/tools/clusterfuzz/v8_suppressions.js b/tools/clusterfuzz/foozzie/v8_suppressions.js similarity index 100% rename from tools/clusterfuzz/v8_suppressions.js rename to tools/clusterfuzz/foozzie/v8_suppressions.js diff --git a/tools/clusterfuzz/v8_suppressions.py b/tools/clusterfuzz/foozzie/v8_suppressions.py similarity index 100% rename from tools/clusterfuzz/v8_suppressions.py rename to tools/clusterfuzz/foozzie/v8_suppressions.py diff --git a/tools/clusterfuzz/trials/BUILD.gn b/tools/clusterfuzz/trials/BUILD.gn new file mode 100644 index 0000000000..d3c8bf6aab --- /dev/null +++ b/tools/clusterfuzz/trials/BUILD.gn @@ -0,0 +1,8 @@ +# Copyright 2022 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +copy("v8_clusterfuzz_resources") { + sources = [ "clusterfuzz_trials_config.json" ] + outputs = [ "$root_out_dir/{{source_file_part}}" ] +} diff --git a/tools/clusterfuzz/PRESUBMIT.py b/tools/clusterfuzz/trials/PRESUBMIT.py similarity index 80% rename from tools/clusterfuzz/PRESUBMIT.py rename to tools/clusterfuzz/trials/PRESUBMIT.py index 56bc335d90..866790e5ec 100644 --- a/tools/clusterfuzz/PRESUBMIT.py +++ b/tools/clusterfuzz/trials/PRESUBMIT.py @@ -1,4 +1,4 @@ -# Copyright 2018 the V8 project authors. All rights reserved. +# Copyright 2022 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -39,25 +39,16 @@ def _CheckTrialsConfig(input_api, output_api): return [output_api.PresubmitError(r) for r in results] -def _RunTests(input_api, output_api): - return input_api.RunTests(input_api.canned_checks.GetUnitTestsInDirectory( - input_api, output_api, '.', files_to_check=['v8_foozzie_test.py$'])) - def _CommonChecks(input_api, output_api): """Checks common to both upload and commit.""" checks = [ _CheckTrialsConfig, - _RunTests, ] return sum([check(input_api, output_api) for check in checks], []) def CheckChangeOnCommit(input_api, output_api): - results = [] - results.extend(_CommonChecks(input_api, output_api)) - return results + return _CommonChecks(input_api, output_api) def CheckChangeOnUpload(input_api, output_api): - results = [] - results.extend(_CommonChecks(input_api, output_api)) - return results + return _CommonChecks(input_api, output_api) diff --git a/tools/clusterfuzz/clusterfuzz_trials_config.json b/tools/clusterfuzz/trials/clusterfuzz_trials_config.json similarity index 100% rename from tools/clusterfuzz/clusterfuzz_trials_config.json rename to tools/clusterfuzz/trials/clusterfuzz_trials_config.json diff --git a/tools/v8_presubmit.py b/tools/v8_presubmit.py index 1d2d7b1c6e..57bc5ea1ba 100755 --- a/tools/v8_presubmit.py +++ b/tools/v8_presubmit.py @@ -741,7 +741,7 @@ def CheckDeps(workspace): def PyTests(workspace): result = True for script in [ - join(workspace, 'tools', 'clusterfuzz', 'v8_foozzie_test.py'), + join(workspace, 'tools', 'clusterfuzz', 'foozzie', 'v8_foozzie_test.py'), join(workspace, 'tools', 'release', 'test_scripts.py'), join(workspace, 'tools', 'unittests', 'run_tests_test.py'), join(workspace, 'tools', 'unittests', 'run_perf_test.py'),