(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 git fast-import unpack limit' span_id:5))}
          spids: [3]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'create loose objects on import' span_id:16))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:20) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:21) (Token id:Id.Lit_Chars val:'\tcat >input <<-INPUT_END &&\n' span_id:22) 
          (Token id:Id.Lit_Chars val:'\tcommit refs/heads/master\n' span_id:23) 
          (Token
            id: Id.Lit_Chars
            val: '\tcommitter $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE\n'
            span_id: 24
          ) (Token id:Id.Lit_Chars val:'\tdata <<COMMIT\n' span_id:25) 
          (Token id:Id.Lit_Chars val:'\tinitial\n' span_id:26) (Token id:Id.Lit_Chars val:'\tCOMMIT\n' span_id:27) (Token id:Id.Lit_Chars val:'\n' span_id:28) 
          (Token id:Id.Lit_Chars val:'\tdone\n' span_id:29) (Token id:Id.Lit_Chars val:'\tINPUT_END\n' span_id:30) (Token id:Id.Lit_Chars val:'\n' span_id:31) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit -c fastimport.unpackLimit=2 fast-import --done <input &&\n'
            span_id: 32
          ) (Token id:Id.Lit_Chars val:'\tgit fsck --no-progress &&\n' span_id:33) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(find .git/objects/?? -type f | wc -l) -eq 2 &&\n'
            span_id: 34
          ) (Token id:Id.Lit_Chars val:'\ttest $(find .git/objects/pack -type f | wc -l) -eq 0\n' span_id:35)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'bigger packs are preserved' span_id:42))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:46) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:47) (Token id:Id.Lit_Chars val:'\tcat >input <<-INPUT_END &&\n' span_id:48) 
          (Token id:Id.Lit_Chars val:'\tcommit refs/heads/master\n' span_id:49) 
          (Token
            id: Id.Lit_Chars
            val: '\tcommitter $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE\n'
            span_id: 50
          ) (Token id:Id.Lit_Chars val:'\tdata <<COMMIT\n' span_id:51) 
          (Token id:Id.Lit_Chars val:'\tincremental should create a pack\n' span_id:52) (Token id:Id.Lit_Chars val:'\tCOMMIT\n' span_id:53) 
          (Token id:Id.Lit_Chars val:'\tfrom refs/heads/master^0\n' span_id:54) (Token id:Id.Lit_Chars val:'\n' span_id:55) 
          (Token id:Id.Lit_Chars val:'\tcommit refs/heads/branch\n' span_id:56) 
          (Token
            id: Id.Lit_Chars
            val: '\tcommitter $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE\n'
            span_id: 57
          ) (Token id:Id.Lit_Chars val:'\tdata <<COMMIT\n' span_id:58) 
          (Token id:Id.Lit_Chars val:'\tbranch\n' span_id:59) (Token id:Id.Lit_Chars val:'\tCOMMIT\n' span_id:60) (Token id:Id.Lit_Chars val:'\n' span_id:61) 
          (Token id:Id.Lit_Chars val:'\tdone\n' span_id:62) (Token id:Id.Lit_Chars val:'\tINPUT_END\n' span_id:63) (Token id:Id.Lit_Chars val:'\n' span_id:64) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit -c fastimport.unpackLimit=2 fast-import --done <input &&\n'
            span_id: 65
          ) (Token id:Id.Lit_Chars val:'\tgit fsck --no-progress &&\n' span_id:66) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(find .git/objects/?? -type f | wc -l) -eq 2 &&\n'
            span_id: 67
          ) (Token id:Id.Lit_Chars val:'\ttest $(find .git/objects/pack -type f | wc -l) -eq 2\n' span_id:68)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'lookups after checkpoint works' span_id:75))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:79) 
          (Token
            id: Id.Lit_Chars
            val: '\thello_id=$(echo hello | git hash-object --stdin -t blob) &&\n'
            span_id: 80
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\tid="$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE" &&\n'
            span_id: 81
          ) (Token id:Id.Lit_Chars val:'\tbefore=$(git rev-parse refs/heads/master^0) &&\n' span_id:82) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:83) (Token id:Id.Lit_Chars val:'\t\tcat <<-INPUT_END &&\n' span_id:84) 
          (Token id:Id.Lit_Chars val:'\t\tblob\n' span_id:85) (Token id:Id.Lit_Chars val:'\t\tmark :1\n' span_id:86) 
          (Token id:Id.Lit_Chars val:'\t\tdata 6\n' span_id:87) (Token id:Id.Lit_Chars val:'\t\thello\n' span_id:88) (Token id:Id.Lit_Chars val:'\n' span_id:89) 
          (Token id:Id.Lit_Chars val:'\t\tcommit refs/heads/master\n' span_id:90) (Token id:Id.Lit_Chars val:'\t\tmark :2\n' span_id:91) 
          (Token id:Id.Lit_Chars val:'\t\tcommitter $id\n' span_id:92) (Token id:Id.Lit_Chars val:'\t\tdata <<COMMIT\n' span_id:93) 
          (Token id:Id.Lit_Chars val:'\t\tcheckpoint after this\n' span_id:94) (Token id:Id.Lit_Chars val:'\t\tCOMMIT\n' span_id:95) 
          (Token id:Id.Lit_Chars val:'\t\tfrom refs/heads/master^0\n' span_id:96) (Token id:Id.Lit_Chars val:'\t\tM 100644 :1 hello\n' span_id:97) 
          (Token id:Id.Lit_Chars val:'\n' span_id:98) (Token id:Id.Lit_Chars val:'\t\t# pre-checkpoint\n' span_id:99) 
          (Token id:Id.Lit_Chars val:'\t\tcat-blob :1\n' span_id:100) (Token id:Id.Lit_Chars val:'\t\tcat-blob $hello_id\n' span_id:101) 
          (Token id:Id.Lit_Chars val:'\t\tcheckpoint\n' span_id:102) (Token id:Id.Lit_Chars val:'\t\t# post-checkpoint\n' span_id:103) 
          (Token id:Id.Lit_Chars val:'\t\tcat-blob :1\n' span_id:104) (Token id:Id.Lit_Chars val:'\t\tcat-blob $hello_id\n' span_id:105) 
          (Token id:Id.Lit_Chars val:'\t\tINPUT_END\n' span_id:106) (Token id:Id.Lit_Chars val:'\n' span_id:107) (Token id:Id.Lit_Chars val:'\t\tn=0 &&\n' span_id:108) 
          (Token id:Id.Lit_Chars val:'\t\tfrom=$before &&\n' span_id:109) (Token id:Id.Lit_Chars val:'\t\twhile test x"$from" = x"$before"\n' span_id:110) 
          (Token id:Id.Lit_Chars val:'\t\tdo\n' span_id:111) (Token id:Id.Lit_Chars val:'\t\t\tif test $n -gt 30\n' span_id:112) 
          (Token id:Id.Lit_Chars val:'\t\t\tthen\n' span_id:113) (Token id:Id.Lit_Chars val:'\t\t\t\techo >&2 "checkpoint did not update branch"\n' span_id:114) 
          (Token id:Id.Lit_Chars val:'\t\t\t\texit 1\n' span_id:115) (Token id:Id.Lit_Chars val:'\t\t\telse\n' span_id:116) 
          (Token id:Id.Lit_Chars val:'\t\t\t\tn=$(($n + 1))\n' span_id:117) (Token id:Id.Lit_Chars val:'\t\t\tfi &&\n' span_id:118) 
          (Token id:Id.Lit_Chars val:'\t\t\tsleep 1 &&\n' span_id:119) (Token id:Id.Lit_Chars val:'\t\t\tfrom=$(git rev-parse refs/heads/master^0)\n' span_id:120) 
          (Token id:Id.Lit_Chars val:'\t\tdone &&\n' span_id:121) (Token id:Id.Lit_Chars val:'\t\tcat <<-INPUT_END &&\n' span_id:122) 
          (Token id:Id.Lit_Chars val:'\t\tcommit refs/heads/master\n' span_id:123) (Token id:Id.Lit_Chars val:'\t\tcommitter $id\n' span_id:124) 
          (Token id:Id.Lit_Chars val:'\t\tdata <<COMMIT\n' span_id:125) (Token id:Id.Lit_Chars val:'\t\tmake sure from "unpacked sha1 reference" works, too\n' span_id:126) 
          (Token id:Id.Lit_Chars val:'\t\tCOMMIT\n' span_id:127) (Token id:Id.Lit_Chars val:'\t\tfrom $from\n' span_id:128) 
          (Token id:Id.Lit_Chars val:'\t\tINPUT_END\n' span_id:129) (Token id:Id.Lit_Chars val:'\t\techo done\n' span_id:130) 
          (Token
            id: Id.Lit_Chars
            val: '\t) | git -c fastimport.unpackLimit=100 fast-import --done &&\n'
            span_id: 131
          ) (Token id:Id.Lit_Chars val:'\ttest $(find .git/objects/?? -type f | wc -l) -eq 6 &&\n' span_id:132) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(find .git/objects/pack -type f | wc -l) -eq 2\n'
            span_id: 133
          )
        )
      }
    )
    (C {(test_done)})
  ]
)