(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_description) op: Equal rhs: {(SQ <'test GIT_CEILING_DIRECTORIES'>)} ) ] ) (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 '\\"'>) ) } ) ] ) ) (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'>)} ) ] ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:TRASH_ROOT) op: Equal rhs: {(DQ ($ VSub_DollarName '$PWD'))} ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ROOT_PARENT) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(dirname)} {(DQ ($ VSub_DollarName '$TRASH_ROOT'))})] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (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) op:Equal rhs:{(DQ )})] ) (C {(test_prefix)} {(ceil_empty)} {(DQ )}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$ROOT_PARENT'))} ) ] ) (C {(test_prefix)} {(ceil_at_parent)} {(DQ )}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$ROOT_PARENT') (/))} ) ] ) (C {(test_prefix)} {(ceil_at_parent_slash)} {(DQ )}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT'))} ) ] ) (C {(test_prefix)} {(ceil_at_trash)} {(DQ )}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/))} ) ] ) (C {(test_prefix)} {(ceil_at_trash_slash)} {(DQ )}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/sub))} ) ] ) (C {(test_prefix)} {(ceil_at_sub)} {(DQ )}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/sub/))} ) ] ) (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)})] ) ] ) (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) op:Equal rhs:{(DQ )})] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT'))} ) ] ) (C {(test_fail)} {(subdir_ceil_at_trash)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/))} ) ] ) (C {(test_fail)} {(subdir_ceil_at_trash_slash)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/sub))} ) ] ) (C {(test_fail)} {(subdir_ceil_at_sub)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/sub/))} ) ] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/top))} ) ] ) (C {(test_fail)} {(subdir_ceil_at_top)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/top/))} ) ] ) (C {(test_fail)} {(subdir_ceil_at_top_slash)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ (':') ($ VSub_DollarName '$TRASH_ROOT') (/top))} ) ] ) (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) op: Equal rhs: {(DQ (':') ($ VSub_DollarName '$TRASH_ROOT') (/top/))} ) ] ) (C {(test_prefix)} {(subdir_ceil_at_top_slash_no_resolve)} {(DQ (sub/dir/))}) ] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/sub/dir))} ) ] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/sub/dir/))} ) ] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/su))} ) ] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/su/))} ) ] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/sub/di))} ) ] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/sub/di))} ) ] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/subdi))} ) ] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/subdi))} ) ] ) (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) op: Equal rhs: {(DQ ('/foo:') ($ VSub_DollarName '$TRASH_ROOT') (/sub))} ) ] ) (C {(test_fail)} {(second_of_two)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') ('/sub:/bar'))} ) ] ) (C {(test_fail)} {(first_of_two)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ('/foo:') ($ VSub_DollarName '$TRASH_ROOT') ('/sub:/bar'))} ) ] ) (C {(test_fail)} {(second_of_three)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/sub))} ) ] ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:GIT_DIR) op:Equal rhs:{(../../.git)})] ) (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) op:Equal rhs:{(DQ )})] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT'))} ) ] ) (C {(test_fail)} {(sd_ceil_at_trash)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/))} ) ] ) (C {(test_fail)} {(sd_ceil_at_trash_slash)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/s))} ) ] ) (C {(test_fail)} {(sd_ceil_at_s)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/s/))} ) ] ) (C {(test_fail)} {(sd_ceil_at_s_slash)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CEILING_DIRECTORIES) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/s/d))} ) ] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/s/d/))} ) ] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/su))} ) ] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/su/))} ) ] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/s/di))} ) ] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/s/di))} ) ] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/sdi))} ) ] ) (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) op: Equal rhs: {(DQ ($ VSub_DollarName '$TRASH_ROOT') (/sdi))} ) ] ) (C {(test_prefix)} {(sd_ceil_at_sdi_slash)} {(DQ (s/d/))}) (C {(test_done)}) ] )