nar-archive.cc: add tests for the nar index

This commit is contained in:
Benno Fünfstück 2017-05-15 12:23:21 +02:00
parent 75a1d9849d
commit 4412f7c083
3 changed files with 48 additions and 1 deletions

View file

@ -13,7 +13,8 @@ nix_tests = \
check-reqs.sh pass-as-file.sh tarball.sh restricted.sh \ check-reqs.sh pass-as-file.sh tarball.sh restricted.sh \
placeholders.sh nix-shell.sh \ placeholders.sh nix-shell.sh \
linux-sandbox.sh \ linux-sandbox.sh \
build-remote.sh build-remote.sh \
nar-index.sh
# parallel.sh # parallel.sh
install-tests += $(foreach x, $(nix_tests), tests/$(x)) install-tests += $(foreach x, $(nix_tests), tests/$(x))

23
tests/nar-index.nix Normal file
View file

@ -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
'';
};
}

23
tests/nar-index.sh Normal file
View file

@ -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