aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/tests/path.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstore/tests/path.cc')
-rw-r--r--src/libstore/tests/path.cc31
1 files changed, 20 insertions, 11 deletions
diff --git a/src/libstore/tests/path.cc b/src/libstore/tests/path.cc
index 8ea252c92..430aa0099 100644
--- a/src/libstore/tests/path.cc
+++ b/src/libstore/tests/path.cc
@@ -7,7 +7,9 @@
#include "path-regex.hh"
#include "store-api.hh"
-#include "libstoretests.hh"
+#include "tests/hash.hh"
+#include "tests/libstore.hh"
+#include "tests/path.hh"
namespace nix {
@@ -73,17 +75,14 @@ void showValue(const StorePath & p, std::ostream & os) {
namespace rc {
using namespace nix;
-template<>
-struct Arbitrary<StorePath> {
- static Gen<StorePath> arbitrary();
-};
-
-Gen<StorePath> Arbitrary<StorePath>::arbitrary()
+Gen<StorePathName> Arbitrary<StorePathName>::arbitrary()
{
- auto len = *gen::inRange<size_t>(1, StorePath::MaxPathLen);
+ auto len = *gen::inRange<size_t>(
+ 1,
+ StorePath::MaxPathLen - std::string_view { HASH_PART }.size());
- std::string pre { HASH_PART "-" };
- pre.reserve(pre.size() + len);
+ std::string pre;
+ pre.reserve(len);
for (size_t c = 0; c < len; ++c) {
switch (auto i = *gen::inRange<uint8_t>(0, 10 + 2 * 26 + 6)) {
@@ -118,7 +117,17 @@ Gen<StorePath> Arbitrary<StorePath>::arbitrary()
}
}
- return gen::just(StorePath { pre });
+ return gen::just(StorePathName {
+ .name = std::move(pre),
+ });
+}
+
+Gen<StorePath> Arbitrary<StorePath>::arbitrary()
+{
+ return gen::just(StorePath {
+ *gen::arbitrary<Hash>(),
+ (*gen::arbitrary<StorePathName>()).name,
+ });
}
} // namespace rc