fix(3p/nix/tests): Fail DummyStore::addToStore on non-existent srcPath
Unfortunately, to guarantee correct behaviour of some evaluation (!) tests, addToStore needs to actually check whether passed in source files exist and fail appropriately. There is a chance that the dependency on this behaviour is actually a bug in the upstream test suite, but my attempts at finding out more about this from, say, the git history have so far been unsuccessful. Change-Id: I311999ea28fcedf5da13a4e627b1c1c8e4e59cbd Reviewed-on: https://cl.tvl.fyi/c/depot/+/1276 Reviewed-by: isomer <isomer@tvl.fyi> Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
This commit is contained in:
parent
989537f972
commit
a802b4b44d
2 changed files with 8 additions and 3 deletions
7
third_party/nix/src/tests/dummy-store.hh
vendored
7
third_party/nix/src/tests/dummy-store.hh
vendored
|
@ -1,5 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
#include <filesystem>
|
||||
#include "libstore/store-api.hh"
|
||||
|
||||
namespace nix::tests {
|
||||
|
@ -20,7 +21,11 @@ class DummyStore final : public Store {
|
|||
bool recursive = true, HashType hashAlgo = htSHA256,
|
||||
PathFilter& filter = defaultPathFilter,
|
||||
RepairFlag repair = NoRepair) {
|
||||
return "/nix/store/g1w7hy3qg1w7hy3qg1w7hy3qg1w7hy3q-x";
|
||||
if (srcPath == "/exists-for-tests") {
|
||||
return "/nix/store/g1w7hy3qg1w7hy3qg1w7hy3qg1w7hy3q-x";
|
||||
}
|
||||
|
||||
throw SysError("file does not exist");
|
||||
}
|
||||
|
||||
Path addTextToStore(const std::string& name, const std::string& s,
|
||||
|
|
4
third_party/nix/src/tests/value-to-json.cc
vendored
4
third_party/nix/src/tests/value-to-json.cc
vendored
|
@ -116,7 +116,7 @@ TEST_F(JSONValueTest, Path) {
|
|||
Value v;
|
||||
PathSet ps;
|
||||
|
||||
mkPath(v, "test");
|
||||
mkPathNoCopy(v, "/exists-for-tests");
|
||||
printValueAsJSON(s, true, v, ss, ps);
|
||||
ASSERT_EQ(ss.str(), "\"/nix/store/g1w7hy3qg1w7hy3qg1w7hy3qg1w7hy3q-x\"");
|
||||
}
|
||||
|
@ -128,7 +128,7 @@ TEST_F(JSONValueTest, PathNoCopy) {
|
|||
Value v;
|
||||
PathSet ps;
|
||||
|
||||
mkPathNoCopy(v, "test");
|
||||
mkPathNoCopy(v, "/exists-for-tests");
|
||||
printValueAsJSON(s, true, v, ss, ps);
|
||||
ASSERT_EQ(ss.str(), "\"/nix/store/g1w7hy3qg1w7hy3qg1w7hy3qg1w7hy3q-x\"");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue