@@ -66,33 +66,27 @@ MRuby::Gem::Specification.new('mruby-test') do |spec|
66
66
f . puts %Q[void mrb_t_pass_result(mrb_state *dst, mrb_state *src);]
67
67
f . puts %Q[void GENERATED_TMP_mrb_#{ g . funcname } _gem_test(mrb_state *mrb) {]
68
68
unless g . test_rbfiles . empty?
69
- f . puts %Q[ mrb_state *mrb2;]
70
69
unless g . test_args . empty?
71
70
f . puts %Q[ mrb_value test_args_hash;]
72
71
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[ ]
73
89
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
-
96
90
unless g . test_args . empty?
97
91
f . puts %Q[ test_args_hash = mrb_hash_new_capa(mrb2, #{ g . test_args . length } ); ]
98
92
g . test_args . each do |arg_name , arg_value |
@@ -104,13 +98,16 @@ MRuby::Gem::Specification.new('mruby-test') do |spec|
104
98
end
105
99
106
100
f . puts %Q[ mrb_#{ g . funcname } _gem_test(mrb2);] if g . custom_test_init?
107
-
108
101
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[ }]
109
107
f . puts %Q[ ]
110
-
111
- f . puts %Q[ mrb_t_pass_result(mrb, mrb2);]
112
- f . puts %Q[ mrb_close(mrb2);]
113
108
end
109
+ f . puts %Q[ mrb_t_pass_result(mrb, mrb2);]
110
+ f . puts %Q[ mrb_close(mrb2);]
114
111
end
115
112
f . puts %Q[}]
116
113
end
0 commit comments