2005-02-04 08:35:37 -05:00
|
|
|
require 'test/unit'
|
|
|
|
require 'dl'
|
|
|
|
|
|
|
|
case RUBY_PLATFORM
|
|
|
|
when /cygwin/
|
|
|
|
LIBC_SO = "cygwin1.dll"
|
|
|
|
LIBM_SO = "cygwin1.dll"
|
2008-12-29 07:39:31 -05:00
|
|
|
when /x86_64-linux/
|
|
|
|
LIBC_SO = "/lib64/libc.so.6"
|
|
|
|
LIBM_SO = "/lib64/libm.so.6"
|
2005-02-04 08:35:37 -05:00
|
|
|
when /linux/
|
2008-12-29 09:54:24 -05:00
|
|
|
libdir = '/lib'
|
|
|
|
case [0].pack('L!').size
|
|
|
|
when 4
|
|
|
|
# 32-bit ruby
|
|
|
|
libdir = '/lib32' if File.directory? '/lib32'
|
|
|
|
when 8
|
|
|
|
# 64-bit ruby
|
|
|
|
libdir = '/lib64' if File.directory? '/lib64'
|
|
|
|
end
|
|
|
|
LIBC_SO = File.join(libdir, "libc.so.6")
|
|
|
|
LIBM_SO = File.join(libdir, "libm.so.6")
|
2005-02-09 04:42:40 -05:00
|
|
|
when /mingw/, /mswin32/
|
|
|
|
LIBC_SO = "msvcrt.dll"
|
|
|
|
LIBM_SO = "msvcrt.dll"
|
2008-12-27 22:58:02 -05:00
|
|
|
when /darwin/
|
|
|
|
LIBC_SO = "/usr/lib/libc.dylib"
|
|
|
|
LIBM_SO = "/usr/lib/libm.dylib"
|
2009-03-04 20:33:22 -05:00
|
|
|
when /bsd|dragonfly/
|
2008-12-28 07:42:39 -05:00
|
|
|
LIBC_SO = "/usr/lib/libc.so"
|
|
|
|
LIBM_SO = "/usr/lib/libm.so"
|
2005-02-04 08:35:37 -05:00
|
|
|
else
|
|
|
|
LIBC_SO = ARGV[0]
|
|
|
|
LIBM_SO = ARGV[1]
|
|
|
|
if( !(LIBC_SO && LIBM_SO) )
|
|
|
|
$stderr.puts("#{$0} <libc> <libm>")
|
|
|
|
exit
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
module DL
|
|
|
|
class TestBase < Test::Unit::TestCase
|
|
|
|
include Math
|
|
|
|
include DL
|
|
|
|
|
|
|
|
def setup
|
|
|
|
@libc = dlopen(LIBC_SO)
|
|
|
|
@libm = dlopen(LIBM_SO)
|
|
|
|
end
|
2009-03-05 22:56:38 -05:00
|
|
|
|
2005-02-04 08:35:37 -05:00
|
|
|
def assert_match(expected, actual, message="")
|
|
|
|
assert(expected === actual, message)
|
|
|
|
end
|
|
|
|
|
|
|
|
def assert_positive(actual)
|
|
|
|
assert(actual > 0)
|
|
|
|
end
|
|
|
|
|
|
|
|
def assert_zero(actual)
|
|
|
|
assert(actual == 0)
|
|
|
|
end
|
|
|
|
|
|
|
|
def assert_negative(actual)
|
|
|
|
assert(actual < 0)
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_empty()
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|