(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]} ) (= scope= flags=0 words=[] bindings=[('UNZIP', {[VarSub UNZIP test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS unzip]}]})]) (= scope= flags=0 words=[] bindings=[('GZIP', {[VarSub GZIP test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS gzip]}]})]) (= scope= flags=0 words=[] bindings=[('GUNZIP', {[VarSub GUNZIP test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS "gzip -d"]}]})]) (= scope= flags=0 words=[] bindings=[('SUBSTFORMAT', {[LIT_OTHER "%"] [LIT_CHARS H] [LIT_OTHER "%"] [LIT_CHARS n]})]) (FunctionDef check_zip [] (List (= scope= flags=0 words=[] bindings=[('zipfile', {[VarSub 1] [LIT_CHARS .zip]})]) (= scope= flags=0 words=[] bindings=[('listfile', {[VarSub 1] [LIT_CHARS .lst]})]) (= scope= flags=0 words=[] bindings=[('dir', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('dir_with_prefix', {[VarSub dir] [LIT_CHARS /] [VarSub 2]})]) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS UNZIP]} {[DQ [LIT_CHARS " extract ZIP archive"]]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\t\t(mkdir "][VarSub dir][LIT_CHARS " && cd "][VarSub dir][LIT_CHARS " && "][VarSub UNZIP][LIT_CHARS " ../"][VarSub zipfile][LIT_CHARS ")\n"][LIT_CHARS "\t"]]} ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS UNZIP]} {[DQ [LIT_CHARS " validate filenames"]]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\t\t(cd "][VarSub dir_with_prefix][LIT_CHARS "a && find .) | sort >"][VarSub listfile][LIT_CHARS " &&\n"][LIT_CHARS "\t\ttest_cmp a.lst "][VarSub listfile][LIT_CHARS "\n"][LIT_CHARS "\t"]]} ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS UNZIP]} {[DQ [LIT_CHARS " validate file contents"]]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\t\tdiff -r a "][VarSub dir_with_prefix][LIT_CHARS "a\n"][LIT_CHARS "\t"]]} ) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ a/a &&\n"> a/substfile1 &&\n"> a/substfile2 &&\n"> a/l1\n"> file_with_long_path) &&\n"> a.lst">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ a/ignored &&\n"> .git/info/attributes">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ treeid &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ b.tar">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ b2.tar">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ b3.tar &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ b3.tar">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ b5.tar &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ b.mtime &&\n"> expected.mtime &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ b.commitid &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ b.lst &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ c.tar">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ c.lst &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >.git/info/attributes &&\n"> f.tar &&\n"> g.tar &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ f/a/substfile1.expected &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ g/prefix/a/substfile1.expected &&\n"> ]} ) (Com {[VarSub UNZIP]} {[LIT_CHARS -v]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub ?]} {[LIT_CHARS -eq]} {[LIT_CHARS 127]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS say]} {[DQ [LIT_CHARS "Skipping ZIP tests, because unzip was not found"]]} ) (ElseTrue) (Com {[LIT_CHARS test_set_prereq]} {[LIT_CHARS UNZIP]} ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ d.zip">]} ) (Com {[LIT_CHARS check_zip]} {[LIT_CHARS d]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ d1.zip">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ e.zip">]} ) (Com {[LIT_CHARS check_zip]} {[LIT_CHARS e]} {[LIT_CHARS prefix/]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ large.zip\n">]} ) (Com {[LIT_CHARS check_zip]} {[LIT_CHARS large]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ large-compressed.zip\n">]} ) (Com {[LIT_CHARS check_zip]} {[LIT_CHARS large-compressed]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ remote.tar &&\n"> remote.tar\n">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ h.tar HEAD &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ config.tar.foo &&\n"> config.tar &&\n"> config.bar &&\n"> config.tar &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ remote.tar.foo &&\n"> remote.bar HEAD &&\n"> ]} ) (If (Com {[VarSub GZIP]} {[LIT_CHARS --version]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (Com {[LIT_CHARS test_set_prereq]} {[LIT_CHARS GZIP]} ) (ElseTrue) (Com {[LIT_CHARS say]} {[DQ [LIT_CHARS "Skipping some tar.gz tests because gzip not found"]]} ) ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GZIP]} {[SQ ]} {[SQ j.tgz\n">]} ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GZIP]} {[SQ ]} {[SQ j1.tar.gz &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GZIP]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GZIP]} {[SQ ]} {[SQ ]} ) (If (Com {[VarSub GUNZIP]} {[LIT_CHARS --version]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (Com {[LIT_CHARS test_set_prereq]} {[LIT_CHARS GUNZIP]} ) (ElseTrue) (Com {[LIT_CHARS say]} {[DQ [LIT_CHARS "Skipping some tar.gz tests because gunzip was not found"]]} ) ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GZIP] [LIT_COMMA ","] [LIT_CHARS GUNZIP]} {[SQ ]} {[SQ j.tar &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GZIP]} {[SQ ]} {[SQ remote.tar.gz &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GZIP]} {[SQ ]} {[SQ remote.tar.gz\n">]} ) (Com {[LIT_CHARS test_done]} ) )