diff options
author | Florian Klink <flokli@flokli.de> | 2023-09-15T12·34+0200 |
---|---|---|
committer | flokli <flokli@flokli.de> | 2023-09-15T21·00+0000 |
commit | 3816eaa5e91cf2cffd4f8d04a2faf31c7f646265 (patch) | |
tree | 11820bb9dd522ef33a5f41504c536c17456d8fdf /tvix/store/default.nix | |
parent | 32f2f8b6182c5eec15acb59ced371e0adfa41db2 (diff) |
feat(tvix/store): add simple integration test r/6596
This imports the docs folder into the tvix store, and ensures it comes up with the same store path as Nix. While we validate hashes in general through tvix-cli output path checks already, it doesn't include the tvix-store CLI itself. See https://cl.tvl.fyi/c/depot/+/9329/comment/339f0720_524f0104/ for context. Change-Id: I239ce5b6a07cb962b242142ab716693359b8674c Reviewed-on: https://cl.tvl.fyi/c/depot/+/9338 Reviewed-by: raitobezarius <tvl@lahfa.xyz> Tested-by: BuildkiteCI Reviewed-by: Connor Brewster <cbrewster@hey.com>
Diffstat (limited to 'tvix/store/default.nix')
-rw-r--r-- | tvix/store/default.nix | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/tvix/store/default.nix b/tvix/store/default.nix index ec04629ab24b..e324866a7f69 100644 --- a/tvix/store/default.nix +++ b/tvix/store/default.nix @@ -1,5 +1,31 @@ -{ depot, ... }: +{ depot, pkgs, ... }: -depot.tvix.crates.workspaceMembers.tvix-store.build.override { +let + mkImportCheck = p: expectedPath: { + label = ":nix :import ${p} with tvix-store import"; + needsOutput = true; + command = pkgs.writeShellScript "tvix-import-check" '' + export BLOB_SERVICE_ADDR=memory:// + export DIRECTORY_SERVICE_ADDR=memory:// + export PATH_INFO_SERVICE_ADDR=memory:// + TVIX_STORE_OUTPUT=$(result/bin/tvix-store import ${p}) + EXPECTED='${/* the vebatim expected Tvix output: */expectedPath}' + + echo "tvix-store output: ''${TVIX_STORE_OUTPUT}" + if [ "$TVIX_STORE_OUTPUT" != "$EXPECTED" ]; then + echo "Correct would have been ''${EXPECTED}" + exit 1 + fi + + echo "Output was correct." + ''; + }; +in + +(depot.tvix.crates.workspaceMembers.tvix-store.build.override { runTests = true; -} +}).overrideAttrs (_: { + meta.ci.extraSteps = { + import-docs = (mkImportCheck "tvix/store/docs" ./docs); + }; +}) |