8
BEGIN { plan tests => 65 }
12
# Connect to the example driver.
13
ok( my $dbh = DBI->connect('dbi:ExampleP:dummy', '', '',
20
# Clean up when we're done.
21
END { $dbh->disconnect if $dbh };
24
# ------ Check the database handle attributes.
26
is( $dbh->{TraceLevel}, $DBI::dbi_debug & 0xF);
28
my $trace_file = "dbitrace.log";
29
print "trace to file $trace_file\n";
30
1 while unlink $trace_file;
31
$dbh->trace(0, $trace_file);
41
foreach my $name (@names) {
42
print "parse_trace_flag $name\n";
43
ok( my $flag1 = $dbh->parse_trace_flag($name) );
44
ok( my $flag2 = $dbh->parse_trace_flags($name) );
47
$dbh->{TraceLevel} = $flag1;
48
is( $dbh->{TraceLevel}, $flag1 );
50
$dbh->{TraceLevel} = 0;
51
is( $dbh->{TraceLevel}, 0 );
54
is $dbh->trace, $flag1;
55
is $dbh->{TraceLevel}, $flag1;
57
$dbh->{TraceLevel} = $name; # set by name
58
$dbh->{TraceLevel} = undef; # check no change on undef
59
is( $dbh->{TraceLevel}, $flag1 );
61
$flag{$name} = $flag1;
63
if defined $flag1; # reduce noise if there's a bug
65
print "parse_trace_flag @names\n";
66
is keys %flag, @names;
67
$dbh->{TraceLevel} = 0;
68
$dbh->{TraceLevel} = join "|", @names;
69
is $dbh->{TraceLevel}, $all_flags;
73
ok( my $sth = $dbh->prepare("select ctime, name from foo") );
74
is( $sth->{TraceLevel}, $all_flags );
77
$dbh->{TraceLevel} = 0;
78
ok !$dbh->{TraceLevel};
79
$dbh->{TraceLevel} = 'ALL';
80
ok $dbh->{TraceLevel};
83
print "unknown parse_trace_flag\n";
85
local $SIG{__WARN__} = sub {
86
if ($_[0] =~ /unknown/i) { ++$warn; print "warn: ",@_ }else{ warn @_ }
88
is $dbh->parse_trace_flag("nonesuch"), undef;
90
is $dbh->parse_trace_flags("nonesuch"), 0;
92
is $dbh->parse_trace_flags("nonesuch|SQL|nonesuch2"), $dbh->parse_trace_flag("SQL");
97
ok !$dbh->{TraceLevel};
98
$dbh->trace(undef, "STDERR"); # close $trace_file