From fbf59bdbea63efd34ccc144e648467d2f52e7345 Mon Sep 17 00:00:00 2001 From: drbrain Date: Sat, 10 Nov 2007 07:48:56 +0000 Subject: Import RubyGems trunk revision 1493. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/rubygems/test_gem_platform.rb | 239 +++++++++++++++++++++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 test/rubygems/test_gem_platform.rb (limited to 'test/rubygems/test_gem_platform.rb') diff --git a/test/rubygems/test_gem_platform.rb b/test/rubygems/test_gem_platform.rb new file mode 100644 index 0000000000..4c583edf27 --- /dev/null +++ b/test/rubygems/test_gem_platform.rb @@ -0,0 +1,239 @@ +require File.join(File.expand_path(File.dirname(__FILE__)), 'gemutilities') +require 'test/unit' +require 'rubygems/platform' +require 'rbconfig' + +class TestGemPlatform < RubyGemTestCase + + def test_self_local + util_set_arch 'i686-darwin8.10.1' + + assert_equal Gem::Platform.new(%w[x86 darwin 8]), Gem::Platform.local + end + + def test_self_match + assert Gem::Platform.match(nil), 'nil == ruby' + assert Gem::Platform.match(Gem::Platform.local), 'exact match' + assert Gem::Platform.match(Gem::Platform.local.to_s), '=~ match' + assert Gem::Platform.match(Gem::Platform::RUBY), 'ruby' + end + + def test_self_new + assert_equal Gem::Platform::RUBY, Gem::Platform.new(Gem::Platform::RUBY) + assert_equal Gem::Platform::RUBY, Gem::Platform.new(nil) + end + + def test_initialize + test_cases = { + 'amd64-freebsd6' => ['amd64', 'freebsd', '6'], + 'hppa2.0w-hpux11.31' => ['hppa2.0w', 'hpux', '11'], + 'java' => [nil, 'java', nil], + 'jruby' => [nil, 'java', nil], + 'powerpc-aix5.3.0.0' => ['powerpc', 'aix', '5'], + 'powerpc-darwin7' => ['powerpc', 'darwin', '7'], + 'powerpc-darwin8' => ['powerpc', 'darwin', '8'], + 'powerpc-linux' => ['powerpc', 'linux', nil], + 'powerpc64-linux' => ['powerpc64', 'linux', nil], + 'sparc-solaris2.10' => ['sparc', 'solaris', '2.10'], + 'sparc-solaris2.8' => ['sparc', 'solaris', '2.8'], + 'sparc-solaris2.9' => ['sparc', 'solaris', '2.9'], + 'universal-darwin8' => ['universal', 'darwin', '8'], + 'universal-darwin9' => ['universal', 'darwin', '9'], + 'i386-cygwin' => ['x86', 'cygwin', nil], + 'i686-darwin' => ['x86', 'darwin', nil], + 'i686-darwin8.4.1' => ['x86', 'darwin', '8'], + 'i386-freebsd4.11' => ['x86', 'freebsd', '4'], + 'i386-freebsd5' => ['x86', 'freebsd', '5'], + 'i386-freebsd6' => ['x86', 'freebsd', '6'], + 'i386-freebsd7' => ['x86', 'freebsd', '7'], + 'i386-java1.5' => ['x86', 'java', '1.5'], + 'x86-java1.6' => ['x86', 'java', '1.6'], + 'i386-java1.6' => ['x86', 'java', '1.6'], + 'i686-linux' => ['x86', 'linux', nil], + 'i586-linux' => ['x86', 'linux', nil], + 'i486-linux' => ['x86', 'linux', nil], + 'i386-linux' => ['x86', 'linux', nil], + 'i586-linux-gnu' => ['x86', 'linux', nil], + 'i386-linux-gnu' => ['x86', 'linux', nil], + 'i386-mingw32' => ['x86', 'mingw32', nil], + 'i386-mswin32' => ['x86', 'mswin32', nil], + 'i386-mswin32_80' => ['x86', 'mswin32', '80'], + 'i386-netbsdelf' => ['x86', 'netbsdelf', nil], + 'i386-openbsd4.0' => ['x86', 'openbsd', '4.0'], + 'i386-solaris2.10' => ['x86', 'solaris', '2.10'], + 'i386-solaris2.8' => ['x86', 'solaris', '2.8'], + 'x86_64-linux' => ['x86_64', 'linux', nil], + 'x86_64-openbsd3.9' => ['x86_64', 'openbsd', '3.9'], + 'x86_64-openbsd4.0' => ['x86_64', 'openbsd', '4.0'], + } + + test_cases.each do |arch, expected| + platform = Gem::Platform.new arch + assert_equal expected, platform.to_a, arch.inspect + end + end + + def test_initialize_command_line + expected = ['x86', 'mswin32', nil] + + platform = Gem::Platform.new 'i386-mswin32' + + assert_equal expected, platform.to_a, 'i386-mswin32' + + expected = ['x86', 'mswin32', '80'] + + platform = Gem::Platform.new 'i386-mswin32-80' + + assert_equal expected, platform.to_a, 'i386-mswin32-80' + end + + def test_initialize_mswin32_vc6 + orig_RUBY_SO_NAME = Config::CONFIG['RUBY_SO_NAME'] + Config::CONFIG['RUBY_SO_NAME'] = 'msvcrt-ruby18' + + expected = ['x86', 'mswin32', nil] + + platform = Gem::Platform.new 'i386-mswin32' + + assert_equal expected, platform.to_a, 'i386-mswin32 VC6' + ensure + Config::CONFIG['RUBY_SO_NAME'] = orig_RUBY_SO_NAME + end + + def test_initialize_platform + platform = Gem::Platform.new 'cpu-my_platform1' + expected = Gem::Platform.new platform + + assert_equal 'cpu', platform.cpu + assert_equal 'my_platform', platform.os + assert_equal '1', platform.version + end + + def test_initialize_test + platform = Gem::Platform.new 'cpu-my_platform1' + assert_equal 'cpu', platform.cpu + assert_equal 'my_platform', platform.os + assert_equal '1', platform.version + + platform = Gem::Platform.new 'cpu-other_platform1' + assert_equal 'cpu', platform.cpu + assert_equal 'other_platform', platform.os + assert_equal '1', platform.version + end + + def test_to_s + if win_platform? then + assert_equal 'x86-mswin32-60', Gem::Platform.local.to_s + else + assert_equal 'x86-darwin-8', Gem::Platform.local.to_s + end + end + + def test_equals2 + my = Gem::Platform.new %w[cpu my_platform 1] + other = Gem::Platform.new %w[cpu other_platform 1] + + assert_equal my, my + assert_not_equal my, other + assert_not_equal other, my + end + + def test_equals3 + my = Gem::Platform.new %w[cpu my_platform 1] + other = Gem::Platform.new %w[cpu other_platform 1] + + assert(my === my) + assert !(other === my) + assert !(my === other) + end + + def test_equals3_cpu + ppc_darwin8 = Gem::Platform.new 'powerpc-darwin8.0' + uni_darwin8 = Gem::Platform.new 'universal-darwin8.0' + x86_darwin8 = Gem::Platform.new 'i686-darwin8.0' + + util_set_arch 'powerpc-darwin8' + assert((ppc_darwin8 === Gem::Platform.local), 'powerpc =~ universal') + assert((uni_darwin8 === Gem::Platform.local), 'powerpc =~ universal') + assert !(x86_darwin8 === Gem::Platform.local), 'powerpc =~ universal' + + util_set_arch 'i686-darwin8' + assert !(ppc_darwin8 === Gem::Platform.local), 'powerpc =~ universal' + assert((uni_darwin8 === Gem::Platform.local), 'x86 =~ universal') + assert((x86_darwin8 === Gem::Platform.local), 'powerpc =~ universal') + + util_set_arch 'universal-darwin8' + assert((ppc_darwin8 === Gem::Platform.local), 'universal =~ ppc') + assert((uni_darwin8 === Gem::Platform.local), 'universal =~ universal') + assert((x86_darwin8 === Gem::Platform.local), 'universal =~ x86') + end + + def test_equals3_version + util_set_arch 'i686-darwin8' + + x86_darwin = Gem::Platform.new ['x86', 'darwin', nil] + x86_darwin7 = Gem::Platform.new ['x86', 'darwin', '7'] + x86_darwin8 = Gem::Platform.new ['x86', 'darwin', '8'] + x86_darwin9 = Gem::Platform.new ['x86', 'darwin', '9'] + + assert((x86_darwin === Gem::Platform.local), 'x86_darwin === x86_darwin8') + assert((x86_darwin8 === Gem::Platform.local), 'x86_darwin8 === x86_darwin8') + + assert !(x86_darwin7 === Gem::Platform.local), 'x86_darwin7 === x86_darwin8' + assert !(x86_darwin9 === Gem::Platform.local), 'x86_darwin9 === x86_darwin8' + end + + def test_equals_tilde + util_set_arch 'i386-mswin32' + + assert_match 'mswin32', Gem::Platform.local + assert_match 'i386-mswin32', Gem::Platform.local + + # oddballs + assert_match 'i386-mswin32-mq5.3', Gem::Platform.local + assert_match 'i386-mswin32-mq6', Gem::Platform.local + deny_match 'win32-1.8.2-VC7', Gem::Platform.local + deny_match 'win32-1.8.4-VC6', Gem::Platform.local + deny_match 'win32-source', Gem::Platform.local + deny_match 'windows', Gem::Platform.local + + util_set_arch 'i686-linux' + assert_match 'i486-linux', Gem::Platform.local + assert_match 'i586-linux', Gem::Platform.local + assert_match 'i686-linux', Gem::Platform.local + + util_set_arch 'i686-darwin8' + assert_match 'i686-darwin8.4.1', Gem::Platform.local + assert_match 'i686-darwin8.8.2', Gem::Platform.local + + util_set_arch 'java' + assert_match 'java', Gem::Platform.local + assert_match 'jruby', Gem::Platform.local + + util_set_arch 'powerpc-darwin' + assert_match 'powerpc-darwin', Gem::Platform.local + + util_set_arch 'powerpc-darwin7' + assert_match 'powerpc-darwin7.9.0', Gem::Platform.local + + util_set_arch 'powerpc-darwin8' + assert_match 'powerpc-darwin8.10.0', Gem::Platform.local + + util_set_arch 'sparc-solaris2.8' + assert_match 'sparc-solaris2.8-mq5.3', Gem::Platform.local + end + + def assert_match(pattern, platform, message = '') + full_message = build_message message, " expected to be =~\n.", + platform, pattern + assert_block(full_message) { platform =~ pattern } + end + + def deny_match(pattern, platform, message = '') + full_message = build_message message, " expected to be !~\n.", + platform, pattern + assert_block(full_message) { platform !~ pattern } + end + +end + -- cgit v1.2.3