mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
f4adf35474
* Deb: Handle codename 'n/a' from Debian Sid properly and autobake-deb cleanup This fixes autobake-deb.sh builds on Sid which was visible as 4 failing build steps on Salsa-CI. - In Sid the LSBNAME might evaluate to 'n/a', so accept it as 'Sid' to fix builds that failed with error: Error - unknown release codename n/a - Refactor list to have Ubuntu versions first, then Debian, and as last the special case of Debian Sid - Fix minor syntax issues detected by Shellcheck Also remove useless DEB_HOST_ARCH_CPU check from debian/rules: * It was never in effect as the 'sed' in autobake-deb.sh cleared it anyway * The variable name was wrong and always empty * If variable would have been correct, logic was still reversed - Define 3h timeout as the default 1h timeout on Gitlab.com (and others) is usually not enough for initial (uncached) MariaDB builds. - Replace Buster to Bookworm/Sid upgrade testing with upgrade inside Buster testing as direct upgrades from Stretch to Bullseye and Buster to Bookworm are no longer possible due to: Bug#993755: libcrypt.so.1: cannot open shared object file when upgrading from Stretch to Sid (https://bugs.debian.org/993755) - Stop ignoring MariaDB.org 10.6 to this version upgrade testing failures to reveal bug MDEV-28640. Originally this step was failing as the uring dependencies in upstream builders lagged behind and there was nothing that needed work, only time time to resolve. Now there is an actual bug in packaging that should be visible as a CI failure. - Stop testing for 'service mysql status' on systems that upgraded from MySQL 8.0 to MariaDB.org vended 10.6. Due to some unidentified debian/control changes in 10.6 on upstream the upgrade is no longer compatible in a way that would maintain the init.d script with name 'mysql'. - Fix typos where mergers had changed occurrences of 10.5 to 10.6 while they intentionally need to be exactly 10.5, otherwise the meaning changes. - Align autopkgtest code with downstream official Debian packaging one. This is change is safe on a stable branch because is only affects builds and testing, not any actual usage of MariaDB 10.6. - Standardize on using capitalized 'YES' in CMake build options (instead of 'yes' or mixed case) - Add some comments to better document debian/rules - Fix typo in Lintian overrides Ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/mariadb-10.6/+bug/1970634 MariaDB ticket: https://jira.mariadb.org/browse/MDEV-25633 When built with LTO on Ubuntu, MariaDB does not catch an exception when the uring initialization fails due to a low RLIMIT_MEMLOCK value. This commit amends the commit0609b34555
to be identical to the one done downstream in Debian:8d20ca979c
This way both the inline comments and 'git blame' for this section will show properly why this is needed, and the fix is one that is fully tested on Debian and Ubuntu. Also having this section fully identical in upstream MariaDB and downstream Debian will make the packaging maintenance easier as 'diff` runs on this file will not flag this as a difference anymore. In MDEV-28640 the init script failed to stop/start the MariaDB server due to missing mysqladmin on the system. This was however very hard to spot from the console output. Add an explicit check for the binary the script depends on, and fail verbosely if the dependency is missing.
71 lines
2.4 KiB
Bash
71 lines
2.4 KiB
Bash
#!/bin/sh
|
|
# autopkgtest check: Build and run the upstream test suite.
|
|
# (C) 2012 Canonical Ltd.
|
|
# Author: Daniel Kessel <d.kessel@gmx.de>
|
|
|
|
# running the mysql testsuite as described in:
|
|
# https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/959683
|
|
|
|
echo "Running test 'testsuite'"
|
|
set -e
|
|
|
|
SKIP_TEST_LST="/tmp/skip-test.lst"
|
|
ARCH=$(dpkg --print-architecture)
|
|
|
|
WORKDIR=$(mktemp -d)
|
|
trap 'rm -rf $WORKDIR $SKIP_TEST_LST' 0 INT QUIT ABRT PIPE TERM
|
|
cd "$WORKDIR"
|
|
|
|
mkdir var
|
|
mkdir tmp
|
|
|
|
echo "using vardir: $WORKDIR/var"
|
|
echo "using tmpdir: $WORKDIR/tmp"
|
|
|
|
echo "Setting up skip-tests-list"
|
|
|
|
# Use unstable-tests list as base to skip all tests considered unstable
|
|
# or create an empty file if that upstream file does not exists on this branch
|
|
cp /usr/share/mysql/mysql-test/unstable-tests $SKIP_TEST_LST || touch $SKIP_TEST_LST
|
|
|
|
# Also use the arch specific skiplists if exist
|
|
if [ -f /usr/share/mysql/mysql-test/unstable-tests.$ARCH ]
|
|
then
|
|
cat /usr/share/mysql/mysql-test/unstable-tests.$ARCH >> $SKIP_TEST_LST
|
|
fi
|
|
|
|
# Skip tests that cannot run properly on ci.debian.net / autopkgtests.ubuntu.com
|
|
cat >> $SKIP_TEST_LST << EOF
|
|
binlog.binlog_server_start_options : Requires writable /usr
|
|
main.ctype_uca : Requires writable /usr
|
|
rpl.rpl_gtid_mode : Requires starting server as root ref http://bugs.mysql.com/bug.php?id=70517
|
|
EOF
|
|
|
|
# Skip tests that cannot run properly on Gitlab-CI
|
|
if [ ! -z "$GITLAB_CI" ]
|
|
then
|
|
cat >> $SKIP_TEST_LST << EOF
|
|
main.mysqld--help : For unknown reason table-cache is 4000 instead of default 421
|
|
EOF
|
|
fi
|
|
|
|
if [ "$ARCH" = "s390x" ]
|
|
then
|
|
echo "main.func_regexp_pcre : recursion fails on s390x https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1723947" >> $SKIP_TEST_LST
|
|
elif [ "$ARCH" = "armhf" ] || [ "$ARCH" = "i386" ]
|
|
then
|
|
echo "main.failed_auth_unixsocket : Test returns wrong exit code on armhf and i386 (but only in debci) https://jira.mariadb.org/browse/MDEV-23933" >> $SKIP_TEST_LST
|
|
fi
|
|
|
|
# Store skipped test list in artifacts so it can be viewed while debugging
|
|
# failed autopkgtest runs
|
|
cp -v $SKIP_TEST_LST $AUTOPKGTEST_ARTIFACTS
|
|
|
|
cd /usr/share/mysql/mysql-test
|
|
echo "starting mysql-test-tun.pl..."
|
|
eatmydata perl -I. ./mysql-test-run.pl --suite=main \
|
|
--vardir="$WORKDIR/var" --tmpdir="$WORKDIR/tmp" \
|
|
--parallel=auto --skip-rpl \
|
|
--force --skip-test-list=$SKIP_TEST_LST \
|
|
--xml-report=$AUTOPKGTEST_ARTIFACTS/mysql-test-run-junit.xml $@ 2>&1
|
|
echo "run: OK"
|