(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ <'Tests git rev-list --bisect functionality'>)} spids: [12] ) ] ) (C {<.>} {<'./test-lib.sh'>}) (C {<.>} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) <'/lib-t6000.sh'>}) (command.ShFunction name: test_bisection_diff body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_max_diff) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [52] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_bisect_option) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [56] ) ] ) (C {<shift>} {<2>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_bisection) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<git>} {<rev-list>} {($ Id.VSub_DollarName '$_bisect_option')} {(DQ ($ Id.VSub_At '$@'))} ) ) } spids: [65] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_list_size) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<git>} {<rev-list>} {(DQ ($ Id.VSub_At '$@'))}) (C {<wc>} {<-l>}) ] negated: F ) ) } spids: [79] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_head) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [97] ) ] ) (C {<shift>} {<1>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_bisection_size) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<git>} {<rev-list>} {($ Id.VSub_DollarName '$_bisection')} {(DQ ($ Id.VSub_At '$@'))} ) (C {<wc>} {<-l>}) ] negated: F ) ) } spids: [106] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$_list_size'))} {<-a>} {<-n>} {(DQ ($ Id.VSub_DollarName '$_bisection_size'))} {<Id.Lit_RBracket ']'>} ) (C {<error>} {(DQ <'test_bisection_diff failed'>)}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_bisect_err) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<expr>} {($ Id.VSub_DollarName '$_list_size')} {<->} {($ Id.VSub_DollarName '$_bisection_size')} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>)} {<2>} ) ) } spids: [167] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$_bisect_err'))} {<-lt>} {<0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_bisect_err) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<expr>} {<0>} {<->} {($ Id.VSub_DollarName '$_bisect_err')}) ) } spids: [195] ) ] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_bisect_err) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<expr>} {($ Id.VSub_DollarName '$_bisect_err')} {<'/'>} {<2>}) ) } spids: [207] ) ] ) terminator: <Id.Op_Semi _> ) (C {<test_expect_success>} { (DQ <'bisection diff '> ($ Id.VSub_DollarName '$_bisect_option') <' '> ($ Id.VSub_DollarName '$_head') <' '> ($ Id.VSub_Star '$*') <' <= '> ($ Id.VSub_DollarName '$_max_diff') ) } {(SQ <'test $_bisect_err -le $_max_diff'>)} ) ] ) ) (command.Simple words: [{<date>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<path0>})] do_fork: T ) (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>} {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<tag>} {<l5>}))} ) (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.ShFunction name: test_sequence body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_bisect_option) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1226] ) ] ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<l0>} {<Id.Lit_Other '^'> <root>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<l1>} {<Id.Lit_Other '^'> <root>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<l2>} {<Id.Lit_Other '^'> <root>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<a0>} {<Id.Lit_Other '^'> <root>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<a1>} {<Id.Lit_Other '^'> <root>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<a2>} {<Id.Lit_Other '^'> <root>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<a3>} {<Id.Lit_Other '^'> <root>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<b1>} {<Id.Lit_Other '^'> <root>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<b2>} {<Id.Lit_Other '^'> <root>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<b3>} {<Id.Lit_Other '^'> <root>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<c1>} {<Id.Lit_Other '^'> <root>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<c2>} {<Id.Lit_Other '^'> <root>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<c3>} {<Id.Lit_Other '^'> <root>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<E>} {<Id.Lit_Other '^'> <F>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<e1>} {<Id.Lit_Other '^'> <F>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<e2>} {<Id.Lit_Other '^'> <F>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<e3>} {<Id.Lit_Other '^'> <F>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<e4>} {<Id.Lit_Other '^'> <F>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<e5>} {<Id.Lit_Other '^'> <F>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<e6>} {<Id.Lit_Other '^'> <F>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<e7>} {<Id.Lit_Other '^'> <F>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<f1>} {<Id.Lit_Other '^'> <F>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<f2>} {<Id.Lit_Other '^'> <F>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<f3>} {<Id.Lit_Other '^'> <F>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<f4>} {<Id.Lit_Other '^'> <F>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<E>} {<Id.Lit_Other '^'> <F>} ) (C {<test_bisection_diff>} {<1>} {($ Id.VSub_DollarName '$_bisect_option')} {<V>} {<Id.Lit_Other '^'> <U>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<V>} {<Id.Lit_Other '^'> <U>} {<Id.Lit_Other '^'> <u1>} {<Id.Lit_Other '^'> <u2>} {<Id.Lit_Other '^'> <u3>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<u1>} {<Id.Lit_Other '^'> <U>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<u2>} {<Id.Lit_Other '^'> <U>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<u3>} {<Id.Lit_Other '^'> <U>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<u4>} {<Id.Lit_Other '^'> <U>} ) (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<u5>} {<Id.Lit_Other '^'> <U>} ) (command.Simple words: [ {<test_output_expect_success>} {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' l5 ^root'>)} {(SQ <'git rev-list $_bisect_option l5 ^root'>)} ] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 1681 stdin_parts: [<'c3\n'>] ) ) ] do_fork: T ) (command.Simple words: [ {<test_output_expect_success>} {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' l5 ^root ^c3'>)} {(SQ <'git rev-list $_bisect_option l5 ^root ^c3'>)} ] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 1699 stdin_parts: [<'b4\n'>] ) ) ] do_fork: T ) (command.Simple words: [ {<test_output_expect_success>} {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' l5 ^root ^c3 ^b4'>)} {(SQ <'git rev-list $_bisect_option l5 ^c3 ^b4'>)} ] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 1717 stdin_parts: [<'l3\n'>] ) ) ] do_fork: T ) (command.Simple words: [ {<test_output_expect_success>} {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' l3 ^root ^c3 ^b4'>)} {(SQ <'git rev-list $_bisect_option l3 ^root ^c3 ^b4'>)} ] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 1735 stdin_parts: [<'a4\n'>] ) ) ] do_fork: T ) (command.Simple words: [ {<test_output_expect_success>} {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' l5 ^b3 ^a3 ^b4 ^a4'>)} {(SQ <'git rev-list $_bisect_option l3 ^b3 ^a3 ^a4'>)} ] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 1753 stdin_parts: [<'l3\n'>] ) ) ] do_fork: T ) (command.Simple words: [ {<test_output_expect_success>} {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' l4 ^a2 ^a3 ^b ^a4'>)} {(SQ <'git rev-list $_bisect_option l4 ^a2 ^a3 ^a4'>)} ] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 1781 stdin_parts: [<'l3\n'>] ) ) ] do_fork: T ) (command.Simple words: [ {<test_output_expect_success>} {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' l3 ^a2 ^a3 ^b ^a4'>)} {(SQ <'git rev-list $_bisect_option l3 ^a2 ^a3 ^a4'>)} ] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 1799 stdin_parts: [<'l3\n'>] ) ) ] do_fork: T ) (command.Simple words: [ {<test_output_expect_success>} {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' a4 ^a2 ^a3 ^b4'>)} {(SQ <'git rev-list $_bisect_option a4 ^a2 ^a3 ^b4'>)} ] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 1831 stdin_parts: [<'c2\n'>] ) ) ] do_fork: T ) (command.Simple words: [ {<test_output_expect_success>} {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' a4 ^a2 ^a3 ^b4 ^c2'>)} {(SQ <'git rev-list $_bisect_option a4 ^a2 ^a3 ^b4 ^c2'>)} ] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 1849 stdin_parts: [<'c3\n'>] ) ) ] do_fork: T ) (command.Simple words: [ {<test_output_expect_success>} {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' a4 ^a2 ^a3 ^b4 ^c2 ^c3'>)} {(SQ <'git rev-list $_bisect_option a4 ^a2 ^a3 ^b4 ^c2 ^c3'>)} ] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 1867 stdin_parts: [<'a4\n'>] ) ) ] do_fork: T ) (command.Simple words: [ {<test_output_expect_success>} {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' a4 ^a2 ^a3 ^b4'>)} {(SQ <'git rev-list $_bisect_option a4 ^a2 ^a3 ^b4'>)} ] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 1899 stdin_parts: [<'c2\n'>] ) ) ] do_fork: T ) (command.Simple words: [ {<test_output_expect_success>} {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' c3 ^a2 ^a3 ^b4 ^c2'>)} {(SQ <'git rev-list $_bisect_option c3 ^a2 ^a3 ^b4 ^c2'>)} ] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 1917 stdin_parts: [<'c3\n'>] ) ) ] do_fork: T ) ] ) ) (C {<test_sequence>} {(DQ <--bisect>)}) (C {<test_done>}) ] )