* [cifuzz] Create validate method on BaseConfig
Use it to validate that either OSS_FUZZ_PROJECT_NAME
or BUILD_INTEGRATION_PATH is set.
Also use it to validate that workspace is set
(rather than duplicate code).
Add tests.
* Use env var hack to bypass valdiation
* fix
* fix
* fmt
* fix
* tmp
* fix
* Adds swift-protobuf project
* Support swift language
* Fuzz target improvements
* No test for fuzz package
* fixup comments
* rename to binary
* symbolizer
compile, bad_build_check, and presubmit.py require small tweaks to
support JVM fuzz targets, most of which are similar to those required
for Python. The following additional changes are required:
* Since the Jazzer driver binary already links in libFuzzer, it should
not be built as a static library.
* It is not clear how to do architecture checks as JVM fuzz targets can
load their native dependencies dynamically at runtime. For now, the
check is disabled.
* The Jazzer binaries are moved into $OUT and need to be skipped over in
find_fuzz_targets.
Make unittests take 20 seconds to run instead of 35.
Make integration tests take 50 seconds to run instead of 6 minutes.
Make CI take 6 minutes instead of 12 minutes.
1. Allow running tests in parallel. Locally this takes the time for running all tests (including integration tests) from 6 minutes to ~50 seconds. We don't do parallel by default since it doesn't really save any time unless running integration tests on my machine (probably due to overhead of starting ~70 processes). This also speeds up CI from about 12 minutes to 6 minutes (since github actions has 2 cores per machine).
2. Fix how we run tests. I'm not exactly sure why, but the method we used for discovering tests, recursing through every directory and passing to unittest caused the build/infra tests to execute twice. Fixing this makes running unittests take ~20 seconds instead of ~35.
This change also uses pytest for running tests since it's easy to use it to run tests in parallel.
This change was made possible by #5113
* Get list of changed files from branch head, instead of master.
Fixes https://github.com/google/oss-fuzz/issues/5022
* Add debug with subprocess.call.
* Try again debugginig.
* Try again
* Fix works!
* Initial support for ujson (as a Python fuzzing sample).
* Add python to supported languages.
* Fix TODO.
* Update presubmit to ignore python in projects.
* Format
* Remove explicit addition of -fsanitize=fuzzer-no-link
* Only fuzz using libFuzzer.
Co-authored-by: Martin Barbella <mbarbella@google.com>
This is needed for CF to determine whether or not to allocate the
project on a higher end bot to run the blackbox fuzzer.
Previously this was keyed on the "none" entry under fuzzing_engines,
which wasn't very descriptive. This change also lets us do both blackbox
and greybox fuzzing in the same project, which will be done for quickjs.
Make some other changes:
1. Refactor fuzz_target.py and fuzz_target_test.py
2. Introduce pyfakefs and parameterized as dependencies and use them
in tests.
3. Fix infra-tests in CI so that they use installed dependencies
Currently we use Github action's inputs as inputs to cifuzz.
This means we need to do an extra step to convert each input into
an env var so our scripts can actually use it.
This is pretty bug prone and unnecessary, we should probably
get rid of this abstraction and switch to encouraging devs to set
the env vars directly.
* [presubmit] Enforce language attribute in projectt.yaml to be always set.
* Update documentation, better presubmit check, new project template.
* add docstring to templates.py
* Add example values in the project.yaml template and remove python value for now
* Add "project: c++" to 256 projects
* format
* Add labels and selective_unpack sections to the presubmit check
* fix incorrect auto_ccs format in three projects
* fix nss emails after rebase
* glib: Fix build due to Meson option changing type
In GLib master commit b220033c we changed the `libmount` option from a
`boolean` to a `feature`, which means it now takes
`enabled`/`disabled`/`auto` rather than `true`/`false`.
Signed-off-by: Philip Withnall <philip@tecnocode.co.uk>
Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20552
* glib: Fix homepage URI
The FSF page on GLib is not official, loaded with their advertising, and
quite out of date.
Signed-off-by: Philip Withnall <philip@tecnocode.co.uk>
* infra: Add help_url to the valid section names list in Travis checks
It’s documented as valid:
https://google.github.io/oss-fuzz/getting-started/new-project-guide/#help_url
Signed-off-by: Philip Withnall <philip@tecnocode.co.uk>
* [infra] Make presubmit script handle experimental flag in project.yaml (#3277).
* make Travis happy
* address review feedback
* fix one more comment
* fix yaml file and address review feedback