summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-05-19 09:00:48 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-05-19 09:00:48 +0000
commitc504ca6776df526032be9e1296932d9069b9dcfe (patch)
tree3bc0154d945afd65297426281ea6103a4e3851c8 /test
parent3ac7b642fa2e73f6af7911dccef33d91af0e38cd (diff)
* test/inlinetest.rb (InlineTest::loadtest): requiring library with
replaced $0 can make $0 == __FILE__ block be evaluated twice. [ruby-dev:23538] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/inlinetest.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/test/inlinetest.rb b/test/inlinetest.rb
index 40819913b5..6b9fdd1dda 100644
--- a/test/inlinetest.rb
+++ b/test/inlinetest.rb
@@ -6,12 +6,12 @@ module InlineTest
if endpart.nil?
raise RuntimeError.new("No #{part} part in the library '#{filename}'")
end
- require(libname)
eval(endpart, TOPLEVEL_BINDING, path, mainpart.count("\n")+1)
end
module_function :eval_part
def loadtest(libname)
+ require(libname)
in_critical do
in_progname(libpath(libname)) do
eval_part(libname, /^(?=if\s+(?:\$0\s*==\s*__FILE__|__FILE__\s*==\s*\$0)(?:[\#\s]|$))/, '$0 == __FILE__')
@@ -21,6 +21,7 @@ module InlineTest
module_function :loadtest
def loadtest__END__part(libname)
+ require(libname)
eval_part(libname, /^__END__$/, '__END__')
end
module_function :loadtest__END__part