(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ <'test GIT_CEILING_DIRECTORIES'>)} spids: [4] ) ] ) (C {<.>} {<'./test-lib.sh'>}) (command.ShFunction name: test_prefix body: (BraceGroup children: [ (C {<test_expect_success>} {(DQ ($ Id.VSub_Number '$1'))} { (DQ <'test \''> ($ Id.VSub_Number '$2') <'\' = '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'(git rev-parse --show-prefix)'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } ) ] ) ) (command.ShFunction name: test_fail body: (BraceGroup children: [ (C {<test_expect_success>} {(DQ ($ Id.VSub_Number '$1') <': prefix'>)} {(SQ <'\n'> <'\t\ttest_expect_code 128 git rev-parse --show-prefix\n'> <'\t'>)} ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TRASH_ROOT) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$PWD'))} spids: [65] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ROOT_PARENT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT'))}) ) } spids: [70] ) ] ) (C {<unset>} {<GIT_CEILING_DIRECTORIES>}) (C {<test_prefix>} {<no_ceil>} {(DQ )}) (C {<export>} {<GIT_CEILING_DIRECTORIES>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ )} spids: [98] ) ] ) (C {<test_prefix>} {<ceil_empty>} {(DQ )}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$ROOT_PARENT'))} spids: [110] ) ] ) (C {<test_prefix>} {<ceil_at_parent>} {(DQ )}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$ROOT_PARENT') <'/'>)} spids: [123] ) ] ) (C {<test_prefix>} {<ceil_at_parent_slash>} {(DQ )}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT'))} spids: [137] ) ] ) (C {<test_prefix>} {<ceil_at_trash>} {(DQ )}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/'>)} spids: [150] ) ] ) (C {<test_prefix>} {<ceil_at_trash_slash>} {(DQ )}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/sub'>)} spids: [164] ) ] ) (C {<test_prefix>} {<ceil_at_sub>} {(DQ )}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/sub/'>)} spids: [178] ) ] ) (C {<test_prefix>} {<ceil_at_sub_slash>} {(DQ )}) (command.If arms: [ (if_arm cond: (condition.Shell commands:[(C {<test_have_prereq>} {<SYMLINKS>})]) action: [(C {<ln>} {<-s>} {<sub>} {<top>})] spids: [192 198] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {<-p>} {<'sub/dir'>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cd>} {<'sub/dir'>}) (command.ControlFlow token:<Id.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.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ )} spids: [253] ) ] ) (C {<test_prefix>} {<subdir_ceil_empty>} {(DQ <'sub/dir/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT'))} spids: [266] ) ] ) (C {<test_fail>} {<subdir_ceil_at_trash>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/'>)} spids: [276] ) ] ) (C {<test_fail>} {<subdir_ceil_at_trash_slash>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/sub'>)} spids: [287] ) ] ) (C {<test_fail>} {<subdir_ceil_at_sub>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/sub/'>)} spids: [298] ) ] ) (C {<test_fail>} {<subdir_ceil_at_sub_slash>}) (command.If arms: [ (if_arm cond: (condition.Shell commands:[(C {<test_have_prereq>} {<SYMLINKS>})]) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/top'>)} spids: [318] ) ] ) (C {<test_fail>} {<subdir_ceil_at_top>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/top/'>)} spids: [330] ) ] ) (C {<test_fail>} {<subdir_ceil_at_top_slash>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ <':'> ($ Id.VSub_DollarName '$TRASH_ROOT') <'/top'>)} spids: [343] ) ] ) (C {<test_prefix>} {<subdir_ceil_at_top_no_resolve>} {(DQ <'sub/dir/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ <':'> ($ Id.VSub_DollarName '$TRASH_ROOT') <'/top/'>)} spids: [360] ) ] ) (C {<test_prefix>} {<subdir_ceil_at_top_slash_no_resolve>} {(DQ <'sub/dir/'>)}) ] spids: [309 315] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/sub/dir'>)} spids: [379] ) ] ) (C {<test_prefix>} {<subdir_ceil_at_subdir>} {(DQ <'sub/dir/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/sub/dir/'>)} spids: [394] ) ] ) (C {<test_prefix>} {<subdir_ceil_at_subdir_slash>} {(DQ <'sub/dir/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/su'>)} spids: [410] ) ] ) (C {<test_prefix>} {<subdir_ceil_at_su>} {(DQ <'sub/dir/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/su/'>)} spids: [425] ) ] ) (C {<test_prefix>} {<subdir_ceil_at_su_slash>} {(DQ <'sub/dir/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/sub/di'>)} spids: [440] ) ] ) (C {<test_prefix>} {<subdir_ceil_at_sub_di>} {(DQ <'sub/dir/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/sub/di'>)} spids: [455] ) ] ) (C {<test_prefix>} {<subdir_ceil_at_sub_di_slash>} {(DQ <'sub/dir/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/subdi'>)} spids: [470] ) ] ) (C {<test_prefix>} {<subdir_ceil_at_subdi>} {(DQ <'sub/dir/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/subdi'>)} spids: [485] ) ] ) (C {<test_prefix>} {<subdir_ceil_at_subdi_slash>} {(DQ <'sub/dir/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ <'/foo:'> ($ Id.VSub_DollarName '$TRASH_ROOT') <'/sub'>)} spids: [501] ) ] ) (C {<test_fail>} {<second_of_two>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/sub:/bar'>)} spids: [513] ) ] ) (C {<test_fail>} {<first_of_two>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ <'/foo:'> ($ Id.VSub_DollarName '$TRASH_ROOT') <'/sub:/bar'>)} spids: [524] ) ] ) (C {<test_fail>} {<second_of_three>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/sub'>)} spids: [537] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_DIR) op: assign_op.Equal rhs: {<'../../.git'>} spids: [543] ) ] ) (C {<export>} {<GIT_DIR>}) (C {<test_prefix>} {<git_dir_specified>} {(DQ )}) (C {<unset>} {<GIT_DIR>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cd>} {<'../..'>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {<-p>} {<'s/d'>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cd>} {<'s/d'>}) (command.ControlFlow token:<Id.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.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ )} spids: [614] ) ] ) (C {<test_prefix>} {<sd_ceil_empty>} {(DQ <'s/d/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT'))} spids: [627] ) ] ) (C {<test_fail>} {<sd_ceil_at_trash>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/'>)} spids: [637] ) ] ) (C {<test_fail>} {<sd_ceil_at_trash_slash>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/s'>)} spids: [648] ) ] ) (C {<test_fail>} {<sd_ceil_at_s>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/s/'>)} spids: [659] ) ] ) (C {<test_fail>} {<sd_ceil_at_s_slash>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/s/d'>)} spids: [670] ) ] ) (C {<test_prefix>} {<sd_ceil_at_sd>} {(DQ <'s/d/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/s/d/'>)} spids: [685] ) ] ) (C {<test_prefix>} {<sd_ceil_at_sd_slash>} {(DQ <'s/d/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/su'>)} spids: [701] ) ] ) (C {<test_prefix>} {<sd_ceil_at_su>} {(DQ <'s/d/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/su/'>)} spids: [716] ) ] ) (C {<test_prefix>} {<sd_ceil_at_su_slash>} {(DQ <'s/d/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/s/di'>)} spids: [731] ) ] ) (C {<test_prefix>} {<sd_ceil_at_s_di>} {(DQ <'s/d/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/s/di'>)} spids: [746] ) ] ) (C {<test_prefix>} {<sd_ceil_at_s_di_slash>} {(DQ <'s/d/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/sdi'>)} spids: [761] ) ] ) (C {<test_prefix>} {<sd_ceil_at_sdi>} {(DQ <'s/d/'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_CEILING_DIRECTORIES) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_ROOT') <'/sdi'>)} spids: [776] ) ] ) (C {<test_prefix>} {<sd_ceil_at_sdi_slash>} {(DQ <'s/d/'>)}) (C {<test_done>}) ] )