(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ (Token id:Id.Lit_Chars val:'git apply submodule tests' span_id:15))}
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:29) 
          (Token id:Id.Lit_Chars val:'\tcat > create-sm.patch <<EOF &&\n' span_id:30) (Token id:Id.Lit_Chars val:'diff --git a/dir/sm b/dir/sm\n' span_id:31) 
          (Token id:Id.Lit_Chars val:'new file mode 160000\n' span_id:32) (Token id:Id.Lit_Chars val:'index 0000000..0123456\n' span_id:33) 
          (Token id:Id.Lit_Chars val:'--- /dev/null\n' span_id:34) (Token id:Id.Lit_Chars val:'+++ b/dir/sm\n' span_id:35) 
          (Token id:Id.Lit_Chars val:'@@ -0,0 +1 @@\n' span_id:36) 
          (Token
            id: Id.Lit_Chars
            val: '+Subproject commit 0123456789abcdef0123456789abcdef01234567\n'
            span_id: 37
          ) (Token id:Id.Lit_Chars val:'EOF\n' span_id:38) 
          (Token id:Id.Lit_Chars val:'\tcat > remove-sm.patch <<EOF\n' span_id:39) (Token id:Id.Lit_Chars val:'diff --git a/dir/sm b/dir/sm\n' span_id:40) 
          (Token id:Id.Lit_Chars val:'deleted file mode 160000\n' span_id:41) (Token id:Id.Lit_Chars val:'index 0123456..0000000\n' span_id:42) 
          (Token id:Id.Lit_Chars val:'--- a/dir/sm\n' span_id:43) (Token id:Id.Lit_Chars val:'+++ /dev/null\n' span_id:44) 
          (Token id:Id.Lit_Chars val:'@@ -1 +0,0 @@\n' span_id:45) 
          (Token
            id: Id.Lit_Chars
            val: '-Subproject commit 0123456789abcdef0123456789abcdef01234567\n'
            span_id: 46
          ) (Token id:Id.Lit_Chars val:'EOF\n' span_id:47)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'removing a submodule also removes all leading subdirectories'
            span_id: 54
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:58) 
          (Token id:Id.Lit_Chars val:'\tgit apply --index create-sm.patch &&\n' span_id:59) (Token id:Id.Lit_Chars val:'\ttest -d dir/sm &&\n' span_id:60) 
          (Token id:Id.Lit_Chars val:'\tgit apply --index remove-sm.patch &&\n' span_id:61) (Token id:Id.Lit_Chars val:'\ttest \\! -d dir\n' span_id:62)
        )
      }
    )
    (C {(test_done)})
  ]
)