(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ <'hunk edit with "commit -p -m"'>)} spids: [4] ) ] ) (C {<.>} {<'./test-lib.sh'>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [(command.Pipeline children:[(C {<test_have_prereq>} {<PERL>})] negated:T)] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:skip_all) op: assign_op.Equal rhs: { (DQ <'skipping \''> ($ Id.VSub_DollarName '$test_description') <'\' tests, perl not available'> ) } spids: [25] ) ] ) (C {<test_done>}) ] spids: [14 22] ) ] ) (C {<test_expect_success>} {(SQ <'setup (initial)'>)} {(SQ <'\n'> <'\techo line1 >file &&\n'> <'\tgit add file &&\n'> <'\tgit commit -m commit1\n'>)} ) (C {<test_expect_success>} {(SQ <'edit hunk "commit -p -m message"'>)} { (SQ <'\n'> <'\ttest_when_finished "rm -f editor_was_started" &&\n'> <'\trm -f editor_was_started &&\n'> <'\techo more >>file &&\n'> <'\techo e | env GIT_EDITOR=": >editor_was_started" git commit -p -m commit2 file &&\n'> <'\ttest -r editor_was_started\n'> ) } ) (C {<test_expect_success>} {(SQ <'edit hunk "commit --dry-run -p -m message"'>)} { (SQ <'\n'> <'\ttest_when_finished "rm -f editor_was_started" &&\n'> <'\trm -f editor_was_started &&\n'> <'\techo more >>file &&\n'> <'\techo e | env GIT_EDITOR=": >editor_was_started" git commit -p -m commit3 file &&\n'> <'\ttest -r editor_was_started\n'> ) } ) (C {<test_done>}) ] )