ref: 560a156341e5bb352194a85c3258406a079697b7
parent: d6e81805c12bf44489eacd53d112c0382f1bc52b
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Fri Jul 1 18:24:46 EDT 2022
tests: Show a summary at the top level It is really hard to follow the test execution when they come from different directories. This summary makes easier to locate the suites that are failing.
--- a/Makefile
+++ b/Makefile
@@ -98,7 +98,6 @@
libc: src/libc
libcrt: src/libcrt
-tests: all
src: include/scc/scc
src: dirs
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -10,12 +10,15 @@
libc/execute\
cc/execute cc/error\
-all clean:
- for i in $(DIRS);\
+PROJECTDIR = ..
+include $(PROJECTDIR)/scripts/rules.mk
+
+all:
+ @for i in $(DIRS);\
do \
cd $$i;\
- $(MAKE) $@;\
+ $(MAKE) tests;\
cd -;\
- done
+ done | grep -e PASS -e FAIL -e SKIP;\
dep:
--- a/tests/ar/execute/Makefile
+++ b/tests/ar/execute/Makefile
@@ -2,13 +2,17 @@
ROOT=../../..
-all: tests
-
-tests: master.a
+all: master.a
@TZ=UTC PATH=$(ROOT)/bin:$$PATH ./chktest.sh
-master.a:
- ./mkmaster.sh
+master.a: mkmaster.sh
+ @./mkmaster.sh
+
+tests:
+ @$(MAKE) |\
+ grep -v TODO |\
+ grep FAIL >/dev/null &&\
+ printf '[FAIL]' || printf '[PASS]'; printf '\tar/execute\n'
clean:
rm -f *.a test.log
--- a/tests/ar/execute/chktest.sh
+++ b/tests/ar/execute/chktest.sh
@@ -8,6 +8,6 @@
for i in *-*.sh
do
printf "Test: %s\n\n" $i >> test.log
- ./$i >> test.log 2>&1 && printf '[PASS]\t' || printf '[FAIL]\t'
- echo "$i"
+ (./$i >> test.log 2>&1 && printf '[PASS]\t' || printf '[FAIL]\t'
+ echo "$i") | tee -a test.log
done
--- a/tests/as/execute/Makefile
+++ b/tests/as/execute/Makefile
@@ -2,10 +2,14 @@
ROOT=../../../
-all: tests
+all:
+ @PATH=$(ROOT)/libexec/scc/:$(ROOT)/bin:$$PATH ./chktest.sh
tests:
- @PATH=$(ROOT)/libexec/scc/:$(ROOT)/bin:$$PATH ./chktest.sh
+ @$(MAKE) |\
+ grep -v TODO |\
+ grep FAIL >/dev/null &&\
+ printf '[FAIL]' || printf '[PASS]'; printf '\tas/execute\n'
clean:
rm -f test.log
--- a/tests/cc/error/Makefile
+++ b/tests/cc/error/Makefile
@@ -4,10 +4,14 @@
SCCPREFIX=$(ROOT)
CC=$(ROOT)/bin/scc
-all: tests
+all:
+ @CC=$(CC) ./chktest.sh scc-tests.lst
tests:
- CC=$(CC) ./chktest.sh scc-tests.lst
+ @$(MAKE) |\
+ grep -v TODO |\
+ grep FAIL >/dev/null &&\
+ printf '[FAIL]' || printf '[PASS]'; printf '\tcc/error\n'
clean:
rm -f *.as *.o *.ir *.qbe *core test.log
--- a/tests/cc/error/chktest.sh
+++ b/tests/cc/error/chktest.sh
@@ -15,7 +15,7 @@
(SCCPREFIX=$SCCPREFIX $CC $CFLAGS -w -c $i) 2> $err
(echo "/^PATTERN/+;/^\./-w $chk" | ed -s $i) >/dev/null 2>&1
- diff -c $chk $err >> test.log && printf '[PASS]' || printf '[FAIL]'
- printf "\t%s\t%s\n" $i $state
+ (diff -c $chk $err >> test.log && printf '[PASS]' || printf '[FAIL]'
+ printf "\t%s\t%s\n" $i $state) | tee -a test.log
rm -f *.o
done < $file
--- a/tests/cc/error/scc-tests.lst
+++ b/tests/cc/error/scc-tests.lst
@@ -1,7 +1,7 @@
0001-sanity.c
0002-missinginclude.c
0003-junkinclude.c
-0004-macroredef.c
+0004-macroredef.c [TODO]
0005-fmacro.c
0006-endif.c
0007-unmatchedcppif.c [TODO]
@@ -10,13 +10,13 @@
0010-extraelif.c [TODO]
0011-extraelse.c [TODO]
0012-ifnoexpr.c [TODO]
-0013-macro.c
+0013-macro.c [TODO]
0014-macro.c
0015-macro.c [TODO]
0016-arrayinitsize.c [TODO]
0017-duplicatefunc.c
0018-voidparam.c [TODO]
-0019-kr_names.c
+0019-kr_names.c [TODO]
0020-storage.c [TODO]
0021-void.c [TODO]
0022-cpp-if.c [TODO]
--- a/tests/cc/execute/Makefile
+++ b/tests/cc/execute/Makefile
@@ -4,10 +4,14 @@
SCCPREFIX=$(ROOT)
CC=$(ROOT)/bin/scc
-all: tests
+all:
+ @CC=$(CC) ./chktest.sh scc-tests.lst
tests:
- @CC=$(CC) ./chktest.sh scc-tests.lst
+ @$(MAKE) |\
+ grep -v TODO |\
+ grep FAIL >/dev/null &&\
+ printf '[FAIL]' || printf '[PASS]'; printf '\tcc/execute\n'
clean:
rm -f a.out *.s *.s *.as *.o *.ir *.qbe *core* test.log tests.h tmp_*.c
--- a/tests/cc/execute/chktest.sh
+++ b/tests/cc/execute/chktest.sh
@@ -18,7 +18,7 @@
state=${state:-""}
rm -f a.out
- (SCCPREFIX=$SCCPREFIX $CC -Isysinclude $CFLAGS "$i" && ./a.out) >>test.log 2>&1 &&
+ ((SCCPREFIX=$SCCPREFIX $CC -Isysinclude $CFLAGS "$i" && ./a.out) >>test.log 2>&1 &&
printf '[PASS]' || printf '[FAIL]'
- printf '\t%s\t%s\n' $i $state
+ printf '\t%s\t%s\n' $i $state) | tee -a test.log
done < $file
--- a/tests/ld/execute/Makefile
+++ b/tests/ld/execute/Makefile
@@ -7,14 +7,19 @@
OBJS = f1.o f2.o
OBJLIB = f3.o
-all:
- @if $(AS) /dev/null 2>/dev/null;\
- then\
- $(MAKE) test;\
- fi
+all: a.out
-
-tests: a.out
+tests:
+ @if $(AS) 2>/dev/null;\
+ then\
+ $(MAKE);\
+ grep -v TODO |\
+ grep FAIL >/dev/null &&\
+ printf '[FAIL]' || printf '[PASS]';\
+ else\
+ printf '[SKIP]';\
+ fi;\
+ printf '\tld/execute\n'
a.out: $(OBJS) f.a
$(LD) $(OBJS) f.a
--- a/tests/libc/execute/Makefile
+++ b/tests/libc/execute/Makefile
@@ -5,10 +5,14 @@
.c:
$(CC) $(CFLAGS) -o $@ $<
-all: tests
+all:
+ CC=$(CC) ./chktest.sh libc-tests.lst
tests:
- @CC=$(CC) ./chktest.sh libc-tests.lst
+ @$(MAKE) |\
+ grep -v TODO |\
+ grep FAIL >/dev/null &&\
+ printf '[FAIL]' || printf '[PASS]'; printf '\tlibc/execute\n'
clean:
rm -f *.o *core test.log `awk '{print $$1}' libc-tests.lst`
--- a/tests/libc/execute/chktest.sh
+++ b/tests/libc/execute/chktest.sh
@@ -3,14 +3,13 @@
file=${1?' empty input file'}
tmp1=`mktemp`
tmp2=`mktemp`
-trap "rm -f *.o $tmp1 $tmp2" EXIT INT QUIT TERM
+#trap "rm -f *.o $tmp1 $tmp2" EXIT INT QUIT TERM
ulimit -c 0
rm -f test.log
while read i state
do
- state=${state:-"\t"}
- rm -f *.o $tmp1 $tmp2
+ rm -f *.o $i $tmp1 $tmp2
(echo $i
$CC $CFLAGS -o $i $i.c
@@ -19,5 +18,5 @@
diff -u $tmp1 $tmp2) >> test.log 2>&1 &&
printf '[PASS]' || printf '[FAIL]'
- printf "$state\t%s\n" $i
+ printf '\t%s\t%s\n' $i $state
done < $file
--- a/tests/nm/execute/Makefile
+++ b/tests/nm/execute/Makefile
@@ -5,14 +5,20 @@
OUT = z80.out
AS = z80-unknown-coff-as
-all:
+all: $(OUT)
+ @PATH=$(ROOT)/bin:$$PATH:. chktest.sh
+
+tests:
@if $(AS) 2>/dev/null;\
then\
- $(MAKE) tests;\
- fi
-
-tests: $(OUT)
- @PATH=$(ROOT)/bin:$$PATH:. chktest.sh
+ $(MAKE);\
+ grep -v TODO |\
+ grep FAIL >/dev/null &&\
+ printf '[FAIL]' || printf '[PASS]';\
+ else\
+ printf '[SKIP]';\
+ fi;\
+ printf '\tnm/execute\n'
z80.out: master.s
$(AS) -o $@ master.s
--- a/tests/size/execute/Makefile
+++ b/tests/size/execute/Makefile
@@ -5,14 +5,20 @@
AS = z80-unknown-coff-as
OUT = z80.out
-all:
- @if $(AS) /dev/null 2>/dev/null;\
- then\
- $(MAKE) tests;\
- fi
+all: $(OUT)
+ @PATH=$(ROOT)/bin:$$PATH:. chktest.sh
-tests: $(OUT)
- @PATH=$(ROOT)/bin:$$PATH:. chktest.sh;\
+tests:
+ @if $(AS) 2>/dev/null;\
+ then\
+ $(MAKE);\
+ grep -v TODO |\
+ grep FAIL >/dev/null &&\
+ printf '[FAIL]' || printf '[PASS]';\
+ else\
+ printf '[SKIP]';\
+ fi;\
+ printf '\tsize/execute\n'
z80.out: master.s
z80-unknown-coff-as -o $@ master.s
--- a/tests/strip/execute/Makefile
+++ b/tests/strip/execute/Makefile
@@ -5,14 +5,20 @@
OUT = z80.out
AS = z80-unknown-coff-as
-all:
+all: $(OUT)
+ @PATH=$(ROOT)/bin:$$PATH:. chktest.sh
+
+tests:
@if $(AS) 2>/dev/null;\
then\
- $(MAKE) tests;\
- fi
-
-tests: $(OUT)
- @PATH=$(ROOT)/bin:$$PATH:. chktest.sh
+ $(MAKE);\
+ grep -v TODO |\
+ grep FAIL >/dev/null &&\
+ printf '[FAIL]' || printf '[PASS]';\
+ else\
+ printf '[SKIP]';\
+ fi;\
+ printf '\tstrip/execute\n'
z80.out: master.s
$(AS) -o $@ master.s