summaryrefslogtreecommitdiff
path: root/site_scons/site_tools/mongo_libfuzzer.py
diff options
context:
space:
mode:
Diffstat (limited to 'site_scons/site_tools/mongo_libfuzzer.py')
-rw-r--r--site_scons/site_tools/mongo_libfuzzer.py58
1 files changed, 26 insertions, 32 deletions
diff --git a/site_scons/site_tools/mongo_libfuzzer.py b/site_scons/site_tools/mongo_libfuzzer.py
index c81f80dccf2..85041d6ae21 100644
--- a/site_scons/site_tools/mongo_libfuzzer.py
+++ b/site_scons/site_tools/mongo_libfuzzer.py
@@ -7,56 +7,50 @@ def exists(env):
return True
-_libfuzzer_tests = []
-
-
-def register_libfuzzer_test(env, test):
- _libfuzzer_tests.append(test.path)
- env.Alias('$LIBFUZZER_TEST_ALIAS', test)
-
-
def libfuzzer_test_list_builder_action(env, target, source):
- with open(str(target[0]), 'w') as ofile:
+ with open(str(target[0]), "w") as ofile:
for s in _libfuzzer_tests:
- print('\t' + str(s))
- ofile.write('%s\n' % s)
-
+ print("\t" + str(s))
+ ofile.write("%s\n" % s)
def build_cpp_libfuzzer_test(env, target, source, **kwargs):
myenv = env.Clone()
- if not myenv.IsSanitizerEnabled('fuzzer'):
+ if not myenv.IsSanitizerEnabled("fuzzer"):
return []
- libdeps = kwargs.get('LIBDEPS', [])
- kwargs['LIBDEPS'] = libdeps
- kwargs['INSTALL_ALIAS'] = ['tests']
- sanitizer_option = '-fsanitize=fuzzer'
+ libdeps = kwargs.get("LIBDEPS", [])
+ kwargs["LIBDEPS"] = libdeps
+ kwargs["INSTALL_ALIAS"] = ["tests"]
+ sanitizer_option = "-fsanitize=fuzzer"
myenv.Prepend(LINKFLAGS=[sanitizer_option])
- libfuzzer_test_components = {'tests', 'fuzzertests'}
- if (
- 'AIB_COMPONENT' in kwargs
- and not kwargs['AIB_COMPONENTS'].endswith('-fuzzertest')
+ libfuzzer_test_components = {"tests", "fuzzertests"}
+ if "AIB_COMPONENT" in kwargs and not kwargs["AIB_COMPONENTS"].endswith(
+ "-fuzzertest"
):
- kwargs['AIB_COMPONENT'] += '-fuzzertest'
+ kwargs["AIB_COMPONENT"] += "-fuzzertest"
- if 'AIB_COMPONENTS_EXTRA' in kwargs:
- libfuzzer_test_components = set(kwargs['AIB_COMPONENTS_EXTRA']).union(libfuzzer_test_components)
+ if "AIB_COMPONENTS_EXTRA" in kwargs:
+ libfuzzer_test_components = set(kwargs["AIB_COMPONENTS_EXTRA"]).union(
+ libfuzzer_test_components
+ )
- kwargs['AIB_COMPONENTS_EXTRA'] = libfuzzer_test_components
+ kwargs["AIB_COMPONENTS_EXTRA"] = libfuzzer_test_components
result = myenv.Program(target, source, **kwargs)
- myenv.RegisterLibfuzzerTest(result[0])
- hygienic = myenv.GetOption('install-mode') == 'hygienic'
+ myenv.RegisterTest("$LIBFUZZER_TEST_LIST", result[0])
+ myenv.Alias("$LIBFUZZER_TEST_ALIAS", result)
+
+ # TODO: remove when hygienic is default
+ hygienic = myenv.GetOption("install-mode") == "hygienic"
if not hygienic:
myenv.Install("#/build/libfuzzer_tests/", result[0])
+
return result
def generate(env):
- env.Command('$LIBFUZZER_TEST_LIST', env.Value(_libfuzzer_tests),
- Action(libfuzzer_test_list_builder_action, "Generating $TARGET"))
- env.AddMethod(register_libfuzzer_test, 'RegisterLibfuzzerTest')
- env.AddMethod(build_cpp_libfuzzer_test, 'CppLibfuzzerTest')
- env.Alias('$LIBFUZZER_TEST_ALIAS', '$LIBFUZZER_TEST_LIST')
+ env.TestList("$LIBFUZZER_TEST_LIST", source=[])
+ env.AddMethod(build_cpp_libfuzzer_test, "CppLibfuzzerTest")
+ env.Alias("$LIBFUZZER_TEST_ALIAS", "$LIBFUZZER_TEST_LIST")