* ext/-test-/num2int/num2int.c: Return string for result, instead of

printing.

* test/-ext-/num2int/test_num2int.rb: updated to follow above change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2013-04-01 11:58:55 +00:00
Родитель 4e52c3c60c
Коммит 0cbe2f4902
3 изменённых файлов: 56 добавлений и 103 удалений

Просмотреть файл

@ -1,3 +1,10 @@
Mon Apr 1 20:57:57 2013 Tanaka Akira <akr@fsij.org>
* ext/-test-/num2int/num2int.c: Return string for result, instead of
printing.
* test/-ext-/num2int/test_num2int.rb: updated to follow above change.
Mon Apr 1 20:08:07 2013 Tanaka Akira <akr@fsij.org>
* numeric.c (rb_num2long): Don't use SIGNED_VALUE uselessly.

Просмотреть файл

@ -1,161 +1,109 @@
#include <ruby.h>
static VALUE
print_num2short(VALUE obj, VALUE num)
test_num2short(VALUE obj, VALUE num)
{
char buf[128];
VALUE str;
sprintf(buf, "%d", NUM2SHORT(num));
str = rb_str_new_cstr(buf);
rb_io_write(rb_stdout, str);
return Qnil;
return rb_str_new_cstr(buf);
}
static VALUE
print_num2ushort(VALUE obj, VALUE num)
test_num2ushort(VALUE obj, VALUE num)
{
char buf[128];
VALUE str;
sprintf(buf, "%u", NUM2USHORT(num));
str = rb_str_new_cstr(buf);
rb_io_write(rb_stdout, str);
return Qnil;
return rb_str_new_cstr(buf);
}
static VALUE
print_num2int(VALUE obj, VALUE num)
test_num2int(VALUE obj, VALUE num)
{
char buf[128];
VALUE str;
sprintf(buf, "%d", NUM2INT(num));
str = rb_str_new_cstr(buf);
rb_io_write(rb_stdout, str);
return Qnil;
return rb_str_new_cstr(buf);
}
static VALUE
print_num2uint(VALUE obj, VALUE num)
test_num2uint(VALUE obj, VALUE num)
{
char buf[128];
VALUE str;
sprintf(buf, "%u", NUM2UINT(num));
str = rb_str_new_cstr(buf);
rb_io_write(rb_stdout, str);
return Qnil;
return rb_str_new_cstr(buf);
}
static VALUE
print_num2long(VALUE obj, VALUE num)
test_num2long(VALUE obj, VALUE num)
{
char buf[128];
VALUE str;
sprintf(buf, "%ld", NUM2LONG(num));
str = rb_str_new_cstr(buf);
rb_io_write(rb_stdout, str);
return Qnil;
return rb_str_new_cstr(buf);
}
static VALUE
print_num2ulong(VALUE obj, VALUE num)
test_num2ulong(VALUE obj, VALUE num)
{
char buf[128];
VALUE str;
sprintf(buf, "%lu", NUM2ULONG(num));
str = rb_str_new_cstr(buf);
rb_io_write(rb_stdout, str);
return Qnil;
return rb_str_new_cstr(buf);
}
#ifdef HAVE_LONG_LONG
static VALUE
print_num2ll(VALUE obj, VALUE num)
test_num2ll(VALUE obj, VALUE num)
{
char buf[128];
VALUE str;
sprintf(buf, "%"PRI_LL_PREFIX"d", NUM2LL(num));
str = rb_str_new_cstr(buf);
rb_io_write(rb_stdout, str);
return Qnil;
return rb_str_new_cstr(buf);
}
static VALUE
print_num2ull(VALUE obj, VALUE num)
test_num2ull(VALUE obj, VALUE num)
{
char buf[128];
VALUE str;
sprintf(buf, "%"PRI_LL_PREFIX"u", NUM2ULL(num));
str = rb_str_new_cstr(buf);
rb_io_write(rb_stdout, str);
return Qnil;
return rb_str_new_cstr(buf);
}
#endif
static VALUE
print_fix2short(VALUE obj, VALUE num)
test_fix2short(VALUE obj, VALUE num)
{
char buf[128];
VALUE str;
sprintf(buf, "%d", FIX2SHORT(num));
str = rb_str_new_cstr(buf);
rb_io_write(rb_stdout, str);
return Qnil;
return rb_str_new_cstr(buf);
}
static VALUE
print_fix2int(VALUE obj, VALUE num)
test_fix2int(VALUE obj, VALUE num)
{
char buf[128];
VALUE str;
sprintf(buf, "%d", FIX2INT(num));
str = rb_str_new_cstr(buf);
rb_io_write(rb_stdout, str);
return Qnil;
return rb_str_new_cstr(buf);
}
static VALUE
print_fix2uint(VALUE obj, VALUE num)
test_fix2uint(VALUE obj, VALUE num)
{
char buf[128];
VALUE str;
sprintf(buf, "%u", FIX2UINT(num));
str = rb_str_new_cstr(buf);
rb_io_write(rb_stdout, str);
return Qnil;
return rb_str_new_cstr(buf);
}
static VALUE
print_fix2long(VALUE obj, VALUE num)
test_fix2long(VALUE obj, VALUE num)
{
char buf[128];
VALUE str;
sprintf(buf, "%ld", FIX2LONG(num));
str = rb_str_new_cstr(buf);
rb_io_write(rb_stdout, str);
return Qnil;
return rb_str_new_cstr(buf);
}
static VALUE
print_fix2ulong(VALUE obj, VALUE num)
test_fix2ulong(VALUE obj, VALUE num)
{
char buf[128];
VALUE str;
sprintf(buf, "%lu", FIX2ULONG(num));
str = rb_str_new_cstr(buf);
rb_io_write(rb_stdout, str);
return Qnil;
return rb_str_new_cstr(buf);
}
void
@ -163,26 +111,26 @@ Init_num2int(void)
{
VALUE cNum2int = rb_path2class("TestNum2int::Num2int");
rb_define_singleton_method(cNum2int, "print_num2short", print_num2short, 1);
rb_define_singleton_method(cNum2int, "print_num2ushort", print_num2ushort, 1);
rb_define_singleton_method(cNum2int, "rb_num2short", test_num2short, 1);
rb_define_singleton_method(cNum2int, "rb_num2ushort", test_num2ushort, 1);
rb_define_singleton_method(cNum2int, "print_num2int", print_num2int, 1);
rb_define_singleton_method(cNum2int, "print_num2uint", print_num2uint, 1);
rb_define_singleton_method(cNum2int, "rb_num2int", test_num2int, 1);
rb_define_singleton_method(cNum2int, "rb_num2uint", test_num2uint, 1);
rb_define_singleton_method(cNum2int, "print_num2long", print_num2long, 1);
rb_define_singleton_method(cNum2int, "print_num2ulong", print_num2ulong, 1);
rb_define_singleton_method(cNum2int, "rb_num2long", test_num2long, 1);
rb_define_singleton_method(cNum2int, "rb_num2ulong", test_num2ulong, 1);
#ifdef HAVE_LONG_LONG
rb_define_singleton_method(cNum2int, "print_num2ll", print_num2ll, 1);
rb_define_singleton_method(cNum2int, "print_num2ull", print_num2ull, 1);
rb_define_singleton_method(cNum2int, "rb_num2ll", test_num2ll, 1);
rb_define_singleton_method(cNum2int, "rb_num2ull", test_num2ull, 1);
#endif
rb_define_singleton_method(cNum2int, "print_fix2short", print_fix2short, 1);
rb_define_singleton_method(cNum2int, "rb_fix2short", test_fix2short, 1);
rb_define_singleton_method(cNum2int, "print_fix2int", print_fix2int, 1);
rb_define_singleton_method(cNum2int, "print_fix2uint", print_fix2uint, 1);
rb_define_singleton_method(cNum2int, "rb_fix2int", test_fix2int, 1);
rb_define_singleton_method(cNum2int, "rb_fix2uint", test_fix2uint, 1);
rb_define_singleton_method(cNum2int, "print_fix2long", print_fix2long, 1);
rb_define_singleton_method(cNum2int, "print_fix2ulong", print_fix2ulong, 1);
rb_define_singleton_method(cNum2int, "rb_fix2long", test_fix2long, 1);
rb_define_singleton_method(cNum2int, "rb_fix2ulong", test_fix2ulong, 1);
}

Просмотреть файл

@ -33,12 +33,11 @@ class TestNum2int < Test::Unit::TestCase
def assert_num2i_success_internal(exp, func, arg)
mesg = "#{func}(#{arg.inspect})"
method = "print_#{func}".downcase
out = err = nil
method = "rb_#{func}".downcase
out = nil
assert_nothing_raised(mesg) {
out, err = capture_io { Num2int.send(method, arg) }
out = Num2int.send(method, arg)
}
STDERR.puts err if err && !err.empty?
assert_equal(exp, out, mesg)
end
@ -60,7 +59,7 @@ class TestNum2int < Test::Unit::TestCase
end
def assert_num2i_error_internal(func, arg)
method = "print_#{func}".downcase
method = "rb_#{func}".downcase
assert_raise(RangeError, "#{func}(#{arg.inspect})") {
Num2int.send(method, arg)
}
@ -85,12 +84,11 @@ class TestNum2int < Test::Unit::TestCase
def assert_fix2i_success_internal(exp, func, arg)
mesg = "#{func}(#{arg.inspect})"
method = "print_#{func}".downcase
out = err = nil
method = "rb_#{func}".downcase
out = nil
assert_nothing_raised(mesg) {
out, err = capture_io { Num2int.send(method, arg) }
out = Num2int.send(method, arg)
}
STDERR.puts err if err && !err.empty?
assert_equal(exp, out, mesg)
end
@ -101,7 +99,7 @@ class TestNum2int < Test::Unit::TestCase
end
def assert_fix2i_error_internal(func, arg)
method = "print_#{func}".downcase
method = "rb_#{func}".downcase
assert_raise(RangeError, "#{func}(#{arg.inspect})") {
Num2int.send(method, arg)
}
@ -178,7 +176,7 @@ class TestNum2int < Test::Unit::TestCase
assert_num2i_success(:ll, FIXNUM_MIN-1)
assert_num2i_success(:ll, FIXNUM_MAX)
assert_num2i_success(:ll, FIXNUM_MAX+1)
end if defined?(Num2int.print_num2ll)
end if defined?(Num2int.rb_num2ll)
def test_num2ull
assert_num2i_success(:ull, 0)
@ -191,7 +189,7 @@ class TestNum2int < Test::Unit::TestCase
assert_num2i_success(:ull, FIXNUM_MIN-1, ULLONG_MAX-FIXNUM_MAX-1)
assert_num2i_success(:ull, FIXNUM_MAX)
assert_num2i_success(:ull, FIXNUM_MAX+1)
end if defined?(Num2int.print_num2ull)
end if defined?(Num2int.rb_num2ull)
def test_fix2short
assert_fix2i_success(:short, 0)