aboutsummaryrefslogtreecommitdiff
path: root/tests/tests2
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tests2')
-rw-r--r--tests/tests2/31_args.c2
-rw-r--r--tests/tests2/31_args.expect11
-rw-r--r--tests/tests2/Makefile35
3 files changed, 25 insertions, 23 deletions
diff --git a/tests/tests2/31_args.c b/tests/tests2/31_args.c
index 275f8cf..dcafed5 100644
--- a/tests/tests2/31_args.c
+++ b/tests/tests2/31_args.c
@@ -5,7 +5,7 @@ int main(int argc, char **argv)
int Count;
printf("hello world %d\n", argc);
- for (Count = 0; Count < argc; Count++)
+ for (Count = 1; Count < argc; Count++)
printf("arg %d: %s\n", Count, argv[Count]);
return 0;
diff --git a/tests/tests2/31_args.expect b/tests/tests2/31_args.expect
index c392b67..8c60bfc 100644
--- a/tests/tests2/31_args.expect
+++ b/tests/tests2/31_args.expect
@@ -1,7 +1,6 @@
hello world 6
-arg 0: 31_args.c
-arg 1: -
-arg 2: arg1
-arg 3: arg2
-arg 4: arg3
-arg 5: arg4
+arg 1: arg1
+arg 2: arg2
+arg 3: arg3
+arg 4: arg4
+arg 5: arg5
diff --git a/tests/tests2/Makefile b/tests/tests2/Makefile
index e5790c7..4d5546d 100644
--- a/tests/tests2/Makefile
+++ b/tests/tests2/Makefile
@@ -46,9 +46,11 @@ TESTS = \
27_sizeof.test \
28_strings.test \
29_array_address.test \
+ 30_hanoi.test \
31_args.test \
32_led.test \
33_ternary_op.test \
+ 34_array_assignment.test \
35_sizeof.test \
36_array_initialisers.test \
37_sprintf.test \
@@ -60,6 +62,7 @@ TESTS = \
43_void_param.test \
44_scoped_declarations.test \
45_empty_for.test \
+ 46_grep.test \
47_switch_return.test \
48_nested_break.test \
49_bracket_evaluation.test \
@@ -81,31 +84,31 @@ TESTS = \
# 34_array_assignment.test -- array assignment is not in C standard
# 46_grep.test -- does not compile even with gcc
+SKIP = 30_hanoi.test 34_array_assignment.test 46_grep.test
+
# some tests do not pass on all platforms, remove them for now
ifeq ($(TARGETOS),Darwin)
- TESTS := $(filter-out 40_stdio.test,$(TESTS))
+ SKIP += 40_stdio.test
endif
ifdef CONFIG_WIN32
- TESTS := $(filter-out 24_math_library.test 28_strings.test,$(TESTS))
+ SKIP += 24_math_library.test # don't have round()
+ SKIP += 28_strings.test # don't have r/index() / strings.h
endif
+# Some tests might need arguments
+ARGS =
+31_args.test : ARGS = arg1 arg2 arg3 arg4 arg5
+
+all test: $(filter-out $(SKIP),$(TESTS))
+
%.test: %.c %.expect
@echo Test: $*...
- @if [ "x`echo $* | grep args`" != "x" ]; \
- then $(TCC) $< -norunsrc -run $(notdir $<) - arg1 arg2 arg3 arg4 >$*.output 2>&1; \
- else $(TCC) -run $< >$*.output 2>&1; \
- ($(TCC) -o $*.exe $< && ./$*.exe) >$*.output2 2>&1; \
- fi || true
- @if diff -bu $(<:.c=.expect) $*.output ; \
- then rm -f $*.output; \
- else exit 1; \
- fi
- @if test -f $*.output2; then if diff -bu $(<:.c=.expect) $*.output2 ; \
- then rm -f $*.output2; \
- else exit 1; \
- fi; fi
-all test: $(TESTS)
+ @$(TCC) -run $< $(ARGS) >$*.output 2>&1 || true
+ @diff -bu $*.expect $*.output && rm -f $*.output
+
+ @($(TCC) $< -o $*.exe && ./$*.exe $(ARGS)) >$*.output2 2>&1 || true
+ @diff -bu $*.expect $*.output2 && rm -f $*.output2 $*.exe
clean:
rm -vf fred.txt *.output* *.exe