(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 <'patching from inconvenient places'>)}
        )
      ]
      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>}
        {(SQ <setup>)}
        {
          (SQ <'\n'> <'\tcat >patch <<-\\EOF &&\n'> <'\tdiff file.orig file\n'> <'\t--- a/file.orig\n'> 
            <'\t+++ b/file\n'> <'\t@@ -1 +1,2 @@\n'> <'\t 1\n'> <'\t+2\n'> <'\tEOF\n'> <'\tpatch="$(pwd)/patch" &&\n'> <'\n'> 
            <'\techo 1 >preimage &&\n'> <'\tprintf "%s\\n" 1 2 >postimage &&\n'> <'\techo 3 >other &&\n'> <'\n'> <'\ttest_tick &&\n'> 
            <'\tgit commit --allow-empty -m basis\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'setup: subdir'>)}
        {
          (SQ <'\n'> <'\treset_subdir() {\n'> <'\t\tgit reset &&\n'> <'\t\tmkdir -p sub/dir/b &&\n'> 
            <'\t\tmkdir -p objects &&\n'> <'\t\tcp "$1" file &&\n'> <'\t\tcp "$1" objects/file &&\n'> <'\t\tcp "$1" sub/dir/file &&\n'> 
            <'\t\tcp "$1" sub/dir/b/file &&\n'> <'\t\tgit add file sub/dir/file sub/dir/b/file objects/file &&\n'> <'\t\tcp "$2" file &&\n'> 
            <'\t\tcp "$2" sub/dir/file &&\n'> <'\t\tcp "$2" sub/dir/b/file &&\n'> <'\t\tcp "$2" objects/file &&\n'> 
            <'\t\ttest_might_fail git update-index --refresh -q\n'> <'\t}\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'apply from subdir of toplevel'>)}
        {
          (SQ <'\n'> <'\tcp postimage expected &&\n'> <'\treset_subdir other preimage &&\n'> <'\t(\n'> 
            <'\t\tcd sub/dir &&\n'> <'\t\tgit apply "$patch"\n'> <'\t) &&\n'> <'\ttest_cmp expected sub/dir/file\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'apply --cached from subdir of toplevel'>)}
        {
          (SQ <'\n'> <'\tcp postimage expected &&\n'> <'\tcp other expected.working &&\n'> 
            <'\treset_subdir preimage other &&\n'> <'\t(\n'> <'\t\tcd sub/dir &&\n'> <'\t\tgit apply --cached "$patch"\n'> <'\t) &&\n'> 
            <'\tgit show :sub/dir/file >actual &&\n'> <'\ttest_cmp expected actual &&\n'> <'\ttest_cmp expected.working sub/dir/file\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'apply --index from subdir of toplevel'>)}
        {
          (SQ <'\n'> <'\tcp postimage expected &&\n'> <'\treset_subdir preimage other &&\n'> <'\t(\n'> 
            <'\t\tcd sub/dir &&\n'> <'\t\ttest_must_fail git apply --index "$patch"\n'> <'\t) &&\n'> <'\treset_subdir other preimage &&\n'> 
            <'\t(\n'> <'\t\tcd sub/dir &&\n'> <'\t\ttest_must_fail git apply --index "$patch"\n'> <'\t) &&\n'> 
            <'\treset_subdir preimage preimage &&\n'> <'\t(\n'> <'\t\tcd sub/dir &&\n'> <'\t\tgit apply --index "$patch"\n'> <'\t) &&\n'> 
            <'\tgit show :sub/dir/file >actual &&\n'> <'\ttest_cmp expected actual &&\n'> <'\ttest_cmp expected sub/dir/file\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'apply half-broken patch from subdir of toplevel'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd sub/dir &&\n'> <'\t\ttest_must_fail git apply <<-EOF\n'> 
            <'\t\t--- sub/dir/file\n'> <'\t\t+++ sub/dir/file\n'> <'\t\t@@ -1,0 +1,0 @@\n'> <'\t\t--- file_in_root\n'> 
            <'\t\t+++ file_in_root\n'> <'\t\t@@ -1,0 +1,0 @@\n'> <'\t\tEOF\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'apply from .git dir'>)}
        {
          (SQ <'\n'> <'\tcp postimage expected &&\n'> <'\tcp preimage .git/file &&\n'> 
            <'\tcp preimage .git/objects/file &&\n'> <'\t(\n'> <'\t\tcd .git &&\n'> <'\t\tgit apply "$patch"\n'> <'\t) &&\n'> 
            <'\ttest_cmp expected .git/file\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'apply from subdir of .git dir'>)}
        {
          (SQ <'\n'> <'\tcp postimage expected &&\n'> <'\tcp preimage .git/file &&\n'> 
            <'\tcp preimage .git/objects/file &&\n'> <'\t(\n'> <'\t\tcd .git/objects &&\n'> <'\t\tgit apply "$patch"\n'> <'\t) &&\n'> 
            <'\ttest_cmp expected .git/objects/file\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'apply --cached from .git dir'>)}
        {
          (SQ <'\n'> <'\tcp postimage expected &&\n'> <'\tcp other expected.working &&\n'> 
            <'\tcp other .git/file &&\n'> <'\treset_subdir preimage other &&\n'> <'\t(\n'> <'\t\tcd .git &&\n'> 
            <'\t\tgit apply --cached "$patch"\n'> <'\t) &&\n'> <'\tgit show :file >actual &&\n'> <'\ttest_cmp expected actual &&\n'> 
            <'\ttest_cmp expected.working file &&\n'> <'\ttest_cmp expected.working .git/file\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'apply --cached from subdir of .git dir'>)}
        {
          (SQ <'\n'> <'\tcp postimage expected &&\n'> <'\tcp preimage expected.subdir &&\n'> 
            <'\tcp other .git/file &&\n'> <'\tcp other .git/objects/file &&\n'> <'\treset_subdir preimage other &&\n'> <'\t(\n'> 
            <'\t\tcd .git/objects &&\n'> <'\t\tgit apply --cached "$patch"\n'> <'\t) &&\n'> <'\tgit show :file >actual &&\n'> 
            <'\tgit show :objects/file >actual.subdir &&\n'> <'\ttest_cmp expected actual &&\n'> <'\ttest_cmp expected.subdir actual.subdir\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)