blob: 938625ab03867a8add658d5d55423a9c1fb5bc4b (
plain)
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
|
# Automated testing to see if the output of Asymptote scripts changes when the
# program is modified.
# How to call asy from the tests/output/name.out directory
ASY=../../../asy
TESTS=$(basename $(wildcard *.asy))
# This command performs the testing on all scripts.
diff: $(TESTS:=.diff)
# This builds the reference copies of the output using a trusted version of asy
ref: $(TESTS:=.ref)
$(TESTS:=.ref) $(TESTS:=.out): %:
@echo Generating $@
@rm -rf $@
@mkdir $@
@cd $@; \
$(ASY) -keep ../$(basename $@) \
>$(basename $@).stdout 2>$(basename $@).stderr; \
ls >$(basename $@).ls; \
rm -f *.dvi *.pdf *.gif *.jpg *.jpeg *.png
# Ignore lines with timestamps of the form hh:mm, since the time changes between
# runs. This regex is fairly broad and it may need to be narrowed.
$(TESTS:=.diff): %.diff: %.out
diff -I "[0-9][0-9]:[0-9][0-9]" -u $(@:.diff=.ref) $(@:.diff=.out)
clean:
rm -rf *.out
# The reference copies should only be built at the start, or when the behaviour
# of Asymptote is intentionally changed, so they are not usually removed by make
# clean.
veryclean: clean
rm -rf *.ref
# This tells make to build every dependency from scratch, ignoring the dates on
# files.
.PHONY: $(TESTS:=.ref) $(TESTS:=.out) $(TESTS:=.diff) diff ref clean veryclean
|