#!/usr/bin/perl -w
# Test with assert off.
use strict;
use Test::More tests => 25;
use Carp::Assert qw(:NDEBUG);
my $tests = <<'END_OF_TESTS';
eval { assert(1==0) if DEBUG; };
is $@, '';
eval { assert(1==0); };
is $@, '';
eval { should('this', 'moofer') if DEBUG };
is $@, '';
eval { shouldnt('this', 'this') };
is $@, '';
END_OF_TESTS
my @disable_code = (
"use Carp::Assert qw(:NDEBUG);",
"no Carp::Assert;",
'BEGIN { $ENV{NDEBUG} = 1; } use Carp::Assert;',
'BEGIN { $ENV{PERL_NDEBUG} = 1; } use Carp::Assert;',
'BEGIN { $ENV{NDEBUG} = 0; $ENV{PERL_NDEBUG} = 1; } use Carp::Assert;'
);
for my $code (@disable_code) {
local %ENV = %ENV;
delete @ENV{qw(PERL_NDEBUG NDEBUG)};
eval $code . "\n" . $tests;
is $@, '';
}
syntax highlighted by Code2HTML, v. 0.9.1