This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add xor tests to test suite
[perl5.git] / t / comp / cmdopt.t
CommitLineData
8d063cd8
LW
1#!./perl
2
79072805 3# $RCSfile: cmdopt.t,v $$Revision: 4.1 $$Date: 92/08/07 18:27:17 $
8d063cd8 4
146da353 5print "1..44\n";
8d063cd8
LW
6
7# test the optimization of constants
8
9if (1) { print "ok 1\n";} else { print "not ok 1\n";}
10unless (0) { print "ok 2\n";} else { print "not ok 2\n";}
11
12if (0) { print "not ok 3\n";} else { print "ok 3\n";}
13unless (1) { print "not ok 4\n";} else { print "ok 4\n";}
14
15unless (!1) { print "ok 5\n";} else { print "not ok 5\n";}
16if (!0) { print "ok 6\n";} else { print "not ok 6\n";}
17
18unless (!0) { print "not ok 7\n";} else { print "ok 7\n";}
19if (!1) { print "not ok 8\n";} else { print "ok 8\n";}
20
21$x = 1;
22if (1 && $x) { print "ok 9\n";} else { print "not ok 9\n";}
23if (0 && $x) { print "not ok 10\n";} else { print "ok 10\n";}
24$x = '';
25if (1 && $x) { print "not ok 11\n";} else { print "ok 11\n";}
26if (0 && $x) { print "not ok 12\n";} else { print "ok 12\n";}
27
28$x = 1;
29if (1 || $x) { print "ok 13\n";} else { print "not ok 13\n";}
30if (0 || $x) { print "ok 14\n";} else { print "not ok 14\n";}
31$x = '';
32if (1 || $x) { print "ok 15\n";} else { print "not ok 15\n";}
33if (0 || $x) { print "not ok 16\n";} else { print "ok 16\n";}
34
35
463ee0b2 36# test the optimization of variables
8d063cd8
LW
37
38$x = 1;
39if ($x) { print "ok 17\n";} else { print "not ok 17\n";}
40unless ($x) { print "not ok 18\n";} else { print "ok 18\n";}
41
42$x = '';
43if ($x) { print "not ok 19\n";} else { print "ok 19\n";}
44unless ($x) { print "ok 20\n";} else { print "not ok 20\n";}
45
46# test optimization of string operations
47
48$a = 'a';
49if ($a eq 'a') { print "ok 21\n";} else { print "not ok 21\n";}
50if ($a ne 'a') { print "not ok 22\n";} else { print "ok 22\n";}
51
52if ($a =~ /a/) { print "ok 23\n";} else { print "not ok 23\n";}
53if ($a !~ /a/) { print "not ok 24\n";} else { print "ok 24\n";}
54# test interaction of logicals and other operations
55
56$a = 'a';
57$x = 1;
463ee0b2
LW
58if ($a eq 'a' and $x) { print "ok 25\n";} else { print "not ok 25\n";}
59if ($a ne 'a' and $x) { print "not ok 26\n";} else { print "ok 26\n";}
8d063cd8 60$x = '';
463ee0b2
LW
61if ($a eq 'a' and $x) { print "not ok 27\n";} else { print "ok 27\n";}
62if ($a ne 'a' and $x) { print "not ok 28\n";} else { print "ok 28\n";}
8d063cd8
LW
63
64$x = 1;
463ee0b2
LW
65if ($a eq 'a' or $x) { print "ok 29\n";} else { print "not ok 29\n";}
66if ($a ne 'a' or $x) { print "ok 30\n";} else { print "not ok 30\n";}
8d063cd8 67$x = '';
463ee0b2
LW
68if ($a eq 'a' or $x) { print "ok 31\n";} else { print "not ok 31\n";}
69if ($a ne 'a' or $x) { print "not ok 32\n";} else { print "ok 32\n";}
8d063cd8
LW
70
71$x = 1;
72if ($a =~ /a/ && $x) { print "ok 33\n";} else { print "not ok 33\n";}
73if ($a !~ /a/ && $x) { print "not ok 34\n";} else { print "ok 34\n";}
74$x = '';
75if ($a =~ /a/ && $x) { print "not ok 35\n";} else { print "ok 35\n";}
79072805 76if ($a !~ /a/ && $x) { print "not ok 36\n";} else { print "ok 36\n";}
8d063cd8
LW
77
78$x = 1;
79if ($a =~ /a/ || $x) { print "ok 37\n";} else { print "not ok 37\n";}
80if ($a !~ /a/ || $x) { print "ok 38\n";} else { print "not ok 38\n";}
81$x = '';
82if ($a =~ /a/ || $x) { print "ok 39\n";} else { print "not ok 39\n";}
83if ($a !~ /a/ || $x) { print "not ok 40\n";} else { print "ok 40\n";}
146da353
HS
84
85$x = 1;
86if ($a eq 'a' xor $x) { print "not ok 41\n";} else { print "ok 41\n";}
87if ($a ne 'a' xor $x) { print "ok 42\n";} else { print "not ok 42\n";}
88$x = '';
89if ($a eq 'a' xor $x) { print "ok 43\n";} else { print "not ok 43\n";}
90if ($a ne 'a' xor $x) { print "not ok 44\n";} else { print "ok 44\n";}