(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:cd_to_toplevel span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXEC_PATH) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:17) command_list: (command.CommandList children:[(C {(git)} {(--exec-path)})]) ) ) } spids: [15] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(test_have_prereq)} {(Id.KW_Bang '!') (MINGW)}) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$EXEC_PATH'))} arms: [ (case_arm pat_list: [ {(Id.Lit_LBracket '[') (A-Za-z) (Id.Lit_RBracket ']') (Id.Lit_Other ':') (/) (Id.Lit_Star '*') } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXEC_PATH) op: assign_op.Equal rhs: { (DQ (/) (braced_var_sub token: (Token id:Id.VSub_Name val:EXEC_PATH span_id:52) suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPercent arg_word:{(':*')}) ) (braced_var_sub token: (Token id:Id.VSub_Name val:EXEC_PATH span_id:57) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{('?:')}) ) ) } spids: [48] ) ] ) ] spids: [39 45 64 -1] ) ] ) ] ) (command.ShFunction name: test_cd_to_toplevel body: (command.BraceGroup children: [ (C {(test_expect_success)} {($ Id.VSub_Number '$3')} {(DQ ($ Id.VSub_Number '$2'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:86) (Token id:Id.Lit_Chars val:'\t\t(\n' span_id:87) (Token id:Id.Lit_Chars val:'\t\t\tcd ' span_id:88) ) (DQ ("'") ($ Id.VSub_Number '$1') ("'")) (SQ (Token id:Id.Lit_Chars val:' &&\n' span_id:96) (Token id: Id.Lit_Chars val: '\t\t\tPATH="$EXEC_PATH:$PATH" &&\n' span_id: 97 ) (Token id:Id.Lit_Chars val:'\t\t\t. git-sh-setup &&\n' span_id:98) (Token id: Id.Lit_Chars val: '\t\t\tcd_to_toplevel &&\n' span_id: 99 ) (Token id:Id.Lit_Chars val:'\t\t\t[ "$(pwd -P)" = "$TOPLEVEL" ]\n' span_id:100) (Token id:Id.Lit_Chars val:'\t\t)\n' span_id:101) (Token id:Id.Lit_Chars val:'\t' span_id:102) ) } ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TOPLEVEL) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:110) command_list: (command.CommandList children:[(C {(pwd)} {(-P)})]) ) (/repo) ) } spids: [108] ) ] ) (C {(mkdir)} {(-p)} {(repo/sub/dir)}) (C {(mv)} {(.git)} {(repo/)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SUBDIRECTORY_OK) op: assign_op.Equal rhs: {(1)} spids: [130] ) ] ) (C {(test_cd_to_toplevel)} {(repo)} {(SQ (Token id:Id.Lit_Chars val:'at physical root' span_id:139))}) (C {(test_cd_to_toplevel)} {(repo/sub/dir)} {(SQ (Token id:Id.Lit_Chars val:'at physical subdir' span_id:148))} ) (command.Simple words: [{(ln)} {(-s)} {(repo)} {(symrepo)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:160) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(test_cd_to_toplevel)} {(symrepo)} {(SQ (Token id:Id.Lit_Chars val:'at symbolic root' span_id:168))} {(SYMLINKS)} ) (command.Simple words: [{(ln)} {(-s)} {(repo/sub/dir)} {(subdir-link)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:182) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(test_cd_to_toplevel)} {(subdir-link)} {(SQ (Token id:Id.Lit_Chars val:'at symbolic subdir' span_id:190))} {(SYMLINKS)} ) (C {(cd)} {(repo)}) (command.Simple words: [{(ln)} {(-s)} {(sub/dir)} {(internal-link)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:208) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(test_cd_to_toplevel)} {(internal-link)} {(SQ (Token id:Id.Lit_Chars val:'at internal symbolic subdir' span_id:216))} {(SYMLINKS)} ) (C {(test_done)}) ] )