14a4f25f9Sdownsj#!./perl 24a4f25f9Sdownsj 3*ba47ec9dSmillertprint "1..44\n"; 44a4f25f9Sdownsj 54a4f25f9Sdownsj# test the optimization of constants 64a4f25f9Sdownsj 74a4f25f9Sdownsjif (1) { print "ok 1\n";} else { print "not ok 1\n";} 84a4f25f9Sdownsjunless (0) { print "ok 2\n";} else { print "not ok 2\n";} 94a4f25f9Sdownsj 104a4f25f9Sdownsjif (0) { print "not ok 3\n";} else { print "ok 3\n";} 114a4f25f9Sdownsjunless (1) { print "not ok 4\n";} else { print "ok 4\n";} 124a4f25f9Sdownsj 134a4f25f9Sdownsjunless (!1) { print "ok 5\n";} else { print "not ok 5\n";} 144a4f25f9Sdownsjif (!0) { print "ok 6\n";} else { print "not ok 6\n";} 154a4f25f9Sdownsj 164a4f25f9Sdownsjunless (!0) { print "not ok 7\n";} else { print "ok 7\n";} 174a4f25f9Sdownsjif (!1) { print "not ok 8\n";} else { print "ok 8\n";} 184a4f25f9Sdownsj 194a4f25f9Sdownsj$x = 1; 204a4f25f9Sdownsjif (1 && $x) { print "ok 9\n";} else { print "not ok 9\n";} 214a4f25f9Sdownsjif (0 && $x) { print "not ok 10\n";} else { print "ok 10\n";} 224a4f25f9Sdownsj$x = ''; 234a4f25f9Sdownsjif (1 && $x) { print "not ok 11\n";} else { print "ok 11\n";} 244a4f25f9Sdownsjif (0 && $x) { print "not ok 12\n";} else { print "ok 12\n";} 254a4f25f9Sdownsj 264a4f25f9Sdownsj$x = 1; 274a4f25f9Sdownsjif (1 || $x) { print "ok 13\n";} else { print "not ok 13\n";} 284a4f25f9Sdownsjif (0 || $x) { print "ok 14\n";} else { print "not ok 14\n";} 294a4f25f9Sdownsj$x = ''; 304a4f25f9Sdownsjif (1 || $x) { print "ok 15\n";} else { print "not ok 15\n";} 314a4f25f9Sdownsjif (0 || $x) { print "not ok 16\n";} else { print "ok 16\n";} 324a4f25f9Sdownsj 334a4f25f9Sdownsj 344a4f25f9Sdownsj# test the optimization of variables 354a4f25f9Sdownsj 364a4f25f9Sdownsj$x = 1; 374a4f25f9Sdownsjif ($x) { print "ok 17\n";} else { print "not ok 17\n";} 384a4f25f9Sdownsjunless ($x) { print "not ok 18\n";} else { print "ok 18\n";} 394a4f25f9Sdownsj 404a4f25f9Sdownsj$x = ''; 414a4f25f9Sdownsjif ($x) { print "not ok 19\n";} else { print "ok 19\n";} 424a4f25f9Sdownsjunless ($x) { print "ok 20\n";} else { print "not ok 20\n";} 434a4f25f9Sdownsj 444a4f25f9Sdownsj# test optimization of string operations 454a4f25f9Sdownsj 464a4f25f9Sdownsj$a = 'a'; 474a4f25f9Sdownsjif ($a eq 'a') { print "ok 21\n";} else { print "not ok 21\n";} 484a4f25f9Sdownsjif ($a ne 'a') { print "not ok 22\n";} else { print "ok 22\n";} 494a4f25f9Sdownsj 504a4f25f9Sdownsjif ($a =~ /a/) { print "ok 23\n";} else { print "not ok 23\n";} 514a4f25f9Sdownsjif ($a !~ /a/) { print "not ok 24\n";} else { print "ok 24\n";} 524a4f25f9Sdownsj# test interaction of logicals and other operations 534a4f25f9Sdownsj 544a4f25f9Sdownsj$a = 'a'; 554a4f25f9Sdownsj$x = 1; 564a4f25f9Sdownsjif ($a eq 'a' and $x) { print "ok 25\n";} else { print "not ok 25\n";} 574a4f25f9Sdownsjif ($a ne 'a' and $x) { print "not ok 26\n";} else { print "ok 26\n";} 584a4f25f9Sdownsj$x = ''; 594a4f25f9Sdownsjif ($a eq 'a' and $x) { print "not ok 27\n";} else { print "ok 27\n";} 604a4f25f9Sdownsjif ($a ne 'a' and $x) { print "not ok 28\n";} else { print "ok 28\n";} 614a4f25f9Sdownsj 624a4f25f9Sdownsj$x = 1; 634a4f25f9Sdownsjif ($a eq 'a' or $x) { print "ok 29\n";} else { print "not ok 29\n";} 644a4f25f9Sdownsjif ($a ne 'a' or $x) { print "ok 30\n";} else { print "not ok 30\n";} 654a4f25f9Sdownsj$x = ''; 664a4f25f9Sdownsjif ($a eq 'a' or $x) { print "ok 31\n";} else { print "not ok 31\n";} 674a4f25f9Sdownsjif ($a ne 'a' or $x) { print "not ok 32\n";} else { print "ok 32\n";} 684a4f25f9Sdownsj 694a4f25f9Sdownsj$x = 1; 704a4f25f9Sdownsjif ($a =~ /a/ && $x) { print "ok 33\n";} else { print "not ok 33\n";} 714a4f25f9Sdownsjif ($a !~ /a/ && $x) { print "not ok 34\n";} else { print "ok 34\n";} 724a4f25f9Sdownsj$x = ''; 734a4f25f9Sdownsjif ($a =~ /a/ && $x) { print "not ok 35\n";} else { print "ok 35\n";} 744a4f25f9Sdownsjif ($a !~ /a/ && $x) { print "not ok 36\n";} else { print "ok 36\n";} 754a4f25f9Sdownsj 764a4f25f9Sdownsj$x = 1; 774a4f25f9Sdownsjif ($a =~ /a/ || $x) { print "ok 37\n";} else { print "not ok 37\n";} 784a4f25f9Sdownsjif ($a !~ /a/ || $x) { print "ok 38\n";} else { print "not ok 38\n";} 794a4f25f9Sdownsj$x = ''; 804a4f25f9Sdownsjif ($a =~ /a/ || $x) { print "ok 39\n";} else { print "not ok 39\n";} 814a4f25f9Sdownsjif ($a !~ /a/ || $x) { print "not ok 40\n";} else { print "ok 40\n";} 82*ba47ec9dSmillert 83*ba47ec9dSmillert$x = 1; 84*ba47ec9dSmillertif ($a eq 'a' xor $x) { print "not ok 41\n";} else { print "ok 41\n";} 85*ba47ec9dSmillertif ($a ne 'a' xor $x) { print "ok 42\n";} else { print "not ok 42\n";} 86*ba47ec9dSmillert$x = ''; 87*ba47ec9dSmillertif ($a eq 'a' xor $x) { print "ok 43\n";} else { print "not ok 43\n";} 88*ba47ec9dSmillertif ($a ne 'a' xor $x) { print "not ok 44\n";} else { print "ok 44\n";} 89