diff options
Diffstat (limited to 'jni/ruby/test/rubygems/test_gem_platform.rb')
-rw-r--r-- | jni/ruby/test/rubygems/test_gem_platform.rb | 296 |
1 files changed, 296 insertions, 0 deletions
diff --git a/jni/ruby/test/rubygems/test_gem_platform.rb b/jni/ruby/test/rubygems/test_gem_platform.rb new file mode 100644 index 0000000..17577dc --- /dev/null +++ b/jni/ruby/test/rubygems/test_gem_platform.rb @@ -0,0 +1,296 @@ +require 'rubygems/test_case' +require 'rubygems/platform' +require 'rbconfig' + +class TestGemPlatform < Gem::TestCase + + 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.local, Gem::Platform.new(Gem::Platform::CURRENT) + assert_equal Gem::Platform::RUBY, Gem::Platform.new(Gem::Platform::RUBY) + assert_equal Gem::Platform::RUBY, Gem::Platform.new(nil) + assert_equal Gem::Platform::RUBY, Gem::Platform.new('') + 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], + 'universal-dotnet' => ['universal', 'dotnet', nil], + 'universal-dotnet2.0' => ['universal', 'dotnet', '2.0'], + 'universal-dotnet4.0' => ['universal', 'dotnet', '4.0'], + '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'], + 'universal-macruby' => ['universal', 'macruby', nil], + '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-freebsd' => ['x86', 'freebsd', nil], + 'universal-freebsd' => ['universal', 'freebsd', nil], + '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-mswin32-80' => ['x86', 'mswin32', '80'], + 'x86-mswin32' => ['x86', 'mswin32', nil], + 'x86-mswin32_60' => ['x86', 'mswin32', '60'], + 'x86-mswin32-60' => ['x86', 'mswin32', '60'], + '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'], + 'mswin32' => ['x86', 'mswin32', nil], + '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'], + 'x86_64-openbsd' => ['x86_64', 'openbsd', nil], + } + + 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' + + expected = ['x86', 'solaris', '2.10'] + + platform = Gem::Platform.new 'i386-solaris-2.10' + + assert_equal expected, platform.to_a, 'i386-solaris-2.10' + end + + def test_initialize_mswin32_vc6 + orig_RUBY_SO_NAME = RbConfig::CONFIG['RUBY_SO_NAME'] + RbConfig::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 + if orig_RUBY_SO_NAME then + RbConfig::CONFIG['RUBY_SO_NAME'] = orig_RUBY_SO_NAME + else + RbConfig::CONFIG.delete 'RUBY_SO_NAME' + end + end + + def test_initialize_platform + platform = Gem::Platform.new 'cpu-my_platform1' + + 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 + refute_equal my, other + refute_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) + refute(other === my) + refute(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') + refute((x86_darwin8 === Gem::Platform.local), 'powerpc =~ universal') + + util_set_arch 'i686-darwin8' + refute((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_cpu_arm + arm = Gem::Platform.new 'arm-linux' + armv5 = Gem::Platform.new 'armv5-linux' + armv7 = Gem::Platform.new 'armv7-linux' + + util_set_arch 'armv5-linux' + assert((arm === Gem::Platform.local), 'arm === armv5') + assert((armv5 === Gem::Platform.local), 'armv5 === armv5') + refute((armv7 === Gem::Platform.local), 'armv7 === armv5') + refute((Gem::Platform.local === arm), 'armv5 === arm') + + util_set_arch 'armv7-linux' + assert((arm === Gem::Platform.local), 'arm === armv7') + refute((armv5 === Gem::Platform.local), 'armv5 === armv7') + assert((armv7 === Gem::Platform.local), 'armv7 === armv7') + refute((Gem::Platform.local === arm), 'armv7 === arm') + 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') + + refute((x86_darwin7 === Gem::Platform.local), 'x86_darwin7 === x86_darwin8') + refute((x86_darwin9 === Gem::Platform.local), 'x86_darwin9 === x86_darwin8') + end + + def test_equals_tilde + util_set_arch 'i386-mswin32' + + assert_local_match 'mswin32' + assert_local_match 'i386-mswin32' + + # oddballs + assert_local_match 'i386-mswin32-mq5.3' + assert_local_match 'i386-mswin32-mq6' + refute_local_match 'win32-1.8.2-VC7' + refute_local_match 'win32-1.8.4-VC6' + refute_local_match 'win32-source' + refute_local_match 'windows' + + util_set_arch 'i686-linux' + assert_local_match 'i486-linux' + assert_local_match 'i586-linux' + assert_local_match 'i686-linux' + + util_set_arch 'i686-darwin8' + assert_local_match 'i686-darwin8.4.1' + assert_local_match 'i686-darwin8.8.2' + + util_set_arch 'java' + assert_local_match 'java' + assert_local_match 'jruby' + + util_set_arch 'universal-dotnet2.0' + assert_local_match 'universal-dotnet' + assert_local_match 'universal-dotnet-2.0' + refute_local_match 'universal-dotnet-4.0' + assert_local_match 'dotnet' + assert_local_match 'dotnet-2.0' + refute_local_match 'dotnet-4.0' + + util_set_arch 'universal-dotnet4.0' + assert_local_match 'universal-dotnet' + refute_local_match 'universal-dotnet-2.0' + assert_local_match 'universal-dotnet-4.0' + assert_local_match 'dotnet' + refute_local_match 'dotnet-2.0' + assert_local_match 'dotnet-4.0' + + util_set_arch 'universal-macruby-1.0' + assert_local_match 'universal-macruby' + assert_local_match 'macruby' + refute_local_match 'universal-macruby-0.10' + assert_local_match 'universal-macruby-1.0' + + util_set_arch 'powerpc-darwin' + assert_local_match 'powerpc-darwin' + + util_set_arch 'powerpc-darwin7' + assert_local_match 'powerpc-darwin7.9.0' + + util_set_arch 'powerpc-darwin8' + assert_local_match 'powerpc-darwin8.10.0' + + util_set_arch 'sparc-solaris2.8' + assert_local_match 'sparc-solaris2.8-mq5.3' + end + + def assert_local_match name + assert_match Gem::Platform.local, name + end + + def refute_local_match name + refute_match Gem::Platform.local, name + end +end + |