From ce973685d0456d1529c7b374ec6f6a890f393e2b Mon Sep 17 00:00:00 2001 From: dearblue Date: Sun, 2 May 2021 18:25:00 +0900 Subject: Rename mrbgems/mruby-inline-struct with mrbgems/mruby-test-inline-struct This gem contains only tests. --- mrbgems/mruby-inline-struct/mrbgem.rake | 5 - mrbgems/mruby-inline-struct/test/inline.c | 84 ----------------- mrbgems/mruby-inline-struct/test/inline.rb | 118 ------------------------ mrbgems/mruby-test-inline-struct/mrbgem.rake | 5 + mrbgems/mruby-test-inline-struct/test/inline.c | 84 +++++++++++++++++ mrbgems/mruby-test-inline-struct/test/inline.rb | 118 ++++++++++++++++++++++++ 6 files changed, 207 insertions(+), 207 deletions(-) delete mode 100644 mrbgems/mruby-inline-struct/mrbgem.rake delete mode 100644 mrbgems/mruby-inline-struct/test/inline.c delete mode 100644 mrbgems/mruby-inline-struct/test/inline.rb create mode 100644 mrbgems/mruby-test-inline-struct/mrbgem.rake create mode 100644 mrbgems/mruby-test-inline-struct/test/inline.c create mode 100644 mrbgems/mruby-test-inline-struct/test/inline.rb diff --git a/mrbgems/mruby-inline-struct/mrbgem.rake b/mrbgems/mruby-inline-struct/mrbgem.rake deleted file mode 100644 index 91ad9f44b..000000000 --- a/mrbgems/mruby-inline-struct/mrbgem.rake +++ /dev/null @@ -1,5 +0,0 @@ -MRuby::Gem::Specification.new('mruby-inline-struct') do |spec| - spec.license = 'MIT' - spec.author = 'mruby developers' - spec.summary = 'inline structure' -end diff --git a/mrbgems/mruby-inline-struct/test/inline.c b/mrbgems/mruby-inline-struct/test/inline.c deleted file mode 100644 index 6764b1af4..000000000 --- a/mrbgems/mruby-inline-struct/test/inline.c +++ /dev/null @@ -1,84 +0,0 @@ -#include -#include -#include -#include - -static mrb_value -istruct_test_initialize(mrb_state *mrb, mrb_value self) -{ - char *string = (char*)mrb_istruct_ptr(self); - mrb_int size = mrb_istruct_size(); - mrb_value object = mrb_get_arg1(mrb); - - if (mrb_integer_p(object)) { - strncpy(string, "fixnum", size-1); - } -#ifndef MRB_NO_FLOAT - else if (mrb_float_p(object)) { - strncpy(string, "float", size-1); - } -#endif - else if (mrb_string_p(object)) { - strncpy(string, "string", size-1); - } - else { - strncpy(string, "anything", size-1); - } - - string[size - 1] = 0; // force NULL at the end - return self; -} - -static mrb_value -istruct_test_to_s(mrb_state *mrb, mrb_value self) -{ - return mrb_str_new_cstr(mrb, (const char*)mrb_istruct_ptr(self)); -} - -static mrb_value -istruct_test_length(mrb_state *mrb, mrb_value self) -{ - return mrb_fixnum_value(mrb_istruct_size()); -} - -static mrb_value -istruct_test_test_receive(mrb_state *mrb, mrb_value self) -{ - mrb_value object = mrb_get_arg1(mrb); - - if (mrb_obj_class(mrb, object) != mrb_class_get(mrb, "InlineStructTest")) - { - mrb_raise(mrb, E_TYPE_ERROR, "Expected InlineStructTest"); - } - return mrb_bool_value(((char*)mrb_istruct_ptr(object))[0] == 's'); -} - -static mrb_value -istruct_test_test_receive_direct(mrb_state *mrb, mrb_value self) -{ - char *ptr; - mrb_get_args(mrb, "I", &ptr); - return mrb_bool_value(ptr[0] == 's'); -} - -static mrb_value -istruct_test_mutate(mrb_state *mrb, mrb_value self) -{ - char *ptr = (char*)mrb_istruct_ptr(self); - memcpy(ptr, "mutate", 6); - return mrb_nil_value(); -} - -void mrb_mruby_inline_struct_gem_test(mrb_state *mrb) -{ - struct RClass *cls; - - cls = mrb_define_class(mrb, "InlineStructTest", mrb->object_class); - MRB_SET_INSTANCE_TT(cls, MRB_TT_ISTRUCT); - mrb_define_method(mrb, cls, "initialize", istruct_test_initialize, MRB_ARGS_REQ(1)); - mrb_define_method(mrb, cls, "to_s", istruct_test_to_s, MRB_ARGS_NONE()); - mrb_define_method(mrb, cls, "mutate", istruct_test_mutate, MRB_ARGS_NONE()); - mrb_define_class_method(mrb, cls, "length", istruct_test_length, MRB_ARGS_NONE()); - mrb_define_class_method(mrb, cls, "test_receive", istruct_test_test_receive, MRB_ARGS_REQ(1)); - mrb_define_class_method(mrb, cls, "test_receive_direct", istruct_test_test_receive_direct, MRB_ARGS_REQ(1)); -} diff --git a/mrbgems/mruby-inline-struct/test/inline.rb b/mrbgems/mruby-inline-struct/test/inline.rb deleted file mode 100644 index f959a17c4..000000000 --- a/mrbgems/mruby-inline-struct/test/inline.rb +++ /dev/null @@ -1,118 +0,0 @@ -## -# InlineStruct Test - -class InlineStructTest - def extra_method - :ok - end - - def test_ivar_set - @var = :ivar - end - - def test_ivar_get - @vat - end -end - -assert('InlineStructTest#dup') do - obj = InlineStructTest.new(1) - assert_equal obj.to_s, 'fixnum' - assert_equal obj.dup.to_s, 'fixnum' -end - -assert('InlineStructTest#clone') do - obj = InlineStructTest.new(1) - assert_equal obj.to_s, 'fixnum' - assert_equal obj.clone.to_s, 'fixnum' -end - -assert('InlineStruct#object_id') do - obj1 = InlineStructTest.new(1) - obj2 = InlineStructTest.new(1) - assert_not_equal obj1, obj2 - assert_not_equal obj1.object_id, obj2.object_id - assert_not_equal obj1.object_id, obj1.dup.object_id - assert_not_equal obj1.object_id, obj1.clone.object_id -end - -assert('InlineStructTest#mutate (dup)') do - obj1 = InlineStructTest.new("foo") - assert_equal obj1.to_s, "string" - obj2 = obj1.dup - assert_equal obj2.to_s, "string" - obj1.mutate - assert_equal obj1.to_s, "mutate" - assert_equal obj2.to_s, "string" -end - -assert('InlineStructTest#mutate (clone)') do - obj1 = InlineStructTest.new("foo") - assert_equal obj1.to_s, "string" - obj2 = obj1.clone - assert_equal obj2.to_s, "string" - obj1.mutate - assert_equal obj1.to_s, "mutate" - assert_equal obj2.to_s, "string" -end - -assert('InlineStructTest#test_receive(string)') do - assert_equal InlineStructTest.test_receive(InlineStructTest.new('a')), true -end - -assert('InlineStructTest#test_receive(float)') do - assert_equal InlineStructTest.test_receive(InlineStructTest.new(1.25)), false -end - -assert('InlineStructTest#test_receive(invalid object)') do - assert_raise(TypeError) do - InlineStructTest.test_receive([]) - end -end - -assert('InlineStructTest#test_receive(string)') do - assert_equal InlineStructTest.test_receive_direct(InlineStructTest.new('a')), true -end - -assert('InlineStructTest#test_receive(float)') do - assert_equal InlineStructTest.test_receive_direct(InlineStructTest.new(1.25)), false -end - -assert('InlineStructTest#test_receive(invalid object)') do - assert_raise(TypeError) do - InlineStructTest.test_receive_direct([]) - end -end - -assert('InlineStructTest#extra_method') do - assert_equal InlineStructTest.new(1).extra_method, :ok -end - -assert('InlineStructTest instance variable') do - obj = InlineStructTest.new(1) - assert_raise(ArgumentError) do - obj.test_ivar_set - end - assert_equal obj.test_ivar_get, nil -end - -# 64-bit mode -if InlineStructTest.length == 24 - assert('InlineStructTest length [64 bit]') do - assert_equal InlineStructTest.length, 3 * 8 - end -end - -# 32-bit mode -if InlineStructTest.length == 12 - assert('InlineStructTest length [32 bit]') do - assert_equal InlineStructTest.length, 3 * 4 - end -end - -# 16-bit mode -if InlineStructTest.length == 6 - assert('InlineStructTest length [16 bit]') do - assert_equal InlineStructTest.length, 3 * 2 - end -end diff --git a/mrbgems/mruby-test-inline-struct/mrbgem.rake b/mrbgems/mruby-test-inline-struct/mrbgem.rake new file mode 100644 index 000000000..6cbca5417 --- /dev/null +++ b/mrbgems/mruby-test-inline-struct/mrbgem.rake @@ -0,0 +1,5 @@ +MRuby::Gem::Specification.new('mruby-test-inline-struct') do |spec| + spec.license = 'MIT' + spec.author = 'mruby developers' + spec.summary = 'inline structure' +end diff --git a/mrbgems/mruby-test-inline-struct/test/inline.c b/mrbgems/mruby-test-inline-struct/test/inline.c new file mode 100644 index 000000000..7a91f5ec3 --- /dev/null +++ b/mrbgems/mruby-test-inline-struct/test/inline.c @@ -0,0 +1,84 @@ +#include +#include +#include +#include + +static mrb_value +istruct_test_initialize(mrb_state *mrb, mrb_value self) +{ + char *string = (char*)mrb_istruct_ptr(self); + mrb_int size = mrb_istruct_size(); + mrb_value object = mrb_get_arg1(mrb); + + if (mrb_integer_p(object)) { + strncpy(string, "fixnum", size-1); + } +#ifndef MRB_NO_FLOAT + else if (mrb_float_p(object)) { + strncpy(string, "float", size-1); + } +#endif + else if (mrb_string_p(object)) { + strncpy(string, "string", size-1); + } + else { + strncpy(string, "anything", size-1); + } + + string[size - 1] = 0; // force NULL at the end + return self; +} + +static mrb_value +istruct_test_to_s(mrb_state *mrb, mrb_value self) +{ + return mrb_str_new_cstr(mrb, (const char*)mrb_istruct_ptr(self)); +} + +static mrb_value +istruct_test_length(mrb_state *mrb, mrb_value self) +{ + return mrb_fixnum_value(mrb_istruct_size()); +} + +static mrb_value +istruct_test_test_receive(mrb_state *mrb, mrb_value self) +{ + mrb_value object = mrb_get_arg1(mrb); + + if (mrb_obj_class(mrb, object) != mrb_class_get(mrb, "InlineStructTest")) + { + mrb_raise(mrb, E_TYPE_ERROR, "Expected InlineStructTest"); + } + return mrb_bool_value(((char*)mrb_istruct_ptr(object))[0] == 's'); +} + +static mrb_value +istruct_test_test_receive_direct(mrb_state *mrb, mrb_value self) +{ + char *ptr; + mrb_get_args(mrb, "I", &ptr); + return mrb_bool_value(ptr[0] == 's'); +} + +static mrb_value +istruct_test_mutate(mrb_state *mrb, mrb_value self) +{ + char *ptr = (char*)mrb_istruct_ptr(self); + memcpy(ptr, "mutate", 6); + return mrb_nil_value(); +} + +void mrb_mruby_test_inline_struct_gem_test(mrb_state *mrb) +{ + struct RClass *cls; + + cls = mrb_define_class(mrb, "InlineStructTest", mrb->object_class); + MRB_SET_INSTANCE_TT(cls, MRB_TT_ISTRUCT); + mrb_define_method(mrb, cls, "initialize", istruct_test_initialize, MRB_ARGS_REQ(1)); + mrb_define_method(mrb, cls, "to_s", istruct_test_to_s, MRB_ARGS_NONE()); + mrb_define_method(mrb, cls, "mutate", istruct_test_mutate, MRB_ARGS_NONE()); + mrb_define_class_method(mrb, cls, "length", istruct_test_length, MRB_ARGS_NONE()); + mrb_define_class_method(mrb, cls, "test_receive", istruct_test_test_receive, MRB_ARGS_REQ(1)); + mrb_define_class_method(mrb, cls, "test_receive_direct", istruct_test_test_receive_direct, MRB_ARGS_REQ(1)); +} diff --git a/mrbgems/mruby-test-inline-struct/test/inline.rb b/mrbgems/mruby-test-inline-struct/test/inline.rb new file mode 100644 index 000000000..f959a17c4 --- /dev/null +++ b/mrbgems/mruby-test-inline-struct/test/inline.rb @@ -0,0 +1,118 @@ +## +# InlineStruct Test + +class InlineStructTest + def extra_method + :ok + end + + def test_ivar_set + @var = :ivar + end + + def test_ivar_get + @vat + end +end + +assert('InlineStructTest#dup') do + obj = InlineStructTest.new(1) + assert_equal obj.to_s, 'fixnum' + assert_equal obj.dup.to_s, 'fixnum' +end + +assert('InlineStructTest#clone') do + obj = InlineStructTest.new(1) + assert_equal obj.to_s, 'fixnum' + assert_equal obj.clone.to_s, 'fixnum' +end + +assert('InlineStruct#object_id') do + obj1 = InlineStructTest.new(1) + obj2 = InlineStructTest.new(1) + assert_not_equal obj1, obj2 + assert_not_equal obj1.object_id, obj2.object_id + assert_not_equal obj1.object_id, obj1.dup.object_id + assert_not_equal obj1.object_id, obj1.clone.object_id +end + +assert('InlineStructTest#mutate (dup)') do + obj1 = InlineStructTest.new("foo") + assert_equal obj1.to_s, "string" + obj2 = obj1.dup + assert_equal obj2.to_s, "string" + obj1.mutate + assert_equal obj1.to_s, "mutate" + assert_equal obj2.to_s, "string" +end + +assert('InlineStructTest#mutate (clone)') do + obj1 = InlineStructTest.new("foo") + assert_equal obj1.to_s, "string" + obj2 = obj1.clone + assert_equal obj2.to_s, "string" + obj1.mutate + assert_equal obj1.to_s, "mutate" + assert_equal obj2.to_s, "string" +end + +assert('InlineStructTest#test_receive(string)') do + assert_equal InlineStructTest.test_receive(InlineStructTest.new('a')), true +end + +assert('InlineStructTest#test_receive(float)') do + assert_equal InlineStructTest.test_receive(InlineStructTest.new(1.25)), false +end + +assert('InlineStructTest#test_receive(invalid object)') do + assert_raise(TypeError) do + InlineStructTest.test_receive([]) + end +end + +assert('InlineStructTest#test_receive(string)') do + assert_equal InlineStructTest.test_receive_direct(InlineStructTest.new('a')), true +end + +assert('InlineStructTest#test_receive(float)') do + assert_equal InlineStructTest.test_receive_direct(InlineStructTest.new(1.25)), false +end + +assert('InlineStructTest#test_receive(invalid object)') do + assert_raise(TypeError) do + InlineStructTest.test_receive_direct([]) + end +end + +assert('InlineStructTest#extra_method') do + assert_equal InlineStructTest.new(1).extra_method, :ok +end + +assert('InlineStructTest instance variable') do + obj = InlineStructTest.new(1) + assert_raise(ArgumentError) do + obj.test_ivar_set + end + assert_equal obj.test_ivar_get, nil +end + +# 64-bit mode +if InlineStructTest.length == 24 + assert('InlineStructTest length [64 bit]') do + assert_equal InlineStructTest.length, 3 * 8 + end +end + +# 32-bit mode +if InlineStructTest.length == 12 + assert('InlineStructTest length [32 bit]') do + assert_equal InlineStructTest.length, 3 * 4 + end +end + +# 16-bit mode +if InlineStructTest.length == 6 + assert('InlineStructTest length [16 bit]') do + assert_equal InlineStructTest.length, 3 * 2 + end +end -- cgit v1.2.3