(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: 
            {
              (SQ 
                <'git svn creates empty directories, calls git gc, makes sure they are still empty'>
              )
            }
          spids: [10]
        )
      ]
    )
    (C {<.>} {<'./lib-git-svn.sh'>})
    (C {<test_expect_success>} {(SQ <'initialize repo'>)} 
      {
        (SQ <'\n'> <'\tfor i in a b c d d/e d/e/f "weird file name"\n'> <'\tdo\n'> 
          <'\t\tsvn_cmd mkdir -m "mkdir $i" "$svnrepo"/"$i"\n'> <'\tdone\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <clone>)} {(SQ <'git svn clone "$svnrepo" cloned'>)})
    (C {<test_expect_success>} {(SQ <'git svn gc runs'>)} 
      {(SQ <'\n'> <'\t(\n'> <'\t\tcd cloned &&\n'> <'\t\tgit svn gc\n'> <'\t)\n'>)}
    )
    (C {<test_expect_success>} {(SQ <'git svn mkdirs recreates empty directories after git svn gc'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd cloned &&\n'> <'\t\trm -r * &&\n'> <'\t\tgit svn mkdirs &&\n'> 
          <'\t\tfor i in a b c d d/e d/e/f "weird file name"\n'> <'\t\tdo\n'> <'\t\t\tif ! test -d "$i"\n'> <'\t\t\tthen\n'> <'\t\t\t\techo >&2 "$i does not exist"\n'> 
          <'\t\t\t\texit 1\n'> <'\t\t\tfi\n'> <'\t\tdone\n'> <'\t)\n'>
        )
      }
    )
    (C {<test_done>})
  ]
)