(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (= scope= flags=0 words=[] bindings=[('SUBSTFORMAT', {[LIT_OTHER "%"] [LIT_CHARS H] [LIT_OTHER "%"] [LIT_CHARS n]})]) (Com {[LIT_CHARS test_lazy_prereq]} {[LIT_CHARS UNZIP_SYMLINKS]} {[SQ ]}) (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"]]} {[SQ ]}) (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"]]}) (= scope= flags=0 words=[] bindings=[('dir', {[LIT_CHARS eol_] [VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('dir_with_prefix', {[VarSub dir] [LIT_CHARS /] [VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('extracted', {[VarSub dir_with_prefix] [LIT_CHARS a]})]) (= scope= flags=0 words=[] bindings=[('original', {[LIT_CHARS a]})]) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS UNZIP]} {[DQ [LIT_CHARS " extract ZIP archive with EOL conversion"]]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS UNZIP]} {[DQ [LIT_CHARS " validate that text files are converted"]]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\t\ttest_cmp_bin "][VarSub extracted][LIT_CHARS "/text.cr "][VarSub extracted][LIT_CHARS "/text.crlf &&\n"][LIT_CHARS "\t\ttest_cmp_bin "][VarSub extracted][LIT_CHARS "/text.cr "][VarSub extracted][LIT_CHARS "/text.lf\n"][LIT_CHARS "\t"]]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS UNZIP]} {[DQ [LIT_CHARS " validate that binary files are unchanged"]]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\t\ttest_cmp_bin "][VarSub original][LIT_CHARS "/binary.cr "][VarSub extracted][LIT_CHARS "/binary.cr &&\n"][LIT_CHARS "\t\ttest_cmp_bin "][VarSub original][LIT_CHARS "/binary.crlf "][VarSub extracted][LIT_CHARS "/binary.crlf &&\n"][LIT_CHARS "\t\ttest_cmp_bin "][VarSub original][LIT_CHARS "/binary.lf "][VarSub extracted][LIT_CHARS "/binary.lf\n"][LIT_CHARS "\t"]]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS UNZIP]} {[DQ [LIT_CHARS " validate that diff files are converted"]]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\t\ttest_cmp_bin "][VarSub extracted][LIT_CHARS "/diff.cr "][VarSub extracted][LIT_CHARS "/diff.crlf &&\n"][LIT_CHARS "\t\ttest_cmp_bin "][VarSub extracted][LIT_CHARS "/diff.cr "][VarSub extracted][LIT_CHARS "/diff.lf\n"][LIT_CHARS "\t"]]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS UNZIP]} {[DQ [LIT_CHARS " validate that -diff files are unchanged"]]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\t\ttest_cmp_bin "][VarSub original][LIT_CHARS "/nodiff.cr "][VarSub extracted][LIT_CHARS "/nodiff.cr &&\n"][LIT_CHARS "\t\ttest_cmp_bin "][VarSub original][LIT_CHARS "/nodiff.crlf "][VarSub extracted][LIT_CHARS "/nodiff.crlf &&\n"][LIT_CHARS "\t\ttest_cmp_bin "][VarSub original][LIT_CHARS "/nodiff.lf "][VarSub extracted][LIT_CHARS "/nodiff.lf\n"][LIT_CHARS "\t"]]}) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ a/a &&\n"> a/text.cr &&\n"> a/text.crlf &&\n"> a/text.lf &&\n"> a/nodiff.cr &&\n"> a/nodiff.crlf &&\n"> a/nodiff.lf &&\n"> a/binary.cr &&\n"> a/binary.crlf &&\n"> a/binary.lf &&\n"> a/diff.cr &&\n"> a/diff.crlf &&\n"> a/diff.lf &&\n"> a/substfile1 &&\n"> a/substfile2 &&\n"> file_with_long_path)\n">]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS SYMLINKS] [LIT_COMMA ","] [LIT_CHARS UNZIP_SYMLINKS]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ a.lst\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ a/ignored &&\n"> .git/info/attributes">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >.git/info/attributes &&\n"> >.git/info/attributes &&\n"> >.git/info/attributes &&\n"> a/substfile1\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 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 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_done]}) )