chiark / gitweb /
test/bad.sod: Test error reporting and recovery.
[sod] / test / Makefile.am
1 ### -*-makefile-*-
2 ###
3 ### Build script for SOD examples and tests
4 ###
5 ### (c) 2015 Straylight/Edgeware
6 ###
7
8 ###----- Licensing notice ---------------------------------------------------
9 ###
10 ### This file is part of the Sensible Object Design, an object system for C.
11 ###
12 ### SOD is free software; you can redistribute it and/or modify
13 ### it under the terms of the GNU General Public License as published by
14 ### the Free Software Foundation; either version 2 of the License, or
15 ### (at your option) any later version.
16 ###
17 ### SOD is distributed in the hope that it will be useful,
18 ### but WITHOUT ANY WARRANTY; without even the implied warranty of
19 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 ### GNU General Public License for more details.
21 ###
22 ### You should have received a copy of the GNU General Public License
23 ### along with SOD; if not, write to the Free Software Foundation,
24 ### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25
26 include $(top_srcdir)/vars.am
27
28 ###--------------------------------------------------------------------------
29 ### The silly Chimaera example.
30
31 check_PROGRAMS          += chimaera
32 -include chimaera.c-dep chimaera.h-dep
33
34 EXTRA_DIST              += chimaera.sod
35 nodist_chimaera_SOURCES  = chimaera.c chimaera.h
36 BUILT_SOURCES           += $(nodist_chimaera_SOURCES)
37
38 EXTRA_DIST              += chimaera.ref
39 CLEANFILES              += chimaera.out
40 check-local:: chimaera chimaera.ref
41         ./chimaera >chimaera.out
42         diff -u $(srcdir)/chimaera.ref chimaera.out
43
44 ###--------------------------------------------------------------------------
45 ### Other tests.
46
47 TESTS                   += test
48 check_PROGRAMS          += test
49 -include test.c-dep test.h-dep
50
51 bad.out: bad.sod $(SOD)
52         $(SOD) -tc $(srcdir)/bad.sod >bad.raw-out 2>bad.raw-err; rc=$$?; \
53         { sed 's/^/| /' bad.raw-out; \
54           sed 's/^/* /; s,$(srcdir)/,test/,' bad.raw-err; \
55           echo "; rc = $$rc"; } >$@.new && \
56                 mv $@.new $@
57 check-local:: bad.out
58         diff -u $(srcdir)/bad.ref bad.out
59 CLEANFILES              += bad.raw-out bad.raw-err bad.out
60
61 EXTRA_DIST              += test.sod
62 nodist_test_SOURCES      = test.c test.h
63 BUILT_SOURCES           += $(nodist_test_SOURCES)
64
65 check_PROGRAMS          += kwtest
66
67 EXTRA_DIST              += kwtest.ref
68 CLEANFILES              += kwtest.out
69 check-local:: kwtest kwtest.ref
70         ./kwtest >kwtest.out
71         diff -u $(srcdir)/kwtest.ref kwtest.out
72
73 check_PROGRAMS          += rat
74 -include rat.c-dep rat.h-dep
75
76 EXTRA_DIST              += rat.sod rat.ref
77 nodist_rat_SOURCES       = rat.c rat.h
78 BUILT_SOURCES           += $(nodist_rat_SOURCES)
79 check-local:: rat rat.ref
80         ./rat >rat.out
81         diff -u $(srcdir)/rat.ref rat.out
82
83 ###----- That's all, folks --------------------------------------------------