test: Run 33/55 tests of ../tinycc/tests/test2 if avaiable.
* make/check-tinycc.make: New file. * tinycc/tinycc.make: New file. * GNUmakefile (SUBDIRS): Add tinycc.
This commit is contained in:
parent
c43e285de5
commit
a4a323c2bb
|
@ -14,6 +14,7 @@ SUBDIRS:=\
|
||||||
scaffold\
|
scaffold\
|
||||||
scripts\
|
scripts\
|
||||||
tests\
|
tests\
|
||||||
|
tinycc\
|
||||||
#
|
#
|
||||||
|
|
||||||
include make/common.make
|
include make/common.make
|
||||||
|
|
|
@ -24,6 +24,7 @@ char **g_environment;
|
||||||
int g_stdin;
|
int g_stdin;
|
||||||
|
|
||||||
#define EOF -1
|
#define EOF -1
|
||||||
|
#define NULL 0
|
||||||
#define STDIN 0
|
#define STDIN 0
|
||||||
#define STDOUT 1
|
#define STDOUT 1
|
||||||
#define STDERR 2
|
#define STDERR 2
|
||||||
|
|
19
make/check-tinycc.make
Normal file
19
make/check-tinycc.make
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
ifeq ($(TEST),)
|
||||||
|
TEST:=$(TARGET)-check
|
||||||
|
$(TEST): EXT:=$(EXT)
|
||||||
|
$(TEST): EXPECT:=$(EXPECT)
|
||||||
|
$(TEST): $(OUT)/$(TARGET)
|
||||||
|
ifeq ($(EXPECT),)
|
||||||
|
$< - arg1 arg2 arg3 arg4 > $(<:.$(EXT)=.stdout)
|
||||||
|
else
|
||||||
|
$<; r=$$?; [ $$r = $(EXPECT) ]
|
||||||
|
endif
|
||||||
|
$(QUIETx)if diff -bu $(TINYCC_TEST2)/$(<F:.$(EXT)=.expect) $(<:.$(EXT)=.stdout); \
|
||||||
|
then rm -f $(<:.$(EXT)=.stdout); \
|
||||||
|
else exit 1; \
|
||||||
|
fi
|
||||||
|
endif
|
||||||
|
CHECK+=$(TEST)
|
||||||
|
$(TEST): TEST:=$(TEST)
|
||||||
|
$(DIR)-check: $(TEST)
|
||||||
|
include make/reset.make
|
|
@ -1,9 +1,10 @@
|
||||||
CLEAN+=$(OUT)/$(TARGET)
|
CLEAN+=$(OUT)/$(TARGET)
|
||||||
|
$(OUT)/$(TARGET): C_INCLUDE_PATH:=$(INCLUDES)
|
||||||
$(OUT)/$(TARGET): $(MAKEFILE_LIST)
|
$(OUT)/$(TARGET): $(MAKEFILE_LIST)
|
||||||
$(OUT)/$(TARGET): $(INSTALL_GO_FILES)
|
$(OUT)/$(TARGET): $(INSTALL_GO_FILES)
|
||||||
$(OUT)/$(TARGET): $(C_FILES)
|
$(OUT)/$(TARGET): $(C_FILES)
|
||||||
@echo " mescc.scm $(notdir $<) -> $(notdir $@)"
|
@echo " mescc.scm $(notdir $<) -> $(notdir $@)"
|
||||||
@rm -f $@
|
@rm -f $@
|
||||||
$(QUIET)guile/mescc.scm $< > $@ || rm -f $@
|
$(QUIET) INCLUDES=$(C_INCLUDE_PATH) guile/mescc.scm $< > $@ || rm -f $@
|
||||||
@[ -f $@ ] && chmod +x $@ ||:
|
@[ -f $@ ] && chmod +x $@ ||:
|
||||||
include make/reset.make
|
include make/reset.make
|
||||||
|
|
|
@ -4,6 +4,7 @@ CPP_FLAGS:=
|
||||||
CROSS:=
|
CROSS:=
|
||||||
DEFINES:=
|
DEFINES:=
|
||||||
EXPECT:=
|
EXPECT:=
|
||||||
|
EXT:=
|
||||||
GO_FILES:=
|
GO_FILES:=
|
||||||
INCLUDES:=
|
INCLUDES:=
|
||||||
LD_FLAGS:=
|
LD_FLAGS:=
|
||||||
|
|
102
tinycc/tinycc.make
Normal file
102
tinycc/tinycc.make
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
TINYCC_ROOT:=../tinycc
|
||||||
|
TINYCC_TEST2:=$(TINYCC_ROOT)/tests/tests2
|
||||||
|
|
||||||
|
TINYCC_TESTS:=\
|
||||||
|
00_assignment\
|
||||||
|
01_comment\
|
||||||
|
02_printf\
|
||||||
|
03_struct\
|
||||||
|
04_for\
|
||||||
|
05_array\
|
||||||
|
06_case\
|
||||||
|
07_function\
|
||||||
|
08_while\
|
||||||
|
09_do_while\
|
||||||
|
10_pointer\
|
||||||
|
11_precedence\
|
||||||
|
12_hashdefine\
|
||||||
|
13_integer_literals\
|
||||||
|
14_if\
|
||||||
|
15_recursion\
|
||||||
|
16_nesting\
|
||||||
|
17_enum\
|
||||||
|
18_include\
|
||||||
|
19_pointer_arithmetic\
|
||||||
|
20_pointer_comparison\
|
||||||
|
21_char_array\
|
||||||
|
25_quicksort\
|
||||||
|
29_array_address\
|
||||||
|
33_ternary_op\
|
||||||
|
35_sizeof\
|
||||||
|
41_hashif\
|
||||||
|
43_void_param\
|
||||||
|
44_scoped_declarations\
|
||||||
|
47_switch_return\
|
||||||
|
48_nested_break\
|
||||||
|
54_goto\
|
||||||
|
#
|
||||||
|
|
||||||
|
TINYCC_NYACC:=\
|
||||||
|
26_character_constants\
|
||||||
|
#
|
||||||
|
|
||||||
|
TINYCC_FLOAT:=\
|
||||||
|
22_floating_point\
|
||||||
|
23_type_coercion\
|
||||||
|
24_math_library\
|
||||||
|
27_sizeof\
|
||||||
|
#
|
||||||
|
|
||||||
|
# Does not compile/run with GCC
|
||||||
|
TINYCC_GCC:=\
|
||||||
|
30_hanoi\
|
||||||
|
34_array_assignment\
|
||||||
|
#
|
||||||
|
|
||||||
|
TINYCC_REST:=\
|
||||||
|
28_strings\
|
||||||
|
31_args\
|
||||||
|
32_led\
|
||||||
|
36_array_initialisers\
|
||||||
|
37_sprintf\
|
||||||
|
38_multiple_array_index\
|
||||||
|
39_typedef\
|
||||||
|
40_stdio\
|
||||||
|
42_function_pointer\
|
||||||
|
45_empty_for\
|
||||||
|
46_grep\
|
||||||
|
49_bracket_evaluation\
|
||||||
|
50_logical_second_arg\
|
||||||
|
51_static\
|
||||||
|
52_unnamed_enum\
|
||||||
|
55_lshift_type\
|
||||||
|
#
|
||||||
|
|
||||||
|
define tinycc-test
|
||||||
|
EXT:=mlibc
|
||||||
|
TARGET:=$(1).mlibc
|
||||||
|
C_FILES:=$$(TINYCC_TEST2)/$(1).c
|
||||||
|
INCLUDES:=$$(TINYCC_TEST2)
|
||||||
|
include make/bin-mlibc.make
|
||||||
|
|
||||||
|
EXT:=mlibc
|
||||||
|
TARGET:=$(1).mlibc
|
||||||
|
include make/check-tinycc.make
|
||||||
|
|
||||||
|
EXT:=guile
|
||||||
|
TARGET:=$(1).guile
|
||||||
|
C_FILES:=$$(TINYCC_TEST2)/$(1).c
|
||||||
|
INCLUDES:=$$(TINYCC_TEST2)
|
||||||
|
include make/mescc-guile.make
|
||||||
|
|
||||||
|
EXT:=guile
|
||||||
|
TARGET:=$(1).guile
|
||||||
|
include make/check-tinycc.make
|
||||||
|
endef
|
||||||
|
|
||||||
|
ifeq ($(wildcard $(TINYCC_TEST2)/00_assignment.c),$(TINYCC_TEST2)/00_assignment.c)
|
||||||
|
$(foreach t,$(TINYCC_TESTS),$(eval $(call tinycc-test,$(t))))
|
||||||
|
else
|
||||||
|
tinycc-check:
|
||||||
|
@echo skipping tinycc tests: $(TINYCC_TEST2)/00_assignment.c not available
|
||||||
|
endif
|
Loading…
Reference in a new issue