diff options
Diffstat (limited to 'tests/unit')
-rw-r--r-- | tests/unit/libutil-support/tests/hash.cc | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/tests/unit/libutil-support/tests/hash.cc b/tests/unit/libutil-support/tests/hash.cc index 577e9890e..7cc994b40 100644 --- a/tests/unit/libutil-support/tests/hash.cc +++ b/tests/unit/libutil-support/tests/hash.cc @@ -11,10 +11,17 @@ using namespace nix; Gen<Hash> Arbitrary<Hash>::arbitrary() { - Hash hash(htSHA1); - for (size_t i = 0; i < hash.hashSize; ++i) - hash.hash[i] = *gen::arbitrary<uint8_t>(); - return gen::just(hash); + Hash prototype(htSHA1); + return + gen::apply( + [](const std::vector<uint8_t> & v) { + Hash hash(htSHA1); + assert(v.size() == hash.hashSize); + std::copy(v.begin(), v.end(), hash.hash); + return hash; + }, + gen::container<std::vector<uint8_t>>(prototype.hashSize, gen::arbitrary<uint8_t>()) + ); } } |