| #!/bin/sh |
| |
| keep=no |
| |
| for option; do |
| case "$option" in |
| --keep) |
| keep=yes |
| ;; |
| esac |
| done |
| |
| EXEEXT=@EXEEXT@ |
| VERSION=@GIT_HEAD_VERSION@ |
| CC="@CC@" |
| CFLAGS="--std=gnu99" |
| srcdir="@srcdir@" |
| |
| if [ $keep = "yes" ]; then |
| OUTDIR="opencl_test.$VERSION" |
| mkdir "$OUTDIR" || exit 1 |
| else |
| if test "x$TMPDIR" = "x"; then |
| TMPDIR=/tmp |
| fi |
| OUTDIR=`mktemp -d $TMPDIR/ppcg.XXXXXXXXXX` || exit 1 |
| fi |
| |
| run_tests () { |
| subdir=$1 |
| ppcg_options=$2 |
| |
| echo Test with PPCG options \'$ppcg_options\' |
| mkdir ${OUTDIR}/${subdir} || exit 1 |
| for i in $srcdir/tests/*.c; do |
| echo $i |
| name=`basename $i` |
| name="${name%.c}" |
| out_c="${OUTDIR}/${subdir}/$name.ppcg.c" |
| out="${OUTDIR}/${subdir}/$name.ppcg$EXEEXT" |
| options="--target=opencl --opencl-no-use-gpu $ppcg_options" |
| functions="$srcdir/tests/${name}_opencl_functions.cl" |
| if test -f $functions; then |
| options="$options --opencl-include-file=$functions" |
| options="$options --opencl-compiler-options=-I." |
| fi |
| ./ppcg$EXEEXT $options $i -o "$out_c" || exit |
| $CC $CFLAGS -I "$srcdir" "$srcdir/ocl_utilities.c" -lOpenCL \ |
| -I. "$out_c" -o "$out" || exit |
| $out || exit |
| done |
| } |
| |
| run_tests default |
| run_tests embed --opencl-embed-kernel-code |
| |
| for i in $srcdir/examples/*.c; do |
| echo $i |
| name=`basename $i` |
| name="${name%.c}" |
| exe_ref="${OUTDIR}/$name.ref$EXEEXT" |
| gen_ocl="${OUTDIR}/$name.ppcg.c" |
| exe_ocl="${OUTDIR}/$name.ppcg$EXEEXT" |
| output_ref="${OUTDIR}/$name.ref.out" |
| output_ocl="${OUTDIR}/$name.ppcg.out" |
| $CC $CFLAGS $i -o $exe_ref || exit |
| ./ppcg$EXEEXT --target=opencl --opencl-no-use-gpu $i -o "$gen_ocl" || \ |
| exit |
| $CC $CFLAGS -I "$srcdir" "$srcdir/ocl_utilities.c" -lOpenCL \ |
| "$gen_ocl" -o "$exe_ocl" || exit |
| $exe_ref > $output_ref || exit |
| $exe_ocl > $output_ocl || exit |
| cmp $output_ref $output_ocl || exit |
| done |
| |
| if [ $keep = "no" ]; then |
| rm -r "${OUTDIR}" |
| fi |