-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMake.test
More file actions
72 lines (59 loc) · 1.91 KB
/
Copy pathMake.test
File metadata and controls
72 lines (59 loc) · 1.91 KB
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# srcdir = .
ref = ${srcdir}/ref
testdir = ${srcdir}/${TESTDIR}
TARGETDIR = check
GNUCAP = gnucap
DIFF = diff
DIFF_FLAGS = -rup
NUM_HDR_LINES=11
GNUCAP_ARGS = ${TEST_PLUGINS:%=-a ./%}
glob_ckt = $(shell cd ${testdir}; ls *.ckt)
glob_gc = $(shell cd ${testdir}; ls *.gc)
filt_ckt = $(filter ${TESTCASES}%, ${glob_ckt})
filt_gc = $(filter ${TESTCASES}%, ${glob_gc})
out_ckt = ${filt_ckt:%=${TARGETDIR}/%.out}
out_gc = ${filt_gc:%=${TARGETDIR}/%.out}
diff_ckt = ${filt_ckt:%=${TARGETDIR}/%.diff}
diff_gc = ${filt_gc:%=${TARGETDIR}/%.diff}
diff = ${diff_ckt} ${diff_gc}
prep: ${SYMLINKS} ${TEST_PLUGINS}
# @[ ! -s "${TARGETDIR}" ]
-mkdir -p ${TARGETDIR}
${out_ckt}: ${TARGETDIR}/%.ckt.out: prep
-@${ENV} ${GNUCAP} --acs ${GNUCAP_ARGS} -b ${testdir}/$*.ckt |tail -n +${NUM_HDR_LINES} | \
grep -v '^stashing\ as' | grep -v 'already\ installed' | grep -v ^make > $@
SHELL=/bin/bash
${out_gc}: ${TARGETDIR}/%.gc.out: prep
@-${TESTENV} ${GNUCAP} ${GNUCAP_ARGS} < ${testdir}/$*.gc |tail -n +${NUM_HDR_LINES} | \
grep -v '^stashing\ as' | grep -v 'already\ installed' | grep -v ^make > $@; \
err=$${PIPESTATUS[0]}; [ $$err == 0 ] || echo "error $$err" >> $@;
listt: ${out_gc}
echo $TESTDIR
echo ${testdir}
echo outgc ${out_gc}
# TODO: maybe cat the diff, so it can be logged?
check: ${TARGETDIR}/${TESTCASES}.diff
@find ${TARGETDIR} -size 0 -delete;
@echo ==
@if [ -s ${TARGETDIR}/${TESTCASES}.diff ]; then \
echo test failures:; \
ls -larS ${TARGETDIR}/${TESTCASES}*.diff; \
else \
echo all ${TESTCASES} passed; \
fi
${diff}: ${TARGETDIR}/%.diff: ${TARGETDIR}/%.out
@if [ ! -f ${ref}/$*.out ]; then \
echo MISS: $*; \
echo "missing: $*.out" > $@; \
elif ${DIFF} ${DIFF_FLAGS} ${ref}/$*.out ${TARGETDIR}/$*.out > $@; then \
echo pass: $*; \
else \
echo FAIL: $*; \
fi
${TARGETDIR}/${TESTCASES}.diff : ${diff}
@for i in $+; do \
if [ -f $ii ]; then \
echo $$i; \
cat $$i; \
fi; \
done > $@