(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_CEILING_DIRECTORIES' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShFunction name: test_prefix body: (command.BraceGroup children: [ (C {(test_expect_success)} {(DQ ($ Id.VSub_Number '$1'))} { (DQ ("test '") ($ Id.VSub_Number '$2') ("' = ") (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:33) ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\$' span_id:34)) ('(git rev-parse --show-prefix)') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:36)) ) } ) ] ) ) (command.ShFunction name: test_fail body: (command.BraceGroup children: [ (C {(test_expect_success)} {(DQ ($ Id.VSub_Number '$1') (': prefix'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:57) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 128 git rev-parse --show-prefix\n' span_id: 58 ) (Token id:Id.Lit_Chars val:'\t' span_id:59) ) } ) ] ) ) (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: (Token id:Id.Left_DollarParen val:'$(' span_id:71) command_list: (command.CommandList children: [(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: [(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: (Token id:Id.ControlFlow_Exit val:exit span_id:220) arg_word: {(1)} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(cd)} {(sub/dir)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:230) 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: [(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: (Token id:Id.ControlFlow_Exit val:exit span_id:569) arg_word: {(1)} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(mkdir)} {(-p)} {(s/d)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:581) arg_word: {(1)} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(cd)} {(s/d)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:591) 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)}) ] )