Unverified Commit e36db51b authored by Yukihiro "Matz" Matsumoto's avatar Yukihiro "Matz" Matsumoto Committed by GitHub

Merge pull request #4337 from shuujii/refactor-t_print-for-test

Refactor `t_print` for test
parents 36c9416b df4b0813
...@@ -45,29 +45,21 @@ eval_test(mrb_state *mrb) ...@@ -45,29 +45,21 @@ eval_test(mrb_state *mrb)
} }
} }
static void /* Implementation of print due to the reason that there might be no print */
t_printstr(mrb_state *mrb, mrb_value obj) static mrb_value
t_print(mrb_state *mrb, mrb_value self)
{ {
char *s; mrb_value *argv;
mrb_int len; mrb_int argc;
if (mrb_string_p(obj)) { mrb_get_args(mrb, "*!", &argv, &argc);
s = RSTRING_PTR(obj); for (mrb_int i = 0; i < argc; ++i) {
len = RSTRING_LEN(obj); mrb_value s = mrb_obj_as_string(mrb, argv[i]);
fwrite(s, len, 1, stdout); fwrite(RSTRING_PTR(s), RSTRING_LEN(s), 1, stdout);
fflush(stdout);
} }
} fflush(stdout);
mrb_value
mrb_t_printstr(mrb_state *mrb, mrb_value self)
{
mrb_value argv;
mrb_get_args(mrb, "o", &argv);
t_printstr(mrb, argv);
return argv; return mrb_nil_value();
} }
void void
...@@ -76,7 +68,7 @@ mrb_init_test_driver(mrb_state *mrb, mrb_bool verbose) ...@@ -76,7 +68,7 @@ mrb_init_test_driver(mrb_state *mrb, mrb_bool verbose)
struct RClass *krn, *mrbtest; struct RClass *krn, *mrbtest;
krn = mrb->kernel_module; krn = mrb->kernel_module;
mrb_define_method(mrb, krn, "__t_printstr__", mrb_t_printstr, MRB_ARGS_REQ(1)); mrb_define_method(mrb, krn, "t_print", t_print, MRB_ARGS_ANY());
mrbtest = mrb_define_module(mrb, "Mrbtest"); mrbtest = mrb_define_module(mrb, "Mrbtest");
......
...@@ -5,14 +5,12 @@ $skip_test = 0 ...@@ -5,14 +5,12 @@ $skip_test = 0
$asserts = [] $asserts = []
$test_start = Time.now if Object.const_defined?(:Time) $test_start = Time.now if Object.const_defined?(:Time)
# Implementation of print due to the reason that there might be no print unless RUBY_ENGINE == "mruby"
def t_print(*args) # For bintest on Ruby
i = 0 def t_print(*args)
len = args.size print *args
while i < len $stdout.flush
str = args[i].to_s nil
__t_printstr__ str rescue print str
i += 1
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment