|  line  | 
 true  | 
 false  | 
 branch  | 
 
| 
11
 | 
 1  | 
 5  | 
 exists $$args_hr{'auto_rollback'} && defined $$args_hr{'auto_rollback'} ? :  | 
 
| 
 | 
 1  | 
 5  | 
 ref $$args_hr{'step_stack'} eq 'ARRAY' ? :  | 
 
| 
 | 
 0  | 
 6  | 
 ref $$args_hr{'global_data'} eq 'HASH' ? :  | 
 
| 
27
 | 
 2  | 
 4  | 
 if (exists $$args_hr{'set_steps_from_class'})  | 
 
| 
28
 | 
 1  | 
 1  | 
 ref $$args_hr{'set_steps_from_class'} eq 'ARRAY' ? :  | 
 
| 
36
 | 
 11  | 
 0  | 
 @steps == 1 && ref $steps[0] eq 'ARRAY' ? :  | 
 
| 
43
 | 
 11  | 
 0  | 
 if (not ref $class and $class =~ /\A[a-zA-Z0-9_]+(?:\:\:[a-zA-Z0-9_]+)*\z/)  | 
 
| 
47
 | 
 11  | 
 0  | 
 if ($class->can('get_class_action_steps')) { }  | 
 
| 
67
 | 
 0  | 
 0  | 
 @steps == 1 && ref $steps[0] eq 'ARRAY' ? :  | 
 
| 
74
 | 
 0  | 
 0  | 
 if (not ref $class and $class =~ /\A[a-zA-Z0-9_]+(?:\:\:[a-zA-Z0-9_]+)*\z/)  | 
 
| 
78
 | 
 0  | 
 0  | 
 if ($class->can('get_class_action_steps')) { }  | 
 
| 
92
 | 
 0  | 
 0  | 
 @steps == 1 && ref $steps[0] eq 'ARRAY' ? :  | 
 
| 
99
 | 
 0  | 
 0  | 
 if (not ref $class and $class =~ /\A[a-zA-Z0-9_]+(?:\:\:[a-zA-Z0-9_]+)*\z/)  | 
 
| 
103
 | 
 0  | 
 0  | 
 if ($class->can('get_class_action_steps')) { }  | 
 
| 
118
 | 
 0  | 
 1  | 
 unless $class  | 
 
| 
166
 | 
 4  | 
 11  | 
 if exists $$self{'_execute'} and not $$self{'_execute'}  | 
 
| 
167
 | 
 3  | 
 12  | 
 if $$self{'_needs_reset'}++  | 
 
| 
168
 | 
 0  | 
 15  | 
 if $$self{'_execute'} or $$self{'_rollback'}  | 
 
| 
170
 | 
 1  | 
 14  | 
 if $$self{'enable_cwd'}  | 
 
| 
179
 | 
 9  | 
 46  | 
 if (not $ref) { }  | 
 
| 
 | 
 1  | 
 45  | 
 elsif ($ref eq 'ARRAY') { }  | 
 
| 
188
 | 
 10  | 
 45  | 
 if (not $step->execute($$self{'global_data'}, @step_args)) { }  | 
 
| 
189
 | 
 5  | 
 5  | 
 if ($step->retry_execute($$self{'global_data'}, @step_args)) { }  | 
 
| 
190
 | 
 0  | 
 5  | 
 if exists $$step{'last_errstr'}  | 
 
| 
198
 | 
 0  | 
 5  | 
 if exists $$step{'last_errstr'}  | 
 
| 
211
 | 
 0  | 
 45  | 
 if exists $$step{'last_errstr'}  | 
 
| 
218
 | 
 5  | 
 10  | 
 if ($execute_failed)  | 
 
| 
219
 | 
 3  | 
 2  | 
 if $$self{'auto_rollback'}  | 
 
| 
230
 | 
 9  | 
 2  | 
 unless ($$self{'__rollback_is_undo'})  | 
 
| 
231
 | 
 2  | 
 7  | 
 unless exists $$self{'_execute'} and $$self{'_execute'}  | 
 
| 
232
 | 
 1  | 
 6  | 
 if exists $$self{'_rollback'} and not $$self{'_rollback'}  | 
 
| 
233
 | 
 1  | 
 5  | 
 if $$self{'_rollback'}++  | 
 
| 
242
 | 
 0  | 
 23  | 
 if (not $ref) { }  | 
 
| 
 | 
 0  | 
 23  | 
 elsif ($ref eq 'ARRAY') { }  | 
 
| 
251
 | 
 6  | 
 17  | 
 if (not $step->undo($$self{'global_data'}, @step_args)) { }  | 
 
| 
252
 | 
 3  | 
 3  | 
 if ($step->retry_undo($$self{'global_data'}, @step_args)) { }  | 
 
| 
253
 | 
 0  | 
 3  | 
 if exists $$step{'last_errstr'}  | 
 
| 
255
 | 
 0  | 
 3  | 
 $$self{'_rollback_is_undo'} ? :  | 
 
| 
268
 | 
 0  | 
 3  | 
 if exists $$step{'last_errstr'}  | 
 
| 
270
 | 
 0  | 
 3  | 
 $$self{'_rollback_is_undo'} ? :  | 
 
| 
281
 | 
 0  | 
 17  | 
 if exists $$step{'last_errstr'}  | 
 
| 
283
 | 
 0  | 
 17  | 
 $$self{'_rollback_is_undo'} ? :  | 
 
| 
288
 | 
 3  | 
 4  | 
 if $rollback_failed  | 
 
| 
296
 | 
 1  | 
 2  | 
 if not exists $$self{'_execute'} or $$self{'_execute'} or not $self->is_at_end  | 
 
| 
302
 | 
 1  | 
 1  | 
 if $rc  | 
 
| 
303
 | 
 1  | 
 1  | 
 if $rc  | 
 
| 
308
 | 
 0  | 
 0  | 
 if $_[0]{'_execute'}  | 
 
| 
313
 | 
 0  | 
 0  | 
 if exists $_[0]{'_execute'}  | 
 
| 
318
 | 
 0  | 
 0  | 
 if $_[0]{'_rollback'}  | 
 
| 
323
 | 
 0  | 
 0  | 
 if exists $_[0]{'_rollback'}  | 
 
| 
328
 | 
 1  | 
 2  | 
 if $_[0]{'_undo'}  | 
 
| 
333
 | 
 2  | 
 2  | 
 if exists $_[0]{'_undo'}  | 
 
| 
342
 | 
 5  | 
 3  | 
 unless exists $_[0]{'starting_cwd'}  | 
 
| 
350
 | 
 1  | 
 2  | 
 if $current  | 
 
| 
359
 | 
 3  | 
 58  | 
 unless ($stack_length)  | 
 
| 
367
 | 
 8  | 
 50  | 
 if $self->is_at_end  | 
 
| 
369
 | 
 13  | 
 37  | 
 if ($self->is_at_start)  | 
 
| 
374
 | 
 8  | 
 42  | 
 if ($$self{'current_step'} == $stack_length - 1)  | 
 
| 
388
 | 
 1  | 
 24  | 
 unless ($stack_length)  | 
 
| 
396
 | 
 4  | 
 20  | 
 if $self->is_at_start  | 
 
| 
398
 | 
 2  | 
 18  | 
 if ($self->is_at_end)  | 
 
| 
405
 | 
 4  | 
 16  | 
 if ($$self{'current_step'} < 0)  | 
 
| 
415
 | 
 17  | 
 57  | 
 unless defined $_[0]{'current_step'}  | 
 
| 
420
 | 
 12  | 
 68  | 
 if defined $_[0]{'current_step'} and $_[0]{'current_step'} eq ''  |