(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_description spids:[12]) op: Equal rhs: {(SQ <'test GIT_CEILING_DIRECTORIES'>)} spids: [12] ) ] spids: [12] ) (C {(.)} {(./test-lib.sh)}) (command.FuncDef name: test_prefix body: (command.BraceGroup children: [ (C {(test_expect_success)} {(DQ ($ VSub_Number '$1'))} { (DQ ("test '") ($ VSub_Number '$2') ("' = ") (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('(git rev-parse --show-prefix)') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } ) ] spids: [26] ) spids: [22 25] ) (command.FuncDef name: test_fail body: (command.BraceGroup children: [ (C {(test_expect_success)} {(DQ ($ VSub_Number '$1') (': prefix'))} {(SQ <'\n'> <'\t\ttest_expect_code 128 git rev-parse --show-prefix\n'> <'\t'>)} ) ] spids: [54] ) spids: [50 53] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:TRASH_ROOT spids:[73]) op: Equal rhs: {(DQ ($ VSub_Name '$PWD'))} spids: [73] ) ] spids: [73] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ROOT_PARENT spids:[78]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(dirname)} {(DQ ($ VSub_Name '$TRASH_ROOT'))})] ) left_token: <Left_CommandSub '$('> spids: [79 85] ) } spids: [78] ) ] spids: [78] ) (C {(unset)} {(GIT_CEILING_DIRECTORIES)}) (C {(test_prefix)} {(no_ceil)} {(DQ )}) (C {(export)} {(GIT_CEILING_DIRECTORIES)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[106]) op: Equal rhs: {(DQ )} spids: [106] ) ] spids: [106] ) (C {(test_prefix)} {(ceil_empty)} {(DQ )}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[118]) op: Equal rhs: {(DQ ($ VSub_Name '$ROOT_PARENT'))} spids: [118] ) ] spids: [118] ) (C {(test_prefix)} {(ceil_at_parent)} {(DQ )}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[131]) op: Equal rhs: {(DQ ($ VSub_Name '$ROOT_PARENT') (/))} spids: [131] ) ] spids: [131] ) (C {(test_prefix)} {(ceil_at_parent_slash)} {(DQ )}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[145]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT'))} spids: [145] ) ] spids: [145] ) (C {(test_prefix)} {(ceil_at_trash)} {(DQ )}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[158]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/))} spids: [158] ) ] spids: [158] ) (C {(test_prefix)} {(ceil_at_trash_slash)} {(DQ )}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[172]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/sub))} spids: [172] ) ] spids: [172] ) (C {(test_prefix)} {(ceil_at_sub)} {(DQ )}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[186]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/sub/))} spids: [186] ) ] spids: [186] ) (C {(test_prefix)} {(ceil_at_sub_slash)} {(DQ )}) (command.If arms: [ (if_arm cond: [(C {(test_have_prereq)} {(SYMLINKS)})] action: [(C {(ln)} {(-s)} {(sub)} {(top)})] spids: [16777215 206] ) ] spids: [16777215 217] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(mkdir)} {(-p)} {(sub/dir)}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(cd)} {(sub/dir)}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) (C {(unset)} {(GIT_CEILING_DIRECTORIES)}) (C {(test_prefix)} {(subdir_no_ceil)} {(DQ (sub/dir/))}) (C {(export)} {(GIT_CEILING_DIRECTORIES)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[261]) op: Equal rhs: {(DQ )} spids: [261] ) ] spids: [261] ) (C {(test_prefix)} {(subdir_ceil_empty)} {(DQ (sub/dir/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[274]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT'))} spids: [274] ) ] spids: [274] ) (C {(test_fail)} {(subdir_ceil_at_trash)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[284]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/))} spids: [284] ) ] spids: [284] ) (C {(test_fail)} {(subdir_ceil_at_trash_slash)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[295]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/sub))} spids: [295] ) ] spids: [295] ) (C {(test_fail)} {(subdir_ceil_at_sub)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[306]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/sub/))} spids: [306] ) ] spids: [306] ) (C {(test_fail)} {(subdir_ceil_at_sub_slash)}) (command.If arms: [ (if_arm cond: [(C {(test_have_prereq)} {(SYMLINKS)})] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[326]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/top))} spids: [326] ) ] spids: [326] ) (C {(test_fail)} {(subdir_ceil_at_top)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[338]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/top/))} spids: [338] ) ] spids: [338] ) (C {(test_fail)} {(subdir_ceil_at_top_slash)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[351]) op: Equal rhs: {(DQ (':') ($ VSub_Name '$TRASH_ROOT') (/top))} spids: [351] ) ] spids: [351] ) (C {(test_prefix)} {(subdir_ceil_at_top_no_resolve)} {(DQ (sub/dir/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[368]) op: Equal rhs: {(DQ (':') ($ VSub_Name '$TRASH_ROOT') (/top/))} spids: [368] ) ] spids: [368] ) (C {(test_prefix)} {(subdir_ceil_at_top_slash_no_resolve)} {(DQ (sub/dir/))}) ] spids: [16777215 323] ) ] spids: [16777215 384] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[387]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/sub/dir))} spids: [387] ) ] spids: [387] ) (C {(test_prefix)} {(subdir_ceil_at_subdir)} {(DQ (sub/dir/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[402]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/sub/dir/))} spids: [402] ) ] spids: [402] ) (C {(test_prefix)} {(subdir_ceil_at_subdir_slash)} {(DQ (sub/dir/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[418]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/su))} spids: [418] ) ] spids: [418] ) (C {(test_prefix)} {(subdir_ceil_at_su)} {(DQ (sub/dir/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[433]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/su/))} spids: [433] ) ] spids: [433] ) (C {(test_prefix)} {(subdir_ceil_at_su_slash)} {(DQ (sub/dir/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[448]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/sub/di))} spids: [448] ) ] spids: [448] ) (C {(test_prefix)} {(subdir_ceil_at_sub_di)} {(DQ (sub/dir/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[463]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/sub/di))} spids: [463] ) ] spids: [463] ) (C {(test_prefix)} {(subdir_ceil_at_sub_di_slash)} {(DQ (sub/dir/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[478]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/subdi))} spids: [478] ) ] spids: [478] ) (C {(test_prefix)} {(subdir_ceil_at_subdi)} {(DQ (sub/dir/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[493]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/subdi))} spids: [493] ) ] spids: [493] ) (C {(test_prefix)} {(subdir_ceil_at_subdi_slash)} {(DQ (sub/dir/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[509]) op: Equal rhs: {(DQ ('/foo:') ($ VSub_Name '$TRASH_ROOT') (/sub))} spids: [509] ) ] spids: [509] ) (C {(test_fail)} {(second_of_two)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[521]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') ('/sub:/bar'))} spids: [521] ) ] spids: [521] ) (C {(test_fail)} {(first_of_two)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[532]) op: Equal rhs: {(DQ ('/foo:') ($ VSub_Name '$TRASH_ROOT') ('/sub:/bar'))} spids: [532] ) ] spids: [532] ) (C {(test_fail)} {(second_of_three)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[545]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/sub))} spids: [545] ) ] spids: [545] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_DIR spids:[551]) op: Equal rhs: {(../../.git)} spids: [551] ) ] spids: [551] ) (C {(export)} {(GIT_DIR)}) (C {(test_prefix)} {(git_dir_specified)} {(DQ )}) (C {(unset)} {(GIT_DIR)}) (command.AndOr ops: [Op_DPipe] children: [(C {(cd)} {(../..)}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(mkdir)} {(-p)} {(s/d)}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) (command.AndOr ops: [Op_DPipe] children: [(C {(cd)} {(s/d)}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})] ) (C {(unset)} {(GIT_CEILING_DIRECTORIES)}) (C {(test_prefix)} {(sd_no_ceil)} {(DQ (s/d/))}) (C {(export)} {(GIT_CEILING_DIRECTORIES)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[622]) op: Equal rhs: {(DQ )} spids: [622] ) ] spids: [622] ) (C {(test_prefix)} {(sd_ceil_empty)} {(DQ (s/d/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[635]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT'))} spids: [635] ) ] spids: [635] ) (C {(test_fail)} {(sd_ceil_at_trash)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[645]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/))} spids: [645] ) ] spids: [645] ) (C {(test_fail)} {(sd_ceil_at_trash_slash)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[656]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/s))} spids: [656] ) ] spids: [656] ) (C {(test_fail)} {(sd_ceil_at_s)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[667]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/s/))} spids: [667] ) ] spids: [667] ) (C {(test_fail)} {(sd_ceil_at_s_slash)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[678]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/s/d))} spids: [678] ) ] spids: [678] ) (C {(test_prefix)} {(sd_ceil_at_sd)} {(DQ (s/d/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[693]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/s/d/))} spids: [693] ) ] spids: [693] ) (C {(test_prefix)} {(sd_ceil_at_sd_slash)} {(DQ (s/d/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[709]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/su))} spids: [709] ) ] spids: [709] ) (C {(test_prefix)} {(sd_ceil_at_su)} {(DQ (s/d/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[724]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/su/))} spids: [724] ) ] spids: [724] ) (C {(test_prefix)} {(sd_ceil_at_su_slash)} {(DQ (s/d/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[739]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/s/di))} spids: [739] ) ] spids: [739] ) (C {(test_prefix)} {(sd_ceil_at_s_di)} {(DQ (s/d/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[754]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/s/di))} spids: [754] ) ] spids: [754] ) (C {(test_prefix)} {(sd_ceil_at_s_di_slash)} {(DQ (s/d/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[769]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/sdi))} spids: [769] ) ] spids: [769] ) (C {(test_prefix)} {(sd_ceil_at_sdi)} {(DQ (s/d/))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES spids:[784]) op: Equal rhs: {(DQ ($ VSub_Name '$TRASH_ROOT') (/sdi))} spids: [784] ) ] spids: [784] ) (C {(test_prefix)} {(sd_ceil_at_sdi_slash)} {(DQ (s/d/))}) (C {(test_done)}) ] )