diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-03-21 11:35:20 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-03-21 11:35:20 +0000 |
commit | 1191b359297c5d3ee61264a38c79367c19b9a847 (patch) | |
tree | 5301a8f8bdcb4f261a62026444b7ec6eb6b465d3 /test/win32ole | |
parent | ac24e257abc6d315b84072171a792b20d8b9d7a6 (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/win32ole')
-rw-r--r-- | test/win32ole/test_err_in_callback.rb | 29 |
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 |