aboutsummaryrefslogtreecommitdiff
path: root/tests/unit
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit')
-rw-r--r--tests/unit/libutil-support/tests/hash.cc15
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>())
+ );
}
}