aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenno Fünfstück <benno.fuenfstueck@gmail.com>2017-05-15 12:23:21 +0200
committerBenno Fünfstück <benno.fuenfstueck@gmail.com>2017-05-15 12:23:21 +0200
commit4412f7c08367b17b3be723ee42df159100d93922 (patch)
tree440b472b559b8c40179ce74ac933e8ceb33f5611
parent75a1d9849d7355c227ce76be17809a71852956b3 (diff)
nar-archive.cc: add tests for the nar index
-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 108e3febd..7d99a0fc7 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 000000000..0e2a7f721
--- /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 000000000..51369346c
--- /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