chore(tvix/tests): port upstream add.sh test

Change-Id: I5151d142d6b2b7f1df37b170b0160b8f77a89120
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1755
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
This commit is contained in:
Kane York 2020-08-14 17:51:39 -07:00 committed by kanepyork
parent 010dba3495
commit fea4df560b

View file

@ -88,4 +88,34 @@ TEST_F(BinaryCacheStoreTest, BasicErrors) {
}
}
// ./tests/add.sh
TEST_F(StoreTest, AddFileHashes) {
auto store_ = OpenTemporaryStore().ConsumeValueOrDie();
nix::Store* store = static_cast<nix::Store*>(store_.get());
nix::Path dataPath = NIX_SRC_DIR "/src/tests/lang/data";
std::string dataName = "data";
nix::Path path1 = store->addToStore(dataName, dataPath);
nix::Path path2 = store->addToStore(dataName, dataPath, /*recursive=*/true,
HashType::htSHA256);
EXPECT_EQ(path1, path2) << "nix-store --add and --add-fixed mismatch";
nix::Path path3 = store->addToStore(dataName, dataPath, /*recursive=*/false,
HashType::htSHA256);
EXPECT_NE(path1, path3);
nix::Path path4 =
store->addToStore(dataName, dataPath, false, HashType::htSHA1);
EXPECT_NE(path1, path4);
auto info1 = store->queryPathInfo(store->followLinksToStorePath(path1));
ASSERT_EQ(info1->narHash.type, HashType::htSHA256);
Hash h = nix::hashPath(HashType::htSHA256, dataPath).first;
EXPECT_EQ(info1->narHash.to_string(), h.to_string());
}
} // namespace nix