X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/b97a373db867c364a61b01c76249d062b3b95526..e344bad3baf2bf2e0915ab481c789fd45967284b:/t/run/fresh_perl.t diff --git a/t/run/fresh_perl.t b/t/run/fresh_perl.t index acc595f..d8cc862 100644 --- a/t/run/fresh_perl.t +++ b/t/run/fresh_perl.t @@ -4,20 +4,9 @@ # Instead, put the test in the appropriate test file and use the # fresh_perl_is()/fresh_perl_like() functions in t/test.pl. -# This is for tests that will normally cause segfaults, and other nasty +# This is for tests that used to abnormally cause segfaults, and other nasty # errors that might kill the interpreter and for some reason you can't # use an eval(). -# -# New tests are added to the bottom. For example. -# -# ######## perlbug ID 20020831.001 -# ($a, b) = (1,2) -# EXPECT -# Can't modify constant item in list assignment - at line 1 -# -# to test that the code "($a, b) = (1,2)" causes the appropriate syntax -# error, rather than just segfaulting as reported in perlbug ID -# 20020831.001 BEGIN { chdir 't' if -d 't'; @@ -100,7 +89,7 @@ $x=2;$y=3;$x<$y ? $x : $y += 23;print $x; EXPECT 25 ######## -eval {sub bar {print "In bar";}} +eval 'sub bar {print "In bar"}'; ######## system './perl -ne "print if eof" /dev/null' unless $^O eq 'MacOS' ######## @@ -114,11 +103,6 @@ print $aa; EXPECT 12345 ######## -%@x=0; -EXPECT -Can't modify hash dereference in repeat (x) at - line 1, near "0;" -Execution of - aborted due to compilation errors. -######## $_="foo"; printf(STDOUT "%s\n", $_); EXPECT @@ -365,7 +349,6 @@ print "you die joe!\n" unless "@x" eq 'x y z'; ######## /(?{"{"})/ # Check it outside of eval too EXPECT -Sequence (?{...}) not terminated or not {}-balanced at - line 1, within pattern Sequence (?{...}) not terminated or not {}-balanced in regex; marked by <-- HERE in m/(?{ <-- HERE "{"})/ at - line 1. ######## /(?{"{"}})/ # Check it outside of eval too @@ -616,9 +599,11 @@ for (@locales) { } EXPECT ######## +# [ID 20001202.002] and change #8066 added 'at -e line 1'; +# reversed again as a result of [perl #17763] die qr(x) EXPECT -(?-xism:x) at - line 1. +(?-xism:x) ######## # 20001210.003 mjd@plover.com format REMITOUT_TOP = @@ -686,18 +671,6 @@ OK EXPECT ok ######## -# Bug 20010422.005 -{s//${}/; //} -EXPECT -syntax error at - line 2, near "${}" -Execution of - aborted due to compilation errors. -######## -# Bug 20010528.007 -"\x{" -EXPECT -Missing right brace on \x{} at - line 2, within string -Execution of - aborted due to compilation errors. -######## my $foo = Bar->new(); my @dst; END { @@ -715,26 +688,6 @@ sub DESTROY { } EXPECT Bar=ARRAY(0x...) -######## -######## found by Markov chain stress testing -eval "a.b.c.d.e.f;sub" -EXPECT - -######## perlbug ID 20010831.001 -($a, b) = (1, 2); -EXPECT -Can't modify constant item in list assignment at - line 1, near ");" -Execution of - aborted due to compilation errors. -######## tying a bareword causes a segfault in 5.6.1 -tie FOO, "Foo"; -EXPECT -Can't modify constant item in tie at - line 1, near ""Foo";" -Execution of - aborted due to compilation errors. -######## undefing constant causes a segfault in 5.6.1 [ID 20010906.019] -undef foo; -EXPECT -Can't modify constant item in undef operator at - line 1, near "foo;" -Execution of - aborted due to compilation errors. ######## (?{...}) compilation bounces on PL_rs -0 { @@ -744,11 +697,6 @@ Execution of - aborted due to compilation errors. BEGIN { print "ok\n" } EXPECT ok -######## read($var, FILE, 1) segfaults on 5.6.1 [ID 20011025.054] -read($bla, FILE, 1); -EXPECT -Can't modify constant item in read at - line 1, near "1)" -Execution of - aborted due to compilation errors. ######## scalar ref to file test operator segfaults on 5.6.1 [ID 20011127.155] # This only happens if the filename is 11 characters or less. $foo = \-f "blah"; @@ -821,9 +769,87 @@ $人++; # a child is born print $人, "\n"; EXPECT 3 +######## example from Camel 5, ch. 15, pp.406 (with use vars) +# SKIP: ord "A" == 193 # EBCDIC +use strict; +use utf8; +use vars qw($人); +$人 = 2; # 0xe4 0xba 0xba: U+4eba, "human" in CJK ideograph +$人++; # a child is born +print $人, "\n"; +EXPECT +3 ######## -# TODO An attempt at lvalueable barewords broke this -tie FH, 'main'; +# test that closures generated by eval"" hold on to the CV of the eval"" +# for their entire lifetime +$code = eval q[ + sub { eval '$x = "ok 1\n"'; } +]; +&{$code}(); +print $x; +EXPECT +ok 1 +######## [ID 20020623.009] nested eval/sub segfaults +$eval = eval 'sub { eval "sub { %S }" }'; +$eval->({}); +######## [perl #17951] Strange UTF error +-W +# From: "John Kodis" +# Newsgroups: comp.lang.perl.moderated +# Subject: Strange UTF error +# Date: Fri, 11 Oct 2002 16:19:58 -0400 +# Message-ID: +$_ = "foobar\n"; +utf8::upgrade($_); # the original code used a UTF-8 locale (affects STDIN) +# matching is actually irrelevant: avoiding several dozen of these +# Illegal hexadecimal digit ' ' ignored at /usr/lib/perl5/5.8.0/utf8_heavy.pl line 152 +# is what matters. +/^([[:digit:]]+)/; +EXPECT +######## [perl #20667] unicode regex vs non-unicode regex +$toto = 'Hello'; +$toto =~ /\w/; # this line provokes the problem! +$name = 'A B'; +# utf8::upgrade($name) if @ARGV; +if ($name =~ /(\p{IsUpper}) (\p{IsUpper})/){ + print "It's good! >$1< >$2<\n"; +} else { + print "It's not good...\n"; +} +EXPECT +It's good! >A< >B< +######## [perl #8760] strangness with utf8 and warn +$_="foo";utf8::upgrade($_);/bar/i,warn$_; +EXPECT +foo at - line 1. +######## glob() bug Mon, 01 Sep 2003 02:25:41 -0700 <200309010925.h819Pf0X011457@smtp3.ActiveState.com> +-lw +if ($^O eq 'VMS') { # VMS is not *that* kind of a glob. +print <<__EOF__; +./"TEST" +./"TEST" +__EOF__ +} else { +print glob(q(./"TEST")); +use File::Glob; +print glob(q(./"TEST")); +} +EXPECT +./"TEST" +./"TEST" +######## glob() bug Mon, 01 Sep 2003 02:25:41 -0700 <200309010925.h819Pf0X011457@smtp3.ActiveState.com> +-lw +if ($^O eq 'VMS') { # VMS is not *that* kind of a glob. +print <<__EOF__; +./"TEST" +./"TEST" +__EOF__ +} else { +use File::Glob; +print glob(q(./"TEST")); +use File::Glob; +print glob(q(./"TEST")); +} EXPECT -Can't modify constant item in tie at - line 2, near "'main';" -Execution of - aborted due to compilation errors. +./"TEST" +./"TEST"