(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"Various filesystem issues">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:auml) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(printf)} {(SQ <"\\303\\244">)})]) left_token: <Left_CommandSub "$("> spids: [16 22] ) } spids: [15] ) ] spids: [15] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aumlcdiar) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(printf)} {(SQ <"\\141\\314\\210">)})]) left_token: <Left_CommandSub "$("> spids: [25 31] ) } spids: [24] ) ] spids: [24] ) (If arms: [ (if_arm cond: [(C {(test_have_prereq)} {(CASE_INSENSITIVE_FS)})] action: [ (C {(say)} {(DQ ("will test on a case insensitive filesystem"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_case) op: Equal rhs: {(test_expect_failure)} spids: [50] ) ] spids: [50] ) ] spids: [-1 40] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_case) op: Equal rhs: {(test_expect_success)} spids: [56] ) ] spids: [56] ) ] spids: [53 59] ) (If arms: [ (if_arm cond: [(C {(test_have_prereq)} {(UTF8_NFD_TO_NFC)})] action: [ (C {(say)} {(DQ ("will test on a unicode corrupting filesystem"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_unicode) op: Equal rhs: {(test_expect_failure)} spids: [78] ) ] spids: [78] ) ] spids: [-1 68] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_unicode) op: Equal rhs: {(test_expect_success)} spids: [84] ) ] spids: [84] ) ] spids: [81 87] ) (AndOr children: [ (C {(test_have_prereq)} {(SYMLINKS)}) (C {(say)} {(DQ ("will test on a filesystem lacking symbolic links"))}) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [(C {(test_have_prereq)} {(CASE_INSENSITIVE_FS)})] action: [ (C {(test_expect_success)} {(DQ ("detection of case insensitive filesystem during repo init"))} {(SQ <"\n"> <"\ttest $(git config --bool core.ignorecase) = true\n">)} ) ] spids: [-1 110] ) ] else_action: [ (C {(test_expect_success)} {(DQ ("detection of case insensitive filesystem during repo init"))} { (SQ <"\n"> <"\t{\n"> <"\t\ttest_must_fail git config --bool core.ignorecase >/dev/null ||\n"> <"\t\t\ttest $(git config --bool core.ignorecase) = false\n"> <"\t}\n"> ) } ) ] spids: [123 139] ) (If arms: [ (if_arm cond: [(C {(test_have_prereq)} {(SYMLINKS)})] action: [ (C {(test_expect_success)} {(DQ ("detection of filesystem w/o symlink support during repo init"))} { (SQ <"\n"> <"\t{\n"> <"\t\ttest_must_fail git config --bool core.symlinks ||\n"> <"\t\ttest \"$(git config --bool core.symlinks)\" = true\n"> <"\t}\n"> ) } ) ] spids: [-1 148] ) ] else_action: [ (C {(test_expect_success)} {(DQ ("detection of filesystem w/o symlink support during repo init"))} {(SQ <"\n"> <"\tv=$(git config --bool core.symlinks) &&\n"> <"\ttest \"$v\" = false\n">)} ) ] spids: [164 178] ) (C {(test_expect_success)} {(DQ ("setup case tests"))} { (SQ <"\n"> <"\tgit config core.ignorecase true &&\n"> <"\ttouch camelcase &&\n"> <"\tgit add camelcase &&\n"> <"\tgit commit -m \"initial\" &&\n"> <"\tgit tag initial &&\n"> <"\tgit checkout -b topic &&\n"> <"\tgit mv camelcase tmp &&\n"> <"\tgit mv tmp CamelCase &&\n"> <"\tgit commit -m \"rename\" &&\n"> <"\tgit checkout -f master\n"> ) } ) (C {(test_expect_success)} {(SQ <"rename (case change)">)} {(SQ <"\n"> <"\tgit mv camelcase CamelCase &&\n"> <"\tgit commit -m \"rename\"\n">)} ) (C {(test_expect_success)} {(SQ <"merge (case change)">)} { (SQ <"\n"> <"\trm -f CamelCase &&\n"> <"\trm -f camelcase &&\n"> <"\tgit reset --hard initial &&\n"> <"\tgit merge topic\n"> ) } ) (C {(test_expect_failure)} {(CASE_INSENSITIVE_FS)} {(SQ <"add (with different case)">)} { (SQ <"\n"> <"\tgit reset --hard initial &&\n"> <"\trm camelcase &&\n"> <"\techo 1 >CamelCase &&\n"> <"\tgit add CamelCase &&\n"> <"\tcamel=$(git ls-files | grep -i camelcase) &&\n"> <"\ttest $(echo \"$camel\" | wc -l) = 1 &&\n"> <"\ttest \"z$(git cat-file blob :$camel)\" = z1\n"> ) } ) (C {(test_expect_success)} {(DQ ("setup unicode normalization tests"))} { (SQ <"\n"> <"\ttest_create_repo unicode &&\n"> <"\tcd unicode &&\n"> <"\tgit config core.precomposeunicode false &&\n"> <"\ttouch \"$aumlcdiar\" &&\n"> <"\tgit add \"$aumlcdiar\" &&\n"> <"\tgit commit -m initial &&\n"> <"\tgit tag initial &&\n"> <"\tgit checkout -b topic &&\n"> <"\tgit mv $aumlcdiar tmp &&\n"> <"\tgit mv tmp \"$auml\" &&\n"> <"\tgit commit -m rename &&\n"> <"\tgit checkout -f master\n"> ) } ) (C {($ VSub_Name "$test_unicode")} {(SQ <"rename (silent unicode normalization)">)} {(SQ <"\n"> <"\tgit mv \"$aumlcdiar\" \"$auml\" &&\n"> <"\tgit commit -m rename\n">)} ) (C {($ VSub_Name "$test_unicode")} {(SQ <"merge (silent unicode normalization)">)} {(SQ <"\n"> <"\tgit reset --hard initial &&\n"> <"\tgit merge topic\n">)} ) (C {(test_done)}) ] )