(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:'some bundle related tests' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:17))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:21) 
          (Token id:Id.Lit_Chars val:'\ttest_commit initial &&\n' span_id:22) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:23) 
          (Token id:Id.Lit_Chars val:'\tgit tag -m tag tag &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\ttest_commit second &&\n' span_id:25) 
          (Token id:Id.Lit_Chars val:'\ttest_commit third &&\n' span_id:26) (Token id:Id.Lit_Chars val:'\tgit tag -d initial &&\n' span_id:27) 
          (Token id:Id.Lit_Chars val:'\tgit tag -d second &&\n' span_id:28) (Token id:Id.Lit_Chars val:'\tgit tag -d third\n' span_id:29)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'annotated tags can be excluded by rev-list options'
            span_id: 36
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:40) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit bundle create bundle --all --since=7.Apr.2005.15:14:00.-0700 &&\n'
            span_id: 41
          ) (Token id:Id.Lit_Chars val:'\tgit ls-remote bundle > output &&\n' span_id:42) 
          (Token id:Id.Lit_Chars val:'\tgrep tag output &&\n' span_id:43) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit bundle create bundle --all --since=7.Apr.2005.15:16:00.-0700 &&\n'
            span_id: 44
          ) (Token id:Id.Lit_Chars val:'\tgit ls-remote bundle > output &&\n' span_id:45) 
          (Token id:Id.Lit_Chars val:'\t! grep tag output\n' span_id:46)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'die if bundle file cannot be created' span_id:53))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:57) 
          (Token id:Id.Lit_Chars val:'\tmkdir adir &&\n' span_id:58) (Token id:Id.Lit_Chars val:'\ttest_must_fail git bundle create adir --all\n' span_id:59)
        )
      }
    )
    (C {(test_expect_failure)} {(SQ (Token id:Id.Lit_Chars val:'bundle --stdin' span_id:66))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:70) 
          (Token
            id: Id.Lit_Chars
            val: '\techo master | git bundle create stdin-bundle.bdl --stdin &&\n'
            span_id: 71
          ) (Token id:Id.Lit_Chars val:'\tgit ls-remote stdin-bundle.bdl >output &&\n' span_id:72) 
          (Token id:Id.Lit_Chars val:'\tgrep master output\n' span_id:73)
        )
      }
    )
    (C {(test_expect_failure)} 
      {(SQ (Token id:Id.Lit_Chars val:'bundle --stdin <rev-list options>' span_id:80))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:84) 
          (Token
            id: Id.Lit_Chars
            val: '\techo master | git bundle create hybrid-bundle.bdl --stdin tag &&\n'
            span_id: 85
          ) (Token id:Id.Lit_Chars val:'\tgit ls-remote hybrid-bundle.bdl >output &&\n' span_id:86) 
          (Token id:Id.Lit_Chars val:'\tgrep master output\n' span_id:87)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'empty bundle file is rejected' span_id:94))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:98) 
          (Token id:Id.Lit_Chars val:'\t: >empty-bundle &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\ttest_must_fail git fetch empty-bundle\n' span_id:100)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'ridiculously long subject in boundary' span_id:113))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:117) 
          (Token id:Id.Lit_Chars val:'\t: >file4 &&\n' span_id:118) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:119) 
          (Token id:Id.Lit_Chars val:'\tgit add file4 &&\n' span_id:120) (Token id:Id.Lit_Chars val:'\tprintf "%01200d\\n" 0 | git commit -F - &&\n' span_id:121) 
          (Token id:Id.Lit_Chars val:'\ttest_commit fifth &&\n' span_id:122) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit bundle create long-subject-bundle.bdl HEAD^..HEAD &&\n'
            span_id: 123
          ) (Token id:Id.Lit_Chars val:'\tgit bundle list-heads long-subject-bundle.bdl >heads &&\n' span_id:124) 
          (Token id:Id.Lit_Chars val:'\ttest -s heads &&\n' span_id:125) (Token id:Id.Lit_Chars val:'\tgit fetch long-subject-bundle.bdl &&\n' span_id:126) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -n "/^-/{p;q;}" long-subject-bundle.bdl >boundary &&\n'
            span_id: 127
          ) (Token id:Id.Lit_Chars val:'\tgrep "^-[0-9a-f]\\\\{40\\\\} " boundary\n' span_id:128)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'prerequisites with an empty commit message' span_id:135))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:139) 
          (Token id:Id.Lit_Chars val:'\t: >file1 &&\n' span_id:140) (Token id:Id.Lit_Chars val:'\tgit add file1 &&\n' span_id:141) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:142) (Token id:Id.Lit_Chars val:'\tgit commit --allow-empty-message -m "" &&\n' span_id:143) 
          (Token id:Id.Lit_Chars val:'\ttest_commit file2 &&\n' span_id:144) (Token id:Id.Lit_Chars val:'\tgit bundle create bundle HEAD^.. &&\n' span_id:145) 
          (Token id:Id.Lit_Chars val:'\tgit bundle verify bundle\n' span_id:146)
        )
      }
    )
    (C {(test_done)})
  ]
)