aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authornahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-01-06 02:34:24 +0000
committernahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-01-06 02:34:24 +0000
commit79c0e644a175754540399ff2148f3fdb5c998339 (patch)
treea3cd5ab3ba1d5fb8ca8e4341c3d2e4bcb67e44e3 /test
parentff1b89a96d0f103ff0c917c458ddd3e36e9b3718 (diff)
downloadruby-79c0e644a175754540399ff2148f3fdb5c998339.tar.gz
* test/inlinetest.rb, test/{test_generator.rb,test_ipaddr.rb,
test_pathname.rb,test_pp.rb,test_prettyprint.rb,test_set.rb, test_time.rb,test_tsort.rb: added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/inlinetest.rb52
-rw-r--r--test/test_generator.rb4
-rw-r--r--test/test_ipaddr.rb4
-rw-r--r--test/test_pathname.rb4
-rw-r--r--test/test_pp.rb4
-rw-r--r--test/test_prettyprint.rb4
-rw-r--r--test/test_set.rb4
-rw-r--r--test/test_time.rb4
-rw-r--r--test/test_tsort.rb4
9 files changed, 84 insertions, 0 deletions
diff --git a/test/inlinetest.rb b/test/inlinetest.rb
new file mode 100644
index 0000000000..cd1ee0c683
--- /dev/null
+++ b/test/inlinetest.rb
@@ -0,0 +1,52 @@
+module InlineTest
+ def loadtest(libname)
+ in_critical do
+ in_progname(libpath(libname)) do
+ Kernel.load(libname)
+ 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)
+ end
+ module_function :loadtest__END__part
+
+ def self.in_critical
+ th_criticality = Thread.critical
+ Thread.critical = true
+ begin
+ yield
+ ensure
+ Thread.critical = th_criticality
+ end
+ end
+
+ def self.in_progname(progname)
+ progname_backup = $0.dup
+ $0.replace(progname)
+ begin
+ yield
+ ensure
+ $0.replace(progname_backup)
+ end
+ end
+
+ def self.libpath(libname)
+ libpath = nil
+ $:.find do |path|
+ File.file?(testname = File.join(path, libname)) && libpath = testname
+ end
+ if libpath.nil?
+ raise RuntimeError.new("'#{libname}' not found")
+ end
+ libpath
+ end
+end
diff --git a/test/test_generator.rb b/test/test_generator.rb
new file mode 100644
index 0000000000..2db04787f1
--- /dev/null
+++ b/test/test_generator.rb
@@ -0,0 +1,4 @@
+require 'pathname'
+require Pathname.new(__FILE__).parent.join('inlinetest.rb')
+target = __FILE__.scan(/test_(.*\.rb)$/)[0][0]
+InlineTest.loadtest__END__part(target)
diff --git a/test/test_ipaddr.rb b/test/test_ipaddr.rb
new file mode 100644
index 0000000000..2db04787f1
--- /dev/null
+++ b/test/test_ipaddr.rb
@@ -0,0 +1,4 @@
+require 'pathname'
+require Pathname.new(__FILE__).parent.join('inlinetest.rb')
+target = __FILE__.scan(/test_(.*\.rb)$/)[0][0]
+InlineTest.loadtest__END__part(target)
diff --git a/test/test_pathname.rb b/test/test_pathname.rb
new file mode 100644
index 0000000000..ef4da4638c
--- /dev/null
+++ b/test/test_pathname.rb
@@ -0,0 +1,4 @@
+require 'pathname'
+require Pathname.new(__FILE__).parent.join('inlinetest.rb')
+target = __FILE__.scan(/test_(.*\.rb)$/)[0][0]
+InlineTest.loadtest(target)
diff --git a/test/test_pp.rb b/test/test_pp.rb
new file mode 100644
index 0000000000..ef4da4638c
--- /dev/null
+++ b/test/test_pp.rb
@@ -0,0 +1,4 @@
+require 'pathname'
+require Pathname.new(__FILE__).parent.join('inlinetest.rb')
+target = __FILE__.scan(/test_(.*\.rb)$/)[0][0]
+InlineTest.loadtest(target)
diff --git a/test/test_prettyprint.rb b/test/test_prettyprint.rb
new file mode 100644
index 0000000000..ef4da4638c
--- /dev/null
+++ b/test/test_prettyprint.rb
@@ -0,0 +1,4 @@
+require 'pathname'
+require Pathname.new(__FILE__).parent.join('inlinetest.rb')
+target = __FILE__.scan(/test_(.*\.rb)$/)[0][0]
+InlineTest.loadtest(target)
diff --git a/test/test_set.rb b/test/test_set.rb
new file mode 100644
index 0000000000..2db04787f1
--- /dev/null
+++ b/test/test_set.rb
@@ -0,0 +1,4 @@
+require 'pathname'
+require Pathname.new(__FILE__).parent.join('inlinetest.rb')
+target = __FILE__.scan(/test_(.*\.rb)$/)[0][0]
+InlineTest.loadtest__END__part(target)
diff --git a/test/test_time.rb b/test/test_time.rb
new file mode 100644
index 0000000000..ef4da4638c
--- /dev/null
+++ b/test/test_time.rb
@@ -0,0 +1,4 @@
+require 'pathname'
+require Pathname.new(__FILE__).parent.join('inlinetest.rb')
+target = __FILE__.scan(/test_(.*\.rb)$/)[0][0]
+InlineTest.loadtest(target)
diff --git a/test/test_tsort.rb b/test/test_tsort.rb
new file mode 100644
index 0000000000..ef4da4638c
--- /dev/null
+++ b/test/test_tsort.rb
@@ -0,0 +1,4 @@
+require 'pathname'
+require Pathname.new(__FILE__).parent.join('inlinetest.rb')
+target = __FILE__.scan(/test_(.*\.rb)$/)[0][0]
+InlineTest.loadtest(target)