This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
t/op/inc.t: Add descriptions to all tests lacking them.
authorJames E Keenan <jkeenan@cpan.org>
Mon, 10 Dec 2012 01:13:56 +0000 (20:13 -0500)
committerJames E Keenan <jkeenan@cpan.org>
Sat, 15 Dec 2012 01:51:44 +0000 (20:51 -0500)
t/op/inc.t

index d750187..4876ef1 100644 (file)
@@ -3,63 +3,69 @@
 require './test.pl';
 use strict;
 
+# Tests of post/pre - increment/decrement operators.
+
 # Verify that addition/subtraction properly upgrade to doubles.
 # These tests are only significant on machines with 32 bit longs,
 # and two's complement negation, but shouldn't fail anywhere.
 
 my $a = 2147483647;
 my $c=$a++;
-cmp_ok($a, '==', 2147483648);
+cmp_ok($a, '==', 2147483648, "postincrement properly upgrades to double");
 
 $a = 2147483647;
 $c=++$a;
-cmp_ok($a, '==', 2147483648);
+cmp_ok($a, '==', 2147483648, "preincrement properly upgrades to double");
 
 $a = 2147483647;
 $a=$a+1;
-cmp_ok($a, '==', 2147483648);
+cmp_ok($a, '==', 2147483648, "addition properly upgrades to double");
 
 $a = -2147483648;
 $c=$a--;
-cmp_ok($a, '==', -2147483649);
+cmp_ok($a, '==', -2147483649, "postdecrement properly upgrades to double");
 
 $a = -2147483648;
 $c=--$a;
-cmp_ok($a, '==', -2147483649);
+cmp_ok($a, '==', -2147483649, "predecrement properly upgrades to double");
 
 $a = -2147483648;
 $a=$a-1;
-cmp_ok($a, '==', -2147483649);
+cmp_ok($a, '==', -2147483649, "subtraction properly upgrades to double");
 
 $a = 2147483648;
 $a = -$a;
 $c=$a--;
-cmp_ok($a, '==', -2147483649);
+cmp_ok($a, '==', -2147483649,
+    "negation and postdecrement properly upgrade to double");
 
 $a = 2147483648;
 $a = -$a;
 $c=--$a;
-cmp_ok($a, '==', -2147483649);
+cmp_ok($a, '==', -2147483649,
+    "negation and predecrement properly upgrade to double");
 
 $a = 2147483648;
 $a = -$a;
 $a=$a-1;
-cmp_ok($a, '==', -2147483649);
+cmp_ok($a, '==', -2147483649,
+    "negation and subtraction properly upgrade to double");
 
 $a = 2147483648;
 $b = -$a;
 $c=$b--;
-cmp_ok($b, '==', -$a-1);
+cmp_ok($b, '==', -$a-1, "negation, postdecrement and additional negation");
 
 $a = 2147483648;
 $b = -$a;
 $c=--$b;
-cmp_ok($b, '==', -$a-1);
+cmp_ok($b, '==', -$a-1, "negation, predecrement and additional negation");
 
 $a = 2147483648;
 $b = -$a;
 $b=$b-1;
-cmp_ok($b, '==', -(++$a));
+cmp_ok($b, '==', -(++$a),
+    "negation, subtraction, preincrement and additional negation");
 
 $a = undef;
 is($a++, '0', "postinc undef returns '0'");
@@ -88,7 +94,7 @@ sub check_same {
     print "# key '$_' was '$orig->{$_}' now missing\n";
     $fail = 1;
   }
-  ok (!$fail);
+  ok (!$fail, "original hashes unchanged");
 }
 
 my (%orig) = my (%inc) = my (%dec) = my (%postinc) = my (%postdec)
@@ -100,8 +106,8 @@ foreach (keys %inc) {
   my $ans = $up{$_};
   my $up;
   eval {$up = ++$_};
-  is($up, $ans);
-  is($@, '');
+  is($up, $ans, "key '$_' incremented correctly");
+  is($@, '', "no error condition");
 }
 
 check_same (\%orig, \%inc);
@@ -110,8 +116,8 @@ foreach (keys %dec) {
   my $ans = $down{$_};
   my $down;
   eval {$down = --$_};
-  is($down, $ans);
-  is($@, '');
+  is($down, $ans, "key '$_' decremented correctly");
+  is($@, '', "no error condition");
 }
 
 check_same (\%orig, \%dec);
@@ -120,8 +126,8 @@ foreach (keys %postinc) {
   my $ans = $postinc{$_};
   my $up;
   eval {$up = $_++};
-  is($up, $ans);
-  is($@, '');
+  is($up, $ans, "assignment preceded postincrement");
+  is($@, '', "no error condition");
 }
 
 check_same (\%orig, \%postinc);
@@ -130,8 +136,8 @@ foreach (keys %postdec) {
   my $ans = $postdec{$_};
   my $down;
   eval {$down = $_--};
-  is($down, $ans);
-  is($@, '');
+  is($down, $ans, "assignment preceded postdecrement");
+  is($@, '', "no error condition");
 }
 
 check_same (\%orig, \%postdec);
@@ -143,26 +149,26 @@ check_same (\%orig, \%postdec);
        $y ="$x\n";
        ++$x;
     };
-    cmp_ok($x, '==', 1);
-    is($@, '');
+    cmp_ok($x, '==', 1, "preincrement of previously uninitialized variable");
+    is($@, '', "no error condition");
 
     my ($p, $q);
     eval {
        $q ="$p\n";
        --$p;
     };
-    cmp_ok($p, '==', -1);
-    is($@, '');
+    cmp_ok($p, '==', -1, "predecrement of previously uninitialized variable");
+    is($@, '', "no error condition");
 }
 
 $a = 2147483648;
 $c=--$a;
-cmp_ok($a, '==', 2147483647);
+cmp_ok($a, '==', 2147483647, "predecrement properly downgrades from double");
 
 
 $a = 2147483648;
 $c=$a--;
-cmp_ok($a, '==', 2147483647);
+cmp_ok($a, '==', 2147483647, "postdecrement properly downgrades from double");
 
 {
     use integer;
@@ -243,10 +249,10 @@ die "Could not find a value which overflows the mantissa" unless $found;
 sub PVBM () { 'foo' }
 { my $dummy = index 'foo', PVBM }
 
-isnt(scalar eval { my $pvbm = PVBM; $pvbm++ }, undef);
-isnt(scalar eval { my $pvbm = PVBM; $pvbm-- }, undef);
-isnt(scalar eval { my $pvbm = PVBM; ++$pvbm }, undef);
-isnt(scalar eval { my $pvbm = PVBM; --$pvbm }, undef);
+isnt(scalar eval { my $pvbm = PVBM; $pvbm++ }, undef, "postincrement defined");
+isnt(scalar eval { my $pvbm = PVBM; $pvbm-- }, undef, "postdecrement defined");
+isnt(scalar eval { my $pvbm = PVBM; ++$pvbm }, undef, "preincrement defined");
+isnt(scalar eval { my $pvbm = PVBM; --$pvbm }, undef, "predecrement defined");
 
 # #9466