summaryrefslogtreecommitdiff
path: root/spec/ruby/optional/capi/ext/numeric_spec.c
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/optional/capi/ext/numeric_spec.c')
-rw-r--r--spec/ruby/optional/capi/ext/numeric_spec.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/spec/ruby/optional/capi/ext/numeric_spec.c b/spec/ruby/optional/capi/ext/numeric_spec.c
index 0b7fbabd1c..2f66c7bac7 100644
--- a/spec/ruby/optional/capi/ext/numeric_spec.c
+++ b/spec/ruby/optional/capi/ext/numeric_spec.c
@@ -9,6 +9,10 @@ static VALUE numeric_spec_size_of_VALUE(VALUE self) {
return INT2FIX(sizeof(VALUE));
}
+static VALUE numeric_spec_size_of_long_long(VALUE self) {
+ return INT2FIX(sizeof(LONG_LONG));
+}
+
#ifdef HAVE_NUM2CHR
static VALUE numeric_spec_NUM2CHR(VALUE self, VALUE value) {
return INT2FIX(NUM2CHR(value));
@@ -43,6 +47,16 @@ static VALUE numeric_spec_rb_ll2inum_14(VALUE self) {
}
#endif
+#ifdef HAVE_RB_ULL2INUM
+static VALUE numeric_spec_rb_ull2inum_14(VALUE self) {
+ return rb_ull2inum(14);
+}
+
+static VALUE numeric_spec_rb_ull2inum_n14(VALUE self) {
+ return rb_ull2inum(-14);
+}
+#endif
+
#ifdef HAVE_RB_NUM2DBL
static VALUE numeric_spec_rb_num2dbl(VALUE self, VALUE num) {
return rb_float_new(rb_num2dbl(num));
@@ -121,6 +135,7 @@ void Init_numeric_spec(void) {
cls = rb_define_class("CApiNumericSpecs", rb_cObject);
rb_define_method(cls, "size_of_VALUE", numeric_spec_size_of_VALUE, 0);
+ rb_define_method(cls, "size_of_long_long", numeric_spec_size_of_long_long, 0);
#ifdef HAVE_NUM2CHR
rb_define_method(cls, "NUM2CHR", numeric_spec_NUM2CHR, 1);
@@ -143,6 +158,11 @@ void Init_numeric_spec(void) {
rb_define_method(cls, "rb_ll2inum_14", numeric_spec_rb_ll2inum_14, 0);
#endif
+#ifdef HAVE_RB_ULL2INUM
+ rb_define_method(cls, "rb_ull2inum_14", numeric_spec_rb_ull2inum_14, 0);
+ rb_define_method(cls, "rb_ull2inum_n14", numeric_spec_rb_ull2inum_n14, 0);
+#endif
+
#ifdef HAVE_RB_NUM2DBL
rb_define_method(cls, "rb_num2dbl", numeric_spec_rb_num2dbl, 1);
#endif