Branch Coverage

blib/lib/Test/Perinci/Tx/Manager.pm
Criterion Covered Total %
branch 115 164 70.1


line true false branch
29 0 7 unless my $tmpdir = $targs{'tmpdir'}
30 0 7 unless my $reset_state = $targs{'reset_state'}
33 0 7 if ($targs{'reset_db_dir'})
45 0 202 unless &blessed($tm)
68 2 5 if ($res->[0] == 200)
69 1 1 if ($res->[3]{'do_actions'}) { }
84 0 7 unless (&is($res->[0], 200, 'begin_tx succeeds'))
92 0 7 unless (&is($res->[0], $estatus, "status is $estatus"))
96 4 3 unless ($estatus == 200)
99 0 3 unless (&is($res->[0], 200, 'commit_tx succeeds'))
106 0 7 if $targs{'after_do'}
107 4 3 if $done_testing or not 'Test::More'->builder->is_passing
115 0 3 unless (&is($res->[0], 304, 'status is 304'))
121 0 3 unless (&is($res->[0], 200, 'rollback_tx succeeds'))
126 0 3 if $done_testing or not 'Test::More'->builder->is_passing
130 0 3 if $targs{'before_undo'}
135 0 3 unless (&is($res->[0], $estatus, "status is $estatus"))
139 0 3 unless ($estatus == 200)
141 0 3 unless &is($res->[2][0]{'tx_status'}, 'U', 'transaction status is U')
145 0 3 if $targs{'after_undo'}
146 0 3 if $done_testing or not 'Test::More'->builder->is_passing
159 12 2 $has_do_actions ? :
0 14 unless $nl <= ($has_do_actions ? 2 : 1)
160 7 7 if $args{'which'} eq 'rollback'
161 7 0 if $args{'which'} eq 'action'
162 3 1 $has_do_actions ? :
4 3 if ($ja == $i and $nl == ($has_do_actions ? 2 : 1))
179 0 4 unless &is($res->[2][0]{'tx_status'}, 'R', 'transaction status is R')
184 1 2 if not $num_actions
186 0 3 if $done_testing or not 'Test::More'->builder->is_passing
196 3 7 if $last
203 21 4 $has_do_actions ? :
0 25 unless $nl <= ($has_do_actions ? 2 : 1)
204 14 11 if ($args{'which'} eq 'action')
207 8 6 unless ++$ja >= $num_actions
210 11 0 if $args{'which'} eq 'rollback'
211 4 7 if ($jrb == $i)
221 3 4 unless ($crashed)
231 0 4 unless &is($res->[2][0]{'tx_status'}, 'X', 'transaction status is X')
237 0 3 if $done_testing or not 'Test::More'->builder->is_passing
243 0 3 unless (&is($res->[0], 200, 'redo succeeds'))
248 0 3 unless &is($res->[2][0]{'tx_status'}, 'C', 'transaction status is C')
251 0 3 if $done_testing or not 'Test::More'->builder->is_passing
255 0 3 if $targs{'before_undo'}
259 0 3 unless (&is($res->[0], 200, 'undo succeeds'))
264 0 3 unless &is($res->[2][0]{'tx_status'}, 'U', 'transaction status is U')
267 0 3 if $done_testing or not 'Test::More'->builder->is_passing
269 0 3 if $targs{'after_undo'}
283 0 4 unless &is($res->[2][0]{'tx_status'}, 'C', 'transaction status is C')
292 0 14 unless $args{'which'} eq 'undo'
293 4 10 if (++$ju == $i)
311 0 4 unless &is($res->[2][0]{'tx_status'}, 'U', 'transaction status is U')
316 1 2 if not $num_undo_actions
318 0 3 if $done_testing or not 'Test::More'->builder->is_passing
328 3 7 if $last
338 0 7 unless &is($res->[2][0]{'tx_status'}, 'C', 'transaction status is C')
345 15 11 if ($args{'which'} eq 'undo') { }
11 0 elsif ($args{'which'} eq 'rollback') { }
347 6 9 if (++$ju == $num_undo_actions)
353 4 7 if (++$jrb == $i)
363 3 4 unless ($crashed)
373 0 4 unless &is($res->[2][0]{'tx_status'}, 'X', 'transaction status is X')
378 1 2 if not $num_undo_actions
380 0 3 if $done_testing or not 'Test::More'->builder->is_passing
390 3 8 if $last
401 0 8 unless &is($res->[2][0]{'tx_status'}, 'U', 'transaction status is U')
410 0 21 unless $args{'which'} eq 'redo'
411 5 16 if (++$jrd == $i)
420 3 5 unless ($crashed)
430 0 5 unless &is($res->[2][0]{'tx_status'}, 'C', 'transaction status is C')
435 1 2 if not $num_actions
437 0 3 if $done_testing or not 'Test::More'->builder->is_passing
447 3 7 if $last
458 0 7 unless &is($res->[2][0]{'tx_status'}, 'U', 'transaction status is U')
465 15 11 if ($args{'which'} eq 'redo') { }
11 0 elsif ($args{'which'} eq 'rollback') { }
467 6 9 if (++$jrd == $num_actions)
473 4 7 if (++$jrb == $i)
483 3 4 unless ($crashed)
493 0 4 unless &is($res->[2][0]{'tx_status'}, 'X', 'transaction status is X')
498 1 2 if not $num_actions
500 0 3 if $done_testing or not 'Test::More'->builder->is_passing