(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_description) op: Equal rhs: {(SQ <'Tests git rev-list --bisect functionality'>)} ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(.)} {(DQ ($ VSub_DollarName '$TEST_DIRECTORY')) (/lib-t6000.sh)}) (command.FuncDef name: test_bisection_diff body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:_max_diff) op: Equal rhs: {($ VSub_Number '$1')} ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:_bisect_option) op: Equal rhs: {($ VSub_Number '$2')} ) ] ) (C {(shift)} {(2)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:_bisection) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(git)} {(rev-list)} {($ VSub_DollarName '$_bisect_option')} {(DQ ($ VSub_At '$@'))} ) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:_list_size) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(git)} {(rev-list)} {(DQ ($ VSub_At '$@'))}) (C {(wc)} {(-l)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:_head) op: Equal rhs: {($ VSub_Number '$1')} ) ] ) (C {(shift)} {(1)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:_bisection_size) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(git)} {(rev-list)} {($ VSub_DollarName '$_bisection')} {(DQ ($ VSub_At '$@'))} ) (C {(wc)} {(-l)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_DollarName '$_list_size'))} {(-a)} {(-n)} {(DQ ($ VSub_DollarName '$_bisection_size'))} {(Lit_Other ']')} ) (C {(error)} {(DQ ('test_bisection_diff failed'))}) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:_bisect_err) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(expr)} {($ VSub_DollarName '$_list_size')} {(-)} {($ VSub_DollarName '$_bisection_size')} {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\*'>)} {(2)} ) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(test)} {(DQ ($ VSub_DollarName '$_bisect_err'))} {(-lt)} {(0)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:_bisect_err) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(expr)} {(0)} {(-)} {($ VSub_DollarName '$_bisect_err')}) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) ] ) (command.Sentence child: (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:_bisect_err) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(expr)} {($ VSub_DollarName '$_bisect_err')} {(/)} {(2)}) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) terminator: <Op_Semi ';'> ) (C {(test_expect_success)} { (DQ ('bisection diff ') ($ VSub_DollarName '$_bisect_option') (' ') ($ VSub_DollarName '$_head') (' ') ($ VSub_Star '$*') (' <= ') ($ VSub_DollarName '$_max_diff') ) } {(SQ <'test $_bisect_err -le $_max_diff'>)} ) ] ) ) (command.SimpleCommand words: [{(date)}] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(path0)})] ) (C {(git)} {(update-index)} {(--add)} {(path0)}) (C {(save_tag)} {(tree)} {(git)} {(write-tree)}) (C {(on_committer_date)} {(DQ ('00:00'))} {(hide_error)} {(save_tag)} {(root)} {(unique_commit)} {(root)} {(tree)} ) (C {(on_committer_date)} {(DQ ('00:01'))} {(save_tag)} {(l0)} {(unique_commit)} {(l0)} {(tree)} {(-p)} {(root)} ) (C {(on_committer_date)} {(DQ ('00:02'))} {(save_tag)} {(l1)} {(unique_commit)} {(l1)} {(tree)} {(-p)} {(l0)} ) (C {(on_committer_date)} {(DQ ('00:03'))} {(save_tag)} {(l2)} {(unique_commit)} {(l2)} {(tree)} {(-p)} {(l1)} ) (C {(on_committer_date)} {(DQ ('00:04'))} {(save_tag)} {(a0)} {(unique_commit)} {(a0)} {(tree)} {(-p)} {(l2)} ) (C {(on_committer_date)} {(DQ ('00:05'))} {(save_tag)} {(a1)} {(unique_commit)} {(a1)} {(tree)} {(-p)} {(a0)} ) (C {(on_committer_date)} {(DQ ('00:06'))} {(save_tag)} {(b1)} {(unique_commit)} {(b1)} {(tree)} {(-p)} {(a0)} ) (C {(on_committer_date)} {(DQ ('00:07'))} {(save_tag)} {(c1)} {(unique_commit)} {(c1)} {(tree)} {(-p)} {(b1)} ) (C {(on_committer_date)} {(DQ ('00:08'))} {(save_tag)} {(b2)} {(unique_commit)} {(b2)} {(tree)} {(-p)} {(b1)} ) (C {(on_committer_date)} {(DQ ('00:09'))} {(save_tag)} {(b3)} {(unique_commit)} {(b2)} {(tree)} {(-p)} {(b2)} ) (C {(on_committer_date)} {(DQ ('00:10'))} {(save_tag)} {(c2)} {(unique_commit)} {(c2)} {(tree)} {(-p)} {(c1)} {(-p)} {(b2)} ) (C {(on_committer_date)} {(DQ ('00:11'))} {(save_tag)} {(c3)} {(unique_commit)} {(c3)} {(tree)} {(-p)} {(c2)} ) (C {(on_committer_date)} {(DQ ('00:12'))} {(save_tag)} {(a2)} {(unique_commit)} {(a2)} {(tree)} {(-p)} {(a1)} ) (C {(on_committer_date)} {(DQ ('00:13'))} {(save_tag)} {(a3)} {(unique_commit)} {(a3)} {(tree)} {(-p)} {(a2)} ) (C {(on_committer_date)} {(DQ ('00:14'))} {(save_tag)} {(b4)} {(unique_commit)} {(b4)} {(tree)} {(-p)} {(b3)} {(-p)} {(a3)} ) (C {(on_committer_date)} {(DQ ('00:15'))} {(save_tag)} {(a4)} {(unique_commit)} {(a4)} {(tree)} {(-p)} {(a3)} {(-p)} {(b4)} {(-p)} {(c3)} ) (C {(on_committer_date)} {(DQ ('00:16'))} {(save_tag)} {(l3)} {(unique_commit)} {(l3)} {(tree)} {(-p)} {(a4)} ) (C {(on_committer_date)} {(DQ ('00:17'))} {(save_tag)} {(l4)} {(unique_commit)} {(l4)} {(tree)} {(-p)} {(l3)} ) (C {(on_committer_date)} {(DQ ('00:18'))} {(save_tag)} {(l5)} {(unique_commit)} {(l5)} {(tree)} {(-p)} {(l4)} ) (C {(git)} {(update-ref)} {(HEAD)} { (word_part.CommandSubPart command_list: (command.CommandList children:[(C {(tag)} {(l5)})]) left_token: <Left_CommandSub '$('> ) } ) (C {(on_committer_date)} {(DQ ('00:00'))} {(hide_error)} {(save_tag)} {(F)} {(unique_commit)} {(F)} {(tree)} ) (C {(on_committer_date)} {(DQ ('00:01'))} {(save_tag)} {(e8)} {(unique_commit)} {(e8)} {(tree)} {(-p)} {(F)} ) (C {(on_committer_date)} {(DQ ('00:02'))} {(save_tag)} {(e7)} {(unique_commit)} {(e7)} {(tree)} {(-p)} {(e8)} ) (C {(on_committer_date)} {(DQ ('00:03'))} {(save_tag)} {(e6)} {(unique_commit)} {(e6)} {(tree)} {(-p)} {(e7)} ) (C {(on_committer_date)} {(DQ ('00:04'))} {(save_tag)} {(e5)} {(unique_commit)} {(e5)} {(tree)} {(-p)} {(e6)} ) (C {(on_committer_date)} {(DQ ('00:05'))} {(save_tag)} {(f4)} {(unique_commit)} {(f4)} {(tree)} {(-p)} {(F)} ) (C {(on_committer_date)} {(DQ ('00:06'))} {(save_tag)} {(f3)} {(unique_commit)} {(f3)} {(tree)} {(-p)} {(f4)} ) (C {(on_committer_date)} {(DQ ('00:07'))} {(save_tag)} {(f2)} {(unique_commit)} {(f2)} {(tree)} {(-p)} {(f3)} ) (C {(on_committer_date)} {(DQ ('00:08'))} {(save_tag)} {(f1)} {(unique_commit)} {(f1)} {(tree)} {(-p)} {(f2)} ) (C {(on_committer_date)} {(DQ ('00:09'))} {(save_tag)} {(e4)} {(unique_commit)} {(e4)} {(tree)} {(-p)} {(e5)} ) (C {(on_committer_date)} {(DQ ('00:10'))} {(save_tag)} {(e3)} {(unique_commit)} {(e3)} {(tree)} {(-p)} {(e4)} ) (C {(on_committer_date)} {(DQ ('00:11'))} {(save_tag)} {(e2)} {(unique_commit)} {(e2)} {(tree)} {(-p)} {(e3)} ) (C {(on_committer_date)} {(DQ ('00:12'))} {(save_tag)} {(e1)} {(unique_commit)} {(e1)} {(tree)} {(-p)} {(e2)} ) (C {(on_committer_date)} {(DQ ('00:13'))} {(save_tag)} {(E)} {(unique_commit)} {(E)} {(tree)} {(-p)} {(e1)} {(-p)} {(f1)} ) (C {(on_committer_date)} {(DQ ('00:00'))} {(hide_error)} {(save_tag)} {(U)} {(unique_commit)} {(U)} {(tree)} ) (C {(on_committer_date)} {(DQ ('00:01'))} {(save_tag)} {(u0)} {(unique_commit)} {(u0)} {(tree)} {(-p)} {(U)} ) (C {(on_committer_date)} {(DQ ('00:01'))} {(save_tag)} {(u1)} {(unique_commit)} {(u1)} {(tree)} {(-p)} {(u0)} ) (C {(on_committer_date)} {(DQ ('00:02'))} {(save_tag)} {(u2)} {(unique_commit)} {(u2)} {(tree)} {(-p)} {(u0)} ) (C {(on_committer_date)} {(DQ ('00:03'))} {(save_tag)} {(u3)} {(unique_commit)} {(u3)} {(tree)} {(-p)} {(u0)} ) (C {(on_committer_date)} {(DQ ('00:04'))} {(save_tag)} {(u4)} {(unique_commit)} {(u4)} {(tree)} {(-p)} {(u0)} ) (C {(on_committer_date)} {(DQ ('00:05'))} {(save_tag)} {(u5)} {(unique_commit)} {(u5)} {(tree)} {(-p)} {(u0)} ) (C {(on_committer_date)} {(DQ ('00:06'))} {(save_tag)} {(V)} {(unique_commit)} {(V)} {(tree)} {(-p)} {(u1)} {(-p)} {(u2)} {(-p)} {(u3)} {(-p)} {(u4)} {(-p)} {(u5)} ) (command.FuncDef name: test_sequence body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:_bisect_option) op: Equal rhs: {($ VSub_Number '$1')} ) ] ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(l0)} {(Lit_Other '^') (root)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(l1)} {(Lit_Other '^') (root)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(l2)} {(Lit_Other '^') (root)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(a0)} {(Lit_Other '^') (root)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(a1)} {(Lit_Other '^') (root)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(a2)} {(Lit_Other '^') (root)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(a3)} {(Lit_Other '^') (root)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(b1)} {(Lit_Other '^') (root)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(b2)} {(Lit_Other '^') (root)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(b3)} {(Lit_Other '^') (root)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(c1)} {(Lit_Other '^') (root)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(c2)} {(Lit_Other '^') (root)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(c3)} {(Lit_Other '^') (root)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(E)} {(Lit_Other '^') (F)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(e1)} {(Lit_Other '^') (F)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(e2)} {(Lit_Other '^') (F)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(e3)} {(Lit_Other '^') (F)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(e4)} {(Lit_Other '^') (F)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(e5)} {(Lit_Other '^') (F)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(e6)} {(Lit_Other '^') (F)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(e7)} {(Lit_Other '^') (F)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(f1)} {(Lit_Other '^') (F)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(f2)} {(Lit_Other '^') (F)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(f3)} {(Lit_Other '^') (F)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(f4)} {(Lit_Other '^') (F)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(E)} {(Lit_Other '^') (F)} ) (C {(test_bisection_diff)} {(1)} {($ VSub_DollarName '$_bisect_option')} {(V)} {(Lit_Other '^') (U)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(V)} {(Lit_Other '^') (U)} {(Lit_Other '^') (u1)} {(Lit_Other '^') (u2)} {(Lit_Other '^') (u3)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(u1)} {(Lit_Other '^') (U)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(u2)} {(Lit_Other '^') (U)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(u3)} {(Lit_Other '^') (U)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(u4)} {(Lit_Other '^') (U)} ) (C {(test_bisection_diff)} {(0)} {($ VSub_DollarName '$_bisect_option')} {(u5)} {(Lit_Other '^') (U)} ) (command.SimpleCommand words: [ {(test_output_expect_success)} {(DQ ($ VSub_DollarName '$_bisect_option') (' l5 ^root'))} {(SQ <'git rev-list $_bisect_option l5 ^root'>)} ] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 1681 stdin_parts: [('c3\n')] ) ] ) (command.SimpleCommand words: [ {(test_output_expect_success)} {(DQ ($ VSub_DollarName '$_bisect_option') (' l5 ^root ^c3'))} {(SQ <'git rev-list $_bisect_option l5 ^root ^c3'>)} ] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 1699 stdin_parts: [('b4\n')] ) ] ) (command.SimpleCommand words: [ {(test_output_expect_success)} {(DQ ($ VSub_DollarName '$_bisect_option') (' l5 ^root ^c3 ^b4'))} {(SQ <'git rev-list $_bisect_option l5 ^c3 ^b4'>)} ] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 1717 stdin_parts: [('l3\n')] ) ] ) (command.SimpleCommand words: [ {(test_output_expect_success)} {(DQ ($ VSub_DollarName '$_bisect_option') (' l3 ^root ^c3 ^b4'))} {(SQ <'git rev-list $_bisect_option l3 ^root ^c3 ^b4'>)} ] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 1735 stdin_parts: [('a4\n')] ) ] ) (command.SimpleCommand words: [ {(test_output_expect_success)} {(DQ ($ VSub_DollarName '$_bisect_option') (' l5 ^b3 ^a3 ^b4 ^a4'))} {(SQ <'git rev-list $_bisect_option l3 ^b3 ^a3 ^a4'>)} ] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 1753 stdin_parts: [('l3\n')] ) ] ) (command.SimpleCommand words: [ {(test_output_expect_success)} {(DQ ($ VSub_DollarName '$_bisect_option') (' l4 ^a2 ^a3 ^b ^a4'))} {(SQ <'git rev-list $_bisect_option l4 ^a2 ^a3 ^a4'>)} ] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 1781 stdin_parts: [('l3\n')] ) ] ) (command.SimpleCommand words: [ {(test_output_expect_success)} {(DQ ($ VSub_DollarName '$_bisect_option') (' l3 ^a2 ^a3 ^b ^a4'))} {(SQ <'git rev-list $_bisect_option l3 ^a2 ^a3 ^a4'>)} ] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 1799 stdin_parts: [('l3\n')] ) ] ) (command.SimpleCommand words: [ {(test_output_expect_success)} {(DQ ($ VSub_DollarName '$_bisect_option') (' a4 ^a2 ^a3 ^b4'))} {(SQ <'git rev-list $_bisect_option a4 ^a2 ^a3 ^b4'>)} ] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 1831 stdin_parts: [('c2\n')] ) ] ) (command.SimpleCommand words: [ {(test_output_expect_success)} {(DQ ($ VSub_DollarName '$_bisect_option') (' a4 ^a2 ^a3 ^b4 ^c2'))} {(SQ <'git rev-list $_bisect_option a4 ^a2 ^a3 ^b4 ^c2'>)} ] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 1849 stdin_parts: [('c3\n')] ) ] ) (command.SimpleCommand words: [ {(test_output_expect_success)} {(DQ ($ VSub_DollarName '$_bisect_option') (' a4 ^a2 ^a3 ^b4 ^c2 ^c3'))} {(SQ <'git rev-list $_bisect_option a4 ^a2 ^a3 ^b4 ^c2 ^c3'>)} ] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 1867 stdin_parts: [('a4\n')] ) ] ) (command.SimpleCommand words: [ {(test_output_expect_success)} {(DQ ($ VSub_DollarName '$_bisect_option') (' a4 ^a2 ^a3 ^b4'))} {(SQ <'git rev-list $_bisect_option a4 ^a2 ^a3 ^b4'>)} ] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 1899 stdin_parts: [('c2\n')] ) ] ) (command.SimpleCommand words: [ {(test_output_expect_success)} {(DQ ($ VSub_DollarName '$_bisect_option') (' c3 ^a2 ^a3 ^b4 ^c2'))} {(SQ <'git rev-list $_bisect_option c3 ^a2 ^a3 ^b4 ^c2'>)} ] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 1917 stdin_parts: [('c3\n')] ) ] ) ] ) ) (C {(test_sequence)} {(DQ (--bisect))}) (C {(test_done)}) ] )