spot/tests/run.in
Alexandre Duret-Lutz 47348a9755 improve PyPy support by following PEP 3149
This implement the suggestion is issue #467 but the test suite is
still not completely passing with pypy3.

* m4/pypath.m4: Detect the suffix for extensions.
* python/Makefile.am: Use it.
* tests/run.in: Recognize pypy3 as a Python version.
2021-06-29 21:15:04 +02:00

123 lines
3.4 KiB
Bash
Executable file

#!/bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2010-2011, 2014-2016, 2018-2021 Laboratoire de Recherche
# et Developpement de l'EPITA (LRDE).
# Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6
# (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
# Pierre et Marie Curie.
#
# This file is part of Spot, a model checking library.
#
# Spot 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 3 of the License, or
# (at your option) any later version.
#
# Spot 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, see <http://www.gnu.org/licenses/>.
# Darwin needs some help in figuring out where non-installed libtool
# libraries are (on this platform libtool encodes the expected final
# path of dependent libraries in each library).
modpath='@abs_top_builddir@/python/.libs:@abs_top_builddir@/python/spot/.libs'
modpath=$modpath:'@abs_top_builddir@/spot/ltsmin/.libs'
modpath=$modpath:'@abs_top_builddir@/spot/gen/.libs'
modpath=$modpath:'@abs_top_builddir@/spot/.libs'
modpath=$modpath:'@abs_top_builddir@/buddy/src/.libs'
# We need access to both the *.py files, and the *.so. We used to
# rely on a module called ltihooks.py to teach the import function how
# to load a Libtool library, but it started to cause issues with
# Python 2.6.
pypath=
for i in python python/spot; do
for j in '@abs_top_builddir@' '@abs_top_srcdir@'; do
pypath=$j/$i:$j/$i/.libs:$pypath
done
done
pypath=${pypath%:}
PATH="@abs_top_builddir@/bin:$PATH"
export PATH
test -z "$1" &&
PYTHONPATH=$pypath DYLD_LIBRARY_PATH=$modpath:$DYLD_LIBRARY_PATH \
exec $PREFIXCMD @PYTHON@
srcdir="@srcdir@"
# Reset CFLAGS, because some tests call the compiler, and we do not
# want to inherit parameters likes -std=c11 -fvisibility=hidden
CFLAGS=
export CFLAGS
CXX='@CXX@'
export CXX
CXXFLAGS='@CXXFLAGS@'
export CXXFLAGS
top_builddir='@abs_top_builddir@'
export top_builddir
top_srcdir='@abs_top_srcdir@'
export top_srcdir
PERL='@PERL@'
export PERL
# Reset those variables, as they may affect the output of DOT.
SPOT_DOTEXTRA=
export SPOT_DOTEXTRA
SPOT_DOTDEFAULT=
export SPOT_DOTDEFAULT=
SPOT_UNINSTALLED=1
export SPOT_UNINSTALLED
case $1 in
*/*)
dir=${1%/*}
dir=${dir##*/}
mkdir -p $dir
cd $dir
case $1 in
../*)
base=../$1
;;
[\\/$]* | ?:[\\/]* )
base=$1
;;
*)
base=${1##*/}
;;
esac
test $srcdir != '.' && srcdir="@abs_srcdir@/$dir"
shift
set x "$base" "$@"
shift
;;
esac
export srcdir
case $1 in
*.ipynb)
PYTHONPATH=$pypath DYLD_LIBRARY_PATH=$modpath:$DYLD_LIBRARY_PATH \
PYTHONIOENCODING=utf-8:surrogateescape \
exec $PREFIXCMD @PYTHON@ @abs_srcdir@/python/ipnbdoctest.py "$@";;
*.py)
PYTHONPATH=$pypath DYLD_LIBRARY_PATH=$modpath:$DYLD_LIBRARY_PATH \
exec $PREFIXCMD @PYTHON@ "$@";;
*.test)
exec sh -x "$@";;
*.pl)
exec $PERL "$@";;
*python*|*jupyter*|*pypy*)
PYTHONPATH=$pypath DYLD_LIBRARY_PATH=$modpath:$DYLD_LIBRARY_PATH \
exec $PREFIXCMD "$@";;
*)
echo "Unknown extension" >&2
exit 2;;
esac