test/defs.sh.in

Code
Comments
Other
Rev Date Author Line
1842 02 Mar 09 peter 1 # @configure_input@
1842 02 Mar 09 peter 2 # $Id$
1842 02 Mar 09 peter 3
4359 23 Aug 23 peter 4 # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2019, 2020, 2023 Peter Johansson
1842 02 Mar 09 peter 5 #
1842 02 Mar 09 peter 6 # This file is part of the yat library, http://dev.thep.lu.se/yat
1842 02 Mar 09 peter 7 #
1842 02 Mar 09 peter 8 # The yat library is free software; you can redistribute it
1842 02 Mar 09 peter 9 # and/or modify it under the terms of the GNU General Public License as
1842 02 Mar 09 peter 10 # published by the Free Software Foundation; either version 3 of the
1842 02 Mar 09 peter 11 # License, or (at your option) any later version.
1842 02 Mar 09 peter 12 #
1842 02 Mar 09 peter 13 # The yat library is distributed in the hope that it will be useful,
1842 02 Mar 09 peter 14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
1842 02 Mar 09 peter 15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1842 02 Mar 09 peter 16 # General Public License for more details.
1842 02 Mar 09 peter 17 #
1842 02 Mar 09 peter 18 # You should have received a copy of the GNU General Public License
1842 02 Mar 09 peter 19 # along with yat. If not, see <http://www.gnu.org/licenses/>.
1842 02 Mar 09 peter 20
1854 07 Mar 09 peter 21
2519 11 Jul 11 peter 22 # bootstrap a test project
1854 07 Mar 09 peter 23 #
2205 27 Feb 10 peter 24 bootstrap ()
2205 27 Feb 10 peter 25 {
4326 12 Mar 23 peter 26     $RM -rf m4
3038 07 Jun 13 peter 27     $mkdir_p m4
3038 07 Jun 13 peter 28     cp $abs_top_srcdir/m4/*.m4 m4/.
4326 12 Mar 23 peter 29     $RM -f m4/lt*.m4 m4/libtool.m4
3051 12 Jun 13 peter 30     res=0
3945 20 Jul 20 peter 31     export AUTOM4TE
3945 20 Jul 20 peter 32     export AUTOCONF
3945 20 Jul 20 peter 33     export AUTOHEADER
3945 20 Jul 20 peter 34     export AUTOMAKE
3945 20 Jul 20 peter 35     export ACLOCAL
3945 20 Jul 20 peter 36     export AUTOPOINT
3945 20 Jul 20 peter 37     export LIBTOOLIZE
3945 20 Jul 20 peter 38     export M4
3945 20 Jul 20 peter 39     $AUTORECONF -si $verbose || res=$?
2240 11 Apr 10 peter 40     case $res in
2240 11 Apr 10 peter 41         0)
2240 11 Apr 10 peter 42             :;;
2240 11 Apr 10 peter 43         63)
2528 26 Jul 11 peter 44             exit_skip;;
2240 11 Apr 10 peter 45         *)
2240 11 Apr 10 peter 46             exit $res;;
2240 11 Apr 10 peter 47     esac
2205 27 Feb 10 peter 48 }
1854 07 Mar 09 peter 49
2458 03 Apr 11 peter 50 # Usage: run PROG EXPECTED_EXITCODE [OPTION]...
2458 03 Apr 11 peter 51 run ()
2458 03 Apr 11 peter 52 {
2520 11 Jul 11 peter 53     test $# -ge 2 || exit_fatal
2458 03 Apr 11 peter 54     foo_prog=$1
2458 03 Apr 11 peter 55     shift
2458 03 Apr 11 peter 56     expected_exitcode=$1
2458 03 Apr 11 peter 57     shift
2458 03 Apr 11 peter 58     exitcode=0
2458 03 Apr 11 peter 59     $foo_prog ${1+"$@"} > stdout 2>stderr || exitcode=$?
2458 03 Apr 11 peter 60     cat stderr >&2
2458 03 Apr 11 peter 61     cat stdout
2520 11 Jul 11 peter 62     test $exitcode = $expected_exitcode || Exit 1
2458 03 Apr 11 peter 63 }
2205 27 Feb 10 peter 64
2519 11 Jul 11 peter 65 Exit () { set +x; exit $1; }
2519 11 Jul 11 peter 66 warn_ () { echo $@ >&2; }
2519 11 Jul 11 peter 67 exit_fail () { warn_ "$me: failed test: $@"; Exit 1; }
2519 11 Jul 11 peter 68 exit_fatal () { warn_ "$me: hard error: $@"; Exit 99; }
2692 28 Feb 12 peter 69 exit_skip () { warn_ "$me: skipped test: $@"; Exit 77; }
2519 11 Jul 11 peter 70 exit_success () { echo "$me: successsful test: $@"; Exit 0; }
2519 11 Jul 11 peter 71
3036 03 Jun 13 peter 72 check_requirements ()
3036 03 Jun 13 peter 73 {
2528 26 Jul 11 peter 74 # if required tool is not available, exit_skip
1854 07 Mar 09 peter 75 if test -n "$required"; then
1854 07 Mar 09 peter 76   for tool in $required; do
1854 07 Mar 09 peter 77     case $tool in
3945 20 Jul 20 peter 78       aclocal)
3945 20 Jul 20 peter 79       echo "$me: running $ACLOCAL --version"
3945 20 Jul 20 peter 80       ($ACLOCAL --version) || exit_skip;
3945 20 Jul 20 peter 81       ;;
3945 20 Jul 20 peter 82       autoconf)
3945 20 Jul 20 peter 83       echo "$me: running $AUTOCONF --version"
3945 20 Jul 20 peter 84       ($AUTOCONF --version) || exit_skip;
3945 20 Jul 20 peter 85       ;;
2406 12 Jan 11 peter 86       automake)
3844 13 Sep 19 peter 87       echo "$me: running $AUTOMAKE --version"
3844 13 Sep 19 peter 88       ($AUTOMAKE --version) || exit_skip;
2406 12 Jan 11 peter 89       # skip test if automake older than v1.10
2406 12 Jan 11 peter 90       version_am=`$tool --version | head -n 1 | cut -f 2 -d ')'`
2406 12 Jan 11 peter 91       ver_major=`echo ${version_am} | cut -f 1 -d '.'`
2528 26 Jul 11 peter 92       test ${ver_major} -ge 1 || exit_skip
2406 12 Jan 11 peter 93       ver_minor=`echo ${version_am} | cut -f 2 -d '.'`
2528 26 Jul 11 peter 94       test ${ver_major} -gt 1 || test ${ver_minor} -ge 10 || exit_skip
2406 12 Jan 11 peter 95       ;;
2519 11 Jul 11 peter 96       doxygen)
3890 26 Mar 20 peter 97       test x"${have_doxygen}" = x"yes" || exit_skip no doxygen
2519 11 Jul 11 peter 98       ;;
3400 30 Mar 15 peter 99       htslib)
3890 26 Mar 20 peter 100       test x"${have_htslib}" = x"yes" || exit_skip no libbam
2981 04 Feb 13 peter 101       ;;
3100 01 Nov 13 peter 102       libmy-shared)
3100 01 Nov 13 peter 103       test -r test/lib/libmy-shared.la || exit_fatal "no 'libmy-shared.la'"
3100 01 Nov 13 peter 104       test -s test/lib/libmy-shared.la || exit_skip no shared lib
3100 01 Nov 13 peter 105       ;;
3100 01 Nov 13 peter 106       libmy-static)
3100 01 Nov 13 peter 107       test -r test/lib/libmy-static.a || exit_fatal "no 'libmy-static.a'"
3100 01 Nov 13 peter 108       test -s test/lib/libmy-static.a || exit_skip no static lib
3100 01 Nov 13 peter 109       ;;
1854 07 Mar 09 peter 110       libtool)
3844 13 Sep 19 peter 111       echo "$me: running $LIBTOOLIZE --version"
3844 13 Sep 19 peter 112       ($LIBTOOLIZE --version) || exit_skip libtool not available;
1854 07 Mar 09 peter 113       ;;
3945 20 Jul 20 peter 114       pkg-config)
3945 20 Jul 20 peter 115           echo hello
3945 20 Jul 20 peter 116           echo "$me: running $PKG_CONFIG --version"
3945 20 Jul 20 peter 117       ($PKG_CONFIG --version) || exit_skip pkg-config not available;
3945 20 Jul 20 peter 118       ;;
3035 12 May 13 peter 119       shared)
3890 26 Mar 20 peter 120       if (test "x${enable_shared}" = "xno"); then
3035 12 May 13 peter 121         echo shared disabled;
3035 12 May 13 peter 122         exit_skip;
3035 12 May 13 peter 123       fi
3035 12 May 13 peter 124       ;;
2244 20 Apr 10 peter 125       static)
3890 26 Mar 20 peter 126       if (test "x${enable_static}" = "xno"); then
3035 12 May 13 peter 127         echo static disabled;
2528 26 Jul 11 peter 128         exit_skip;
2244 20 Apr 10 peter 129       fi
2244 20 Apr 10 peter 130       ;;
1854 07 Mar 09 peter 131       *)
1854 07 Mar 09 peter 132       echo "$me: running $tool --version"
2528 26 Jul 11 peter 133       ($tool --version) || exit_skip
1854 07 Mar 09 peter 134     esac
1854 07 Mar 09 peter 135   done
1854 07 Mar 09 peter 136 fi
3036 03 Jun 13 peter 137 }
2692 28 Feb 12 peter 138
3036 03 Jun 13 peter 139
3036 03 Jun 13 peter 140 me=$0
1842 02 Mar 09 peter 141 # some defs we need in tests
1846 04 Mar 09 peter 142 test_dir=`echo $me.dir | sed -e 's,.*[\\/],,'`
2739 07 Jun 12 peter 143 test_dir="test/testSubDir/$test_dir"
1842 02 Mar 09 peter 144 abs_top_builddir=@abs_top_builddir@
1854 07 Mar 09 peter 145 abs_top_srcdir=@abs_top_srcdir@
3112 10 Nov 13 peter 146 enable_static="@enable_static@"
3112 10 Nov 13 peter 147 enable_shared="@enable_shared@"
3110 09 Nov 13 peter 148 lt_cv_objdir=@lt_cv_objdir@
2517 11 Jul 11 peter 149 have_doxygen="@have_doxygen@"
3890 26 Mar 20 peter 150 have_htslib="@have_htslib@"
3035 12 May 13 peter 151 mkdir_p="@MKDIR_P@ --verbose"
3038 07 Jun 13 peter 152 verbose="--verbose"
3038 07 Jun 13 peter 153 silent=
3112 10 Nov 13 peter 154 configure_opts=
3112 10 Nov 13 peter 155 test x"$enable_shared" = x"no" && configure_opts="--disable-shared"
3112 10 Nov 13 peter 156 test x"$enable_static" = x"no" \
3112 10 Nov 13 peter 157 && configure_opts="$onfigure_options --disable-static"
1842 02 Mar 09 peter 158
3844 13 Sep 19 peter 159 # set autotools variables if not set (se we use same as autoreconf)
3844 13 Sep 19 peter 160 : ${LIBTOOLIZE='libtoolize'}
3945 20 Jul 20 peter 161 : ${AUTOCONF='autoconf'}
3945 20 Jul 20 peter 162 : ${AUTOM4TE='autom4te'}
3844 13 Sep 19 peter 163 : ${AUTOMAKE='automake'}
3945 20 Jul 20 peter 164 : ${AUTOHEADER='autoheader'}
3945 20 Jul 20 peter 165 : ${AUTOPOINT='autopoint'}
3945 20 Jul 20 peter 166 : ${AUTORECONF='autoreconf'}
3844 13 Sep 19 peter 167 : ${ACLOCAL='aclocal'}
3945 20 Jul 20 peter 168 : ${GSL_CONFIG=@GSL_CONFIG@}
3945 20 Jul 20 peter 169 : ${M4=m4}
3945 20 Jul 20 peter 170 : ${MAKE=make}
3945 20 Jul 20 peter 171 : ${PKG_CONFIG='pkg-config'}
4326 12 Mar 23 peter 172 : ${RM=rm}
4327 12 Mar 23 peter 173 : ${EGREP=@EGREP@}
4327 12 Mar 23 peter 174 : ${GREP=@GREP@}
3112 10 Nov 13 peter 175 YAT_CONFIG=$abs_top_builddir/build_support/yat-config
3365 01 Dec 14 peter 176 YAT_LDFLAGS="@YAT_LDFLAGS@"
3825 18 Jul 19 peter 177 CXX="@CXX@"
3825 18 Jul 19 peter 178 CPPFLAGS="@CPPFLAGS@"
3825 18 Jul 19 peter 179 CXXFLAGS="@CXXFLAGS@"
3365 01 Dec 14 peter 180 LDFLAGS="@LDFLAGS@"
2950 11 Jan 13 peter 181
2517 11 Jul 11 peter 182 # user is always right
2517 11 Jul 11 peter 183 test -z "$DOXYGEN" && DOXYGEN="@DOXYGEN@"
3100 01 Nov 13 peter 184 VERSION="@VERSION@"