Add a test_regenerate target for regenerating failing tests
[cloog.git] / test / Makefile.am
blob3b0f60c799b27ab0e9a3f39cb18f5c24c0a61aae
2 #   /**-------------------------------------------------------------------**
3 #    **                              CLooG                                **
4 #    **-------------------------------------------------------------------**
5 #    **                            makefile                               **
6 #    **-------------------------------------------------------------------**
7 #    **                   First version: march 6th 2003                   **
8 #    **-------------------------------------------------------------------**/
10 # makefile for checking.
12 #/*****************************************************************************
13 # *               CLooG : the Chunky Loop Generator (experimental)            *
14 # *****************************************************************************
15 # *                                                                           *
16 # * Copyright (C) 2003 Cedric Bastoul                                         *
17 # *                                                                           *
18 # * This library is free software; you can redistribute it and/or             *
19 # * modify it under the terms of the GNU Lesser General Public                *
20 # * License as published by the Free Software Foundation; either              *
21 # * version 2.1 of the License, or (at your option) any later version.        *
22 # *                                                                           *
23 # * This library is distributed in the hope that it will be useful,           *
24 # * but WITHOUT ANY WARRANTY; without even the implied warranty of            *
25 # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU         *
26 # * Lesser General Public License for more details.                           *
27 # *                                                                           *
28 # * You should have received a copy of the GNU Lesser General Public          *
29 # * License along with this library; if not, write to the Free Software       *
30 # * Foundation, Inc., 51 Franklin Street, Fifth Floor,                        *
31 # * Boston, MA  02110-1301  USA                                               *
32 # *                                                                           *
33 # * CLooG, the Chunky Loop Generator                                          *
34 # * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr                        *
35 # * This file has been written with the help of the Bart Kienhuis's checking  *
36 # * makefile for PipLib.                                                      *
37 # *                                                                           *
38 # *****************************************************************************/
40 if NO_ISL
41 GENERATE_TEST =
42 else
43 GENERATE_TEST = generate_test
44 endif
45 noinst_PROGRAMS = $(GENERATE_TEST)
46 AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include
47 LDADD = ../libcloog-isl.la
48 generate_test_SOURCES = generate_test.c
50 FORCE:
51 ../libcloog-isl.la: FORCE
52         cd ..; $(MAKE) $(AM_MAKEFLAGS) libcloog-isl.la
54 ROOT = ..
56 FINITE_CLOOGTEST_C = \
57         0D-1 \
58         0D-2 \
59         0D-3 \
60         1point-1 \
61         1point-2 \
62         4-param \
63         basic-bounds-1 \
64         basic-bounds-2 \
65         basic-bounds-3 \
66         basic-bounds-4 \
67         basic-bounds-5 \
68         basic-bounds-6 \
69         block \
70         block2 \
71         block3 \
72         byu98-1-2-3 \
73         cholesky \
74         cholesky2 \
75         christian \
76         classen \
77         classen2 \
78         constant \
79         constbound \
80         darte \
81         dealII \
82         donotsimp \
83         dot \
84         dot2 \
85         double \
86         durbin_e_s \
87         emploi \
88         esced \
89         ex1 \
90         forwardsub-1-1-2 \
91         forwardsub-2-1-2-3 \
92         forwardsub-3-1-2 \
93         gauss \
94         gesced \
95         gesced2 \
96         gesced3 \
97         guide \
98         iftest \
99         iftest2 \
100         largeur \
101         levenshtein-1-2-3 \
102         lex \
103         lineality-1-2 \
104         lineality-2-1-2 \
105         logo \
106         logopar \
107         lu \
108         lu2 \
109         lub \
110         lux \
111         min-1-1 \
112         min-2-1 \
113         min-3-1 \
114         min-4-1 \
115         mode \
116         multi-mm-1 \
117         no_lindep \
118         orc \
119         rectangle \
120         singleton \
121         square+triangle-1-1-2-3 \
122         swim \
123         test \
124         thomasset \
125         tiling \
126         uday_scalars \
127         union \
128         vivien \
129         vivien2 \
130         walters \
131         walters2 \
132         walters3 \
133         wavefront \
134         yosr \
135         yosr2 \
136         non_optimal/nul_complex1 \
137         non_optimal/usvd_e_t \
138         non_optimal/youcef \
139         reservoir/cholesky2 \
140         reservoir/fusion1 \
141         reservoir/fusion2 \
142         reservoir/jacobi2 \
143         reservoir/jacobi3 \
144         reservoir/lim-lam1 \
145         reservoir/lim-lam2 \
146         reservoir/lim-lam3 \
147         reservoir/lim-lam4 \
148         reservoir/lim-lam5 \
149         reservoir/lim-lam6 \
150         reservoir/liu-zhuge1 \
151         reservoir/loechner3 \
152         reservoir/loechner4 \
153         reservoir/loechner5 \
154         reservoir/mg-interp2 \
155         reservoir/mg-interp \
156         reservoir/mg-psinv \
157         reservoir/mg-resid \
158         reservoir/mg-rprj3 \
159         reservoir/pingali1 \
160         reservoir/pingali2 \
161         reservoir/pingali3 \
162         reservoir/pingali4 \
163         reservoir/pingali5 \
164         reservoir/pingali6 \
165         reservoir/QR \
166         reservoir/tang-xue1 \
167         reservoir/two
169 CLOOG_ISL_TEST_C = \
170         isl/mod \
171         isl/mod2 \
172         isl/mod3 \
173         isl/mod4
175 CLOOGTEST_C = \
176         infinite \
177         infinite2 \
178         infinite3 \
179         infinite4 \
180         $(FINITE_CLOOGTEST_C) \
181         $(CLOOG_ISL_TEST_C)
183 CLOOGTEST_FORTRAN = \
184         dartef \
185         iftestf \
186         levenshtein-1-2-3f \
187         yosrf
189 CLOOG_ISL_TEST_STRIDED = \
190         isl/mxm-shared
192 CLOOGTEST_STRIDED = \
193         basic-bounds-2 \
194         mod4 \
195         nul_basic1 \
196         nul_basic2 \
197         nul_lcpc \
198         multi-stride \
199         multi-stride2 \
200         stride3 \
201         stride4 \
202         reservoir/bastoul3 \
203         reservoir/stride \
204         reservoir/stride2 \
205         $(CLOOG_ISL_TEST_STRIDED)
207 if NO_OSL
208 CLOOGTEST_OPENSCOP =
209 else
210 CLOOGTEST_OPENSCOP = \
211         openscop/matmult \
212         openscop/empty \
213         openscop/union
214 endif
216 SPECIAL_TESTS = \
217         isl/unroll \
218         isl/jacobi-shared \
219         isl/unroll2 \
220         backtrack \
221         vasilache \
222         merge \
223         equality \
224         equality2 \
225         otl \
226         param-split \
227         pouchet \
228         stride \
229         stride2 \
230         sor1d
232 SPECIAL_OPTIONS = \
233         'isl/unroll -first-unroll 1' \
234         'isl/jacobi-shared -f 4 -l -1 -override -strides 1 -sh 1' \
235         'isl/unroll2 -first-unroll 1' \
236         'backtrack -f 1 -backtrack' \
237         'vasilache -f 8 -l 9' \
238         'merge -f -1' \
239         'equality -f -1 -l 2 -override' \
240         'equality2 -f -1 -l 4 -esp 1 -override' \
241         'otl -block 1 -esp 0 -otl 0' \
242         'param-split -f -1' \
243         'pouchet -f 3 -l 7' \
244         'stride -f -1 -strides 1' \
245         'stride2 -f -1 -strides 1' \
246         'sor1d -f -1'
248 generate:
249         @echo "             /*-----------------------------------------------*"
250         @echo "              *                 Generate files                *"
251         @echo "              *-----------------------------------------------*/"
252         @for x in $(CLOOGTEST_C) ; do \
253                 echo "Generate $$x.c" ; \
254                 $(top_builddir)/cloog $(srcdir)/$$x.cloog -o $(srcdir)/$$x.c ; \
255         done ; \
256         for x in $(CLOOGTEST_FORTRAN) ; do \
257                 echo "Generate $$x.f" ; \
258                 $(top_builddir)/cloog $(srcdir)/$$x.cloog -o $(srcdir)/$$x.f ; \
259         done ; \
260         for x in $(CLOOGTEST_STRIDED) ; do \
261                 echo "Generate $$x.c" ; \
262                 $(top_builddir)/cloog $(srcdir)/$$x.cloog \
263                         -strides 1 -o $(srcdir)/$$x.c ; \
264         done ; \
265         for x in $(CLOOGTEST_OPENSCOP) ; do \
266                 echo "Generate $$x.c" ; \
267                 $(top_builddir)/cloog $(srcdir)/$$x.scop \
268                 -openscop -o $(srcdir)/$$x.c ; \
269         done ; \
270         for line in $(SPECIAL_OPTIONS); do \
271                 options=`echo $$line | sed -e 's/^[^ ]* //'`; \
272                 x=`echo $$line | sed -e 's/ .*//'`; \
273                 echo "Generate file $$x ($$options)" ; \
274                 $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog \
275                     $$options > $(srcdir)/$$x.c ; \
276         done
278 generate_good:
279         @for x in $(FINITE_CLOOGTEST_C) ; do \
280                 echo "Generate $$x.good.c" ; \
281                 $(top_builddir)/cloog$(EXEEXT) -callable 1 $(srcdir)/$$x.cloog -o $(srcdir)/$$x.good.c ; \
282         done; \
283         for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \
284                 echo "Generate $$x.good.c ($$options)" ; \
285                 $(top_builddir)/cloog$(EXEEXT) -callable 1 $$options $(srcdir)/$$x.cloog -o $(srcdir)/$$x.good.c ; \
286         done; done
288 valgrind:
289         @echo "             /*-----------------------------------------------*"
290         @echo "              *            Checking files by Valgrind         *"
291         @echo "              *-----------------------------------------------*/"
292         for x in $(CLOOGTEST_C) ; do \
293                 echo "Valgrinding $$x.c" ; \
294                 valgrind $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog ; \
295         done ; \
296         for x in $(CLOOGTEST_FORTRAN) ; do \
297                 echo "Valgrinding $$x.f" ; \
298                 valgrind $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog ; \
299         done
301 CHECKER := "$(srcdir)/checker.sh"
303 TESTS_ENVIRONMENT = \
304         top_builddir=$(top_builddir) \
305         srcdir=$(srcdir) \
306         EXEXT=$(EXEEXT) \
307         CHECKER=$(CHECKER) \
308         COMPILE="$(COMPILE)" \
309         LINK="$(LINK)" \
310         FINITE_CLOOGTEST_C="$(FINITE_CLOOGTEST_C)" \
311         CLOOGTEST_C="$(CLOOGTEST_C)" \
312         CLOOGTEST_FORTRAN="$(CLOOGTEST_FORTRAN)" \
313         CLOOGTEST_STRIDED="$(CLOOGTEST_STRIDED)" \
314         CLOOGTEST_OPENSCOP="$(CLOOGTEST_OPENSCOP)" \
315         SPECIAL_OPTIONS="$(SPECIAL_OPTIONS)"
317 test_run: generate_test$(EXEEXT)
318         $(TESTS_ENVIRONMENT) $(srcdir)/check_run.sh
320 test_regenerate:
321         $(TESTS_ENVIRONMENT) $(srcdir)/check_c.sh regenerate ; \
322         $(TESTS_ENVIRONMENT) $(srcdir)/check_fortran.sh regenerate ; \
323         $(TESTS_ENVIRONMENT) $(srcdir)/check_strided.sh regenerate ; \
324         $(TESTS_ENVIRONMENT) $(srcdir)/check_openscop.sh regenerate ; \
325         $(TESTS_ENVIRONMENT) $(srcdir)/check_special.sh regenerate
327 check_SCRIPTS = \
328         check_c.sh \
329         check_fortran.sh \
330         check_strided.sh \
331         check_openscop.sh \
332         check_special.sh
334 TESTS = $(check_SCRIPTS)
336 EXTRA_DIST = \
337         $(check_SCRIPTS) \
338         $(srcdir)/checker.sh \
339         $(srcdir)/check_run.sh \
340         $(CLOOGTEST_C:%=%.cloog) \
341         $(CLOOGTEST_C:%=%.c) \
342         $(FINITE_CLOOGTEST_C:%=%.good.c) \
343         $(CLOOGTEST_FORTRAN:%=%.cloog) \
344         $(CLOOGTEST_FORTRAN:%=%.f) \
345         $(CLOOGTEST_STRIDED:%=%.cloog) \
346         $(CLOOGTEST_STRIDED:%=%.c) \
347         $(CLOOGTEST_OPENSCOP:%=%.scop) \
348         $(CLOOGTEST_OPENSCOP:%=%.c) \
349         $(SPECIAL_TESTS:%=%.cloog) \
350         $(SPECIAL_TESTS:%=%.c) \
351         $(SPECIAL_TESTS:%=%.good.c)