GitHub

@@ -66,33 +66,27 @@ MRuby::Gem::Specification.new('mruby-test') do |spec|

6666

f.puts %Q[void mrb_t_pass_result(mrb_state *dst, mrb_state *src);]

6767

f.puts %Q[void GENERATED_TMP_mrb_#{g.funcname}_gem_test(mrb_state *mrb) {]

6868

unless g.test_rbfiles.empty?

69-

f.puts %Q[ mrb_state *mrb2;]

7069

unless g.test_args.empty?

7170

f.puts %Q[ mrb_value test_args_hash;]

7271

end

72+

f.puts %Q[ mrb_state *mrb2 = mrb_open_core(mrb_default_allocf, NULL);]

73+

f.puts %Q[ if (mrb2 == NULL) {]

74+

f.puts %Q[ fprintf(stderr, "Invalid mrb_state, exiting \%s", __func__);]

75+

f.puts %Q[ exit(EXIT_FAILURE);]

76+

f.puts %Q[ }]

77+

f.puts %Q[ mrb_const_set(mrb2, mrb_obj_value(mrb2->object_class), mrb_intern_lit(mrb2, "GEMNAME"), mrb_str_new(mrb2, "#{g.name}", #{g.name.length}));]

78+

if test_preload.nil?

79+

f.puts %Q[ mrb_load_irep(mrb2, mrbtest_assert_irep);]

80+

else

81+

f.puts %Q[ mrb_load_irep(mrb2, gem_test_irep_#{g.funcname}_preload);]

82+

end

83+

dep_list.each do |d|

84+

f.puts %Q[ GENERATED_TMP_mrb_#{d.funcname}_gem_init(mrb2);]

85+

f.puts %Q[ mrb_state_atexit(mrb2, GENERATED_TMP_mrb_#{d.funcname}_gem_final);]

86+

end

87+

f.puts %Q[ mrb_init_test_driver(mrb2, mrb_test(mrb_gv_get(mrb, mrb_intern_lit(mrb, "$mrbtest_verbose"))));]

88+

f.puts %Q[ ]

7389

g.test_rbfiles.count.times do |i|

74-

f.puts %Q[ mrb2 = mrb_open_core(mrb_default_allocf, NULL);]

75-

f.puts %Q[ if (mrb2 == NULL) {]

76-

f.puts %Q[ fprintf(stderr, "Invalid mrb_state, exiting \%s", __func__);]

77-

f.puts %Q[ exit(EXIT_FAILURE);]

78-

f.puts %Q[ }]

79-

dep_list.each do |d|

80-

f.puts %Q[ GENERATED_TMP_mrb_#{d.funcname}_gem_init(mrb2);]

81-

f.puts %Q[ mrb_state_atexit(mrb2, GENERATED_TMP_mrb_#{d.funcname}_gem_final);]

82-

end

83-

f.puts %Q[ mrb_init_test_driver(mrb2, mrb_test(mrb_gv_get(mrb, mrb_intern_lit(mrb, "$mrbtest_verbose"))));]

84-

if test_preload.nil?

85-

f.puts %Q[ mrb_load_irep(mrb2, mrbtest_assert_irep);]

86-

else

87-

f.puts %Q[ mrb_load_irep(mrb2, gem_test_irep_#{g.funcname}_preload);]

88-

end

89-

f.puts %Q[ if (mrb2->exc) {]

90-

f.puts %Q[ mrb_print_error(mrb2);]

91-

f.puts %Q[ mrb_close(mrb2);]

92-

f.puts %Q[ exit(EXIT_FAILURE);]

93-

f.puts %Q[ }]

94-

f.puts %Q[ mrb_const_set(mrb2, mrb_obj_value(mrb2->object_class), mrb_intern_lit(mrb2, "GEMNAME"), mrb_str_new(mrb2, "#{g.name}", #{g.name.length}));]

95-9690

unless g.test_args.empty?

9791

f.puts %Q[ test_args_hash = mrb_hash_new_capa(mrb2, #{g.test_args.length}); ]

9892

g.test_args.each do |arg_name, arg_value|

@@ -104,13 +98,16 @@ MRuby::Gem::Specification.new('mruby-test') do |spec|

10498

end

10599106100

f.puts %Q[ mrb_#{g.funcname}_gem_test(mrb2);] if g.custom_test_init?

107-108101

f.puts %Q[ mrb_load_irep(mrb2, gem_test_irep_#{g.funcname}_#{i});]

102+

f.puts %Q[ if (mrb2->exc) {]

103+

f.puts %Q[ mrb_print_error(mrb2);]

104+

f.puts %Q[ mrb_close(mrb2);]

105+

f.puts %Q[ exit(EXIT_FAILURE);]

106+

f.puts %Q[ }]

109107

f.puts %Q[ ]

110-111-

f.puts %Q[ mrb_t_pass_result(mrb, mrb2);]

112-

f.puts %Q[ mrb_close(mrb2);]

113108

end

109+

f.puts %Q[ mrb_t_pass_result(mrb, mrb2);]

110+

f.puts %Q[ mrb_close(mrb2);]

114111

end

115112

f.puts %Q[}]

116113

end

Read the original on github.com ↗