(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:'basic git gc tests\n' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'gc empty repository' span_id:18))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) 
          (Token id:Id.Lit_Chars val:'\tgit gc\n' span_id:23)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'gc does not leave behind pid file' span_id:30))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:34) 
          (Token id:Id.Lit_Chars val:'\tgit gc &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing .git/gc.pid\n' span_id:36)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'gc --gobbledegook' span_id:43))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:47) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_expect_code 129 git gc --nonsense 2>err &&\n'
            span_id: 48
          ) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep "[Uu]sage: git gc" err\n' span_id:49)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'gc -h with invalid configuration' span_id:56))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:60) 
          (Token id:Id.Lit_Chars val:'\tmkdir broken &&\n' span_id:61) (Token id:Id.Lit_Chars val:'\t(\n' span_id:62) 
          (Token id:Id.Lit_Chars val:'\t\tcd broken &&\n' span_id:63) (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:64) 
          (Token
            id: Id.Lit_Chars
            val: '\t\techo "[gc] pruneexpire = CORRUPT" >>.git/config &&\n'
            span_id: 65
          ) (Token id:Id.Lit_Chars val:'\t\ttest_expect_code 129 git gc -h >usage 2>&1\n' span_id:66) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep "[Uu]sage" broken/usage\n' span_id:68)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'gc is not aborted due to a stale symref' span_id:75))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:79) 
          (Token id:Id.Lit_Chars val:'\tgit init remote &&\n' span_id:80) (Token id:Id.Lit_Chars val:'\t(\n' span_id:81) 
          (Token id:Id.Lit_Chars val:'\t\tcd remote &&\n' span_id:82) (Token id:Id.Lit_Chars val:'\t\ttest_commit initial &&\n' span_id:83) 
          (Token id:Id.Lit_Chars val:'\t\tgit clone . ../client &&\n' span_id:84) (Token id:Id.Lit_Chars val:'\t\tgit branch -m develop &&\n' span_id:85) 
          (Token id:Id.Lit_Chars val:'\t\tcd ../client &&\n' span_id:86) (Token id:Id.Lit_Chars val:'\t\tgit fetch --prune &&\n' span_id:87) 
          (Token id:Id.Lit_Chars val:'\t\tgit gc\n' span_id:88) (Token id:Id.Lit_Chars val:'\t)\n' span_id:89)
        )
      }
    )
    (C {(test_done)})
  ]
)