(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: 'Tests to check that "reset" options follow a known table' span_id: 15 ) ) } spids: [13] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'creating initial commits' span_id:28))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:32) (Token id:Id.Lit_Chars val:' test_commit E file1 &&\n' span_id:33) (Token id:Id.Lit_Chars val:' test_commit D file1 &&\n' span_id:34) (Token id:Id.Lit_Chars val:' test_commit C file1\n' span_id:35) ) } ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:39) cond: [(C {(read)} {(W1)} {(I1)} {(H1)} {(T)} {(opt)} {(W2)} {(I2)} {(H2)})] body: (command.DoGroup children: [ (C {(test_expect_success)} { (DQ ('check: ') ($ Id.VSub_DollarName '$W1') (' ') ($ Id.VSub_DollarName '$I1') (' ') ($ Id.VSub_DollarName '$H1') (' ') ($ Id.VSub_DollarName '$T') (' --') ($ Id.VSub_DollarName '$opt') (' ') ($ Id.VSub_DollarName '$W2') (' ') ($ Id.VSub_DollarName '$I2') (' ') ($ Id.VSub_DollarName '$H2') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:84) (Token id: Id.Lit_Chars val: '\tgit reset --hard C &&\n' span_id: 85 ) (Token id:Id.Lit_Chars val:'\tif test "$I1" != "$H1"\n' span_id:86) (Token id:Id.Lit_Chars val:'\tthen\n' span_id:87) (Token id:Id.Lit_Chars val:'\t echo "$I1" >file1 &&\n' span_id:88) (Token id:Id.Lit_Chars val:'\t git add file1\n' span_id:89) (Token id:Id.Lit_Chars val:'\tfi &&\n' span_id:90) (Token id: Id.Lit_Chars val: '\tif test "$W1" != "$I1"\n' span_id: 91 ) (Token id:Id.Lit_Chars val:'\tthen\n' span_id:92) (Token id: Id.Lit_Chars val: '\t echo "$W1" >file1\n' span_id: 93 ) (Token id:Id.Lit_Chars val:'\tfi &&\n' span_id:94) (Token id: Id.Lit_Chars val: '\tif test "$W2" != "XXXXX"\n' span_id: 95 ) (Token id:Id.Lit_Chars val:'\tthen\n' span_id:96) (Token id: Id.Lit_Chars val: '\t git reset --$opt $T &&\n' span_id: 97 ) (Token id:Id.Lit_Chars val:'\t test "$(cat file1)" = "$W2" &&\n' span_id:98) (Token id: Id.Lit_Chars val: '\t git checkout-index -f -- file1 &&\n' span_id: 99 ) (Token id:Id.Lit_Chars val:'\t test "$(cat file1)" = "$I2" &&\n' span_id:100) (Token id: Id.Lit_Chars val: '\t git checkout -f HEAD -- file1 &&\n' span_id: 101 ) (Token id:Id.Lit_Chars val:'\t test "$(cat file1)" = "$H2"\n' span_id:102) (Token id:Id.Lit_Chars val:'\telse\n' span_id:103) (Token id:Id.Lit_Chars val:'\t test_must_fail git reset --$opt $T\n' span_id:104) (Token id:Id.Lit_Chars val:'\tfi\n' span_id:105) (Token id:Id.Lit_Chars val:' ' span_id:106) ) } ) ] ) redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:111) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:112)) (OF) } here_end_span_id: 145 stdin_parts: [ ('A B C D soft A B D\n') ('A B C D mixed A D D\n') ('A B C D hard D D D\n') ('A B C D merge XXXXX\n') ('A B C D keep XXXXX\n') ('A B C C soft A B C\n') ('A B C C mixed A C C\n') ('A B C C hard C C C\n') ('A B C C merge XXXXX\n') ('A B C C keep A C C\n') ('B B C D soft B B D\n') ('B B C D mixed B D D\n') ('B B C D hard D D D\n') ('B B C D merge D D D\n') ('B B C D keep XXXXX\n') ('B B C C soft B B C\n') ('B B C C mixed B C C\n') ('B B C C hard C C C\n') ('B B C C merge C C C\n') ('B B C C keep B C C\n') ('B C C D soft B C D\n') ('B C C D mixed B D D\n') ('B C C D hard D D D\n') ('B C C D merge XXXXX\n') ('B C C D keep XXXXX\n') ('B C C C soft B C C\n') ('B C C C mixed B C C\n') ('B C C C hard C C C\n') ('B C C C merge B C C\n') ('B C C C keep B C C\n') ] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'setting up branches to test with unmerged entries' span_id: 150 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:154) (Token id:Id.Lit_Chars val:' git reset --hard C &&\n' span_id:155) (Token id:Id.Lit_Chars val:' git branch branch1 &&\n' span_id:156) (Token id:Id.Lit_Chars val:' git branch branch2 &&\n' span_id:157) (Token id:Id.Lit_Chars val:' git checkout branch1 &&\n' span_id:158) (Token id:Id.Lit_Chars val:' test_commit B1 file1 &&\n' span_id:159) (Token id:Id.Lit_Chars val:' git checkout branch2 &&\n' span_id:160) (Token id:Id.Lit_Chars val:' test_commit B file1\n' span_id:161) ) } ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:165) cond: [(C {(read)} {(W1)} {(I1)} {(H1)} {(T)} {(opt)} {(W2)} {(I2)} {(H2)})] body: (command.DoGroup children: [ (C {(test_expect_success)} { (DQ ('check: ') ($ Id.VSub_DollarName '$W1') (' ') ($ Id.VSub_DollarName '$I1') (' ') ($ Id.VSub_DollarName '$H1') (' ') ($ Id.VSub_DollarName '$T') (' --') ($ Id.VSub_DollarName '$opt') (' ') ($ Id.VSub_DollarName '$W2') (' ') ($ Id.VSub_DollarName '$I2') (' ') ($ Id.VSub_DollarName '$H2') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:210) (Token id: Id.Lit_Chars val: '\tgit reset --hard B &&\n' span_id: 211 ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge branch1 &&\n' span_id:212) (Token id: Id.Lit_Chars val: '\tcat file1 >X_file1 &&\n' span_id: 213 ) (Token id:Id.Lit_Chars val:'\tif test "$W2" != "XXXXX"\n' span_id:214) (Token id:Id.Lit_Chars val:'\tthen\n' span_id:215) (Token id:Id.Lit_Chars val:'\t git reset --$opt $T &&\n' span_id:216) (Token id: Id.Lit_Chars val: '\t if test "$W2" = "X"\n' span_id: 217 ) (Token id:Id.Lit_Chars val:'\t then\n' span_id:218) (Token id: Id.Lit_Chars val: '\t\ttest_cmp file1 X_file1\n' span_id: 219 ) (Token id:Id.Lit_Chars val:'\t else\n' span_id:220) (Token id: Id.Lit_Chars val: '\t\ttest "$(cat file1)" = "$W2"\n' span_id: 221 ) (Token id:Id.Lit_Chars val:'\t fi &&\n' span_id:222) (Token id: Id.Lit_Chars val: '\t git checkout-index -f -- file1 &&\n' span_id: 223 ) (Token id:Id.Lit_Chars val:'\t test "$(cat file1)" = "$I2" &&\n' span_id:224) (Token id: Id.Lit_Chars val: '\t git checkout -f HEAD -- file1 &&\n' span_id: 225 ) (Token id:Id.Lit_Chars val:'\t test "$(cat file1)" = "$H2"\n' span_id:226) (Token id:Id.Lit_Chars val:'\telse\n' span_id:227) (Token id:Id.Lit_Chars val:'\t test_must_fail git reset --$opt $T\n' span_id:228) (Token id:Id.Lit_Chars val:'\tfi\n' span_id:229) (Token id:Id.Lit_Chars val:' ' span_id:230) ) } ) ] ) redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:235) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:236)) (OF) } here_end_span_id: 249 stdin_parts: [ ('X U B C soft XXXXX\n') ('X U B C mixed X C C\n') ('X U B C hard C C C\n') ('X U B C merge C C C\n') ('X U B C keep XXXXX\n') ('X U B B soft XXXXX\n') ('X U B B mixed X B B\n') ('X U B B hard B B B\n') ('X U B B merge B B B\n') ('X U B B keep XXXXX\n') ] ) ] ) (C {(test_done)}) ] )