The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/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 $@, '';
}