(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"commit and log output encodings">)} spids: [13] ) ] spids: [13] ) (C {(.)} {(./test-lib.sh)}) (FuncDef name: compare_with body: (BraceGroup children: [ (AndOr children: [ (Pipeline children: [ (C {(git)} {(show)} {(-s)} {($ VSub_Number "$1")}) (SimpleCommand words: [{(sed)} {(-e)} {(SQ <"1,/^$/d">)} {(-e)} {(SQ <"s/^ //">)}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(current)} spids:[56])] ) ] negated: False ) (Case to_match: {(DQ ($ VSub_Number "$3"))} arms: [ (case_arm pat_list: [{(SQ )}] action: [(C {(test_cmp)} {(DQ ($ VSub_Number "$2"))} {(current)})] spids: [-1 73 84 -1] ) (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (AndOr children: [ (SimpleCommand words: [{(iconv)} {(-f)} {(DQ ($ VSub_Number "$3"))} {(-t)} {(UTF-8)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(current.utf8)} spids: [104] ) (Redir op_id: Redir_Less fd: -1 arg_word: {(current)} spids: [107] ) ] ) (AndOr children: [ (SimpleCommand words: [{(iconv)} {(-f)} {(DQ ($ VSub_Number "$3"))} {(-t)} {(UTF-8)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(expect.utf8)} spids: [125] ) (Redir op_id: Redir_Less fd: -1 arg_word: {(DQ ($ VSub_Number "$2"))} spids: [128] ) ] ) (C {(test_cmp)} {(expect.utf8)} {(current.utf8)}) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] spids: [87 89 143 -1] ) ] spids: [62 68 146] ) ] op_id: Op_DAmp ) ] spids: [29] ) spids: [24 28] ) (C {(test_expect_success)} {(setup)} { (SQ <"\n"> <"\t: >F &&\n"> <"\tgit add F &&\n"> <"\tT=$(git write-tree) &&\n"> <"\tC=$(git commit-tree $T <\"$TEST_DIRECTORY\"/t3900/1-UTF-8.txt) &&\n"> <"\tgit update-ref HEAD $C &&\n"> <"\tgit tag C0\n"> ) } ) (C {(test_expect_success)} {(SQ <"no encoding header for base case">)} { (SQ <"\n"> <"\tE=$(git cat-file commit C0 | sed -ne \"s/^encoding //p\") &&\n"> <"\ttest z = \"z$E\"\n"> ) } ) (C {(test_expect_success)} {(SQ <"UTF-16 refused because of NULs">)} { (SQ <"\n"> <"\techo UTF-16 >F &&\n"> <"\ttest_must_fail git commit -a -F \"$TEST_DIRECTORY\"/t3900/UTF-16.txt\n"> ) } ) (C {(test_expect_success)} {(SQ <"UTF-8 invalid characters refused">)} { (SQ <"\n"> <"\ttest_when_finished \"rm -f $HOME/stderr $HOME/invalid\" &&\n"> <"\techo \"UTF-8 characters\" >F &&\n"> <"\tprintf \"Commit message\\n\\nInvalid surrogate:\\355\\240\\200\\n\" \\\n"> <"\t\t>\"$HOME/invalid\" &&\n"> <"\tgit commit -a -F \"$HOME/invalid\" 2>\"$HOME\"/stderr &&\n"> <"\ttest_i18ngrep \"did not conform\" \"$HOME\"/stderr\n"> ) } ) (C {(test_expect_success)} {(SQ <"UTF-8 overlong sequences rejected">)} { (SQ <"\n"> <"\ttest_when_finished \"rm -f $HOME/stderr $HOME/invalid\" &&\n"> <"\trm -f \"$HOME/stderr\" \"$HOME/invalid\" &&\n"> <"\techo \"UTF-8 overlong\" >F &&\n"> <"\tprintf \"\\340\\202\\251ommit message\\n\\nThis is not a space:\\300\\240\\n\" \\\n"> <"\t\t>\"$HOME/invalid\" &&\n"> <"\tgit commit -a -F \"$HOME/invalid\" 2>\"$HOME\"/stderr &&\n"> <"\ttest_i18ngrep \"did not conform\" \"$HOME\"/stderr\n"> ) } ) (C {(test_expect_success)} {(SQ <"UTF-8 non-characters refused">)} { (SQ <"\n"> <"\ttest_when_finished \"rm -f $HOME/stderr $HOME/invalid\" &&\n"> <"\techo \"UTF-8 non-character 1\" >F &&\n"> <"\tprintf \"Commit message\\n\\nNon-character:\\364\\217\\277\\276\\n\" \\\n"> <"\t\t>\"$HOME/invalid\" &&\n"> <"\tgit commit -a -F \"$HOME/invalid\" 2>\"$HOME\"/stderr &&\n"> <"\ttest_i18ngrep \"did not conform\" \"$HOME\"/stderr\n"> ) } ) (C {(test_expect_success)} {(SQ <"UTF-8 non-characters refused">)} { (SQ <"\n"> <"\ttest_when_finished \"rm -f $HOME/stderr $HOME/invalid\" &&\n"> <"\techo \"UTF-8 non-character 2.\" >F &&\n"> <"\tprintf \"Commit message\\n\\nNon-character:\\357\\267\\220\\n\" \\\n"> <"\t\t>\"$HOME/invalid\" &&\n"> <"\tgit commit -a -F \"$HOME/invalid\" 2>\"$HOME\"/stderr &&\n"> <"\ttest_i18ngrep \"did not conform\" \"$HOME\"/stderr\n"> ) } ) (ForEach iter_name: H iter_words: [{(ISO8859-1)} {(eucJP)} {(ISO-2022-JP)}] do_arg_iter: False body: (DoGroup children: [ (C {(test_expect_success)} {(DQ ($ VSub_Name "$H") (" setup"))} { (SQ <"\n"> <"\t\tgit config i18n.commitencoding $H &&\n"> <"\t\tgit checkout -b $H C0 &&\n"> <"\t\techo $H >F &&\n"> <"\t\tgit commit -a -F \"$TEST_DIRECTORY\"/t3900/$H.txt\n"> <"\t"> ) } ) ] spids: [273 292] ) spids: [266 -1] ) (ForEach iter_name: H iter_words: [{(ISO8859-1)} {(eucJP)} {(ISO-2022-JP)}] do_arg_iter: False body: (DoGroup children: [ (C {(test_expect_success)} {(DQ ("check encoding header for ") ($ VSub_Name "$H"))} {(SQ <"\n"> <"\t\tE=$(git cat-file commit ">) ($ VSub_Name "$H") (SQ <" | sed -ne \"s/^encoding //p\") &&\n"> <"\t\ttest \"z$E\" = \"z">) ($ VSub_Name "$H") (SQ <"\"\n"> <"\t">) } ) ] spids: [307 332] ) spids: [300 -1] ) (C {(test_expect_success)} {(SQ <"config to remove customization">)} { (SQ <"\n"> <"\tgit config --unset-all i18n.commitencoding &&\n"> <"\tif Z=$(git config --get-all i18n.commitencoding)\n"> <"\tthen\n"> <"\t\techo Oops, should have failed.\n"> <"\t\tfalse\n"> <"\telse\n"> <"\t\ttest z = \"z$Z\"\n"> <"\tfi &&\n"> <"\tgit config i18n.commitencoding UTF-8\n"> ) } ) (C {(test_expect_success)} {(SQ <"ISO8859-1 should be shown in UTF-8 now">)} {(SQ <"\n"> <"\tcompare_with ISO8859-1 \"$TEST_DIRECTORY\"/t3900/1-UTF-8.txt\n">)} ) (ForEach iter_name: H iter_words: [{(eucJP)} {(ISO-2022-JP)}] do_arg_iter: False body: (DoGroup children: [ (C {(test_expect_success)} {(DQ ($ VSub_Name "$H") (" should be shown in UTF-8 now"))} {(SQ <"\n"> <"\t\tcompare_with ">) ($ VSub_Name "$H") (SQ <" \"$TEST_DIRECTORY\"/t3900/2-UTF-8.txt\n"> <"\t">) } ) ] spids: [377 397] ) spids: [372 -1] ) (C {(test_expect_success)} {(SQ <"config to add customization">)} { (SQ <"\n"> <"\tgit config --unset-all i18n.commitencoding &&\n"> <"\tif Z=$(git config --get-all i18n.commitencoding)\n"> <"\tthen\n"> <"\t\techo Oops, should have failed.\n"> <"\t\tfalse\n"> <"\telse\n"> <"\t\ttest z = \"z$Z\"\n"> <"\tfi\n"> ) } ) (ForEach iter_name: H iter_words: [{(ISO8859-1)} {(eucJP)} {(ISO-2022-JP)}] do_arg_iter: False body: (DoGroup children: [ (C {(test_expect_success)} {(DQ ($ VSub_Name "$H") (" should be shown in itself now"))} {(SQ <"\n"> <"\t\tgit config i18n.commitencoding ">) ($ VSub_Name "$H") (SQ <" &&\n"> <"\t\tcompare_with ">) ($ VSub_Name "$H") (SQ <" \"$TEST_DIRECTORY\"/t3900/">) ($ VSub_Name "$H") (SQ <".txt\n"> <"\t">) } ) ] spids: [431 460] ) spids: [424 -1] ) (C {(test_expect_success)} {(SQ <"config to tweak customization">)} {(SQ <"\n"> <"\tgit config i18n.logoutputencoding UTF-8\n">)} ) (C {(test_expect_success)} {(SQ <"ISO8859-1 should be shown in UTF-8 now">)} {(SQ <"\n"> <"\tcompare_with ISO8859-1 \"$TEST_DIRECTORY\"/t3900/1-UTF-8.txt\n">)} ) (ForEach iter_name: H iter_words: [{(eucJP)} {(ISO-2022-JP)}] do_arg_iter: False body: (DoGroup children: [ (C {(test_expect_success)} {(DQ ($ VSub_Name "$H") (" should be shown in UTF-8 now"))} {(SQ <"\n"> <"\t\tcompare_with ">) ($ VSub_Name "$H") (SQ <" \"$TEST_DIRECTORY\"/t3900/2-UTF-8.txt\n"> <"\t">) } ) ] spids: [497 517] ) spids: [492 -1] ) (ForEach iter_name: J iter_words: [{(eucJP)} {(ISO-2022-JP)}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [(C {(test)} {(DQ ($ VSub_Name "$J"))} {(Lit_Other "=")} {(ISO-2022-JP)})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ICONV) op: Equal rhs: {($ VSub_Name "$J")} spids: [549] ) ] spids: [549] ) ] spids: [-1 546] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ICONV) op:Equal rhs:{(SQ )} spids:[556])] spids: [556] ) ] spids: [553 559] ) (C {(git)} {(config)} {(i18n.logoutputencoding)} {($ VSub_Name "$J")}) (ForEach iter_name: H iter_words: [{(eucJP)} {(ISO-2022-JP)}] do_arg_iter: False body: (DoGroup children: [ (C {(test_expect_success)} {(DQ ($ VSub_Name "$H") (" should be shown in ") ($ VSub_Name "$J") (" now"))} {(SQ <"\n"> <"\t\t\tcompare_with ">) ($ VSub_Name "$H") (SQ <" \"$TEST_DIRECTORY\"/t3900/">) ($ VSub_Name "$J") (SQ <".txt $ICONV\n"> <"\t\t">) } ) ] spids: [582 609] ) spids: [576 -1] ) ] spids: [530 611] ) spids: [525 -1] ) (ForEach iter_name: H iter_words: [{(ISO8859-1)} {(eucJP)} {(ISO-2022-JP)}] do_arg_iter: False body: (DoGroup children: [ (C {(test_expect_success)} {(DQ ("No conversion with ") ($ VSub_Name "$H"))} {(SQ <"\n"> <"\t\tcompare_with \"--encoding=none ">) ($ VSub_Name "$H") (SQ <"\" \"$TEST_DIRECTORY\"/t3900/">) ($ VSub_Name "$H") (SQ <".txt\n"> <"\t">) } ) ] spids: [626 650] ) spids: [619 -1] ) (FuncDef name: test_commit_autosquash_flags body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:H) op: Equal rhs: {($ VSub_Number "$1")} spids: [661] ) ] spids: [661] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:flag) op: Equal rhs: {($ VSub_Number "$2")} spids: [665] ) ] spids: [665] ) (C {(test_expect_success)} {(DQ ("commit --") ($ VSub_Name "$flag") (" with ") ($ VSub_Name "$H") (" encoding"))} { (SQ <"\n"> <"\t\tgit config i18n.commitencoding $H &&\n"> <"\t\tgit checkout -b $H-$flag C0 &&\n"> <"\t\techo $H >>F &&\n"> <"\t\tgit commit -a -F \"$TEST_DIRECTORY\"/t3900/$H.txt &&\n"> <"\t\ttest_tick &&\n"> <"\t\techo intermediate stuff >>G &&\n"> <"\t\tgit add G &&\n"> <"\t\tgit commit -a -m \"intermediate commit\" &&\n"> <"\t\ttest_tick &&\n"> <"\t\techo $H $flag >>F &&\n"> <"\t\tgit commit -a --$flag HEAD~1 &&\n"> <"\t\tE=$(git cat-file commit "> ) ($ VSub_Name "$H") (-) ($ VSub_Name "$flag") (SQ <" |\n"> <"\t\t\tsed -ne \"s/^encoding //p\") &&\n"> <"\t\ttest \"z$E\" = \"z$H\" &&\n"> <"\t\tgit config --unset-all i18n.commitencoding &&\n"> <"\t\tgit rebase --autosquash -i HEAD^^^ &&\n"> <"\t\tgit log --oneline >actual &&\n"> <"\t\ttest_line_count = 3 actual\n"> <"\t"> ) } ) ] spids: [658] ) spids: [653 657] ) (C {(test_commit_autosquash_flags)} {(eucJP)} {(fixup)}) (C {(test_commit_autosquash_flags)} {(ISO-2022-JP)} {(squash)}) (C {(test_done)}) ] )