Ensure that unmatched arity fails in C++

This commit is contained in:
Nobuyoshi Nakada 2019-09-19 20:07:24 +09:00
Родитель b3ddeac33e
Коммит a3daf8e49a
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4BC7D6DF58D8DF60
2 изменённых файлов: 27 добавлений и 1 удалений

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

@ -22,5 +22,18 @@ begin
end
if ok
create_makefile("-test-/cxxanyargs")
$srcs = %w[cxxanyargs.cpp]
$cleanfiles << "failure.failed"
create_makefile("-test-/cxxanyargs") do |mk|
mk << <<MK
cxxanyargs.#$OBJEXT: failure.failed
failure.failed: failure.cpp
\t$(Q)$(RUBY) -rfileutils \\
\t -e "err = IO.popen(%[$(MAKE) failure.#$OBJEXT], err:[:child, :out], &:read)" \\
\t -e "abort err unless /rb_define_method/ =~ err" \\
\t -e "FileUtils.touch(*ARGV)" $@
MK
end
end

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

@ -0,0 +1,13 @@
#include <ruby/ruby.h>
static VALUE
func_arg1(VALUE self, VALUE arg1)
{
return arg1;
}
extern "C" void
Init_failure(void)
{
rb_define_method(rb_cObject, "arg1", func_arg1, 0);
}