(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'setup taking and sanitizing funny paths'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<setup>}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p a/b/c a/e &&\n'> <'\tD=$(pwd) &&\n'> <'\t>a/b/c/d &&\n'> 
            <'\t>a/e/f\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git add (absolute)'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit add "$D/a/b/c/d" &&\n'> <'\tgit ls-files >current &&\n'> 
            <'\techo a/b/c/d >expect &&\n'> <'\ttest_cmp expect current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git add (funny relative)'>)}
        {
          (SQ <'\n'> <'\n'> <'\trm -f .git/index &&\n'> <'\t(\n'> <'\t\tcd a/b &&\n'> 
            <'\t\tgit add "../e/./f"\n'> <'\t) &&\n'> <'\tgit ls-files >current &&\n'> <'\techo a/e/f >expect &&\n'> 
            <'\ttest_cmp expect current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git rm (absolute)'>)}
        {
          (SQ <'\n'> <'\n'> <'\trm -f .git/index &&\n'> <'\tgit add a &&\n'> 
            <'\tgit rm -f --cached "$D/a/b/c/d" &&\n'> <'\tgit ls-files >current &&\n'> <'\techo a/e/f >expect &&\n'> <'\ttest_cmp expect current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git rm (funny relative)'>)}
        {
          (SQ <'\n'> <'\n'> <'\trm -f .git/index &&\n'> <'\tgit add a &&\n'> <'\t(\n'> <'\t\tcd a/b &&\n'> 
            <'\t\tgit rm -f --cached "../e/./f"\n'> <'\t) &&\n'> <'\tgit ls-files >current &&\n'> <'\techo a/b/c/d >expect &&\n'> 
            <'\ttest_cmp expect current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git ls-files (absolute)'>)}
        {
          (SQ <'\n'> <'\n'> <'\trm -f .git/index &&\n'> <'\tgit add a &&\n'> 
            <'\tgit ls-files "$D/a/e/../b" >current &&\n'> <'\techo a/b/c/d >expect &&\n'> <'\ttest_cmp expect current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git ls-files (relative #1)'>)}
        {
          (SQ <'\n'> <'\n'> <'\trm -f .git/index &&\n'> <'\tgit add a &&\n'> <'\t(\n'> <'\t\tcd a/b &&\n'> 
            <'\t\tgit ls-files "../b/c"\n'> <'\t)  >current &&\n'> <'\techo c/d >expect &&\n'> <'\ttest_cmp expect current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git ls-files (relative #2)'>)}
        {
          (SQ <'\n'> <'\n'> <'\trm -f .git/index &&\n'> <'\tgit add a &&\n'> <'\t(\n'> <'\t\tcd a/b &&\n'> 
            <'\t\tgit ls-files --full-name "../e/f"\n'> <'\t)  >current &&\n'> <'\techo a/e/f >expect &&\n'> <'\ttest_cmp expect current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git ls-files (relative #3)'>)}
        {
          (SQ <'\n'> <'\n'> <'\trm -f .git/index &&\n'> <'\tgit add a &&\n'> <'\t(\n'> <'\t\tcd a/b &&\n'> 
            <'\t\tgit ls-files "../e/f"\n'> <'\t)  >current &&\n'> <'\techo ../e/f >expect &&\n'> <'\ttest_cmp expect current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'commit using absolute path names'>)}
        {
          (SQ <'\n'> <'\tgit commit -m "foo" &&\n'> <'\techo aa >>a/b/c/d &&\n'> 
            <'\tgit commit -m "aa" "$(pwd)/a/b/c/d"\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'log using absolute path names'>)}
        {
          (SQ <'\n'> <'\techo bb >>a/b/c/d &&\n'> <'\tgit commit -m "bb" "$(pwd)/a/b/c/d" &&\n'> <'\n'> 
            <'\tgit log a/b/c/d >f1.txt &&\n'> <'\tgit log "$(pwd)/a/b/c/d" >f2.txt &&\n'> <'\ttest_cmp f1.txt f2.txt\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'blame using absolute path names'>)}
        {
          (SQ <'\n'> <'\tgit blame a/b/c/d >f1.txt &&\n'> <'\tgit blame "$(pwd)/a/b/c/d" >f2.txt &&\n'> 
            <'\ttest_cmp f1.txt f2.txt\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'setup deeper work tree'>)}
        {(SQ <'\n'> <'\ttest_create_repo tester\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add a directory outside the work tree'>)}
        {
          (SQ <'(\n'> <'\tcd tester &&\n'> <'\td1="$(cd .. ; pwd)" &&\n'> 
            <'\ttest_must_fail git add "$d1"\n'> <')'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add a file outside the work tree, nasty case 1'>)}
        {
          (SQ <'(\n'> <'\tcd tester &&\n'> <'\tf="$(pwd)x" &&\n'> <'\techo "$f" &&\n'> 
            <'\ttouch "$f" &&\n'> <'\ttest_must_fail git add "$f"\n'> <')'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add a file outside the work tree, nasty case 2'>)}
        {
          (SQ <'(\n'> <'\tcd tester &&\n'> <'\tf="$(pwd | sed "s/.$//")x" &&\n'> <'\techo "$f" &&\n'> 
            <'\ttouch "$f" &&\n'> <'\ttest_must_fail git add "$f"\n'> <')'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)