(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:'Test reflog interaction with detached HEAD' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShFunction name: reset_state body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(git)} {(checkout)} {(master)}) (C {(cp)} {(saved_reflog)} {(.git/logs/HEAD)}) ] ) ] ) ) (C {(test_expect_success)} {(setup)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:45) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:46) (Token id:Id.Lit_Chars val:'\tgit commit --allow-empty -m initial &&\n' span_id:47) (Token id:Id.Lit_Chars val:'\tgit branch side &&\n' span_id:48) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:49) (Token id: Id.Lit_Chars val: '\tgit commit --allow-empty -m second &&\n' span_id: 50 ) (Token id:Id.Lit_Chars val:'\tcat .git/logs/HEAD >saved_reflog\n' span_id:51) ) } ) (C {(test_expect_success)} {(baseline)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:60) (Token id:Id.Lit_Chars val:'\treset_state &&\n' span_id:61) (Token id:Id.Lit_Chars val:'\tgit rev-parse master master^ >expect &&\n' span_id:62) (Token id:Id.Lit_Chars val:'\tgit log -g --format=%H >actual &&\n' span_id:63) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:64) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'switch to branch' span_id:71))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:75) (Token id:Id.Lit_Chars val:'\treset_state &&\n' span_id:76) (Token id:Id.Lit_Chars val:'\tgit rev-parse side master master^ >expect &&\n' span_id:77) (Token id:Id.Lit_Chars val:'\tgit checkout side &&\n' span_id:78) (Token id:Id.Lit_Chars val:'\tgit log -g --format=%H >actual &&\n' span_id:79) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:80) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'detach to other' span_id:87))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:91) (Token id:Id.Lit_Chars val:'\treset_state &&\n' span_id:92) (Token id:Id.Lit_Chars val:'\tgit rev-parse master side master master^ >expect &&\n' span_id:93) (Token id:Id.Lit_Chars val:'\tgit checkout side &&\n' span_id:94) (Token id:Id.Lit_Chars val:'\tgit checkout master^0 &&\n' span_id:95) (Token id:Id.Lit_Chars val:'\tgit log -g --format=%H >actual &&\n' span_id:96) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:97) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'detach to self' span_id:104))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:108) (Token id:Id.Lit_Chars val:'\treset_state &&\n' span_id:109) (Token id:Id.Lit_Chars val:'\tgit rev-parse master master master^ >expect &&\n' span_id:110) (Token id:Id.Lit_Chars val:'\tgit checkout master^0 &&\n' span_id:111) (Token id:Id.Lit_Chars val:'\tgit log -g --format=%H >actual &&\n' span_id:112) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:113) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'attach to self' span_id:120))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:124) (Token id:Id.Lit_Chars val:'\treset_state &&\n' span_id:125) (Token id:Id.Lit_Chars val:'\tgit rev-parse master master master master^ >expect &&\n' span_id:126) (Token id:Id.Lit_Chars val:'\tgit checkout master^0 &&\n' span_id:127) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:128) (Token id:Id.Lit_Chars val:'\tgit log -g --format=%H >actual &&\n' span_id:129) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:130) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'attach to other' span_id:137))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:141) (Token id:Id.Lit_Chars val:'\treset_state &&\n' span_id:142) (Token id:Id.Lit_Chars val:'\tgit rev-parse side master master master^ >expect &&\n' span_id:143) (Token id:Id.Lit_Chars val:'\tgit checkout master^0 &&\n' span_id:144) (Token id:Id.Lit_Chars val:'\tgit checkout side &&\n' span_id:145) (Token id:Id.Lit_Chars val:'\tgit log -g --format=%H >actual &&\n' span_id:146) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:147) ) } ) (C {(test_done)}) ] )