aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/tests/derived-path.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/libexpr/tests/derived-path.cc')
-rw-r--r--src/libexpr/tests/derived-path.cc35
1 files changed, 21 insertions, 14 deletions
diff --git a/src/libexpr/tests/derived-path.cc b/src/libexpr/tests/derived-path.cc
index 8210efef2..2a5ca64f6 100644
--- a/src/libexpr/tests/derived-path.cc
+++ b/src/libexpr/tests/derived-path.cc
@@ -21,12 +21,12 @@ TEST_F(DerivedPathExpressionTest, force_init)
RC_GTEST_FIXTURE_PROP(
DerivedPathExpressionTest,
prop_opaque_path_round_trip,
- (const DerivedPath::Opaque & o))
+ (const SingleDerivedPath::Opaque & o))
{
auto * v = state.allocValue();
state.mkStorePathString(o.path, *v);
- auto d = state.coerceToDerivedPath(noPos, *v, "");
- RC_ASSERT(DerivedPath { o } == d);
+ auto d = state.coerceToSingleDerivedPath(noPos, *v, "");
+ RC_ASSERT(SingleDerivedPath { o } == d);
}
// TODO use DerivedPath::Built for parameter once it supports a single output
@@ -37,14 +37,21 @@ RC_GTEST_FIXTURE_PROP(
prop_built_path_placeholder_round_trip,
(const StorePath & drvPath, const StorePathName & outputName))
{
+ /**
+ * 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", "ca-derivations");
+
auto * v = state.allocValue();
- state.mkOutputString(*v, drvPath, outputName.name, std::nullopt);
- auto [d, _] = state.coerceToDerivedPathUnchecked(noPos, *v, "");
- DerivedPath::Built b {
- .drvPath = drvPath,
- .outputs = OutputsSpec::Names { outputName.name },
+ state.mkOutputString(*v, drvPath, outputName.name, std::nullopt, mockXpSettings);
+ auto [d, _] = state.coerceToSingleDerivedPathUnchecked(noPos, *v, "");
+ SingleDerivedPath::Built b {
+ .drvPath = makeConstantStorePathRef(drvPath),
+ .output = outputName.name,
};
- RC_ASSERT(DerivedPath { b } == d);
+ RC_ASSERT(SingleDerivedPath { b } == d);
}
RC_GTEST_FIXTURE_PROP(
@@ -54,12 +61,12 @@ RC_GTEST_FIXTURE_PROP(
{
auto * v = state.allocValue();
state.mkOutputString(*v, drvPath, outputName.name, outPath);
- auto [d, _] = state.coerceToDerivedPathUnchecked(noPos, *v, "");
- DerivedPath::Built b {
- .drvPath = drvPath,
- .outputs = OutputsSpec::Names { outputName.name },
+ auto [d, _] = state.coerceToSingleDerivedPathUnchecked(noPos, *v, "");
+ SingleDerivedPath::Built b {
+ .drvPath = makeConstantStorePathRef(drvPath),
+ .output = outputName.name,
};
- RC_ASSERT(DerivedPath { b } == d);
+ RC_ASSERT(SingleDerivedPath { b } == d);
}
} /* namespace nix */