From 83d5b32803e5b828967a27b1ea93c5728d3a4d0a Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 5 Sep 2024 16:41:15 +0200 Subject: [PATCH] Add test case for NARs with duplicate directory entries This test was made by @puckipedia. --- tests/functional/duplicate.nar | Bin 0 -> 1400 bytes tests/functional/local.mk | 2 +- tests/functional/{case-hack.sh => nars.sh} | 9 +++++---- 3 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 tests/functional/duplicate.nar rename tests/functional/{case-hack.sh => nars.sh} (79%) diff --git a/tests/functional/duplicate.nar b/tests/functional/duplicate.nar new file mode 100644 index 0000000000000000000000000000000000000000..1d0993ed4cab41a6d45907ac0c17026afd5471a2 GIT binary patch literal 1400 zcmd;OfPlQr3f;t_keEJ{r-$uFve z@>!vDYF-Ig43{~1iMe2NVDgDjeK33S@>5Xcak+yXs;{^*HzzYMn}H3=FG(y)Pc1?C zLmw&*vriKTpWg1LRyZ<4{Zmw$2WF8Pj?{7oAJ}#VhUC(sqSU++-QvpPlGI!VhJkVq z6VyG$pbGl_9kvHMz7TF)0U} zYoUS+3=AAlW^#UBNorn6u{M;itf-%qnWtZz!Ihevk*}bxm6utaJ9fb1jP?HA$OaFh_ literal 0 HcmV?d00001 diff --git a/tests/functional/local.mk b/tests/functional/local.mk index 8b4945cac..f61823765 100644 --- a/tests/functional/local.mk +++ b/tests/functional/local.mk @@ -90,7 +90,7 @@ nix_tests = \ derivation-advanced-attributes.sh \ import-derivation.sh \ nix_path.sh \ - case-hack.sh \ + nars.sh \ placeholders.sh \ ssh-relay.sh \ build.sh \ diff --git a/tests/functional/case-hack.sh b/tests/functional/nars.sh similarity index 79% rename from tests/functional/case-hack.sh rename to tests/functional/nars.sh index feddc6583..c58d12cd5 100755 --- a/tests/functional/case-hack.sh +++ b/tests/functional/nars.sh @@ -6,13 +6,14 @@ TODO_NixOS clearStore -rm -rf "$TEST_ROOT/case" - -opts=("--option" "use-case-hack" "true") +# Check that NARs with duplicate directory entries are rejected. +rm -rf "$TEST_ROOT/out" +expectStderr 1 nix-store --restore "$TEST_ROOT/out" < duplicate.nar | grepQuiet "NAR directory is not sorted" # Check whether restoring and dumping a NAR that contains case # collisions is round-tripping, even on a case-insensitive system. - +rm -rf "$TEST_ROOT/case" +opts=("--option" "use-case-hack" "true") nix-store "${opts[@]}" --restore "$TEST_ROOT/case" < case.nar nix-store "${opts[@]}" --dump "$TEST_ROOT/case" > "$TEST_ROOT/case.nar" cmp case.nar "$TEST_ROOT/case.nar"