summaryrefslogtreecommitdiff
path: root/test/inlinetest.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-01-14 08:54:21 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-01-14 08:54:21 +0000
commit8802ebc9e1fa5bfe67aa0a5ae338b4194df0b732 (patch)
tree79bd91acc7809bb2980d6b0630fde68cde5a7d45 /test/inlinetest.rb
parent7e932df0d519797535020a38f58da02bdb59c13c (diff)
* test/inlinetest.rb (InlineTest::loadtest): require instead of
load, to get rid of multiple loading. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/inlinetest.rb')
-rw-r--r--test/inlinetest.rb23
1 files changed, 15 insertions, 8 deletions
diff --git a/test/inlinetest.rb b/test/inlinetest.rb
index cd1ee0c683..8cc75da9c7 100644
--- a/test/inlinetest.rb
+++ b/test/inlinetest.rb
@@ -1,21 +1,28 @@
module InlineTest
+ def eval_part(libname, sep, part)
+ path = libpath(libname)
+ program = File.open(path) { |f| f.read }
+ mainpart, endpart = program.split(sep)
+ if endpart.nil?
+ raise RuntimeError.new("No #{part} part in the library '#{filename}'")
+ end
+ require(libname)
+ eval(endpart, nil, path, mainpart.count("\n")+1)
+ end
+ module_function :eval_part
+
def loadtest(libname)
+ Kernel.require(libname)
in_critical do
in_progname(libpath(libname)) do
- Kernel.load(libname)
+ eval_part(libname, /^(?=if\s+(?:\$0\s*==\s*__FILE__|__FILE__\s*==\s*\$0)(?:[\#\s]|$))/, '$0 == __FILE__')
end
end
end
module_function :loadtest
def loadtest__END__part(libname)
- program = File.open(libpath(libname)) { |f| f.read }
- mainpart, endpart = program.split(/^__END__$/)
- if endpart.nil?
- raise RuntimeError.new("No __END__ part in the library '#{filename}'")
- end
- require(libname)
- eval(endpart)
+ eval_part(libname, /^__END__$/, '__END__')
end
module_function :loadtest__END__part