use warnings;
use strict;
+BEGIN { delete $ENV{DEBUG} }
+
use lib 't/lib';
use TestCommon;
ok 0 < @$trace, 'Errors record a stacktrace';
like $trace->[0], qr!^uh oh at \H+error\.t line \d+$!, 'Stacktrace is correct';
- {
- local $ENV{DEBUG} = '';
- like "$error", qr!^uh oh at \H+error\.t line \d+\.$!, 'Errors stringify without stacktrace';
- }
-
- {
- local $ENV{DEBUG} = '1';
- like "$error", qr!^uh oh at \H+error\.t line \d+\.\nbless!,
- 'Errors stringify with stacktrace when DEBUG environment variable is set';
- }
-
$error = exception { File::KDBX::Error->throw('uh oh') };
like $error, qr/uh oh/, 'Errors can be thrown using the "throw" constructor';
like $error->trace->[0], qr!^uh oh at \H+error\.t line \d+$!, 'Stacktrace is correct';
}
SKIP: {
- skip 'warnings::warnif_at_level is required', 1 if !warnings->can('warnif_at_level');
+ skip 'warnings::warnif_at_level is required', 1 if !warnings::->can('warnif_at_level');
no warnings 'File::KDBX';
my @warnings = warnings { alert 'uh oh' };
is @warnings, 0, 'Warnings can be disabled lexically'
}
SKIP: {
- skip 'warnings::fatal_enabled_at_level is required', 1 if !warnings->can('fatal_enabled_at_level');
+ skip 'warnings::fatal_enabled_at_level is required', 1 if !warnings::->can('fatal_enabled_at_level');
use warnings FATAL => 'File::KDBX';
my $exception = exception { alert 'uh oh' };
like $exception, qr/uh oh/, 'Warnings can be fatal';