(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 cloning a repository larger than 2 gigabyte'
                  span_id: 6
                )
              )
            }
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.If
      arms: [
        (if_arm
          cond: [(C {(test)} {(-z)} {(DQ ($ Id.VSub_DollarName '$GIT_TEST_CLONE_2GB'))})]
          action: [
            (C {(say)} 
              {
                (SQ 
                  (Token
                    id: Id.Lit_Chars
                    val: 'Skipping expensive 2GB clone test; enable it with GIT_TEST_CLONE_2GB=t'
                    span_id: 30
                  )
                )
              }
            )
          ]
          spids: [14 24]
        )
      ]
      else_action: [(C {(test_set_prereq)} {(CLONE_2GB)})]
    )
    (C {(test_expect_success)} {(CLONE_2GB)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:48))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:52) (Token id:Id.Lit_Chars val:'\n' span_id:53) 
          (Token id:Id.Lit_Chars val:'\tgit config pack.compression 0 &&\n' span_id:54) (Token id:Id.Lit_Chars val:'\tgit config pack.depth 0 &&\n' span_id:55) 
          (Token id:Id.Lit_Chars val:'\tblobsize=$((100*1024*1024)) &&\n' span_id:56) (Token id:Id.Lit_Chars val:'\tblobcount=$((2*1024*1024*1024/$blobsize+1)) &&\n' span_id:57) 
          (Token id:Id.Lit_Chars val:'\ti=1 &&\n' span_id:58) (Token id:Id.Lit_Chars val:'\t(while test $i -le $blobcount\n' span_id:59) 
          (Token id:Id.Lit_Chars val:'\t do\n' span_id:60) (Token id:Id.Lit_Chars val:'\t\tprintf "Generating blob $i/$blobcount\\r" >&2 &&\n' span_id:61) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tprintf "blob\\nmark :$i\\ndata $blobsize\\n" &&\n'
            span_id: 62
          ) (Token id:Id.Lit_Chars val:'\t\t#test-genrandom $i $blobsize &&\n' span_id:63) 
          (Token id:Id.Lit_Chars val:'\t\tprintf "%-${blobsize}s" $i &&\n' span_id:64) (Token id:Id.Lit_Chars val:'\t\techo "M 100644 :$i $i" >> commit\n' span_id:65) 
          (Token id:Id.Lit_Chars val:'\t\ti=$(($i+1)) ||\n' span_id:66) (Token id:Id.Lit_Chars val:'\t\techo $? > exit-status\n' span_id:67) 
          (Token id:Id.Lit_Chars val:'\t done &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\t echo "commit refs/heads/master" &&\n' span_id:69) 
          (Token
            id: Id.Lit_Chars
            val: '\t echo "author A U Thor <author@email.com> 123456789 +0000" &&\n'
            span_id: 70
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t echo "committer C O Mitter <committer@email.com> 123456789 +0000" &&\n'
            span_id: 71
          ) (Token id:Id.Lit_Chars val:'\t echo "data 5" &&\n' span_id:72) 
          (Token id:Id.Lit_Chars val:'\t echo ">2gb" &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\t cat commit) |\n' span_id:74) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit fast-import --big-file-threshold=2 &&\n'
            span_id: 75
          ) (Token id:Id.Lit_Chars val:'\ttest ! -f exit-status\n' span_id:76) 
          (Token id:Id.Lit_Chars val:'\n' span_id:77)
        )
      }
    )
    (C {(test_expect_success)} {(CLONE_2GB)} {(SQ (Token id:Id.Lit_Chars val:'clone - bare' span_id:86))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:90) (Token id:Id.Lit_Chars val:'\n' span_id:91) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit clone --bare --no-hardlinks . clone-bare\n'
            span_id: 92
          ) (Token id:Id.Lit_Chars val:'\n' span_id:93)
        )
      }
    )
    (C {(test_expect_success)} {(CLONE_2GB)} 
      {(SQ (Token id:Id.Lit_Chars val:'clone - with worktree, file:// protocol' span_id:102))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:106) (Token id:Id.Lit_Chars val:'\n' span_id:107) 
          (Token id:Id.Lit_Chars val:'\tgit clone "file://$(pwd)" clone-wt\n' span_id:108) (Token id:Id.Lit_Chars val:'\n' span_id:109)
        )
      }
    )
    (C {(test_done)})
  ]
)