Commit df4b0813 authored by KOBAYASHI Shuji's avatar KOBAYASHI Shuji

Refactor `t_print` for test

parent 36c9416b
...@@ -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_int len;
if (mrb_string_p(obj)) {
s = RSTRING_PTR(obj);
len = RSTRING_LEN(obj);
fwrite(s, len, 1, stdout);
fflush(stdout);
}
}
mrb_value
mrb_t_printstr(mrb_state *mrb, mrb_value self)
{ {
mrb_value argv; mrb_value *argv;
mrb_int argc;
mrb_get_args(mrb, "o", &argv); mrb_get_args(mrb, "*!", &argv, &argc);
t_printstr(mrb, argv); for (mrb_int i = 0; i < argc; ++i) {
mrb_value s = mrb_obj_as_string(mrb, argv[i]);
fwrite(RSTRING_PTR(s), RSTRING_LEN(s), 1, stdout);
}
fflush(stdout);
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
...@@ -110,8 +108,8 @@ def assert_not_equal(exp, act_or_msg = nil, msg = nil, &block) ...@@ -110,8 +108,8 @@ def assert_not_equal(exp, act_or_msg = nil, msg = nil, &block)
assert_true(!ret, msg, diff) assert_true(!ret, msg, diff)
end end
def assert_same(*args); _assert_same(true, *args) end def assert_same(*args); _assert_same(true, *args) end
def assert_not_same(*args); _assert_same(false, *args) end def assert_not_same(*args); _assert_same(false, *args) end
def _assert_same(affirmed, exp, act, msg = nil) def _assert_same(affirmed, exp, act, msg = nil)
unless ret = exp.equal?(act) == affirmed unless ret = exp.equal?(act) == affirmed
exp_str, act_str = [exp, act].map do |o| exp_str, act_str = [exp, act].map do |o|
......
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