aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgrischka <grischka>2014-04-07 11:20:45 +0200
committergrischka <grischka>2014-04-07 11:20:45 +0200
commitf90bad092510c751afbd9286b9946691a416d2a1 (patch)
treeade8035d4181b3b962434670e63808cdfb772cf3
parent76accfb8d5b16664207fa8ae43d02b015bc8e019 (diff)
downloadtinycc-f90bad092510c751afbd9286b9946691a416d2a1.tar.gz
tinycc-f90bad092510c751afbd9286b9946691a416d2a1.tar.bz2
tests2: cleanup
- remove -norunsrc switch Meaning and usage (-run -norun...???) look sort of screwed. Also general usefulness is unclear, so it was actually to support exactly one (not even very interesting) test This partially reverts e31579b0769e1f9c0947d12e83316d1149307b1a
-rw-r--r--libtcc.c9
-rw-r--r--tcc.c1
-rw-r--r--tests/tests2/31_args.c2
-rw-r--r--tests/tests2/31_args.expect11
-rw-r--r--tests/tests2/Makefile35
5 files changed, 26 insertions, 32 deletions
diff --git a/libtcc.c b/libtcc.c
index cc84cd7..5df1949 100644
--- a/libtcc.c
+++ b/libtcc.c
@@ -1666,7 +1666,6 @@ enum {
TCC_OPTION_pedantic,
TCC_OPTION_pthread,
TCC_OPTION_run,
- TCC_OPTION_norunsrc,
TCC_OPTION_v,
TCC_OPTION_w,
TCC_OPTION_pipe,
@@ -1709,7 +1708,6 @@ static const TCCOption tcc_options[] = {
{ "pedantic", TCC_OPTION_pedantic, 0},
{ "pthread", TCC_OPTION_pthread, 0},
{ "run", TCC_OPTION_run, TCC_OPTION_HAS_ARG | TCC_OPTION_NOSEP },
- { "norunsrc", TCC_OPTION_norunsrc, 0 },
{ "rdynamic", TCC_OPTION_rdynamic, 0 },
{ "r", TCC_OPTION_r, 0 },
{ "s", TCC_OPTION_s, 0 },
@@ -1748,7 +1746,6 @@ PUB_FUNC int tcc_parse_args(TCCState *s, int argc, char **argv)
const TCCOption *popt;
const char *optarg, *r;
int run = 0;
- int norunsrc = 0;
int pthread = 0;
int optind = 0;
@@ -1761,8 +1758,7 @@ PUB_FUNC int tcc_parse_args(TCCState *s, int argc, char **argv)
r = argv[optind++];
if (r[0] != '-' || r[1] == '\0') {
/* add a new file */
- if (!run || !norunsrc)
- dynarray_add((void ***)&s->files, &s->nb_files, tcc_strdup(r));
+ dynarray_add((void ***)&s->files, &s->nb_files, tcc_strdup(r));
if (run) {
optind--;
/* argv[0] will be this file */
@@ -1888,9 +1884,6 @@ PUB_FUNC int tcc_parse_args(TCCState *s, int argc, char **argv)
tcc_set_options(s, optarg);
run = 1;
break;
- case TCC_OPTION_norunsrc:
- norunsrc = 1;
- break;
case TCC_OPTION_v:
do ++s->verbose; while (*optarg++ == 'v');
break;
diff --git a/tcc.c b/tcc.c
index 9b5ca2e..74a5f1b 100644
--- a/tcc.c
+++ b/tcc.c
@@ -69,7 +69,6 @@ static void help(void)
" -Bdir use 'dir' as tcc internal library and include path\n"
" -MD generate target dependencies for make\n"
" -MF depfile put generated dependencies here\n"
- " -norunsrc Do not compile the file which is the first argument after -run.\n"
);
}
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