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 e31579b076
master
grischka 2014-04-07 11:20:45 +02:00
parent 76accfb8d5
commit f90bad0925
5 changed files with 26 additions and 32 deletions

View File

@ -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;

1
tcc.c
View File

@ -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"
);
}

View File

@ -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;

View File

@ -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

View File

@ -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