aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile9
-rw-r--r--tests/tcctest.c8
-rw-r--r--tests/tests2/Makefile2
3 files changed, 16 insertions, 3 deletions
diff --git a/tests/Makefile b/tests/Makefile
index a86e8a2..0cdca35 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -5,7 +5,7 @@
TOP = ..
include $(TOP)/Makefile
VPATH = $(TOPSRC)/tests $(TOPSRC) $(TOP)
-CFLAGS = -I$(TOPSRC) -I$(TOP)
+CFLAGS := $(filter-out -W% -g% -O%,$(CFLAGS)) -I$(TOPSRC)
# what tests to run
TESTS = \
@@ -13,6 +13,7 @@ TESTS = \
hello-run \
libtest \
test3 \
+ memtest \
dlltest \
abitest \
vla_test-run \
@@ -145,6 +146,12 @@ ifndef CONFIG_WIN32
endif
@rm tcc2$(EXESUF) libtcc2$(DLLSUF)
+memtest:
+ @echo ------------ $@ ------------
+ $(CC) $(CFLAGS) $(NATIVE_DEFINES) -DONE_SOURCE -DMEM_DEBUG=2 ../tcc.c $(LIBS) -o memtest-tcc$(EXESUF)
+ ./memtest-tcc$(EXESUF) $(TCCFLAGS) $(NATIVE_DEFINES) -DONE_SOURCE ../tcc.c $(LIBS)
+ ./memtest-tcc$(EXESUF) $(TCCFLAGS) $(NATIVE_DEFINES) -DONE_SOURCE -run ../tcc.c $(TCCFLAGS) tcctest.c
+
# memory and bound check auto test
BOUNDS_OK = 1 4 8 10 14
diff --git a/tests/tcctest.c b/tests/tcctest.c
index 0f71482..2789255 100644
--- a/tests/tcctest.c
+++ b/tests/tcctest.c
@@ -3122,6 +3122,7 @@ void other_constraints_test(void)
printf ("oc1: %d\n", ret == (unsigned long)&var);
}
+#ifndef _WIN32
/* Test global asm blocks playing with aliases. */
void base_func(void)
{
@@ -3161,6 +3162,7 @@ char * get_asm_string (void)
char * str = ((char*)bug_table) + bug_table[1];
return str;
}
+#endif
unsigned int set;
@@ -3301,12 +3303,15 @@ void asm_test(void)
printf("set=0x%x\n", set);
val = 0x01020304;
printf("swab32(0x%08x) = 0x%0x\n", val, swab32(val));
+#ifndef _WIN32
override_func1();
override_func2();
/* The base_func ref from the following inline asm should find
the global one, not the local decl from this function. */
asm volatile(".weak override_func3\n.set override_func3, base_func");
override_func3();
+ printf("asmstr: %s\n", get_asm_string());
+#endif
/* Check that we can also load structs of appropriate layout
into registers. */
asm volatile("" : "=r" (asmret) : "0"(s2));
@@ -3319,7 +3324,6 @@ void asm_test(void)
if (!somebool)
printf("asmbool: failed\n");
#endif
- printf("asmstr: %s\n", get_asm_string());
val = 43;
fancy_copy (&val, &val2);
printf ("fancycpy(%d)=%d\n", val, val2);
@@ -3677,10 +3681,12 @@ typedef struct gate_struct64 gate_desc;
gate_desc a_gate_desc;
void attrib_test(void)
{
+#ifndef _WIN32
printf("attr: %d %d %d %d\n", sizeof(struct Spacked),
sizeof(spacked), sizeof(Spacked2), sizeof(spacked2));
printf("attr: %d %d\n", sizeof(Spacked3), sizeof(spacked3));
printf("attr: %d %d\n", sizeof(gate_desc), sizeof(a_gate_desc));
+#endif
}
extern __attribute__((__unused__)) char * __attribute__((__unused__)) *
strange_attrib_placement (void);
diff --git a/tests/tests2/Makefile b/tests/tests2/Makefile
index 166fb2a..ababb43 100644
--- a/tests/tests2/Makefile
+++ b/tests/tests2/Makefile
@@ -63,7 +63,7 @@ all test: $(filter-out $(SKIP),$(TESTS))
# automatically generate .expect files with gcc:
%.expect : %.c
- (gcc -w $*.c -o a.exe && ./a.exe $(ARGS)) >$*.expect 2>&1; rm -f a.exe
+ (gcc -w $*.c -o a.exe && ./a.exe $(ARGS)) $(FILTER) >$*.expect 2>&1; rm -f a.exe
# tell make not to delete
.PRECIOUS: %.expect