Set up cron job to run fuzz tester (#15718)
Sets up a CircleCI workflow to run the fuzz tests with a randomly generated seed. The workflow runs on an hourly schedule.
Andrew Clark committed
May 23, 2019 at 14:09 UTC
399cd0d16c52e7087bba2a9c53b659c290f720cd
2 files changed
+32
-3
.circleci/config.yml
+29
-1
@@ -165,6 +165,21 @@ jobs:
165
- *run_yarn
166
- run: yarn test-build --maxWorkers=2
167
168
+ test_fuzz:
169
+ docker: *docker
170
+ environment: *environment
171
+ steps:
172
+ - checkout
173
+ - *restore_yarn_cache
174
+ - *run_yarn
175
+ - run:
176
+ name: Run fuzz tests
177
+ command: |
178
+ FUZZ_TEST_SEED=$RANDOM
179
+ echo $FUZZ_TEST_SEED
180
+ yarn test fuzz --maxWorkers=2
181
+ yarn test-prod fuzz --maxWorkers=2
182
+
183
test_build_prod:
184
docker: *docker
185
environment: *environment
@@ -177,7 +192,7 @@ jobs:
192
193
workflows:
194
version: 2
180
- build-and-test:
195
+ commit:
196
jobs:
197
- setup
198
- lint:
@@ -213,3 +228,16 @@ workflows:
228
- test_build_prod:
229
requires:
230
- build
231
+ hourly:
232
+ triggers:
233
+ - schedule:
234
+ cron: "0 * * * *"
235
+ filters:
236
+ branches:
237
+ only:
238
+ - master
239
+ jobs:
240
+ - setup
241
+ - fuzz_tests:
242
+ requires:
243
+ - setup
packages/react-reconciler/src/__tests__/ReactSuspenseFuzz-test.internal.js
+3
-2
@@ -5,8 +5,7 @@ let Scheduler;
5
let ReactFeatureFlags;
6
let Random;
7
8
-const SEED = 0;
9
-
8
+const SEED = process.env.FUZZ_TEST_SEED || 'default';
9
const prettyFormatPkg = require('pretty-format');
10
11
function prettyFormat(thing) {
@@ -339,6 +338,8 @@ describe('ReactSuspenseFuzz', () => {
338
Failed fuzzy test case:
339
340
${prettyFormat(randomTestCase)}
341
+
342
+Random seed is ${SEED}
343
`);
344
345
throw e;