clast generation: don't feed malformed constraints to modulo guard construction
[cloog.git] / test / Makefile.am
blob1598d31fb625db68321813aa1480d134364af13b
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 INCLUDES = -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         byu98-1-2-3                    \
72         cholesky                       \
73         cholesky2                      \
74         classen                        \
75         classen2                       \
76         constant                       \
77         constbound                     \
78         darte                          \
79         dealII                         \
80         donotsimp                      \
81         dot                            \
82         dot2                           \
83         double                         \
84         durbin_e_s                     \
85         emploi                         \
86         esced                          \
87         ex1                            \
88         forwardsub-1-1-2               \
89         forwardsub-2-1-2-3             \
90         forwardsub-3-1-2               \
91         gauss                          \
92         gesced                         \
93         gesced2                        \
94         gesced3                        \
95         guide                          \
96         iftest                         \
97         iftest2                        \
98         largeur                        \
99         levenshtein-1-2-3              \
100         lex                            \
101         lineality-1-2                  \
102         lineality-2-1-2                \
103         logo                           \
104         logopar                        \
105         lu                             \
106         lu2                            \
107         lub                            \
108         lux                            \
109         min-1-1                        \
110         min-2-1                        \
111         min-3-1                        \
112         min-4-1                        \
113         mode                           \
114         multi-mm-1                     \
115         no_lindep                      \
116         orc                            \
117         rectangle                      \
118         singleton                      \
119         square+triangle-1-1-2-3        \
120         swim                           \
121         test                           \
122         thomasset                      \
123         tiling                         \
124         uday_scalars                   \
125         union                          \
126         vivien                         \
127         vivien2                        \
128         walters                        \
129         walters2                       \
130         walters3                       \
131         wavefront                      \
132         yosr                           \
133         yosr2                          \
134         ./non_optimal/nul_complex1     \
135         ./non_optimal/usvd_e_t         \
136         ./non_optimal/youcef           \
137         ./reservoir/cholesky2          \
138         ./reservoir/fusion1            \
139         ./reservoir/fusion2            \
140         ./reservoir/jacobi2            \
141         ./reservoir/jacobi3            \
142         ./reservoir/lim-lam1           \
143         ./reservoir/lim-lam2           \
144         ./reservoir/lim-lam3           \
145         ./reservoir/lim-lam4           \
146         ./reservoir/lim-lam5           \
147         ./reservoir/lim-lam6           \
148         ./reservoir/liu-zhuge1         \
149         ./reservoir/loechner3          \
150         ./reservoir/loechner4          \
151         ./reservoir/loechner5          \
152         ./reservoir/mg-interp2         \
153         ./reservoir/mg-interp          \
154         ./reservoir/mg-psinv           \
155         ./reservoir/mg-resid           \
156         ./reservoir/mg-rprj3           \
157         ./reservoir/pingali1           \
158         ./reservoir/pingali2           \
159         ./reservoir/pingali3           \
160         ./reservoir/pingali4           \
161         ./reservoir/pingali5           \
162         ./reservoir/pingali6           \
163         ./reservoir/QR                 \
164         ./reservoir/tang-xue1          \
165         ./reservoir/two   
167 CLOOG_ISL_TEST_C =                      \
168         isl/mod                         \
169         isl/mod2                        \
170         isl/mod3                        \
171         isl/mod4
173 CLOOGTEST_C =                          \
174         infinite                       \
175         infinite2                      \
176         infinite3                      \
177         infinite4                      \
178         $(FINITE_CLOOGTEST_C)          \
179         $(CLOOG_ISL_TEST_C)
181 #       ./reservoir/long               \
182 #       faber
184 CLOOGTEST_FORTRAN =                    \
185         dartef                         \
186         iftestf                        \
187         levenshtein-1-2-3f             \
188         yosrf
190 CLOOG_ISL_TEST_STRIDED =                \
191         isl/mxm-shared
193 CLOOGTEST_STRIDED =                    \
194         basic-bounds-2                 \
195         mod4                           \
196         nul_basic1                     \
197         nul_basic2                     \
198         nul_lcpc                       \
199         multi-stride                   \
200         multi-stride2                  \
201         stride3                        \
202         stride4                        \
203         reservoir/bastoul3             \
204         reservoir/stride               \
205         reservoir/stride2              \
206         $(CLOOG_ISL_TEST_STRIDED)
208 SPECIAL_TESTS = \
209         backtrack \
210         vasilache \
211         merge \
212         equality \
213         equality2 \
214         otl \
215         param-split \
216         pouchet \
217         stride \
218         stride2 \
219         sor1d
220 SPECIAL_OPTIONS = \
221         'backtrack -f 1 -backtrack' \
222         'vasilache -f 8 -l 9' \
223         'merge -f -1' \
224         'equality -f -1 -l 2 -override' \
225         'equality2 -f -1 -l 4 -esp 1 -override' \
226         'otl -block 1 -esp 0 -otl 0' \
227         'param-split -f -1' \
228         'pouchet -f 3 -l 7' \
229         'stride -f -1 -strides 1' \
230         'stride2 -f -1 -strides 1' \
231         'sor1d -f -1'
233 EXTRA_DIST = \
234         $(CLOOGTEST_C:%=%.cloog) \
235         $(CLOOGTEST_C:%=%.c) \
236         $(FINITE_CLOOGTEST_C:%=%.good.c) \
237         $(CLOOGTEST_FORTRAN:%=%.cloog) \
238         $(CLOOGTEST_FORTRAN:%=%.f) \
239         $(CLOOGTEST_STRIDED:%=%.cloog) \
240         $(CLOOGTEST_STRIDED:%=%.c) \
241         $(SPECIAL_TESTS:%=%.cloog) \
242         $(SPECIAL_TESTS:%=%.c) \
243         $(SPECIAL_TESTS:%=%.good.c)
245 generate:
246         @echo "             /*-----------------------------------------------*"
247         @echo "              *                 Generate files                *"
248         @echo "              *-----------------------------------------------*/"
249         @for x in $(CLOOGTEST_C) ; do \
250                 echo "Generate $$x.c" ; \
251                 $(top_builddir)/cloog $(srcdir)/$$x.cloog -o $(srcdir)/$$x.c ; \
252         done ; \
253         for x in $(CLOOGTEST_FORTRAN) ; do \
254                 echo "Generate $$x.f" ; \
255                 $(top_builddir)/cloog $(srcdir)/$$x.cloog -o $(srcdir)/$$x.f ; \
256         done ; \
257         for x in $(CLOOGTEST_STRIDED) ; do \
258                 echo "Generate $$x.c" ; \
259                 $(top_builddir)/cloog $(srcdir)/$$x.cloog \
260                         -strides 1 -o $(srcdir)/$$x.c ; \
261         done ; \
262         for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \
263                 echo "Generate file $$x ($$options)" ; \
264                 $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog \
265                     $$options > $(srcdir)/$$x.c ; \
266         done; done
268 generate_good:
269         @for x in $(FINITE_CLOOGTEST_C) ; do \
270                 echo "Generate $$x.good.c" ; \
271                 $(top_builddir)/cloog$(EXEEXT) -callable 1 $(srcdir)/$$x.cloog -o $(srcdir)/$$x.good.c ; \
272         done; \
273         for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \
274                 echo "Generate $$x.good.c ($$options)" ; \
275                 $(top_builddir)/cloog$(EXEEXT) -callable 1 $$options $(srcdir)/$$x.cloog -o $(srcdir)/$$x.good.c ; \
276         done; done
278 valgrind:
279         @echo "             /*-----------------------------------------------*"
280         @echo "              *            Checking files by Valgrind         *"
281         @echo "              *-----------------------------------------------*/"
282         for x in $(CLOOGTEST_C) ; do \
283                 echo "Valgrinding $$x.c" ; \
284                 valgrind $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog ; \
285         done ; \
286         for x in $(CLOOGTEST_FORTRAN) ; do \
287                 echo "Valgrinding $$x.f" ; \
288                 valgrind $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog ; \
289         done
291 test_run: generate_test$(EXEEXT)
292         @echo "             /*-----------------------------------------------*"
293         @echo "              *                 Testing CLooG                 *"
294         @echo "              *-----------------------------------------------*/"
295         @failedtest=0 ; \
296         echo "--- Testing C files... (correct output)" ; \
297         for x in $(FINITE_CLOOGTEST_C) ; do \
298                 echo -n "Verify file $$x... " ; \
299                 echo -n "generating... " ; \
300                 $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $(srcdir)/$$x.cloog > test_test.c ; \
301                 ./generate_test$(EXEEXT) < $(srcdir)/$$x.cloog > test_main.c; \
302                 echo -n "compiling... " ; \
303                 $(COMPILE) -c test_test.c; \
304                 $(COMPILE) -Dtest=good -c $(srcdir)/$$x.good.c -o test_good.o; \
305                 $(LINK) test_main.c test_test.o test_good.o > /dev/null; \
306                 echo -n "comparing... " ; \
307                 ./test_run$(EXEEXT); \
308                 result=$$?; \
309                 if test "$$result" -ne "0" ; then \
310                         failedtest=`expr $$failedtest + 1` ; \
311                 fi; \
312                 $(RM) $@; \
313                 echo; \
314         done; \
315         for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \
316                 echo -n "Verify file $$x ($$options)... " ; \
317                 echo -n "generating... " ; \
318                 $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $$options $(srcdir)/$$x.cloog > test_test.c ; \
319                 ./generate_test$(EXEEXT) < $(srcdir)/$$x.cloog > test_main.c; \
320                 echo -n "compiling... " ; \
321                 $(COMPILE) -c test_test.c; \
322                 $(COMPILE) -Dtest=good -c $(srcdir)/$$x.good.c -o test_good.o; \
323                 $(LINK) test_main.c test_test.o test_good.o > /dev/null; \
324                 echo -n "comparing... " ; \
325                 ./test_run$(EXEEXT); \
326                 result=$$?; \
327                 if test "$$result" -ne "0" ; then \
328                         failedtest=`expr $$failedtest + 1` ; \
329                 fi; \
330                 $(RM) $@; \
331                 echo; \
332         done; done; \
333         for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \
334                 echo -n "Verify file $$x ($$options -sh 1)... " ; \
335                 echo -n "generating... " ; \
336                 $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $$options -sh 1 $(srcdir)/$$x.cloog > test_test.c ; \
337                 ./generate_test$(EXEEXT) < $(srcdir)/$$x.cloog > test_main.c; \
338                 echo -n "compiling... " ; \
339                 $(COMPILE) -c test_test.c; \
340                 $(COMPILE) -Dtest=good -c $(srcdir)/$$x.good.c -o test_good.o; \
341                 $(LINK) test_main.c test_test.o test_good.o > /dev/null; \
342                 echo -n "comparing... " ; \
343                 ./test_run$(EXEEXT); \
344                 result=$$?; \
345                 if test "$$result" -ne "0" ; then \
346                         failedtest=`expr $$failedtest + 1` ; \
347                 fi; \
348                 $(RM) $@; \
349                 echo; \
350         done; done; \
351         if [ $$failedtest != 0 ] ; then \
352                 echo "$$failedtest tests failed" ; \
353         else \
354                 echo "CLooG works correctly :-) !" ; \
355         fi
356 test:
357         @echo "             /*-----------------------------------------------*"
358         @echo "              *                 Testing CLooG                 *"
359         @echo "              *-----------------------------------------------*/"
360         @failedtest=0 ; \
361         echo "--- Testing C files... (expected output)" ; \
362         for x in $(CLOOGTEST_C) ; do \
363                 echo "Verify file $$x" ; \
364                 $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog > ttemp ; \
365                 diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \
366                 result=$$?; \
367                 if [ "$$result" -ne "0" ] ; then \
368                         echo "!!! Error: $$x is not the same" ; \
369                         failedtest=`expr $$failedtest + 1` ; \
370                 else \
371                         echo "$$x passed" ; \
372                 fi ; \
373         done ; \
374         echo "--- Testing FORTRAN files..." ; \
375         for x in $(CLOOGTEST_FORTRAN) ; do \
376                 echo "Verify file $$x" ; \
377                 $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog > ttemp ; \
378                 diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.f ; \
379                 result=$$?; \
380                 if [ "$$result" -ne "0" ] ; then \
381                         echo "!!! Error: $$x is not the same" ; \
382                         failedtest=`expr $$failedtest + 1` ; \
383                 else \
384                         echo "$$x passed" ; \
385                 fi ; \
386         done ; \
387         echo "--- Testing STRIDED files..." ; \
388         for x in $(CLOOGTEST_STRIDED) ; do \
389                 echo "Verify file $$x" ; \
390                 $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog \
391                 -strides 1 > ttemp ; \
392                 diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \
393                 result=$$?; \
394                 if [ "$$result" -ne "0" ] ; then \
395                         echo "!!! Error: $$x is not the same" ; \
396                         failedtest=`expr $$failedtest + 1` ; \
397                 else \
398                         echo "$$x passed" ; \
399                 fi ; \
400         done ; \
401         echo "--- Testing SPECIAL OPTIONS files..." ; \
402         for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \
403                 echo "Verify file $$x ($$options)" ; \
404                 $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog \
405                         $$options > ttemp ; \
406                 diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \
407                 result=$$?; \
408                 if [ "$$result" -ne "0" ] ; then \
409                         echo "!!! Error: $$x is not the same" ; \
410                         failedtest=`expr $$failedtest + 1` ; \
411                 else \
412                         echo "$$x passed" ; \
413                 fi ; \
414         done; done; \
415         rm ttemp ; \
416         if [ $$failedtest != 0 ] ; then \
417                 echo "$$failedtest tests failed" ; \
418         else \
419                 echo "CLooG works correctly :-) !" ; \
420         fi