summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorSalvador FandiƱo <sfandino@yahoo.com>2003-02-18 19:24:13 +0000
committerhv <hv@crypt.org>2003-02-19 00:53:03 +0000
commit8c63d93843745ff8766bc75490d35dc2b080c5c0 (patch)
tree2ddbe7e80c6bed98ba5d4043cfe0666b673290df /t
parentf7047380cf724d6ba2d3de39f9bed88ffab64608 (diff)
downloadperl-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.t88
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 ";
}
}