(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 git worktree list' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:18))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) 
          (Token id:Id.Lit_Chars val:'\ttest_commit init\n' span_id:23)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-parse --git-common-dir on main worktree' span_id:30))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:34) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit rev-parse --git-common-dir >actual &&\n'
            span_id: 35
          ) (Token id:Id.Lit_Chars val:'\techo .git >expected &&\n' span_id:36) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:37) (Token id:Id.Lit_Chars val:'\tmkdir sub &&\n' span_id:38) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit -C sub rev-parse --git-common-dir >actual2 &&\n'
            span_id: 39
          ) (Token id:Id.Lit_Chars val:'\techo sub/.git >expected2 &&\n' span_id:40) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected2 actual2\n' span_id:41)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"list" all worktrees from main' span_id:48))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:52) 
          (Token
            id: Id.Lit_Chars
            val: 
'\techo "$(git rev-parse --show-toplevel) $(git rev-parse --short HEAD) [$(git symbolic-ref --short HEAD)]" >expect &&\n'
            span_id: 53
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_when_finished "rm -rf here && git worktree prune" &&\n'
            span_id: 54
          ) (Token id:Id.Lit_Chars val:'\tgit worktree add --detach here master &&\n' span_id:55) 
          (Token
            id: Id.Lit_Chars
            val: 
'\techo "$(git -C here rev-parse --show-toplevel) $(git rev-parse --short HEAD) (detached HEAD)" >>expect &&\n'
            span_id: 56
          ) (Token id:Id.Lit_Chars val:'\tgit worktree list | sed "s/  */ /g" >actual &&\n' span_id:57) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:58)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"list" all worktrees from linked' span_id:65))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:69) 
          (Token
            id: Id.Lit_Chars
            val: 
'\techo "$(git rev-parse --show-toplevel) $(git rev-parse --short HEAD) [$(git symbolic-ref --short HEAD)]" >expect &&\n'
            span_id: 70
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_when_finished "rm -rf here && git worktree prune" &&\n'
            span_id: 71
          ) (Token id:Id.Lit_Chars val:'\tgit worktree add --detach here master &&\n' span_id:72) 
          (Token
            id: Id.Lit_Chars
            val: 
'\techo "$(git -C here rev-parse --show-toplevel) $(git rev-parse --short HEAD) (detached HEAD)" >>expect &&\n'
            span_id: 73
          ) (Token id:Id.Lit_Chars val:'\tgit -C here worktree list | sed "s/  */ /g" >actual &&\n' span_id:74) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:75)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"list" all worktrees --porcelain' span_id:82))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:86) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "worktree $(git rev-parse --show-toplevel)" >expect &&\n'
            span_id: 87
          ) (Token id:Id.Lit_Chars val:'\techo "HEAD $(git rev-parse HEAD)" >>expect &&\n' span_id:88) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "branch $(git symbolic-ref HEAD)" >>expect &&\n'
            span_id: 89
          ) (Token id:Id.Lit_Chars val:'\techo >>expect &&\n' span_id:90) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_when_finished "rm -rf here && git worktree prune" &&\n'
            span_id: 91
          ) (Token id:Id.Lit_Chars val:'\tgit worktree add --detach here master &&\n' span_id:92) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "worktree $(git -C here rev-parse --show-toplevel)" >>expect &&\n'
            span_id: 93
          ) (Token id:Id.Lit_Chars val:'\techo "HEAD $(git rev-parse HEAD)" >>expect &&\n' span_id:94) 
          (Token id:Id.Lit_Chars val:'\techo "detached" >>expect &&\n' span_id:95) (Token id:Id.Lit_Chars val:'\techo >>expect &&\n' span_id:96) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit worktree list --porcelain >actual &&\n'
            span_id: 97
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:98)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'bare repo setup' span_id:105))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:109) 
          (Token id:Id.Lit_Chars val:'\tgit init --bare bare1 &&\n' span_id:110) (Token id:Id.Lit_Chars val:'\techo "data" >file1 &&\n' span_id:111) 
          (Token id:Id.Lit_Chars val:'\tgit add file1 &&\n' span_id:112) (Token id:Id.Lit_Chars val:'\tgit commit -m"File1: add data" &&\n' span_id:113) 
          (Token id:Id.Lit_Chars val:'\tgit push bare1 master &&\n' span_id:114) (Token id:Id.Lit_Chars val:'\tgit reset --hard HEAD^\n' span_id:115)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"list" all worktrees from bare main' span_id:122))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:126) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_when_finished "rm -rf there && git -C bare1 worktree prune" &&\n'
            span_id: 127
          ) (Token id:Id.Lit_Chars val:'\tgit -C bare1 worktree add --detach ../there master &&\n' span_id:128) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "$(pwd)/bare1 (bare)" >expect &&\n'
            span_id: 129
          ) 
          (Token
            id: Id.Lit_Chars
            val: 
'\techo "$(git -C there rev-parse --show-toplevel) $(git -C there rev-parse --short HEAD) (detached HEAD)" >>expect &&\n'
            span_id: 130
          ) (Token id:Id.Lit_Chars val:'\tgit -C bare1 worktree list | sed "s/  */ /g" >actual &&\n' span_id:131) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:132)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"list" all worktrees --porcelain from bare main' span_id:139))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:143) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_when_finished "rm -rf there && git -C bare1 worktree prune" &&\n'
            span_id: 144
          ) (Token id:Id.Lit_Chars val:'\tgit -C bare1 worktree add --detach ../there master &&\n' span_id:145) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "worktree $(pwd)/bare1" >expect &&\n'
            span_id: 146
          ) (Token id:Id.Lit_Chars val:'\techo "bare" >>expect &&\n' span_id:147) 
          (Token id:Id.Lit_Chars val:'\techo >>expect &&\n' span_id:148) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "worktree $(git -C there rev-parse --show-toplevel)" >>expect &&\n'
            span_id: 149
          ) (Token id:Id.Lit_Chars val:'\techo "HEAD $(git -C there rev-parse HEAD)" >>expect &&\n' span_id:150) 
          (Token id:Id.Lit_Chars val:'\techo "detached" >>expect &&\n' span_id:151) (Token id:Id.Lit_Chars val:'\techo >>expect &&\n' span_id:152) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit -C bare1 worktree list --porcelain >actual &&\n'
            span_id: 153
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:154)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: '"list" all worktrees from linked with a bare main'
            span_id: 161
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:165) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_when_finished "rm -rf there && git -C bare1 worktree prune" &&\n'
            span_id: 166
          ) (Token id:Id.Lit_Chars val:'\tgit -C bare1 worktree add --detach ../there master &&\n' span_id:167) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "$(pwd)/bare1 (bare)" >expect &&\n'
            span_id: 168
          ) 
          (Token
            id: Id.Lit_Chars
            val: 
'\techo "$(git -C there rev-parse --show-toplevel) $(git -C there rev-parse --short HEAD) (detached HEAD)" >>expect &&\n'
            span_id: 169
          ) (Token id:Id.Lit_Chars val:'\tgit -C there worktree list | sed "s/  */ /g" >actual &&\n' span_id:170) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:171)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'bare repo cleanup' span_id:178))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:182) 
          (Token id:Id.Lit_Chars val:'\trm -rf bare1\n' span_id:183)
        )
      }
    )
    (C {(test_done)})
  ]
)