(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'basic git gc tests\n'>)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ <'gc empty repository'>)} {(SQ <'\n'> <'\tgit gc\n'>)})
    (C {(test_expect_success)} {(SQ <'gc does not leave behind pid file'>)} 
      {(SQ <'\n'> <'\tgit gc &&\n'> <'\ttest_path_is_missing .git/gc.pid\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'gc --gobbledegook'>)} 
      {
        (SQ <'\n'> <'\ttest_expect_code 129 git gc --nonsense 2>err &&\n'> 
          <'\ttest_i18ngrep "[Uu]sage: git gc" err\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'gc -h with invalid configuration'>)} 
      {
        (SQ <'\n'> <'\tmkdir broken &&\n'> <'\t(\n'> <'\t\tcd broken &&\n'> <'\t\tgit init &&\n'> 
          <'\t\techo "[gc] pruneexpire = CORRUPT" >>.git/config &&\n'> <'\t\ttest_expect_code 129 git gc -h >usage 2>&1\n'> <'\t) &&\n'> 
          <'\ttest_i18ngrep "[Uu]sage" broken/usage\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'gc is not aborted due to a stale symref'>)} 
      {
        (SQ <'\n'> <'\tgit init remote &&\n'> <'\t(\n'> <'\t\tcd remote &&\n'> 
          <'\t\ttest_commit initial &&\n'> <'\t\tgit clone . ../client &&\n'> <'\t\tgit branch -m develop &&\n'> <'\t\tcd ../client &&\n'> 
          <'\t\tgit fetch --prune &&\n'> <'\t\tgit gc\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)