(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:'Test submodules on detached working tree\n' span_id:15) 
                (Token id:Id.Lit_Chars val:'\n' span_id:16) 
                (Token
                  id: Id.Lit_Chars
                  val: 
'This test verifies that "git submodule" initialization, update and addition works\n'
                  span_id: 17
                ) (Token id:Id.Lit_Chars val:'on detahced working trees\n' span_id:18)
              )
            }
          spids: [13]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEST_NO_CREATE_REPO)
          op: assign_op.Equal
          rhs: {(1)}
          spids: [22]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'submodule on detached working tree' span_id:33))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:37) 
          (Token id:Id.Lit_Chars val:'\tgit init --bare remote &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\ttest_create_repo bundle1 &&\n' span_id:39) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:40) (Token id:Id.Lit_Chars val:'\t\tcd bundle1 &&\n' span_id:41) 
          (Token id:Id.Lit_Chars val:'\t\ttest_commit "shoot" &&\n' span_id:42) (Token id:Id.Lit_Chars val:'\t\tgit rev-parse --verify HEAD >../expect\n' span_id:43) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\tmkdir home &&\n' span_id:45) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:46) (Token id:Id.Lit_Chars val:'\t\tcd home &&\n' span_id:47) 
          (Token id:Id.Lit_Chars val:'\t\tGIT_WORK_TREE="$(pwd)" &&\n' span_id:48) (Token id:Id.Lit_Chars val:'\t\tGIT_DIR="$(pwd)/.dotfiles" &&\n' span_id:49) 
          (Token id:Id.Lit_Chars val:'\t\texport GIT_WORK_TREE GIT_DIR &&\n' span_id:50) (Token id:Id.Lit_Chars val:'\t\tgit clone --bare ../remote .dotfiles &&\n' span_id:51) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit submodule add ../bundle1 .vim/bundle/sogood &&\n'
            span_id: 52
          ) (Token id:Id.Lit_Chars val:'\t\ttest_commit "sogood" &&\n' span_id:53) 
          (Token id:Id.Lit_Chars val:'\t\t(\n' span_id:54) (Token id:Id.Lit_Chars val:'\t\t\tunset GIT_WORK_TREE GIT_DIR &&\n' span_id:55) 
          (Token id:Id.Lit_Chars val:'\t\t\tcd .vim/bundle/sogood &&\n' span_id:56) (Token id:Id.Lit_Chars val:'\t\t\tgit rev-parse --verify HEAD >actual &&\n' span_id:57) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t\ttest_cmp ../../../../expect actual\n'
            span_id: 58
          ) (Token id:Id.Lit_Chars val:'\t\t) &&\n' span_id:59) 
          (Token id:Id.Lit_Chars val:'\t\tgit push origin master\n' span_id:60) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:61) 
          (Token id:Id.Lit_Chars val:'\tmkdir home2 &&\n' span_id:62) (Token id:Id.Lit_Chars val:'\t(\n' span_id:63) 
          (Token id:Id.Lit_Chars val:'\t\tcd home2 &&\n' span_id:64) (Token id:Id.Lit_Chars val:'\t\tgit clone --bare ../remote .dotfiles &&\n' span_id:65) 
          (Token id:Id.Lit_Chars val:'\t\tGIT_WORK_TREE="$(pwd)" &&\n' span_id:66) (Token id:Id.Lit_Chars val:'\t\tGIT_DIR="$(pwd)/.dotfiles" &&\n' span_id:67) 
          (Token id:Id.Lit_Chars val:'\t\texport GIT_WORK_TREE GIT_DIR &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\t\tgit checkout master &&\n' span_id:69) 
          (Token id:Id.Lit_Chars val:'\t\tgit submodule update --init &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\t\t(\n' span_id:71) 
          (Token id:Id.Lit_Chars val:'\t\t\tunset GIT_WORK_TREE GIT_DIR &&\n' span_id:72) (Token id:Id.Lit_Chars val:'\t\t\tcd .vim/bundle/sogood &&\n' span_id:73) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t\tgit rev-parse --verify HEAD >actual &&\n'
            span_id: 74
          ) (Token id:Id.Lit_Chars val:'\t\t\ttest_cmp ../../../../expect actual\n' span_id:75) 
          (Token id:Id.Lit_Chars val:'\t\t)\n' span_id:76) (Token id:Id.Lit_Chars val:'\t)\n' span_id:77)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'submodule on detached working pointed by core.worktree'
            span_id: 84
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:88) 
          (Token id:Id.Lit_Chars val:'\tmkdir home3 &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\t(\n' span_id:90) 
          (Token id:Id.Lit_Chars val:'\t\tcd home3 &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\t\tGIT_DIR="$(pwd)/.dotfiles" &&\n' span_id:92) 
          (Token id:Id.Lit_Chars val:'\t\texport GIT_DIR &&\n' span_id:93) (Token id:Id.Lit_Chars val:'\t\tgit clone --bare ../remote "$GIT_DIR" &&\n' span_id:94) 
          (Token id:Id.Lit_Chars val:'\t\tgit config core.bare false &&\n' span_id:95) (Token id:Id.Lit_Chars val:'\t\tgit config core.worktree .. &&\n' span_id:96) 
          (Token id:Id.Lit_Chars val:'\t\tgit checkout master &&\n' span_id:97) (Token id:Id.Lit_Chars val:'\t\tgit submodule add ../bundle1 .vim/bundle/dupe &&\n' span_id:98) 
          (Token id:Id.Lit_Chars val:'\t\ttest_commit "dupe" &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\t\tgit push origin master\n' span_id:100) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:101) (Token id:Id.Lit_Chars val:'\t(\n' span_id:102) 
          (Token id:Id.Lit_Chars val:'\t\tcd home &&\n' span_id:103) (Token id:Id.Lit_Chars val:'\t\tGIT_DIR="$(pwd)/.dotfiles" &&\n' span_id:104) 
          (Token id:Id.Lit_Chars val:'\t\texport GIT_DIR &&\n' span_id:105) (Token id:Id.Lit_Chars val:'\t\tgit config core.bare false &&\n' span_id:106) 
          (Token id:Id.Lit_Chars val:'\t\tgit config core.worktree .. &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\t\tgit pull &&\n' span_id:108) 
          (Token id:Id.Lit_Chars val:'\t\tgit submodule update --init &&\n' span_id:109) (Token id:Id.Lit_Chars val:'\t\ttest -f .vim/bundle/dupe/shoot.t\n' span_id:110) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:111)
        )
      }
    )
    (C {(test_done)})
  ]
)