diff options
| author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-05-19 09:00:48 +0000 |
|---|---|---|
| committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-05-19 09:00:48 +0000 |
| commit | 46634fc4e93c80ea1718c760daca4b0c1c08d3ea (patch) | |
| tree | 3bc0154d945afd65297426281ea6103a4e3851c8 /test | |
| parent | 4c63ce8e4d86625a1e6f67c3ee0fe5bba3c0269a (diff) | |
| download | ruby-46634fc4e93c80ea1718c760daca4b0c1c08d3ea.tar.gz ruby-46634fc4e93c80ea1718c760daca4b0c1c08d3ea.tar.xz ruby-46634fc4e93c80ea1718c760daca4b0c1c08d3ea.zip | |
* test/inlinetest.rb (InlineTest::loadtest): requiring library with
replaced $0 can make $0 == __FILE__ block be evaluated twice.
[ruby-dev:23538]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
| -rw-r--r-- | test/inlinetest.rb | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/test/inlinetest.rb b/test/inlinetest.rb index 40819913b..6b9fdd1dd 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 |
