aboutsummaryrefslogtreecommitdiff
path: root/tests/scripts/gen-tests
blob: 7095e30e83a111603c1cb30aaf685c36455e16ba (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/sh

mkdir -p $(for d in "${@}"; do echo $d; done | sed "s|^|build/|")
mkdir -p $(for d in "${@}"; do echo $d; done | sed "s|^|reports/|")

for NAME in "${@}"; do
	echo "build/$NAME/init.d:"						>> tests.mk
	echo "-include build/$NAME/init.d"					>> tests.mk

	echo "build/$NAME/init: $NAME/init.c \$(COMMON) \$(KMI)"		>> tests.mk
	echo "	\$(COMPILE_TEST) $NAME/init.c \$(COMMON) -o build/$NAME/init"	>> tests.mk

	echo "build/$NAME/initrd: build/$NAME/init"				>> tests.mk
	echo "	echo build/$NAME/init | \$(GEN_INITRD) build/$NAME/initrd"	>> tests.mk

	echo "reports/$NAME/log: build/$NAME/initrd"				>> tests.mk
	echo "	timeout --foreground 30s \$(QEMU) \
		build/$NAME/initrd > reports/$NAME/log"				>> tests.mk

	echo "reports/$NAME/OK: reports/$NAME/log"				>> tests.mk
	echo "	grep 'BUG' reports/$NAME/log \\"				>> tests.mk
	echo "		&& echo 'BUG' > reports/$NAME/log \\"			>> tests.mk
	echo "		|| tail -n1 reports/$NAME/log | tr -d '\\\\r' \\"	>> tests.mk
	echo "		> reports/$NAME/OK"					>> tests.mk

	echo "TESTS += $NAME"							>> tests.mk
	echo ".PHONY: $NAME"							>> tests.mk
	echo "$NAME: reports/$NAME/OK"						>> tests.mk
done