(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:'for-each-ref errors for broken refs' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ZEROS)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$_z40')}
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MISSING)
          op: assign_op.Equal
          rhs: {(abababababababababababababababababababab)}
          spids: [18]
        )
      ]
    )
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:27) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit commit --allow-empty -m "Initial" &&\n'
            span_id: 28
          ) (Token id:Id.Lit_Chars val:'\tgit tag testtag &&\n' span_id:29) 
          (Token id:Id.Lit_Chars val:'\tgit for-each-ref >full-list &&\n' span_id:30) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit for-each-ref --format="%(objectname) %(refname)" >brief-list\n'
            span_id: 31
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'Broken refs are reported correctly' span_id:38))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:42) 
          (Token id:Id.Lit_Chars val:'\tr=refs/heads/bogus &&\n' span_id:43) (Token id:Id.Lit_Chars val:'\t: >.git/$r &&\n' span_id:44) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_when_finished "rm -f .git/$r" &&\n'
            span_id: 45
          ) (Token id:Id.Lit_Chars val:'\techo "warning: ignoring broken ref $r" >broken-err &&\n' span_id:46) 
          (Token id:Id.Lit_Chars val:'\tgit for-each-ref >out 2>err &&\n' span_id:47) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp full-list out &&\n' span_id:48) 
          (Token id:Id.Lit_Chars val:'\ttest_i18ncmp broken-err err\n' span_id:49)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'NULL_SHA1 refs are reported correctly' span_id:56))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:60) 
          (Token id:Id.Lit_Chars val:'\tr=refs/heads/zeros &&\n' span_id:61) (Token id:Id.Lit_Chars val:'\techo $ZEROS >.git/$r &&\n' span_id:62) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_when_finished "rm -f .git/$r" &&\n'
            span_id: 63
          ) (Token id:Id.Lit_Chars val:'\techo "warning: ignoring broken ref $r" >zeros-err &&\n' span_id:64) 
          (Token id:Id.Lit_Chars val:'\tgit for-each-ref >out 2>err &&\n' span_id:65) (Token id:Id.Lit_Chars val:'\ttest_cmp full-list out &&\n' span_id:66) 
          (Token id:Id.Lit_Chars val:'\ttest_i18ncmp zeros-err err &&\n' span_id:67) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit for-each-ref --format="%(objectname) %(refname)" >brief-out 2>brief-err &&\n'
            span_id: 68
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp brief-list brief-out &&\n' span_id:69) 
          (Token id:Id.Lit_Chars val:'\ttest_i18ncmp zeros-err brief-err\n' span_id:70)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'Missing objects are reported correctly' span_id:77))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:81) 
          (Token id:Id.Lit_Chars val:'\tr=refs/heads/missing &&\n' span_id:82) (Token id:Id.Lit_Chars val:'\techo $MISSING >.git/$r &&\n' span_id:83) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_when_finished "rm -f .git/$r" &&\n'
            span_id: 84
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "fatal: missing object $MISSING for $r" >missing-err &&\n'
            span_id: 85
          ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git for-each-ref 2>err &&\n' span_id:86) 
          (Token id:Id.Lit_Chars val:'\ttest_i18ncmp missing-err err &&\n' span_id:87) (Token id:Id.Lit_Chars val:'\t(\n' span_id:88) 
          (Token id:Id.Lit_Chars val:'\t\tcat brief-list &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\t\techo "$MISSING $r"\n' span_id:90) 
          (Token
            id: Id.Lit_Chars
            val: '\t) | sort -k 2 >missing-brief-expected &&\n'
            span_id: 91
          ) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit for-each-ref --format="%(objectname) %(refname)" >brief-out 2>brief-err &&\n'
            span_id: 92
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp missing-brief-expected brief-out &&\n' span_id:93) 
          (Token id:Id.Lit_Chars val:'\ttest_must_be_empty brief-err\n' span_id:94)
        )
      }
    )
    (C {(test_done)})
  ]
)