diff options
Diffstat (limited to 'ext/-test-')
-rw-r--r-- | ext/-test-/integer/my_integer.c | 6 | ||||
-rw-r--r-- | ext/-test-/load/resolve_symbol_target/resolve_symbol_target.def | 4 | ||||
-rw-r--r-- | ext/-test-/load/stringify_target/stringify_target.def | 4 | ||||
-rw-r--r-- | ext/-test-/public_header_warnings/extconf.rb | 23 | ||||
-rw-r--r-- | ext/-test-/string/chilled.c | 13 | ||||
-rw-r--r-- | ext/-test-/string/set_len.c | 8 | ||||
-rw-r--r-- | ext/-test-/thread/id/extconf.rb | 3 | ||||
-rw-r--r-- | ext/-test-/thread/id/id.c | 15 |
8 files changed, 54 insertions, 22 deletions
diff --git a/ext/-test-/integer/my_integer.c b/ext/-test-/integer/my_integer.c index d86474bd7d..94f14d2765 100644 --- a/ext/-test-/integer/my_integer.c +++ b/ext/-test-/integer/my_integer.c @@ -1,9 +1,13 @@ #include "ruby.h" +static const rb_data_type_t my_integer_type = { + "MyInteger", {0}, 0, 0, RUBY_TYPED_FREE_IMMEDIATELY +}; + static VALUE my_integer_s_new(VALUE klass) { - return Data_Wrap_Struct(klass, 0, 0, 0); + return TypedData_Wrap_Struct(klass, &my_integer_type, 0); } void diff --git a/ext/-test-/load/resolve_symbol_target/resolve_symbol_target.def b/ext/-test-/load/resolve_symbol_target/resolve_symbol_target.def deleted file mode 100644 index c2ed3610fe..0000000000 --- a/ext/-test-/load/resolve_symbol_target/resolve_symbol_target.def +++ /dev/null @@ -1,4 +0,0 @@ -LIBRARY resolve_symbol_target -EXPORTS - Init_resolve_symbol_target - rst_any_method diff --git a/ext/-test-/load/stringify_target/stringify_target.def b/ext/-test-/load/stringify_target/stringify_target.def deleted file mode 100644 index 89c2b762de..0000000000 --- a/ext/-test-/load/stringify_target/stringify_target.def +++ /dev/null @@ -1,4 +0,0 @@ -LIBRARY stringify_target -EXPORTS - Init_stringify_target - stt_any_method diff --git a/ext/-test-/public_header_warnings/extconf.rb b/ext/-test-/public_header_warnings/extconf.rb new file mode 100644 index 0000000000..f6a8a51f63 --- /dev/null +++ b/ext/-test-/public_header_warnings/extconf.rb @@ -0,0 +1,23 @@ +# +# Under compilers with WERRORFLAG, MakeMakefile.try_compile treats warnings as errors, so we can +# use append_cflags to test whether the public header files emit warnings with certain flags turned +# on. +# +def check_append_cflags(flag, msg = nil) + msg ||= "flag #{flag} is not acceptable" + !$CFLAGS.include?(flag) or raise("flag #{flag} already present in $CFLAGS") + append_cflags(flag) + $CFLAGS.include?(flag) or raise(msg) +end + +if %w[gcc clang].include?(RbConfig::CONFIG['CC']) + config_string("WERRORFLAG") or raise("expected WERRORFLAG to be defined") + + # should be acceptable on all modern C compilers + check_append_cflags("-D_TEST_OK", "baseline compiler warning test failed") + + # Feature #20507: Allow compilation of C extensions with -Wconversion + check_append_cflags("-Wconversion", "-Wconversion raising warnings in public headers") +end + +create_makefile("-test-/public_header_warnings") diff --git a/ext/-test-/string/chilled.c b/ext/-test-/string/chilled.c deleted file mode 100644 index c98fc72c47..0000000000 --- a/ext/-test-/string/chilled.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "ruby.h" - -static VALUE -bug_s_rb_str_chilled_p(VALUE self, VALUE str) -{ - return rb_str_chilled_p(str) ? Qtrue : Qfalse; -} - -void -Init_string_chilled(VALUE klass) -{ - rb_define_singleton_method(klass, "rb_str_chilled_p", bug_s_rb_str_chilled_p, 1); -} diff --git a/ext/-test-/string/set_len.c b/ext/-test-/string/set_len.c index 049da2cdb5..b55ef6f469 100644 --- a/ext/-test-/string/set_len.c +++ b/ext/-test-/string/set_len.c @@ -16,9 +16,17 @@ bug_str_append(VALUE str, VALUE addendum) return str; } +static VALUE +bug_str_resize(VALUE str, VALUE len) +{ + rb_str_resize(str, NUM2LONG(len)); + return str; +} + void Init_string_set_len(VALUE klass) { rb_define_method(klass, "set_len", bug_str_set_len, 1); rb_define_method(klass, "append", bug_str_append, 1); + rb_define_method(klass, "resize", bug_str_resize, 1); } diff --git a/ext/-test-/thread/id/extconf.rb b/ext/-test-/thread/id/extconf.rb new file mode 100644 index 0000000000..a0ae0eff15 --- /dev/null +++ b/ext/-test-/thread/id/extconf.rb @@ -0,0 +1,3 @@ +if have_func("gettid") + create_makefile("-test-/thread/id") +end diff --git a/ext/-test-/thread/id/id.c b/ext/-test-/thread/id/id.c new file mode 100644 index 0000000000..b46a5955e2 --- /dev/null +++ b/ext/-test-/thread/id/id.c @@ -0,0 +1,15 @@ +#include <ruby.h> + +static VALUE +bug_gettid(VALUE self) +{ + pid_t tid = gettid(); + return PIDT2NUM(tid); +} + +void +Init_id(void) +{ + VALUE klass = rb_define_module_under(rb_define_module("Bug"), "ThreadID"); + rb_define_module_function(klass, "gettid", bug_gettid, 0); +} |