Commit 9a11c45e authored by Daniel Bovensiepen's avatar Daniel Bovensiepen

Integrate tests into mrbgems

parent 19fa4a09
...@@ -52,6 +52,7 @@ all : ...@@ -52,6 +52,7 @@ all :
.PHONY : test .PHONY : test
test : all test : all
@$(MAKE) -C test $(MAKE_FLAGS) @$(MAKE) -C test $(MAKE_FLAGS)
@$(MAKE) test -C mrbgems $(MAKE_FLAGS)
# clean up # clean up
.PHONY : clean .PHONY : clean
......
...@@ -41,6 +41,9 @@ all_gems : $(MMAKER_BIN) g/Makefile ...@@ -41,6 +41,9 @@ all_gems : $(MMAKER_BIN) g/Makefile
@echo "Build all gems" @echo "Build all gems"
$(MAKE) -C g $(MAKE) -C g
test :
$(MAKE) test -C g
# clean driver and all gems # clean driver and all gems
.PHONY : clean .PHONY : clean
clean : $(MMAKER_BIN) clean : $(MMAKER_BIN)
......
assert('Hello World') do
HW.respond_to? :say
end
...@@ -10,7 +10,7 @@ one (const struct dirent *unused) ...@@ -10,7 +10,7 @@ one (const struct dirent *unused)
} }
void void
dir_list (char before[1024], char after[1024]) dir_list (char before[1024], char after[1024], char start[1024], char end[1024])
{ {
struct dirent **eps; struct dirent **eps;
int n; int n;
...@@ -19,6 +19,8 @@ dir_list (char before[1024], char after[1024]) ...@@ -19,6 +19,8 @@ dir_list (char before[1024], char after[1024])
char complete_line[4096] = ""; char complete_line[4096] = "";
struct stat attribut; struct stat attribut;
strcat(complete_line, start);
n = scandir("./g", &eps, one, alphasort); n = scandir("./g", &eps, one, alphasort);
if (n >= 0) { if (n >= 0) {
int cnt; int cnt;
...@@ -39,17 +41,22 @@ dir_list (char before[1024], char after[1024]) ...@@ -39,17 +41,22 @@ dir_list (char before[1024], char after[1024])
strcat(complete_line, before); strcat(complete_line, before);
strcat(complete_line, gemname); strcat(complete_line, gemname);
strcat(complete_line, after); strcat(complete_line, after);
strcat(complete_line, "\n");
} }
puts(complete_line);
} }
else else {
perror("Error while scanning the directory."); perror("Error while scanning the directory.");
}
strcat(complete_line, end);
puts(complete_line);
} }
void void
make_gem_makefile() make_gem_makefile()
{ {
puts("CFLAGS := -I. -I../../include -I../../src");
puts("");
puts("ifeq ($(OS),Windows_NT)"); puts("ifeq ($(OS),Windows_NT)");
puts("MAKE_FLAGS = --no-print-directory CC=$(CC) LL=$(LL) ALL_CFLAGS='$(ALL_CFLAGS)'"); puts("MAKE_FLAGS = --no-print-directory CC=$(CC) LL=$(LL) ALL_CFLAGS='$(ALL_CFLAGS)'");
puts("else"); puts("else");
...@@ -59,11 +66,23 @@ make_gem_makefile() ...@@ -59,11 +66,23 @@ make_gem_makefile()
puts(".PHONY : all"); puts(".PHONY : all");
puts("all :"); puts("all :");
dir_list("\t@$(MAKE) -C ", " $(MAKE_FLAGS)"); dir_list("\t@$(MAKE) -C ", " $(MAKE_FLAGS)\n", "", "");
puts(".PHONY : test");
puts("test :");
dir_list("", "/test/*.rb ", "\tcat ../../test/assert.rb ", "> mrbtest.rbtmp");
puts("\t../../bin/mrbc -Bmrbtest_irep -omrbtest.ctmp mrbtest.rbtmp");
puts("\tcat ../../test/init_mrbtest.c mrbtest.ctmp > mrbtest.c");
puts("\t$(CC) -c ../../test/driver.c -o ./driver.o $(CFLAGS)");
puts("\t$(CC) -c ./mrbtest.c -o ./mrbtest.o $(CFLAGS)");
puts("\t$(CC) -o ./mrbtest ./mrbtest.o ../../lib/libmruby.a ./driver.o $(CFLAGS) -lm");
puts("\t./mrbtest");
puts("");
puts(".PHONY : clean"); puts(".PHONY : clean");
puts("clean :"); puts("clean :");
dir_list("\t@$(MAKE) clean -C ", " $(MAKE_FLAGS)"); puts("\t$(RM) *.c *.d *.rbtmp *.ctmp *.o mrbtest");
dir_list("\t@$(MAKE) clean -C ", " $(MAKE_FLAGS)\n", "", "");
} }
void void
...@@ -83,12 +102,12 @@ make_init_gems() ...@@ -83,12 +102,12 @@ make_init_gems()
puts("#include \"mruby.h\""); puts("#include \"mruby.h\"");
puts(""); puts("");
dir_list("void mrb_", "_gem_init(mrb_state*);"); dir_list("void mrb_", "_gem_init(mrb_state*);\n", "", "");
puts("void"); puts("void");
puts("mrb_init_mrbgems(mrb_state *mrb)"); puts("mrb_init_mrbgems(mrb_state *mrb)");
puts("{"); puts("{");
dir_list(" mrb_", "_gem_init(mrb);"); dir_list(" mrb_", "_gem_init(mrb);\n", "", "");
puts("}"); puts("}");
} }
......
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