diff options
| author | Daniel Bovensiepen <[email protected]> | 2012-09-20 01:31:26 +0800 |
|---|---|---|
| committer | Daniel Bovensiepen <[email protected]> | 2012-09-20 01:31:26 +0800 |
| commit | 9a11c45e64dd9010d70a3a7e63819cec78c83afb (patch) | |
| tree | d1671ebc9abbeb893b6f879b659f874226836abb | |
| parent | 19fa4a0993acef802ab4250541c1df72c7e2b604 (diff) | |
| download | mruby-9a11c45e64dd9010d70a3a7e63819cec78c83afb.tar.gz mruby-9a11c45e64dd9010d70a3a7e63819cec78c83afb.zip | |
Integrate tests into mrbgems
| -rw-r--r-- | Makefile | 1 | ||||
| -rw-r--r-- | mrbgems/Makefile | 3 | ||||
| -rw-r--r-- | mrbgems/g/hello_world/test/hello_world.rb | 3 | ||||
| -rw-r--r-- | mrbgems/gem_helper.c | 35 |
4 files changed, 34 insertions, 8 deletions
@@ -52,6 +52,7 @@ all : .PHONY : test test : all @$(MAKE) -C test $(MAKE_FLAGS) + @$(MAKE) test -C mrbgems $(MAKE_FLAGS) # clean up .PHONY : clean diff --git a/mrbgems/Makefile b/mrbgems/Makefile index abd726a0e..6fde97128 100644 --- a/mrbgems/Makefile +++ b/mrbgems/Makefile @@ -41,6 +41,9 @@ all_gems : $(MMAKER_BIN) g/Makefile @echo "Build all gems" $(MAKE) -C g +test : + $(MAKE) test -C g + # clean driver and all gems .PHONY : clean clean : $(MMAKER_BIN) diff --git a/mrbgems/g/hello_world/test/hello_world.rb b/mrbgems/g/hello_world/test/hello_world.rb new file mode 100644 index 000000000..2d8c335db --- /dev/null +++ b/mrbgems/g/hello_world/test/hello_world.rb @@ -0,0 +1,3 @@ +assert('Hello World') do + HW.respond_to? :say +end diff --git a/mrbgems/gem_helper.c b/mrbgems/gem_helper.c index d1cbfb046..01daef364 100644 --- a/mrbgems/gem_helper.c +++ b/mrbgems/gem_helper.c @@ -10,7 +10,7 @@ one (const struct dirent *unused) } 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; int n; @@ -19,6 +19,8 @@ dir_list (char before[1024], char after[1024]) char complete_line[4096] = ""; struct stat attribut; + strcat(complete_line, start); + n = scandir("./g", &eps, one, alphasort); if (n >= 0) { int cnt; @@ -39,17 +41,22 @@ dir_list (char before[1024], char after[1024]) strcat(complete_line, before); strcat(complete_line, gemname); strcat(complete_line, after); - strcat(complete_line, "\n"); + } - puts(complete_line); } - else + else { perror("Error while scanning the directory."); + } + + strcat(complete_line, end); + puts(complete_line); } void make_gem_makefile() { + puts("CFLAGS := -I. -I../../include -I../../src"); + puts(""); puts("ifeq ($(OS),Windows_NT)"); puts("MAKE_FLAGS = --no-print-directory CC=$(CC) LL=$(LL) ALL_CFLAGS='$(ALL_CFLAGS)'"); puts("else"); @@ -59,11 +66,23 @@ make_gem_makefile() puts(".PHONY : 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("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 @@ -83,12 +102,12 @@ make_init_gems() puts("#include \"mruby.h\""); puts(""); - dir_list("void mrb_", "_gem_init(mrb_state*);"); + dir_list("void mrb_", "_gem_init(mrb_state*);\n", "", ""); puts("void"); puts("mrb_init_mrbgems(mrb_state *mrb)"); puts("{"); - dir_list(" mrb_", "_gem_init(mrb);"); + dir_list(" mrb_", "_gem_init(mrb);\n", "", ""); puts("}"); } |
