summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-03-21 11:35:20 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-03-21 11:35:20 +0000
commit1191b359297c5d3ee61264a38c79367c19b9a847 (patch)
tree5301a8f8bdcb4f261a62026444b7ec6eb6b465d3 /test
parentac24e257abc6d315b84072171a792b20d8b9d7a6 (diff)
merge revision(s) 39809,39834,39837: [Backport #8132]
* test/win32ole/test_err_in_callback.rb (TestErrInCallBack#test_err_in_callback): shouldn't create a file in source directory. * test/win32ole/test_err_in_callback.rb (TestErrInCallBack#setup): use relative path to get rid of "too long commandline" error. the top of build directory. * test/win32ole/test_err_in_callback.rb (TestErrInCallBack#setup): allow using different root for source and build directories. this may fixes a minor problem of r39834. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@39859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/win32ole/test_err_in_callback.rb29
1 files changed, 16 insertions, 13 deletions
diff --git a/test/win32ole/test_err_in_callback.rb b/test/win32ole/test_err_in_callback.rb
index 11c29a8d77..d39ea12c54 100644
--- a/test/win32ole/test_err_in_callback.rb
+++ b/test/win32ole/test_err_in_callback.rb
@@ -9,17 +9,21 @@ rescue LoadError
end
if defined?(WIN32OLE)
require 'mkmf'
+ require 'pathname'
require 'test/unit'
+ require 'tmpdir'
class TestErrInCallBack < Test::Unit::TestCase
def setup
@ruby = nil
if File.exist?("./" + CONFIG["RUBY_INSTALL_NAME"] + CONFIG["EXEEXT"])
sep = File::ALT_SEPARATOR || "/"
@ruby = "." + sep + CONFIG["RUBY_INSTALL_NAME"]
+ cwd = Pathname.new(File.expand_path('.'))
@iopt = $:.map {|e|
- " -I " + e
+ " -I " + (Pathname.new(e).relative_path_from(cwd).to_s rescue e)
}.join("")
- @script = File.join(File.dirname(__FILE__), "err_in_callback.rb")
+ script = File.join(File.dirname(__FILE__), "err_in_callback.rb")
+ @script = Pathname.new(script).relative_path_from(cwd).to_s rescue script
end
end
@@ -35,18 +39,17 @@ if defined?(WIN32OLE)
def test_err_in_callback
skip "'ADODB.Connection' is not available" unless available_adodb?
if @ruby
- cmd = "#{@ruby} -v #{@iopt} #{@script} > test_err_in_callback.log 2>&1"
- system(cmd)
- str = ""
- open("test_err_in_callback.log") {|ifs|
- str = ifs.read
- }
- assert_match(/NameError/, str)
+ Dir.mktmpdir do |tmpdir|
+ logfile = File.join(tmpdir, "test_err_in_callback.log")
+ cmd = "#{@ruby} -v #{@iopt} #{@script} > #{logfile.gsub(%r(/), '\\')} 2>&1"
+ result = system(cmd)
+ str = ""
+ open(logfile) {|ifs|
+ str = ifs.read
+ }
+ assert_match(/NameError/, str)
+ end
end
end
-
- def teardown
- File.unlink("test_err_in_callback.log") if File.exist?("test_err_in_callback.log")
- end
end
end