@samitouri / QOS-React-2 / commits / 399cd0d16c

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;