From bbd7d5de090e200dbcf7e925e25b0b273c4290ff Mon Sep 17 00:00:00 2001 From: John Ericson Date: Thu, 11 May 2023 23:22:35 -0400 Subject: Fix some bounds in rapid check instances `inRange` is exclusive not inclusive: https://github.com/emil-e/rapidcheck/blob/master/doc/generators.md#usage Furthermore, use `std::variant_size_v` so we use the right number automatically. Finally, make the `switch` assert the discriminant is in bounds as expected. --- src/libstore/tests/derived-path.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/libstore/tests/derived-path.cc') diff --git a/src/libstore/tests/derived-path.cc b/src/libstore/tests/derived-path.cc index e6d32dbd0..160443ec1 100644 --- a/src/libstore/tests/derived-path.cc +++ b/src/libstore/tests/derived-path.cc @@ -27,11 +27,13 @@ Gen Arbitrary::arbitrary() Gen Arbitrary::arbitrary() { - switch (*gen::inRange(0, 1)) { + switch (*gen::inRange(0, std::variant_size_v)) { case 0: return gen::just(*gen::arbitrary()); - default: + case 1: return gen::just(*gen::arbitrary()); + default: + assert(false); } } -- cgit v1.2.3