clixon/test/test_install.sh
2022-10-27 14:21:17 +02:00

86 lines
2.1 KiB
Bash
Executable file

#!/usr/bin/env bash
# Install system test
# Magic line must be first in script (see README.md)
s="$_" ; . ./lib.sh || if [ "$s" = $0 ]; then exit 0; else return 0; fi
# Eg on FreeBSD use gmake
: ${make:=make}
# Check for soft links for .so files in case of dynamic linkage, but .a files f static linking
if [ ${LINKAGE} = static ]; then
LIBOPT=-f
SUFFIX=${LIBSTATIC_SUFFIX}
else
LIBOPT=-h
SUFFIX=${SH_SUFFIX}
fi
new "Set up installdir $dir"
new "Make DESTDIR install ($dir)"
# Not for static linkage, libcligen.a may be taken from elsewhere
(cd ..; $make DESTDIR=$dir install)
if [ $? -ne 0 ]; then
err
fi
new "Check installed files /usr"
if [ ! -d $dir/usr ]; then
err $dir/usr
fi
new "Check installed files clixon-config"
if [ ! -f $dir/usr/local/share/clixon/clixon-config* ]; then
err $dir/usr/local/share/clixon/clixon-config*
fi
new "Check installed files libclixon${SUFFIX}"
# Check both /usr/local/lib and /usr/lib
# This is a problem on some platforms that dont have /usr/local/ in LD_LIBRARY_PATH
if [ ! ${LIBOPT} $dir/usr/local/lib/libclixon${SUFFIX} ]; then
if [ ! ${LIBOPT} $dir/usr/lib/libclixon${SUFFIX} ]; then
err $dir/usr/local/lib/libclixon${SUFFIX}
fi
fi
new "Check installed files libclixon_backend${SUFFIX}"
if [ ! ${LIBOPT} $dir/usr/local/lib/libclixon_backend${SUFFIX} ]; then
if [ ! ${LIBOPT} $dir/usr/lib/libclixon_backend${SUFFIX} ]; then
err $dir/usr/local/lib/libclixon_backend${SUFFIX}
fi
fi
new "Make DESTDIR install include"
(cd ..; $make DESTDIR=$dir install-include)
if [ $? -ne 0 ]; then
err
fi
new "Check installed includes"
if [ ! -f $dir/usr/local/include/clixon/clixon.h ]; then
err $dir/usr/local/include/clixon/clixon.h
fi
new "Make DESTDIR uninstall"
(cd ..; $make DESTDIR=$dir uninstall)
if [ $? -ne 0 ]; then
err
fi
new "Check remaining files"
f=$(find $dir -type f)
if [ -n "$f" ]; then
err "$f"
fi
new "Check remaining symlinks"
l=$(find $dir -type l)
if [ -n "$l" ]; then
err "$l"
fi
rm -rf $dir
# unset conditional parameters
unset make
new "endtest"
endtest