#!/usr/bin/perl -w
# Test with assert on.
use strict;
use Test::More tests => 8;
# Make sure we're shielded against the user possibly having
# NDEBUG or PERL_NDEBUG set. Localize the changes because changes
# to %ENV persist across processes in VMS.
BEGIN {
local %ENV = %ENV;
delete @ENV{qw(PERL_NDEBUG NDEBUG)};
require Carp::Assert;
Carp::Assert->import;
}
# shouldn't makes its decision at run-time
local %ENV = %ENV;
delete @ENV{qw(PERL_NDEBUG NDEBUG)};
eval { assert(1==0) if DEBUG; };
like $@, '/^Assertion failed/i';
eval { assert(1==1); };
is $@, '';
eval { assert(Dogs->isa('People'), 'Dogs are people, too!') };
like $@, '/Dogs are people, too!/';
eval { should('this', 'this') };
is $@, '';
eval { should('this', 'that') };
like $@, '/^Assertion \(.*\) failed/i';
eval { shouldnt('this', 'that') };
is $@, '';
eval { shouldnt('up', 'up') };
like $@, '/^Assertion \(.*\) failed/i';
eval { shouldn't('up', 'up') };
like $@, '/^Assertion \(.*\) failed/i';
syntax highlighted by Code2HTML, v. 0.9.1