A WebGPU program generator for fuzz testing. Developed as part of a final year project at Imperial College London.
- Gradle 8.9+
- Node v20+
- Python 3.10+
- Java 21.0+
gradle build
npm install
// To directly interface with the .jar file:
python3 webglich.py <.jar options>
// To generate and execute generated programs (requires WebGlitchRunner)
// supported platforms: 'all', 'all_runtimes', 'all_browsers', 'dawn', 'wgpu', 'chrome', 'firefox'
python3 webglitch.py --run <platform>
// To generate programs in the CTS format:
python3 webglitch.py --cts <num_files>
- Please update the
RUNNER_PATH and OUTPUT_DIR variables
first inwebglitch.py
- You may find WebGlitchRunner here: https://github.com/matthew-wong1/WebGlitchRunner
- You can also use the scripts
webglitch.sh
andwebglitch.bat
to integrate with other tools (no need to specify paths)
- All generated API calls can be guaranteed to be valid
- All dependencies necessary for an API call to be valid are generated
- Integrates with WGSLsmith to generate random compute shaders
- Configurable settings are located in
config.json
. Additional settings can be changed when running the .jar file with CLI flags - Can be used with
WebGlitchRunner
,FaultFinder
,WebGlitchInterestingness
, andCovCompare
- Code is undergoing refactoring to remove tech debt
- Code is undergoing updating so you don't have to specify as many paths
- Changes are being made to how API calls are defined in JSON to make it more streamlined