(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'refspec parsing'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <test_refspec>
      name: test_refspec
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'kind='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'kind='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kind='> name:kind)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'refspec='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'refspec='> name:refspec)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'expect='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'expect='> name:expect)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 3)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <git>
                  more_env: []
                  words: [{<git>} {<config>} {<remote.frotz.url>} {(DQ <.>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <git>
                  more_env: []
                  words: [{<git>} {<config>} {<--remove-section>} {<remote.frotz>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <git>
                  more_env: []
                  words: [{<git>} {<config>} {<remote.frotz.url>} {(DQ <.>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <git>
                  more_env: []
                  words: [
                    {<git>}
                    {<config>}
                    {(DQ <remote.frotz.> ($ Id.VSub_DollarName kind))}
                    {(DQ ($ Id.VSub_DollarName refspec))}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.If
                  if_kw: <Id.KW_If if>
                  arms: [
                    (IfArm
                      keyword: <Id.KW_If if>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {(DQ ($ Id.VSub_DollarName expect))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {<invalid>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                        )
                      then_kw: <Id.KW_Then then>
                      action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'title='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'title='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'title='> name:title)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName kind) <' '> ($ Id.VSub_DollarName refspec))
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'test='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'test='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test='> name:test)
                              op: assign_op.Equal
                              rhs: {(SQ <'git ls-remote frotz'>)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [86 100]
                    )
                  ]
                  else_kw: <Id.KW_Else else>
                  else_action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'title='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'title='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'title='> name:title)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName kind) <' '> ($ Id.VSub_DollarName refspec) 
                                <' (invalid)'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'test='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'test='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test='> name:test)
                          op: assign_op.Equal
                          rhs: {(SQ <'test_must_fail git ls-remote frotz'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  fi_kw: <Id.KW_Fi fi>
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {(DQ ($ Id.VSub_DollarName title))}
                {(DQ ($ Id.VSub_DollarName test))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ )} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <':'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <'::'>)} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <'+:'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <':'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <'::'>)} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <'refs/heads/*:refs/remotes/frotz/*'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <'refs/heads/*:refs/remotes/frotz'>)} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <'refs/heads:refs/remotes/frotz/*'>)} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <'refs/heads/master:refs/remotes/frotz/xyzzy'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {<test_refspec>}
        {<push>}
        {(SQ <'refs/heads/master::refs/remotes/frotz/xyzzy'>)}
        {<invalid>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {<test_refspec>}
        {<push>}
        {(SQ <'refs/heads/maste :refs/remotes/frotz/xyzzy'>)}
        {<invalid>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <'refs/heads/*:refs/remotes/frotz/*'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <'refs/heads/*:refs/remotes/frotz'>)} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <'refs/heads:refs/remotes/frotz/*'>)} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <'refs/heads/master:refs/remotes/frotz/xyzzy'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [
        {<test_refspec>}
        {<fetch>}
        {(SQ <'refs/heads/master::refs/remotes/frotz/xyzzy'>)}
        {<invalid>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [
        {<test_refspec>}
        {<fetch>}
        {(SQ <'refs/heads/maste :refs/remotes/frotz/xyzzy'>)}
        {<invalid>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <'master~1:refs/remotes/frotz/backup'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <'master~1:refs/remotes/frotz/backup'>)} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <'HEAD~4:refs/remotes/frotz/new'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <'HEAD~4:refs/remotes/frotz/new'>)} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <HEAD>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <HEAD>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <'refs/heads/ nitfol'>)} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <'refs/heads/ nitfol'>)} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <'HEAD:'>)} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <'HEAD:'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <'refs/heads/ nitfol:'>)} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <'refs/heads/ nitfol:'>)} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <':refs/remotes/frotz/deleteme'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <':refs/remotes/frotz/HEAD-to-me'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <':refs/remotes/frotz/delete me'>)} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <':refs/remotes/frotz/HEAD to me'>)} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <'refs/heads/*/for-linus:refs/remotes/mine/*-blah'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <'refs/heads/*/for-linus:refs/remotes/mine/*-blah'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <'refs/heads*/for-linus:refs/remotes/mine/*'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <'refs/heads*/for-linus:refs/remotes/mine/*'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [
        {<test_refspec>}
        {<fetch>}
        {(SQ <'refs/heads/*/*/for-linus:refs/remotes/mine/*'>)}
        {<invalid>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [
        {<test_refspec>}
        {<push>}
        {(SQ <'refs/heads/*/*/for-linus:refs/remotes/mine/*'>)}
        {<invalid>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [
        {<test_refspec>}
        {<fetch>}
        {(SQ <'refs/heads/*g*/for-linus:refs/remotes/mine/*'>)}
        {<invalid>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [
        {<test_refspec>}
        {<push>}
        {(SQ <'refs/heads/*g*/for-linus:refs/remotes/mine/*'>)}
        {<invalid>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(SQ <'refs/heads/*/for-linus:refs/remotes/mine/*'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<push>} {(SQ <'refs/heads/*/for-linus:refs/remotes/mine/*'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'good='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'good='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'good='> name:good)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <printf>
                    more_env: []
                    words: [{<printf>} {(SQ <'\\303\\204'>)}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(DQ <'refs/heads/'> (${ Id.VSub_Name good))}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'bad='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'bad='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bad='> name:bad)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <printf>
                    more_env: []
                    words: [{<printf>} {(SQ <'\\011tab'>)}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_refspec>
      more_env: []
      words: [{<test_refspec>} {<fetch>} {(DQ <'refs/heads/'> (${ Id.VSub_Name bad))} {<invalid>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)