diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/local.mk | 3 | ||||
-rw-r--r-- | tests/nar-index.nix | 23 | ||||
-rw-r--r-- | tests/nar-index.sh | 23 |
3 files changed, 48 insertions, 1 deletions
diff --git a/tests/local.mk b/tests/local.mk index 108e3febdb0c..7d99a0fc7675 100644 --- a/tests/local.mk +++ b/tests/local.mk @@ -13,7 +13,8 @@ nix_tests = \ check-reqs.sh pass-as-file.sh tarball.sh restricted.sh \ placeholders.sh nix-shell.sh \ linux-sandbox.sh \ - build-remote.sh + build-remote.sh \ + nar-index.sh # parallel.sh install-tests += $(foreach x, $(nix_tests), tests/$(x)) diff --git a/tests/nar-index.nix b/tests/nar-index.nix new file mode 100644 index 000000000000..0e2a7f721135 --- /dev/null +++ b/tests/nar-index.nix @@ -0,0 +1,23 @@ +with import ./config.nix; + +rec { + a = mkDerivation { + name = "nar-index-a"; + builder = builtins.toFile "builder.sh" + '' + mkdir $out + mkdir $out/foo + touch $out/foo-x + touch $out/foo/bar + touch $out/foo/baz + touch $out/qux + mkdir $out/zyx + + cat >$out/foo/data <<EOF + lasjdöaxnasd +asdom 12398 +ä"§Æẞ¢«»”alsd +EOF + ''; + }; +} \ No newline at end of file diff --git a/tests/nar-index.sh b/tests/nar-index.sh new file mode 100644 index 000000000000..51369346c88a --- /dev/null +++ b/tests/nar-index.sh @@ -0,0 +1,23 @@ +source common.sh + +echo "building test path" +storePath="$(nix-build nar-index.nix -A a --no-out-link)" + +cd "$TEST_ROOT" + +echo "dumping path to nar" +narFile="$TEST_ROOT/path.nar" +nix-store --dump $storePath > $narFile + +echo "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" +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" +nix cat-nar $narFile /foo/baz > baz.cat-nar +diff -u baz.cat-nar $storePath/foo/baz \ No newline at end of file |