(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'git blame' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROG) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'git blame -c' span_id:16))} spids: [14] ) ] ) (C {(.)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) (/annotate-tests.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'blame untracked file in empty repo' span_id:30))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:34) (Token id:Id.Lit_Chars val:'\t>untracked &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\ttest_must_fail git blame untracked\n' span_id:36) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROG) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'git blame -c -e' span_id:42))} spids: [40] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'blame --show-email' span_id:48))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:52) (Token id:Id.Lit_Chars val:'\tcheck_count \\\n' span_id:53) (Token id:Id.Lit_Chars val:'\t\t"<A@test.git>" 1 \\\n' span_id:54) (Token id:Id.Lit_Chars val:'\t\t"<B@test.git>" 1 \\\n' span_id:55) (Token id:Id.Lit_Chars val:'\t\t"<B1@test.git>" 1 \\\n' span_id:56) (Token id:Id.Lit_Chars val:'\t\t"<B2@test.git>" 1 \\\n' span_id:57) (Token id:Id.Lit_Chars val:'\t\t"<author@example.com>" 1 \\\n' span_id:58) (Token id:Id.Lit_Chars val:'\t\t"<C@test.git>" 1 \\\n' span_id:59) (Token id:Id.Lit_Chars val:'\t\t"<D@test.git>" 1 \\\n' span_id:60) (Token id:Id.Lit_Chars val:'\t\t"<E at test dot git>" 1\n' span_id:61) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup showEmail tests' span_id:68))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:72) (Token id:Id.Lit_Chars val:'\techo "bin: test number 1" >one &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\tgit add one &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\tGIT_AUTHOR_NAME=name1 \\\n' span_id:75) (Token id:Id.Lit_Chars val:'\tGIT_AUTHOR_EMAIL=email1@test.git \\\n' span_id:76) (Token id: Id.Lit_Chars val: '\tgit commit -m First --date="2010-01-01 01:00:00" &&\n' span_id: 77 ) (Token id:Id.Lit_Chars val:'\tcat >expected_n <<-\\EOF &&\n' span_id:78) (Token id: Id.Lit_Chars val: '\t(name1 2010-01-01 01:00:00 +0000 1) bin: test number 1\n' span_id: 79 ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:80) (Token id:Id.Lit_Chars val:'\tcat >expected_e <<-\\EOF\n' span_id:81) (Token id: Id.Lit_Chars val: '\t(<email1@test.git> 2010-01-01 01:00:00 +0000 1) bin: test number 1\n' span_id: 82 ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:83) ) } ) (command.ShFunction name: find_blame body: (command.BraceGroup children: [(C {(sed)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'s/^[^(]*//' span_id:100))})] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'blame with no options and no config' span_id:109))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:113) (Token id:Id.Lit_Chars val:'\tgit blame one >blame &&\n' span_id:114) (Token id:Id.Lit_Chars val:'\tfind_blame <blame >result &&\n' span_id:115) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_n result\n' span_id:116) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'blame with showemail options' span_id:123))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:127) (Token id: Id.Lit_Chars val: '\tgit blame --show-email one >blame1 &&\n' span_id: 128 ) (Token id:Id.Lit_Chars val:'\tfind_blame <blame1 >result &&\n' span_id:129) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_e result &&\n' span_id:130) (Token id:Id.Lit_Chars val:'\tgit blame -e one >blame2 &&\n' span_id:131) (Token id:Id.Lit_Chars val:'\tfind_blame <blame2 >result &&\n' span_id:132) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_e result &&\n' span_id:133) (Token id: Id.Lit_Chars val: '\tgit blame --no-show-email one >blame3 &&\n' span_id: 134 ) (Token id:Id.Lit_Chars val:'\tfind_blame <blame3 >result &&\n' span_id:135) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_n result\n' span_id:136) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'blame with showEmail config false' span_id:143))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:147) (Token id:Id.Lit_Chars val:'\tgit config blame.showEmail false &&\n' span_id:148) (Token id:Id.Lit_Chars val:'\tgit blame one >blame1 &&\n' span_id:149) (Token id:Id.Lit_Chars val:'\tfind_blame <blame1 >result &&\n' span_id:150) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_n result &&\n' span_id:151) (Token id: Id.Lit_Chars val: '\tgit blame --show-email one >blame2 &&\n' span_id: 152 ) (Token id:Id.Lit_Chars val:'\tfind_blame <blame2 >result &&\n' span_id:153) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_e result &&\n' span_id:154) (Token id:Id.Lit_Chars val:'\tgit blame -e one >blame3 &&\n' span_id:155) (Token id:Id.Lit_Chars val:'\tfind_blame <blame3 >result &&\n' span_id:156) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_e result &&\n' span_id:157) (Token id: Id.Lit_Chars val: '\tgit blame --no-show-email one >blame4 &&\n' span_id: 158 ) (Token id:Id.Lit_Chars val:'\tfind_blame <blame4 >result &&\n' span_id:159) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_n result\n' span_id:160) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'blame with showEmail config true' span_id:167))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:171) (Token id:Id.Lit_Chars val:'\tgit config blame.showEmail true &&\n' span_id:172) (Token id:Id.Lit_Chars val:'\tgit blame one >blame1 &&\n' span_id:173) (Token id:Id.Lit_Chars val:'\tfind_blame <blame1 >result &&\n' span_id:174) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_e result &&\n' span_id:175) (Token id: Id.Lit_Chars val: '\tgit blame --no-show-email one >blame2 &&\n' span_id: 176 ) (Token id:Id.Lit_Chars val:'\tfind_blame <blame2 >result &&\n' span_id:177) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_n result\n' span_id:178) ) } ) (C {(test_done)}) ] )