use strict;
use warnings;
use Test::Requires 'DBD::SQLite';
use Test::More;
use t::Util;
use DBIx::QueryLog;
my $dbh = t::Util->new_dbh;
sub test_probability {
local $Test::Builder::Level = $Test::Builder::Level + 1;
my ($is_enabled, $desc) = @_;
subtest "[$is_enabled]: $desc" => sub {
my $count = 0;
for (1..100) {
my $res = capture {
$dbh->do('SELECT * FROM sqlite_master');
};
$count++ if $res;
}
if ($is_enabled) {
cmp_ok $count, '<', 100;
}
else {
is $count, 100, $desc;
}
};
}
DBIx::QueryLog->probability(10);
test_probability(1, 'probability 10');
DBIx::QueryLog->probability(0);
test_probability(0, 'dsabiled probability');
$ENV{DBIX_QUERYLOG_PROBABILITY} = 10;
test_probability(1, 'probability from ENV');
done_testing;