about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorBenno Fünfstück <benno.fuenfstueck@gmail.com>2017-05-15T10·23+0200
committerBenno Fünfstück <benno.fuenfstueck@gmail.com>2017-05-15T10·23+0200
commit4412f7c08367b17b3be723ee42df159100d93922 (patch)
tree440b472b559b8c40179ce74ac933e8ceb33f5611 /tests
parent75a1d9849d7355c227ce76be17809a71852956b3 (diff)
nar-archive.cc: add tests for the nar index
Diffstat (limited to 'tests')
-rw-r--r--tests/local.mk3
-rw-r--r--tests/nar-index.nix23
-rw-r--r--tests/nar-index.sh23
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