(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:'pack should notice missing commit objects' 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:'\tfor i in 1 2 3 4 5\n' span_id:21) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:22) 
          (Token id:Id.Lit_Chars val:'\t\techo "$i" >"file$i" &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\t\tgit add "file$i" &&\n' span_id:24) 
          (Token id:Id.Lit_Chars val:'\t\ttest_tick &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "$i" &&\n' span_id:26) 
          (Token id:Id.Lit_Chars val:'\t\tgit tag "tag$i"\n' span_id:27) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:28) 
          (Token
            id: Id.Lit_Chars
            val: '\tobj=$(git rev-parse --verify tag3) &&\n'
            span_id: 29
          ) (Token id:Id.Lit_Chars val:'\tfanout=$(expr "$obj" : "\\(..\\)") &&\n' span_id:30) 
          (Token
            id: Id.Lit_Chars
            val: '\tremainder=$(expr "$obj" : "..\\(.*\\)") &&\n'
            span_id: 31
          ) (Token id:Id.Lit_Chars val:'\trm -f ".git/objects/$fanout/$remainder"\n' span_id:32)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check corruption' span_id:39))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:43) 
          (Token id:Id.Lit_Chars val:'\ttest_must_fail git fsck\n' span_id:44)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list notices corruption (1)' span_id:51))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:55) 
          (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-list HEAD\n' span_id:56)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list notices corruption (2)' span_id:63))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:67) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git rev-list --objects HEAD\n'
            span_id: 68
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'pack-objects notices corruption' span_id:75))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:79) 
          (Token id:Id.Lit_Chars val:'\techo HEAD |\n' span_id:80) (Token id:Id.Lit_Chars val:'\ttest_must_fail git pack-objects --revs pack\n' span_id:81)
        )
      }
    )
    (C {(test_done)})
  ]
)