xref: /openbsd-src/gnu/usr.bin/perl/t/comp/cmdopt.t (revision 7bfa9f444b545f1bc96a4b2919ed2583bf07c7ea)
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