aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/tests/downstream-placeholder.cc
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2023-05-11 18:01:41 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2023-05-17 17:41:16 -0400
commitb9e5ce4a27f4a8bbee1a2eeb6fddbf569cbfdd7a (patch)
tree1e417565c4987a5e6ba3970ad22e069a088f735b /src/libstore/tests/downstream-placeholder.cc
parente7c1113a37e6a8fd0dc2dde0d070dbef276a0481 (diff)
Upgrade `downstreamPlaceholder` to a type with methods
This gets us ready for dynamic derivation dependencies (part of RFC 92).
Diffstat (limited to 'src/libstore/tests/downstream-placeholder.cc')
-rw-r--r--src/libstore/tests/downstream-placeholder.cc27
1 files changed, 22 insertions, 5 deletions
diff --git a/src/libstore/tests/downstream-placeholder.cc b/src/libstore/tests/downstream-placeholder.cc
index 7b8e2c649..ec3e1000f 100644
--- a/src/libstore/tests/downstream-placeholder.cc
+++ b/src/libstore/tests/downstream-placeholder.cc
@@ -1,16 +1,33 @@
#include <gtest/gtest.h>
-#include "derivations.hh"
+#include "downstream-placeholder.hh"
namespace nix {
-TEST(Derivation, downstreamPlaceholder) {
+TEST(DownstreamPlaceholder, unknownCaOutput) {
ASSERT_EQ(
- downstreamPlaceholder(
- (const Store &)*(const Store *)nullptr, // argument is unused
+ DownstreamPlaceholder::unknownCaOutput(
StorePath { "g1w7hy3qg1w7hy3qg1w7hy3qg1w7hy3q-foo.drv" },
- "out"),
+ "out").render(),
"/0c6rn30q4frawknapgwq386zq358m8r6msvywcvc89n6m5p2dgbz");
}
+TEST(DownstreamPlaceholder, unknownDerivation) {
+ /**
+ * We set these in tests rather than the regular globals so we don't have
+ * to worry about race conditions if the tests run concurrently.
+ */
+ ExperimentalFeatureSettings mockXpSettings;
+ mockXpSettings.set("experimental-features", "dynamic-derivations ca-derivations");
+
+ ASSERT_EQ(
+ DownstreamPlaceholder::unknownDerivation(
+ DownstreamPlaceholder::unknownCaOutput(
+ StorePath { "g1w7hy3qg1w7hy3qg1w7hy3qg1w7hy3q-foo.drv.drv" },
+ "out"),
+ "out",
+ mockXpSettings).render(),
+ "/0gn6agqxjyyalf0dpihgyf49xq5hqxgw100f0wydnj6yqrhqsb3w");
+}
+
}