2 # /**-------------------------------------------------------------------**
4 # **-------------------------------------------------------------------**
6 # **-------------------------------------------------------------------**
7 # ** First version: march 6th 2003 **
8 # **-------------------------------------------------------------------**/
10 # makefile for checking.
12 #/*****************************************************************************
13 # * CLooG : the Chunky Loop Generator (experimental) *
14 # *****************************************************************************
16 # * Copyright (C) 2003 Cedric Bastoul *
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. *
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. *
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 *
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. *
38 # *****************************************************************************/
43 GENERATE_TEST = generate_test
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
51 ../libcloog-isl.la: FORCE
52 cd ..; $(MAKE) $(AM_MAKEFLAGS) libcloog-isl.la
56 FINITE_CLOOGTEST_C = \
121 square+triangle-1-1-2-3 \
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 \
166 ./reservoir/tang-xue1 \
180 $(FINITE_CLOOGTEST_C) \
186 CLOOGTEST_FORTRAN = \
192 CLOOG_ISL_TEST_STRIDED = \
195 CLOOGTEST_STRIDED = \
208 $(CLOOG_ISL_TEST_STRIDED)
210 CLOOGTEST_OPENSCOP = \
231 'isl/unroll -first-unroll 1' \
232 'isl/jacobi-shared -f 4 -l -1 -override -strides 1 -sh 1' \
233 'isl/unroll2 -first-unroll 1' \
234 'backtrack -f 1 -backtrack' \
235 'vasilache -f 8 -l 9' \
237 'equality -f -1 -l 2 -override' \
238 'equality2 -f -1 -l 4 -esp 1 -override' \
239 'otl -block 1 -esp 0 -otl 0' \
240 'param-split -f -1' \
241 'pouchet -f 3 -l 7' \
242 'stride -f -1 -strides 1' \
243 'stride2 -f -1 -strides 1' \
247 $(CLOOGTEST_C:%=%.cloog) \
248 $(CLOOGTEST_C:%=%.c) \
249 $(FINITE_CLOOGTEST_C:%=%.good.c) \
250 $(CLOOGTEST_FORTRAN:%=%.cloog) \
251 $(CLOOGTEST_FORTRAN:%=%.f) \
252 $(CLOOGTEST_STRIDED:%=%.cloog) \
253 $(CLOOGTEST_STRIDED:%=%.c) \
254 $(SPECIAL_TESTS:%=%.cloog) \
255 $(SPECIAL_TESTS:%=%.c) \
256 $(SPECIAL_TESTS:%=%.good.c)
259 @echo " /*-----------------------------------------------*"
260 @echo " * Generate files *"
261 @echo " *-----------------------------------------------*/"
262 @for x in $(CLOOGTEST_C) ; do \
263 echo "Generate $$x.c" ; \
264 $(top_builddir)/cloog $(srcdir)/$$x.cloog -o $(srcdir)/$$x.c ; \
266 for x in $(CLOOGTEST_FORTRAN) ; do \
267 echo "Generate $$x.f" ; \
268 $(top_builddir)/cloog $(srcdir)/$$x.cloog -o $(srcdir)/$$x.f ; \
270 for x in $(CLOOGTEST_STRIDED) ; do \
271 echo "Generate $$x.c" ; \
272 $(top_builddir)/cloog $(srcdir)/$$x.cloog \
273 -strides 1 -o $(srcdir)/$$x.c ; \
275 for line in $(SPECIAL_OPTIONS); do \
276 options=`echo $$line | sed -e 's/^[^ ]* //'`; \
277 x=`echo $$line | sed -e 's/ .*//'`; \
278 echo "Generate file $$x ($$options)" ; \
279 $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog \
280 $$options > $(srcdir)/$$x.c ; \
284 @for x in $(FINITE_CLOOGTEST_C) ; do \
285 echo "Generate $$x.good.c" ; \
286 $(top_builddir)/cloog$(EXEEXT) -callable 1 $(srcdir)/$$x.cloog -o $(srcdir)/$$x.good.c ; \
288 for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \
289 echo "Generate $$x.good.c ($$options)" ; \
290 $(top_builddir)/cloog$(EXEEXT) -callable 1 $$options $(srcdir)/$$x.cloog -o $(srcdir)/$$x.good.c ; \
294 @echo " /*-----------------------------------------------*"
295 @echo " * Checking files by Valgrind *"
296 @echo " *-----------------------------------------------*/"
297 for x in $(CLOOGTEST_C) ; do \
298 echo "Valgrinding $$x.c" ; \
299 valgrind $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog ; \
301 for x in $(CLOOGTEST_FORTRAN) ; do \
302 echo "Valgrinding $$x.f" ; \
303 valgrind $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog ; \
306 test_run: generate_test$(EXEEXT)
307 @echo " /*-----------------------------------------------*"
308 @echo " * Testing CLooG *"
309 @echo " *-----------------------------------------------*/"
311 echo "--- Testing C files... (correct output)" ; \
312 for x in $(FINITE_CLOOGTEST_C) ; do \
313 echo -n "Verify file $$x... " ; \
314 echo -n "generating... " ; \
315 $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $(srcdir)/$$x.cloog > test_test.c ; \
316 ./generate_test$(EXEEXT) < $(srcdir)/$$x.cloog > test_main.c; \
317 echo -n "compiling... " ; \
318 $(COMPILE) -c test_test.c; \
319 $(COMPILE) -Dtest=good -c $(srcdir)/$$x.good.c -o test_good.o; \
320 $(LINK) test_main.c test_test.o test_good.o > /dev/null; \
321 echo -n "comparing... " ; \
322 ./test_run$(EXEEXT); \
324 if test "$$result" -ne "0" ; then \
325 failedtest=`expr $$failedtest + 1` ; \
330 for line in $(SPECIAL_OPTIONS); do \
331 options=`echo $$line | sed -e 's/^[^ ]* //'`; \
332 x=`echo $$line | sed -e 's/ .*//'`; \
333 echo -n "Verify file $$x ($$options)... " ; \
334 echo -n "generating... " ; \
335 $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $$options $(srcdir)/$$x.cloog > test_test.c ; \
336 ./generate_test$(EXEEXT) < $(srcdir)/$$x.cloog > test_main.c; \
337 echo -n "compiling... " ; \
338 $(COMPILE) -c test_test.c; \
339 $(COMPILE) -Dtest=good -c $(srcdir)/$$x.good.c -o test_good.o; \
340 $(LINK) test_main.c test_test.o test_good.o > /dev/null; \
341 echo -n "comparing... " ; \
342 ./test_run$(EXEEXT); \
344 if test "$$result" -ne "0" ; then \
345 failedtest=`expr $$failedtest + 1` ; \
350 for line in $(SPECIAL_OPTIONS); do \
351 options=`echo $$line | sed -e 's/^[^ ]* //'`; \
352 x=`echo $$line | sed -e 's/ .*//'`; \
353 echo -n "Verify file $$x ($$options -sh 1)... " ; \
354 echo -n "generating... " ; \
355 $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $$options -sh 1 $(srcdir)/$$x.cloog > test_test.c ; \
356 ./generate_test$(EXEEXT) < $(srcdir)/$$x.cloog > test_main.c; \
357 echo -n "compiling... " ; \
358 $(COMPILE) -c test_test.c; \
359 $(COMPILE) -Dtest=good -c $(srcdir)/$$x.good.c -o test_good.o; \
360 $(LINK) test_main.c test_test.o test_good.o > /dev/null; \
361 echo -n "comparing... " ; \
362 ./test_run$(EXEEXT); \
364 if test "$$result" -ne "0" ; then \
365 failedtest=`expr $$failedtest + 1` ; \
370 if [ $$failedtest != 0 ] ; then \
371 echo "$$failedtest tests failed" ; \
373 echo "CLooG works correctly :-) !" ; \
380 @echo " /*-----------------------------------------------*"
381 @echo " * Testing CLooG's OpenScop Input *"
382 @echo " *-----------------------------------------------*/"
384 echo "--- Testing OpenScop files..." ; \
385 for x in $(CLOOGTEST_OPENSCOP) ; do \
386 echo "Verify file $$x" ; \
387 $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.scop \
388 -openscop > ttemp ; \
389 diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \
391 if [ "$$result" -ne "0" ] ; then \
392 echo "!!! Error: $$x is not the same" ; \
393 failedtest=`expr $$failedtest + 1` ; \
395 echo "$$x passed" ; \
399 if [ $$failedtest != 0 ] ; then \
400 echo "$$failedtest tests failed" ; \
402 echo "CLooG's OpenScop input works correctly :-) !" ; \
407 @echo " /*-----------------------------------------------*"
408 @echo " * Testing CLooG *"
409 @echo " *-----------------------------------------------*/"
411 echo "--- Testing C files... (expected output)" ; \
412 for x in $(CLOOGTEST_C) ; do \
413 echo "Verify file $$x" ; \
414 $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog > ttemp ; \
415 diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \
417 if [ "$$result" -ne "0" ] ; then \
418 echo "!!! Error: $$x is not the same" ; \
419 failedtest=`expr $$failedtest + 1` ; \
421 echo "$$x passed" ; \
424 echo "--- Testing FORTRAN files..." ; \
425 for x in $(CLOOGTEST_FORTRAN) ; do \
426 echo "Verify file $$x" ; \
427 $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog > ttemp ; \
428 diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.f ; \
430 if [ "$$result" -ne "0" ] ; then \
431 echo "!!! Error: $$x is not the same" ; \
432 failedtest=`expr $$failedtest + 1` ; \
434 echo "$$x passed" ; \
437 echo "--- Testing STRIDED files..." ; \
438 for x in $(CLOOGTEST_STRIDED) ; do \
439 echo "Verify file $$x" ; \
440 $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog \
441 -strides 1 > ttemp ; \
442 diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \
444 if [ "$$result" -ne "0" ] ; then \
445 echo "!!! Error: $$x is not the same" ; \
446 failedtest=`expr $$failedtest + 1` ; \
448 echo "$$x passed" ; \
451 echo "--- Testing SPECIAL OPTIONS files..." ; \
452 for line in $(SPECIAL_OPTIONS); do \
453 options=`echo $$line | sed -e 's/^[^ ]* //'`; \
454 x=`echo $$line | sed -e 's/ .*//'`; \
455 echo "Verify file $$x ($$options)" ; \
456 $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog \
457 $$options > ttemp ; \
458 diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \
460 if [ "$$result" -ne "0" ] ; then \
461 echo "!!! Error: $$x is not the same" ; \
462 failedtest=`expr $$failedtest + 1` ; \
464 echo "$$x passed" ; \
468 if [ $$failedtest != 0 ] ; then \
469 echo "$$failedtest tests failed" ; \
471 echo "CLooG works correctly :-) !" ; \