(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 <branch>@{push} syntax' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShFunction name: resolve body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [{(echo)} {(DQ ($ Id.VSub_Number '$2'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:28) fd: -1 arg_word: {(expect)} ) ] ) (command.Simple words: [{(git)} {(rev-parse)} {(--symbolic-full-name)} {(DQ ($ Id.VSub_Number '$1'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:44) fd: -1 arg_word: {(actual)} ) ] ) (C {(test_cmp)} {(expect)} {(actual)}) ] ) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:62))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:66) (Token id:Id.Lit_Chars val:'\tgit init --bare parent.git &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\tgit init --bare other.git &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\tgit remote add origin parent.git &&\n' span_id:69) (Token id:Id.Lit_Chars val:'\tgit remote add other other.git &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\ttest_commit base &&\n' span_id:71) (Token id:Id.Lit_Chars val:'\tgit push origin HEAD &&\n' span_id:72) (Token id: Id.Lit_Chars val: '\tgit branch --set-upstream-to=origin/master master &&\n' span_id: 73 ) (Token id:Id.Lit_Chars val:'\tgit branch --track topic origin/master &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\tgit push origin topic &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\tgit push other topic\n' span_id:76) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'@{push} with default=nothing' span_id:83))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:87) (Token id:Id.Lit_Chars val:'\ttest_config push.default nothing &&\n' span_id:88) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse master@{push}\n' span_id:89) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'@{push} with default=simple' span_id:96))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:100) (Token id:Id.Lit_Chars val:'\ttest_config push.default simple &&\n' span_id:101) (Token id:Id.Lit_Chars val:'\tresolve master@{push} refs/remotes/origin/master\n' span_id:102) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'triangular @{push} fails with default=simple' span_id:109))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:113) (Token id:Id.Lit_Chars val:'\ttest_config push.default simple &&\n' span_id:114) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse topic@{push}\n' span_id:115) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'@{push} with default=current' span_id:122))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:126) (Token id:Id.Lit_Chars val:'\ttest_config push.default current &&\n' span_id:127) (Token id:Id.Lit_Chars val:'\tresolve topic@{push} refs/remotes/origin/topic\n' span_id:128) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'@{push} with default=matching' span_id:135))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:139) (Token id: Id.Lit_Chars val: '\ttest_config push.default matching &&\n' span_id: 140 ) (Token id:Id.Lit_Chars val:'\tresolve topic@{push} refs/remotes/origin/topic\n' span_id:141) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'@{push} with pushremote defined' span_id:148))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:152) (Token id:Id.Lit_Chars val:'\ttest_config push.default current &&\n' span_id:153) (Token id:Id.Lit_Chars val:'\ttest_config branch.topic.pushremote other &&\n' span_id:154) (Token id: Id.Lit_Chars val: '\tresolve topic@{push} refs/remotes/other/topic\n' span_id: 155 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'@{push} with push refspecs' span_id:162))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:166) (Token id:Id.Lit_Chars val:'\ttest_config push.default nothing &&\n' span_id:167) (Token id: Id.Lit_Chars val: '\ttest_config remote.origin.push refs/heads/*:refs/heads/magic/* &&\n' span_id: 168 ) (Token id:Id.Lit_Chars val:'\tgit push &&\n' span_id:169) (Token id: Id.Lit_Chars val: '\tresolve topic@{push} refs/remotes/origin/magic/topic\n' span_id: 170 ) ) } ) (C {(test_done)}) ] )