----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/56242/ -----------------------------------------------------------
Review request for geode, Bruce Schuchardt, Hitesh Khamesra, Kirk Lund, and Udo Kohlmeyer. Repository: geode Description ------- This adds a test dependency on `junit-quickcheck` (and `junit-quickcheck-generators` and `junit-quickcheck-guava`) to geode-core. I've included an example test of one of the cases in which property-based testing is particularly nice: when you have two operations that should reverse each other and want to test them with as much garbage as possible. Property-based testing means basically that you write a function that tests some code and checks some conditions you expect to hold true for all inputs, and then have a computer program test all sorts of weird inputs to try prove you wrong. Because the test data is randomly generated, you get to test against more inputs than you might even think of, and because the seed is saved, the test is reproducible. If `junit-quickcheck` finds one failure, it will even try to narrow down to a smallest example of a test failure. I'm about to send an email to the dev list soliciting feedback. Diffs ----- geode-core/build.gradle 3c2a2abf5 geode-core/src/test/java/org/apache/geode/internal/InternalDataSerializerQuickcheckStringTest.java PRE-CREATION geode-core/src/test/java/org/apache/geode/internal/InternalDataSerializerRandomizedJUnitTest.java f361de4a2 Diff: https://reviews.apache.org/r/56242/diff/ Testing ------- The test passes on my machine. This is mostly just adding a dependency, so there's not a lot here to test. I've read some of the source of junit-quickcheck and looked into the data it generates: integral numbers seem pretty reasonable. Strings tend to be short-ish (length up to hundreds with hundreds of iterations, thousands with thousands), but are made up of random codepoints, which is nice. Thanks, Galen O'Sullivan