#!/bin/bash
# Test subset of c examples for interactive devices.
#
# Copyright (C) 2004-2009  Alan W. Irwin
# Copyright (C) 2004  Andrew Ross
#
# This file is part of PLplot.
#
# PLplot is free software; you can redistribute it and/or modify
# it under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PLplot is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public License
# along with PLplot; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

# This is called from plplot-test.sh with $cdir, $device, and possibly
# $verbose_test defined.

# Use a subset of C examples that tests interactive devices.
lang="c"
export index lang

if [ "$device" = "xcairo" -o "$device" = "qtwidget" ] ; then
    # Temporarily drop example 17 for xcairo and qtwidget because those drivers are
    # so horribly slow for such interactive plots.
    INDEX="01 04 08 14 16 24 30"
else
    INDEX="01 04 08 14 16 17 24 30"
fi
for index in $INDEX; do
    if [ "$verbose_test" ] ; then
	echo "x${index}${lang}"
    fi
    $DEBUG_CMD "$cdir"/x${index}${lang} -dev $device -np \
	2> test.error >| "${OUTPUT_DIR}"/x${index}${lang}_${device}.txt
    # Look for any status codes (segfaults, plexit) from the examples
    # themselves.
    status_code=$?
    cat test.error
    if [ "$status_code" -ne 0 ] ; then
	exit $status_code
    fi
    # Look for any PLPLOT ERROR messages from plwarn that do not result in an
    # exit code.
    is_error=`grep -l 'PLPLOT ERROR' test.error`
    if [ -n "$is_error" ] ; then
	exit 1
    fi
done
