(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'git svn gc basic tests'>)}
          spids: [10]
        )
      ]
      spids: [10]
    )
    (C {(.)} {(./lib-git-svn.sh)})
    (C {(test_expect_success)} {(SQ <'setup directories and test repo'>)} 
      {
        (SQ <'\n'> <'\tmkdir import &&\n'> <'\tmkdir tmp &&\n'> 
          <'\techo "Sample text for Subversion repository." > import/test.txt &&\n'> <'\tsvn_cmd import -m "import for git svn" import "$svnrepo" > /dev/null\n'> <'\t'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'checkout working copy from svn'>)} 
      {(SQ <'svn_cmd co "$svnrepo" test_wc'>)}
    )
    (C {(test_expect_success)} {(SQ <'set some properties to create an unhandled.log file'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd test_wc &&\n'> <'\t\tsvn_cmd propset foo bar test.txt &&\n'> 
          <'\t\tsvn_cmd commit -m "property set"\n'> <'\t)'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'Setup repo'>)} {(SQ <'git svn init "$svnrepo"'>)})
    (C {(test_expect_success)} {(SQ <'Fetch repo'>)} {(SQ <'git svn fetch'>)})
    (C {(test_expect_success)} {(SQ <'make backup copy of unhandled.log'>)} 
      {(SQ <'\n'> <'\t cp .git/svn/refs/remotes/git-svn/unhandled.log tmp\n'> <'\t'>)}
    )
    (C {(test_expect_success)} {(SQ <'create leftover index'>)} 
      {(SQ <'> .git/svn/refs/remotes/git-svn/index'>)}
    )
    (C {(test_expect_success)} {(SQ <'git svn gc runs'>)} {(SQ <'git svn gc'>)})
    (C {(test_expect_success)} {(SQ <'git svn index removed'>)} 
      {(SQ <'! test -f .git/svn/refs/remotes/git-svn/index'>)}
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test)} {(-r)} {(.git/svn/refs/remotes/git-svn/unhandled.log.gz)})]
          action: [
            (C {(test_expect_success)} {(SQ <'git svn gc produces a valid gzip file'>)} 
              {(SQ <'\n'> <'\t\t gunzip .git/svn/refs/remotes/git-svn/unhandled.log.gz\n'> <'\t\t'>)}
            )
          ]
          spids: [-1 142]
        )
      ]
      spids: [-1 157]
    )
    (C {(test_expect_success)} {(SQ <'git svn gc does not change unhandled.log files'>)} 
      {
        (SQ <'\n'> <'\t test_cmp .git/svn/refs/remotes/git-svn/unhandled.log tmp/unhandled.log\n'> 
          <'\t'>
        )
      }
    )
    (C {(test_done)})
  ]
)