1
0
Fork 0
libreoffice/debian/tests/cppunit-connectivity-mysql
Daniel Baumann 2e48723132
Adding debian version 4:25.2.3-2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 16:22:18 +02:00

123 lines
3.5 KiB
Bash
Executable file

#!/bin/bash
# autopkgtest check: Run the connectivity "mysql" test
# and prepare the db needed beforehand
# (c) 2021 Software in the Public Interest, Inc.
# Authors: Rene Engelhard <rene@debian.org>
SRCDIR=`pwd`
CHECK_PARALLELISM=1
if [ -n "$AUTOPKGTEST_TMP" ]; then
WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
else
WORKDIR=`mktemp -q -d`
fi
if [ -x /usr/bin/mariadbd-safe ]; then
db=mariadb
db_safe_command=mariadbd-safe
db_rundir=/run/mysqld
else
db=mysql
db_safe_command=mysqld_safe
db_rundir=/var/run/mysqld
fi
db_user=root
db_pw=`pwgen -1`
db_name=test
db_host=localhost
db_port=3306
db_conn_string="$db_user/$db_pw@sdbc:mysql:mysqlc:$db_host:$db_port/$db_name"
trap "cleanup" ERR
if [ -f $AUTOPKGTEST_TMP/build-tests-skipped ]; then exit 77; fi
function cleanup() {
stop_db
}
function stop_db() {
service $db stop || true
# in case we are trying in a chroot without running autopkgtest for "quick" testing
if ischroot && test -f $db_rundir/mysqld.pid; then
kill `cat $db_rundir/mysqld.pid`
fi
}
echo
echo "====== Enabling core dumps ======"
# yes, we want core dumps and stack traces
ulimit -c unlimited || true
echo "====== Resetting $db_user password ======"
$db_safe_command --skip-grant-tables &
sleep 5 # wait for startup
if test "$db" = "mariadb"; then
echo "FLUSH PRIVILEGES; SET PASSWORD FOR '$db_user'@'localhost' = PASSWORD('$db_pw');" | \
$db -v -u $db_user mysql
else
echo "SET PASSWORD FOR '$db_user'@'localhost' = '$db_pw'; FLUSH PRIVILEGES;" | \
$db -v -u $db_user mysql
fi
stop_db
service $db start
set -e
echo
echo "====== Creating database "test" ======"
echo "DROP DATABASE IF EXISTS $db_name; CREATE DATABASE $db_name;" | \
$db -v -u $db_user mysql
# ensure we use the version from the package
echo
echo "====== Symlinking libraries... ======"
#rene@frodo:~/LibreOffice/git/master$ objdump -p instdir/program/libmysqlclo.so | grep NEED
# NEEDED libmariadb.so.3
# NEEDED libuno_cppu.so.3
# NEEDED libdbtoolslo.so
# NEEDED libuno_sal.so.3
# NEEDED libuno_salhelpergcc3.so.3
# NEEDED libcomphelper.so
# NEEDED libuno_cppuhelpergcc3.so.3
# NEEDED libstdc++.so.6
# NEEDED libm.so.6
# NEEDED libgcc_s.so.1
# NEEDED libpthread.so.0
# NEEDED libc.so.6
# VERNEED 0x0000000000004b28
# VERNEEDNUM 0x0000000000000007
cd $SRCDIR/instdir/program
LIBS="libuno_cppu.so.3 libuno_sal.so.3 libuno_salhelpergcc3.so.3 libuno_cppuhelpergcc3.so.3 libmysqlclo.so"
# FIXME: libdbtoolslo.so and libcomphelper.so are in libmerged.so with enable-mergelibs, thus do not
# exist on 64bit...
# Maybe until then this test shall only be run on 32bit?
if [ "`dpkg-architecture -qDEB_HOST_ARCH_BITS`" = "32" ]; then
LIBS="$LIBS libdbtoolslo.so libcomphelper.so"
# done below
else
LIBS="$LIBS libmergedlo.so"
ln -svf /usr/lib/libreoffice/program/libmergedlo.so libdbtoolslo.so
# DOESN'T WORK, CAUSES LINK ERROR
#ln -svf /usr/lib/libreoffice/program/libmergedlo.so libcomphelper.so
fi
for i in $LIBS; do \
ln -svf /usr/lib/libreoffice/program/$i; \
done
echo
echo "====== Starting MySQL Test with ${CHECK_PARALLELISM} job ======"
cd $SRCDIR/connectivity && \
make -rj$CHECK_PARALLELISM CppunitTest_connectivity_mysql_test \
CONNECTIVITY_TEST_MYSQL_DRIVER="$db_conn_string" \
verbose=t || exit 1
echo
echo "====== Dropping database "test" ======"
echo "DROP DATABASE test;" | \
$db -v -u $db_user mysql
cleanup