about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tests/nar-access.sh19
1 files changed, 15 insertions, 4 deletions
diff --git a/tests/nar-access.sh b/tests/nar-access.sh
index 5c2d3058ccf7..63f97f36cbf7 100644
--- a/tests/nar-access.sh
+++ b/tests/nar-access.sh
@@ -5,19 +5,30 @@ storePath="$(nix-build nar-access.nix -A a --no-out-link)"
 
 cd "$TEST_ROOT"
 
-echo "dumping path to nar"
+# Dump path to nar.
 narFile="$TEST_ROOT/path.nar"
 nix-store --dump $storePath > $narFile
 
-echo "check that find and ls-nar match"
+# Check that find and ls-nar match.
 ( cd $storePath; find . | sort ) > files.find
 nix ls-nar -R -d $narFile "" | sort > files.ls-nar
 diff -u files.find files.ls-nar
 
-echo "check that file contents of data match"
+# Check that file contents of data match.
 nix cat-nar $narFile /foo/data > data.cat-nar
 diff -u data.cat-nar $storePath/foo/data
 
-echo "check that file contents of baz match"
+# Check that file contents of baz match.
 nix cat-nar $narFile /foo/baz > baz.cat-nar
 diff -u baz.cat-nar $storePath/foo/baz
+
+nix cat-store $storePath/foo/baz > baz.cat-nar
+diff -u baz.cat-nar $storePath/foo/baz
+
+# Test --json.
+[[ $(nix ls-nar --json $narFile /) = '{"type":"directory","entries":{"foo":{},"foo-x":{},"qux":{},"zyx":{}}}' ]]
+[[ $(nix ls-nar --json -R $narFile /foo) = '{"type":"directory","entries":{"bar":{"type":"regular","size":0},"baz":{"type":"regular","size":0},"data":{"type":"regular","size":58}}}' ]]
+[[ $(nix ls-nar --json -R $narFile /foo/bar) = '{"type":"regular","size":0}' ]]
+[[ $(nix ls-store --json $storePath) = '{"type":"directory","entries":{"foo":{},"foo-x":{},"qux":{},"zyx":{}}}' ]]
+[[ $(nix ls-store --json -R $storePath/foo) = '{"type":"directory","entries":{"bar":{"type":"regular","size":0},"baz":{"type":"regular","size":0},"data":{"type":"regular","size":58}}}' ]]
+[[ $(nix ls-store --json -R $storePath/foo/bar) = '{"type":"regular","size":0}' ]]