diff options
author | Salvador FandiƱo <sfandino@yahoo.com> | 2003-02-18 19:24:13 +0000 |
---|---|---|
committer | hv <hv@crypt.org> | 2003-02-19 00:53:03 +0000 |
commit | 8c63d93843745ff8766bc75490d35dc2b080c5c0 (patch) | |
tree | 2ddbe7e80c6bed98ba5d4043cfe0666b673290df /t | |
parent | f7047380cf724d6ba2d3de39f9bed88ffab64608 (diff) | |
download | perl-8c63d93843745ff8766bc75490d35dc2b080c5c0.tar.gz |
more complex assertions activation:
Subject: Re: Did the assertion patch/feature submission get overlooked?
Message-ID: <3E52885D.5060903@yahoo.com>
p4raw-id: //depot/perl@18750
Diffstat (limited to 't')
-rw-r--r-- | t/comp/assertions.t | 88 |
1 files changed, 72 insertions, 16 deletions
diff --git a/t/comp/assertions.t b/t/comp/assertions.t index d3d9783fd5..da9f5680ff 100644 --- a/t/comp/assertions.t +++ b/t/comp/assertions.t @@ -1,16 +1,72 @@ #!./perl +sub callme ($ ) : assertion { + return shift; +} + +# select STDERR; $|=1; + +my @expr=( '1' => 1, + '0' => 0, + '1 && 1' => 1, + '1 && 0' => 0, + '0 && 1' => 0, + '0 && 0' => 0, + '1 || 1' => 1, + '1 || 0' => 1, + '0 || 1' => 1, + '0 || 0' => 0, + '(1)' => 1, + '(0)' => 0, + '1 && ((1) && 1)' => 1, + '1 && (0 || 1)' => 1, + '1 && ( 0' => undef, + '1 &&' => undef, + '&& 1' => undef, + '1 && || 1' => undef, + '(1 && 1) && 1)' => undef, + 'one && two' => 1, + '_ && one' => 0, + 'one && three' => 0, + '1 ' => 1, + ' 1' => 1, + ' 1 ' => 1, + ' ( 1 && 1 ) ' => 1, + ' ( 1 && 0 ) ' => 0, + '(( 1 && 1) && ( 1 || 0)) || _ && one && ( one || three)' => 1 ); + +my $n=@expr/2+10; my $i=1; -print "1..10\n"; +print "1..$n\n"; -sub callme ($) : assertion { - return shift; +use assertions::activate 'one', 'two'; +require assertions; + +while (@expr) { + my $expr=shift @expr; + my $expected=shift @expr; + my $result=eval {assertions::calc_expr($expr)}; + if (defined $expected) { + unless (defined $result and $result == $expected) { + print STDERR "assertions::calc_expr($expr) failed,". + " expected '$expected' but '$result' obtained (\$@=$@)\n"; + print "not "; + } + } + else { + if (defined $result) { + print STDERR "assertions::calc_expr($expr) failed,". + " expected undef but '$result' obtained\n"; + print "not "; + } + } + print "ok ", $i++, "\n"; } -# 1 +# @expr/2+1 if (callme(1)) { - print STDERR "assertions called by default"; + print STDERR "assertions called by default\n"; print "not "; } print "ok ", $i++, "\n"; @@ -24,7 +80,7 @@ use assertions::activate 'mine'; } use assertions; unless (callme(1)) { - print STDERR "'use assertions;' doesn't active assertions based on package name"; + print STDERR "'use assertions;' doesn't active assertions based on package name\n"; print "not "; } } @@ -33,7 +89,7 @@ print "ok ", $i++, "\n"; # 3 use assertions 'foo'; if (callme(1)) { - print STDERR "assertion deselection doesn't work"; + print STDERR "assertion deselection doesn't work\n"; print "not "; } print "ok ", $i++, "\n"; @@ -42,23 +98,23 @@ print "ok ", $i++, "\n"; use assertions::activate 'bar', 'doz'; use assertions 'bar'; unless (callme(1)) { - print STDERR "assertion selection doesn't work"; + print STDERR "assertion selection doesn't work\n"; print "not "; } print "ok ", $i++, "\n"; # 5 -use assertions '&', 'doz'; +use assertions q(_ && doz); unless (callme(1)) { - print STDERR "assertion activation filtering doesn't work"; + print STDERR "assertion activation filtering doesn't work\n"; print "not "; } print "ok ", $i++, "\n"; # 6 -use assertions '&', 'foo'; +use assertions q(_ && foo); if (callme(1)) { - print STDERR "assertion deactivation filtering doesn't work"; + print STDERR "assertion deactivation filtering doesn't work\n"; print "not "; } print "ok ", $i++, "\n"; @@ -68,7 +124,7 @@ if (1) { use assertions 'bar'; } if (callme(1)) { - print STDERR "assertion scoping doesn't work"; + print STDERR "assertion scoping doesn't work\n"; print "not "; } print "ok ", $i++, "\n"; @@ -77,7 +133,7 @@ print "ok ", $i++, "\n"; use assertions::activate 're.*'; use assertions 'reassert'; unless (callme(1)) { - print STDERR "assertion selection with re failed"; + print STDERR "assertion selection with re failed\n"; print "not "; } print "ok ", $i++, "\n"; @@ -88,7 +144,7 @@ my $b=12; use assertions 'bar'; callme(my $b=45); unless ($b == 45) { - print STDERR "this shouldn't fail ever (b=$b)"; + print STDERR "this shouldn't fail ever (b=$b)\n"; print "not "; } } @@ -99,7 +155,7 @@ print "ok ", $i++, "\n"; no assertions; callme(my $b=46); if (defined $b) { - print STDERR "lexical declaration in assertion arg ignored"; + print STDERR "lexical declaration in assertion arg ignored (b=$b\n"; print "not "; } } |