#! /bin/sh
# f77demo-exec.test - check that programs in the f77demo subdirectory are viable

# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions.  There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program 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
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, a copy can be downloaded from
# http://www.gnu.org/copyleft/gpl.html, or by writing to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.

. tests/defs || exit 1

func_require "f77demo-make" "tests/f77demo/fprogram$EXEEXT" "tests/f77demo/cprogram$EXEEXT"

func_rmprefixdir
func_exec_init "uninstalled"
func_exec "tests/f77demo/fprogram"
func_exec "tests/f77demo/cprogram"

exit $exec_status
