(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_description spids:[12]) op: Equal rhs: {(SQ <'Various filesystem issues'>)} spids: [12] ) ] spids: [12] ) (C {(.)} {(./test-lib.sh)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:auml spids:[23]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children:[(C {(printf)} {(SQ <'\\303\\244'>)})]) left_token: <Left_CommandSub '$('> spids: [24 30] ) } spids: [23] ) ] spids: [23] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:aumlcdiar spids:[32]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(printf)} {(SQ <'\\141\\314\\210'>)})] ) left_token: <Left_CommandSub '$('> spids: [33 39] ) } spids: [32] ) ] spids: [32] ) (command.If arms: [ (if_arm cond: [(C {(test_have_prereq)} {(CASE_INSENSITIVE_FS)})] action: [ (C {(say)} {(DQ ('will test on a case insensitive filesystem'))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_case spids:[58]) op: Equal rhs: {(test_expect_failure)} spids: [58] ) ] spids: [58] ) ] spids: [16777215 48] ) ] else_action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_case spids:[64]) op: Equal rhs: {(test_expect_success)} spids: [64] ) ] spids: [64] ) ] spids: [61 67] ) (command.If arms: [ (if_arm cond: [(C {(test_have_prereq)} {(UTF8_NFD_TO_NFC)})] action: [ (C {(say)} {(DQ ('will test on a unicode corrupting filesystem'))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_unicode spids:[86]) op: Equal rhs: {(test_expect_failure)} spids: [86] ) ] spids: [86] ) ] spids: [16777215 76] ) ] else_action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_unicode spids:[92]) op: Equal rhs: {(test_expect_success)} spids: [92] ) ] spids: [92] ) ] spids: [89 95] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(test_have_prereq)} {(SYMLINKS)}) (C {(say)} {(DQ ('will test on a filesystem lacking symbolic links'))}) ] ) (command.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: [16777215 118] ) ] 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: [131 147] ) (command.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: [16777215 156] ) ] 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: [172 186] ) (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)}) ] )