Commit Graph

11 Commits

Author SHA1 Message Date
Alastair Donaldson
f0351b7bc6
Avoid id bound errors during opt fuzzing (#4658)
Use a very large id bound when fuzzing the optimizer, and check that the
input does not ids that are too close to this bound. This should make it
impossible in practice for an id overflow to occur.

Fixes #4657.
2021-12-13 10:56:52 +00:00
Ryan Harrison
2d12367ced
Stop consuming input in fuzzers to select target environment (#4544)
Instead calculate a hash based on the input and use that as a seed
into random data generation for the target env.

Also fixes issue where input data was not actually being fed into
one fuzzer.

Fixes #4450
2021-10-04 13:42:12 -04:00
Ryan Harrison
9150cd441f
Remove WebGPU support (#4108)
Leaves SPV_ENV_WEBGPU_0 enum in place, but marked deprecated, so users
of the library are not broken by an API enum being removed.

Fixes #4101
2021-01-14 16:45:18 -05:00
Ryan Harrison
2ca4fcfdc2
Add fuzzer for spirv-dis call path (#2977)
Fixes #2970
2019-10-17 12:30:47 -04:00
Ryan Harrison
8e89778531
Add fuzzer for spirv-as call path (#2976)
Fixes #2969
2019-10-16 15:25:03 -04:00
Ryan Harrison
f051812343
Add WebGPU specific fuzzer for validation (#2628)
Fixes #2627
2019-05-28 11:51:52 -07:00
Ryan Harrison
5a06fa4661
Add fuzzer for Vulkan->WebGPU spirv-opt passes (#2626)
Fixes #2622
2019-05-28 10:11:43 -07:00
Ryan Harrison
78b2b18661
Add fuzzer for WebGPU->Vulkan spirv-opt passes (#2625)
Fixes #2623
2019-05-28 07:18:03 -07:00
Ryan Harrison
5beeee15c1 Add fuzzer for spvBinaryParser (#2045)
Add fuzzer for spvBinaryParser
2018-11-14 10:30:20 -05:00
Corentin Wallez
21bcb9d8b9 BUILD.gn: Make a better interface with dependents. (#1877)
This splits the spvtools_config into a public and private part to avoid
leaking internal bits to dependents. A new target is added for the
public headers so that "gn check" works for dependents.

Also formats test/fuzzers/BUILD.gn
2018-09-06 10:50:27 -04:00
Corentin Wallez
2d9a325264 Refactor BUILD.gn so can easily be embedded in other projects
1.
BUILD.gn: Don't use the extra Chromium clang warnings

Also removes the unused .gn secondary_sources.

2.

Move fuzzers in test/ instead of testing/

This frees up testing/ to be the git subtree of Chromium's src/testing/
that contains test.gni, gtest, gmock and libfuzzer

3.

DEPS: get the whole testing/ subtree of Chromium

4.

BUILD.gn: Simplify the standalone gtest targets

These targets definitions are inspired from ANGLE's and add a variable
that is the path of the googletest directory so that it can be made
overridable in future commits.

6.

BUILD.gn: Add overridable variables for deps dirs

This avoids hardcoded paths to dependencies that make it hard to
integrate SPIRV-Tools in other GN projects.
2018-08-03 10:06:11 -04:00