| OLD | NEW |
| (Empty) | |
| 1 # Web Bluetooth Fuzzer |
| 2 |
| 3 The Web Bluetooth Fuzzer generates test pages that can be run as layout tests. |
| 4 These pages consist of a sequence of calls to the Web Bluetooth API whose |
| 5 purpose is to stress test the API's implementation and catch any bugs |
| 6 or regressions. |
| 7 |
| 8 This document describes the overall design of the fuzzer. |
| 9 |
| 10 [TOC] |
| 11 |
| 12 ## Overview |
| 13 To generate test pages the fuzzer performs the following steps: |
| 14 |
| 15 1. Generate a test page that consists of a series of random calls to the API |
| 16 with template parameters, calls to reload the page and calls to run garbage |
| 17 collection. |
| 18 2. Replace the template parameters with random values. |
| 19 |
| 20 These generated test pages can then be run as Layout Tests in content_shell. |
| 21 |
| 22 ## ClusterFuzz |
| 23 This fuzzer is designed to be run by ClusterFuzz and therefore takes three |
| 24 arguments, `--no_of_files`, `--input_dir`, and `--output_dir`. |
| 25 |
| 26 ## Setup |
| 27 This fuzzer depends on files in: |
| 28 * `//src/third_party/WebKit/LayoutTests/resources` |
| 29 |
| 30 To ease development a setup.py script is included to copy over the necessary |
| 31 files to run the fuzzer locally. Additionally the script can be used to generate |
| 32 a .tar.bz2 file that can be uploaded to ClusterFuzz. To see the available |
| 33 options, run: |
| 34 ```sh |
| 35 python setup.py -h |
| 36 ``` |
| OLD | NEW |