xref: /openbsd-src/gnu/usr.bin/perl/t/op/bool.t (revision 256a93a44f36679bee503f12e49566c2183f6181)
1*256a93a4Safresh1#!./perl
2*256a93a4Safresh1
3*256a93a4Safresh1BEGIN {
4*256a93a4Safresh1    chdir 't' if -d 't';
5*256a93a4Safresh1    require './test.pl';
6*256a93a4Safresh1    set_up_inc('../lib');
7*256a93a4Safresh1}
8*256a93a4Safresh1
9*256a93a4Safresh1use strict;
10*256a93a4Safresh1use warnings;
11*256a93a4Safresh1
12*256a93a4Safresh1my $truevar  = (5 == 5);
13*256a93a4Safresh1my $falsevar = (5 == 6);
14*256a93a4Safresh1
15*256a93a4Safresh1cmp_ok($truevar, '==', 1);
16*256a93a4Safresh1cmp_ok($truevar, 'eq', "1");
17*256a93a4Safresh1
18*256a93a4Safresh1cmp_ok($falsevar, '==', 0);
19*256a93a4Safresh1cmp_ok($falsevar, 'eq', "");
20*256a93a4Safresh1
21*256a93a4Safresh1{
22*256a93a4Safresh1    # Check that boolean COW string buffer is safe to copy into new SVs and
23*256a93a4Safresh1    # doesn't get corrupted by inplace mutations
24*256a93a4Safresh1    my $x = $truevar;
25*256a93a4Safresh1    $x =~ s/1/t/;
26*256a93a4Safresh1
27*256a93a4Safresh1    cmp_ok($x, 'eq', "t");
28*256a93a4Safresh1    cmp_ok($truevar, 'eq', "1");
29*256a93a4Safresh1
30*256a93a4Safresh1    my $y = $truevar;
31*256a93a4Safresh1    substr($y, 0, 1, "T");
32*256a93a4Safresh1
33*256a93a4Safresh1    cmp_ok($y, 'eq', "T");
34*256a93a4Safresh1    cmp_ok($truevar, 'eq', "1");
35*256a93a4Safresh1}
36*256a93a4Safresh1
37*256a93a4Safresh1done_testing();
38