xref: /netbsd-src/external/lgpl3/gmp/dist/mini-gmp/tests/run-tests (revision 5dd36a3bc8bf2a9dec29ceb6349550414570c447)
1#! /bin/sh
2
3# Copyright (C) 2000-2002, 2004, 2005, 2011, 2012, 2016  Niels Möller
4#
5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License along
16# with this program; if not, write to the Free Software Foundation, Inc.,
17# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
19failed=0
20all=0
21
22debug='no'
23testflags=''
24
25if [ -z "$srcdir" ] ; then
26  srcdir=`pwd`
27fi
28
29export srcdir
30
31# When used in make rules, we sometimes get the filenames VPATH
32# expanded, but usually not.
33find_program () {
34    case "$1" in
35	*/*)
36	  echo "$1"
37	  ;;
38	*)
39	  if [ -x "$1" ] ; then
40	      echo "./$1"
41	  else
42	      echo "$srcdir/$1"
43	  fi
44	  ;;
45    esac
46}
47
48env_program () {
49  if [ -x "$1" ] ; then
50    if "$1"; then : ; else
51      echo FAIL: $1
52      exit 1
53    fi
54  fi
55}
56
57TEST_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
58TEST_DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH"
59
60if [ "$TEST_LIBRARY_PATH" ] ; then
61  TEST_LD_LIBRARY_PATH="$TEST_LIBRARY_PATH:$TEST_LD_LIBRARY_PATH"
62  TEST_DYLD_LIBRARY_PATH="$TEST_LIBRARY_PATH:$TEST_DYLD_LIBRARY_PATH"
63fi
64
65test_program () {
66  testname=`basename "$1" .exe`
67  testname=`basename "$testname" -test`
68  if [ -z "$EMULATOR" ] || head -1 "$1" | grep '^#!' > /dev/null; then
69    LD_LIBRARY_PATH="$TEST_LD_LIBRARY_PATH" \
70    DYLD_LIBRARY_PATH="$TEST_DYLD_LIBRARY_PATH" \
71    "$1" $testflags
72  else
73    $EMULATOR "$1" $testflags
74  fi
75  case "$?" in
76      0)
77	echo PASS: $testname
78	all=`expr $all + 1`
79	;;
80      77)
81	echo SKIP: $testname
82      ;;
83      *)
84	echo FAIL: $testname
85	failed=`expr $failed + 1`
86	all=`expr $all + 1`
87	;;
88  esac
89}
90
91env_program `find_program setup-env`
92
93while test $# != 0
94do
95  case "$1" in
96  --debug)
97    debug=yes
98    ;;
99  -v)
100    testflags='-v'
101    ;;
102  -*)
103    echo >&2 'Unknown option `'"$1'"
104    exit 1
105    ;;
106  *)
107    break
108    ;;
109  esac
110  shift
111done
112
113# Comment out special handling for zero arguments to support separate
114# tests-build/tests-run.
115#if [ $# -eq 0 ] ; then
116#  for f in *-test; do test_program "./$f"; done
117#else
118  for f in "$@" ; do test_program `find_program "$f"`; done
119#fi
120
121if [ $failed -eq 0 ] ; then
122  banner="All $all tests passed"
123else
124  banner="$failed of $all tests failed"
125fi
126dashes=`echo "$banner" | sed s/./=/g`
127echo "$dashes"
128echo "$banner"
129echo "$dashes"
130
131if [ "x$debug" = xno ] ; then
132  env_program `find_program teardown-env`
133fi
134
135[ "$failed" -eq 0 ]
136