diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1998-02-10 13:21:37 -0500 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-02-12 03:09:58 +0000 |
commit | f46d017c815b0d11f074ad6c16247c01f8af2ece (patch) | |
tree | b47db1bbab27e93a3f24e5114c769c4c8ebe7351 /t/comp | |
parent | 301d9039fb19ffce344369e333240632e80d95d5 (diff) | |
download | perl-f46d017c815b0d11f074ad6c16247c01f8af2ece.tar.gz |
[win32] fix extra LEAVE when require fails
Message-Id: <199802102321.SAA15346@aatma.engin.umich.edu>
Subject: Re: evals and requires make seg-fault with bad require file
p4raw-id: //depot/win32/perl@498
Diffstat (limited to 't/comp')
-rw-r--r-- | t/comp/require.t | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/t/comp/require.t b/t/comp/require.t new file mode 100644 index 0000000000..bae0712dfa --- /dev/null +++ b/t/comp/require.t @@ -0,0 +1,36 @@ +#!./perl + +BEGIN { + chdir 't' if -d 't'; + @INC = ('.'); +} + +# don't make this lexical +$i = 1; +print "1..3\n"; + +sub do_require { + %INC = (); + open(REQ,">bleah.pm") or die "Can't write 'bleah.pm': $!"; + print REQ @_; + close REQ; + eval { require "bleah.pm" }; + my @a; # magic guard for scope violations (must be first lexical in file) +} + +# run-time failure in require +do_require "0;\n"; +print "# $@\nnot " unless $@ =~ /did not return a true/; +print "ok ",$i++,"\n"; + +# compile-time failure in require +do_require "1)\n"; +print "# $@\nnot " unless $@ =~ /syntax error/; +print "ok ",$i++,"\n"; + +# successful require +do_require "1"; +print "# $@\nnot " if $@; +print "ok ",$i++,"\n"; + +unlink 'bleah.pm'; |