This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove full stop in the 'try' feature heading
[perl5.git] / t / op / cond.t
1 #!./perl
2
3 BEGIN {
4     chdir 't' if -d 't';
5     require './test.pl';
6     set_up_inc('../lib');
7 }
8
9 is( 1 ? 1 : 0, 1, 'compile time, true' );
10 is( 0 ? 0 : 1, 1, 'compile time, false' );
11
12 $x = 1;
13 is(  $x ? 1 : 0, 1, 'run time, true');
14 is( !$x ? 0 : 1, 1, 'run time, false');
15
16 # This used to SEGV due to deep recursion in Perl_scalar().
17 # (Actually it only SEGVed with the depth being about 100_000; but
18 # compiling the nested condition goes quadratic in some way, so I've
19 # reduced to the count to a manageable size. So this is not so much a
20 # proper test, as it is a comment on the sort of thing that used to break)
21
22 {
23     my $e = "1";
24     $e = "(\$x ? 1 : $e)" for 1..20_000;
25     $e = "\$x = $e";
26     eval $e;
27     is $@, "", "SEGV in Perl_scalar";
28 }
29
30
31 done_testing();