(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: 'forced push to replace commit we do not have'
                  span_id: 6
                )
              )
            }
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:20) (Token id:Id.Lit_Chars val:'\n' span_id:21) 
          (Token
            id: Id.Lit_Chars
            val: '\t>file1 && git add file1 && test_tick &&\n'
            span_id: 22
          ) (Token id:Id.Lit_Chars val:'\tgit commit -m Initial &&\n' span_id:23) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config receive.denyCurrentBranch warn &&\n'
            span_id: 24
          ) (Token id:Id.Lit_Chars val:'\n' span_id:25) 
          (Token id:Id.Lit_Chars val:'\tmkdir another && (\n' span_id:26) (Token id:Id.Lit_Chars val:'\t\tcd another &&\n' span_id:27) 
          (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:28) (Token id:Id.Lit_Chars val:'\t\tgit fetch --update-head-ok .. master:master\n' span_id:29) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:30) (Token id:Id.Lit_Chars val:'\n' span_id:31) 
          (Token
            id: Id.Lit_Chars
            val: '\t>file2 && git add file2 && test_tick &&\n'
            span_id: 32
          ) (Token id:Id.Lit_Chars val:'\tgit commit -m Second\n' span_id:33) 
          (Token id:Id.Lit_Chars val:'\n' span_id:34)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'non forced push should die not segfault' span_id:41))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:45) (Token id:Id.Lit_Chars val:'\n' span_id:46) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:47) (Token id:Id.Lit_Chars val:'\t\tcd another &&\n' span_id:48) 
          (Token id:Id.Lit_Chars val:'\t\tgit push .. master:master\n' span_id:49) (Token id:Id.Lit_Chars val:'\t\ttest $? = 1\n' span_id:50) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:51) (Token id:Id.Lit_Chars val:'\n' span_id:52)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'forced push should succeed' span_id:59))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:63) (Token id:Id.Lit_Chars val:'\n' span_id:64) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:65) (Token id:Id.Lit_Chars val:'\t\tcd another &&\n' span_id:66) 
          (Token id:Id.Lit_Chars val:'\t\tgit push .. +master:master\n' span_id:67) (Token id:Id.Lit_Chars val:'\t)\n' span_id:68) (Token id:Id.Lit_Chars val:'\n' span_id:69)
        )
      }
    )
    (C {(test_done)})
  ]
)