aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.in2
-rw-r--r--test/ruby/test_time.rb17
2 files changed, 17 insertions, 2 deletions
diff --git a/configure.in b/configure.in
index dedde6d83f..a2b0a5b916 100644
--- a/configure.in
+++ b/configure.in
@@ -1642,13 +1642,11 @@ AC_CACHE_CHECK(packed struct attribute, rb_cv_packed_struct,
PACKED_STRUCT(struct { int a; });], [],
[rb_cv_packed_struct=$mac; break])
done])
-packed_struct_unaligned=x
if test "$rb_cv_packed_struct" != no; then
AC_DEFINE_UNQUOTED([PACKED_STRUCT(x)], [$rb_cv_packed_struct])
else
AC_DEFINE_UNQUOTED([PACKED_STRUCT(x)], x)
fi
-AC_DEFINE_UNQUOTED(PACKED_STRUCT_UNALIGNED(x), $packed_struct_unaligned)
AC_DEFUN([RUBY_CHECK_PRINTF_PREFIX], [
AC_CACHE_CHECK([for printf prefix for $1], [rb_cv_pri_prefix_]AS_TR_SH($1),[
diff --git a/test/ruby/test_time.rb b/test/ruby/test_time.rb
index 48bc01d977..41d4b03553 100644
--- a/test/ruby/test_time.rb
+++ b/test/ruby/test_time.rb
@@ -1110,4 +1110,21 @@ class TestTime < Test::Unit::TestCase
end.new
assert_raise_with_message(TypeError, /Inexact/) {Time.at(x)}
end
+
+ def test_memsize
+ # Time objects are common in some code, try to keep them small
+ skip "Time object size test" if /^(?:i.?86|x86_64)-linux/ !~ RUBY_PLATFORM
+ require 'objspace'
+ t = Time.at(0)
+ size = GC::INTERNAL_CONSTANTS[:RVALUE_SIZE]
+ case size
+ when 20 then expect = 50
+ when 40 then expect = 86
+ else
+ flunk "Unsupported RVALUE_SIZE=#{size}, update test_memsize"
+ end
+ assert_equal expect, ObjectSpace.memsize_of(t)
+ rescue LoadError => e
+ skip "failed to load objspace: #{e.message}"
+ end
end