aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-12-18 03:16:27 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-12-18 03:16:27 +0000
commitb06dfe594e0e4709d41f101ee7e9ecbb85728728 (patch)
tree79ea9a396164f6f29087147fa20a6d79638558b0
parent87f099d0699f77162007217611c4568b6926092c (diff)
downloadruby-b06dfe594e0e4709d41f101ee7e9ecbb85728728.tar.gz
* lib/rubygems/specification.rb: Fixed ruby output of requirements
with multiple version specifiers. * test/rubygems/test_gem_ext_cmake_builder.rb: Only look for specific lines in cmake output. Should fix [ruby-trunk - Bug #7579] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--lib/rubygems/specification.rb5
-rw-r--r--test/rubygems/test_gem_ext_cmake_builder.rb32
3 files changed, 30 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 853859d7c7..76dec742c4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Tue Dec 18 12:15:59 2012 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems/specification.rb: Fixed ruby output of requirements
+ with multiple version specifiers.
+ * test/rubygems/test_gem_ext_cmake_builder.rb: Only look for specific
+ lines in cmake output. Should fix [ruby-trunk - Bug #7579]
+
Tue Dec 18 11:45:26 2012 Eric Hodel <drbrain@segment7.net>
* doc/syntax/literals.rdoc: Added 0o octal integers.
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
index ad87e997a4..0b349bccc7 100644
--- a/lib/rubygems/specification.rb
+++ b/lib/rubygems/specification.rb
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
@@ -2048,7 +2049,9 @@ class Gem::Specification
when Numeric then obj.inspect
when true, false, nil then obj.inspect
when Gem::Platform then "Gem::Platform.new(#{obj.to_a.inspect})"
- when Gem::Requirement then "Gem::Requirement.new(#{obj.to_s.inspect})"
+ when Gem::Requirement then
+ list = obj.as_list
+ "Gem::Requirement.new(#{ruby_code(list.size == 1 ? obj.to_s : list)})"
else raise Gem::Exception, "ruby_code case not handled: #{obj.class}"
end
end
diff --git a/test/rubygems/test_gem_ext_cmake_builder.rb b/test/rubygems/test_gem_ext_cmake_builder.rb
index 8c01c12982..0e4f8fe0ff 100644
--- a/test/rubygems/test_gem_ext_cmake_builder.rb
+++ b/test/rubygems/test_gem_ext_cmake_builder.rb
@@ -24,8 +24,8 @@ cmake_minimum_required(VERSION 2.8)
install (FILES test.txt DESTINATION bin)
eo_cmake
end
- File.open File.join(@ext, 'test.txt'), 'w' do |testfile|
- end
+
+ FileUtils.touch File.join(@ext, 'test.txt')
output = []
@@ -33,12 +33,14 @@ install (FILES test.txt DESTINATION bin)
Gem::Ext::CmakeBuilder.build nil, nil, @dest_path, output
end
- assert_equal "cmake . -DCMAKE_INSTALL_PREFIX=#{@dest_path}", output.shift
- assert_match(/#{@ext}/, output.shift)
- assert_equal make_command, output.shift
- assert_equal "", output.shift.gsub(/^make\[1\]: (?:Entering|Leaving) directory .*\n/,"")
- assert_equal make_command + " install", output.shift
- assert_match(/test\.txt/, output.shift)
+ output = output.join "\n"
+
+ assert_match \
+ %r%^cmake \. -DCMAKE_INSTALL_PREFIX=#{Regexp.escape @dest_path}%, output
+ assert_match %r%#{Regexp.escape @ext}%, output
+ assert_match %r%^#{Regexp.escape make_command}$%, output
+ assert_match %r%^#{Regexp.escape make_command} install$%, output
+ assert_match %r%test\.txt%, output
end
def test_self_build_fail
@@ -50,6 +52,8 @@ install (FILES test.txt DESTINATION bin)
end
end
+ output = output.join "\n"
+
shell_error_msg = %r{(CMake Error: .*)}
sh_prefix_cmake = "cmake . -DCMAKE_INSTALL_PREFIX="
@@ -61,9 +65,8 @@ install (FILES test.txt DESTINATION bin)
assert_match expected, error.message
- assert_equal "#{sh_prefix_cmake}#{@dest_path}", output.shift
- assert_match %r(#{shell_error_msg}), output.shift
- assert_equal true, output.empty?
+ assert_match %r%^#{sh_prefix_cmake}#{Regexp.escape @dest_path}%, output
+ assert_match %r%#{shell_error_msg}%, output
end
def test_self_build_has_makefile
@@ -72,12 +75,15 @@ install (FILES test.txt DESTINATION bin)
end
output = []
+
Dir.chdir @ext do
Gem::Ext::CmakeBuilder.build nil, nil, @dest_path, output
end
- assert_equal make_command, output[0]
- assert_equal "#{make_command} install", output[2]
+ output = output.join "\n"
+
+ assert_match %r%^#{make_command}%, output
+ assert_match %r%^#{make_command} install%, output
end
end