Updated test to work also for root

This commit is contained in:
Jitka Plesnikova 2023-10-18 15:39:43 +02:00
parent 2d32b04d34
commit e990b817e4
4 changed files with 49 additions and 14 deletions

View File

@ -1,7 +1,18 @@
diff -up DBD-mysql-5.001/t/10connect.t.orig DBD-mysql-5.001/t/10connect.t
--- DBD-mysql-5.001/t/10connect.t.orig 2023-10-12 17:14:01.117134826 +0200
+++ DBD-mysql-5.001/t/10connect.t 2023-10-12 17:14:46.482494421 +0200
@@ -46,7 +46,7 @@ like(
From 18626cfefdc4568ed0de7129a1bfb5916c21f5e6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dani=C3=ABl=20van=20Eeden?= <git@myname.nl>
Date: Thu, 5 Oct 2023 09:45:44 +0200
Subject: [PATCH] Update version test for v5.x
---
t/10connect.t | 2 +-
t/version.t | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/t/10connect.t b/t/10connect.t
index 6f36c4d..bfca344 100644
--- a/t/10connect.t
+++ b/t/10connect.t
@@ -45,7 +45,7 @@ like(
'get_info SQL_DRIVER_VER like dd.dd.dddd'
);
@ -10,10 +21,11 @@ diff -up DBD-mysql-5.001/t/10connect.t.orig DBD-mysql-5.001/t/10connect.t
# storage engine function is @@storage_engine in up to 5.5.03
# at that version, @@default_storage_engine is introduced
diff -up DBD-mysql-5.001/t/version.t.orig DBD-mysql-5.001/t/version.t
--- DBD-mysql-5.001/t/version.t.orig 2023-10-12 17:14:16.136253877 +0200
+++ DBD-mysql-5.001/t/version.t 2023-10-12 17:15:13.153705834 +0200
@@ -7,7 +7,7 @@ use Bundle::DBD::mysql;
diff --git a/t/version.t b/t/version.t
index 47d1778..87b0db0 100644
--- a/t/version.t
+++ b/t/version.t
@@ -6,7 +6,7 @@ use Bundle::DBD::mysql;
use Test::More;
like($DBD::mysql::VERSION, qr/^\d\.\d{2,3}(|_\d\d)$/, 'version format');
@ -22,3 +34,6 @@ diff -up DBD-mysql-5.001/t/version.t.orig DBD-mysql-5.001/t/version.t
is(
$DBD::mysql::VERSION,
$Bundle::DBD::mysql::VERSION,
--
2.41.0

View File

@ -84,7 +84,8 @@ management system.
Summary: Tests for %{name}
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: perl-Test-Harness
#Requires: hostname
Requires: coreutils
Requires: shadow-utils
Requires: %{?fedora:community-}mysql
Requires: %{?fedora:community-}mysql-server
# Required to process t/testrules.yml
@ -140,6 +141,7 @@ perl -i -pe 's{%{_builddir}/.*mysql.sock}{_TEST_SOCKET_}' %{buildroot}%{_libexec
# Remove release tests
rm %{buildroot}%{_libexecdir}/%{name}/t/manifest.t
rm %{buildroot}%{_libexecdir}/%{name}/t/pod.t
cat > %{buildroot}%{_libexecdir}/%{name}/test << 'EOF'
#!/usr/bin/bash
set -e
@ -150,7 +152,22 @@ cp -a %{_libexecdir}/%{name}/* ./
. $DIR/$(basename %{SOURCE4})
%{!?with_perl_DBD_MySQL_enables_leak_test:unset EXTENDED_TESTING}
perl -i -pe "s{_TEST_SOCKET_}{$DBD_MYSQL_TESTSOCKET}" $DIR/t/mysql.mtest
prove -I . -j "$(getconf _NPROCESSORS_ONLN)"
# Test setup and tests have to be executed by non-root user
if [ `id -u` -ne 0 ]; then
prove -I . -j "$(getconf _NPROCESSORS_ONLN)"
else
getent group $DBD_MYSQL_TESTUSER >/dev/null || \
groupadd -r $DBD_MYSQL_TESTUSER
getent passwd $DBD_MYSQL_TESTUSER >/dev/null || \
useradd -g $DBD_MYSQL_TESTUSER $DBD_MYSQL_TESTUSER
chown -hR $DBD_MYSQL_TESTUSER:$DBD_MYSQL_TESTUSER $DIR
su $DBD_MYSQL_TESTUSER -c "prove -I . -j \"$(getconf _NPROCESSORS_ONLN)\""
chown -hR root:root $DIR
getent passwd $DBD_MYSQL_TESTUSER &>/dev/null && userdel -r $DBD_MYSQL_TESTUSER
getent group $DBD_MYSQL_TESTUSER &>/dev/null && groupdel $DBD_MYSQL_TESTUSER
fi
popd
rm -rf "$DIR"
EOF

View File

@ -9,6 +9,6 @@ export MYSQL_PIDFILE=$MYSQL_DIR/mysql.pid
export DBD_MYSQL_TESTDB=test
export DBD_MYSQL_TESTHOST=localhost
export DBD_MYSQL_TESTSOCKET=$MYSQL_UNIX_PORT
export DBD_MYSQL_TESTUSER=testuser
export DBD_MYSQL_TESTPASSWORD=testpassword
export DBD_MYSQL_TESTUSER=testuserdbd
export DBD_MYSQL_TESTPASSWORD=testpasswordDBD

View File

@ -18,9 +18,11 @@ my $DBD_MYSQL_TESTUSER = $ENV{'DBD_MYSQL_TESTUSER'};
my $DBD_MYSQL_TESTPASSWORD = $ENV{'DBD_MYSQL_TESTPASSWORD'};
my $MYSQLD = '/usr/sbin/mysqld';
system("$MYSQLD --no-defaults --initialize-insecure --datadir=$MYSQL_DIR --explicit_defaults_for_timestamp >/dev/null 2>&1");
# Initialize MySQL data directory
system("$MYSQLD --no-defaults --initialize-insecure --user=mysql --datadir=$MYSQL_DIR >/dev/null 2>&1");
is($?, 0);
# Starting the server
my $cmd = "$MYSQLD --no-defaults --socket=$MYSQL_UNIX_PORT --datadir=$MYSQL_DIR --pid-file=$MYSQL_PIDFILE --explicit_defaults_for_timestamp --skip-networking >/dev/null 2>&1 &";
system($cmd);
is($?, 0);
@ -30,11 +32,12 @@ while (system("/usr/bin/mysqladmin --socket=$MYSQL_UNIX_PORT ping >/dev/null 2>&
sleep 3;
$attempts++;
if ($attempts > 10) {
fail("skipping test, mariadb/mysql server could not be contacted after 30 seconds\n");
fail("skipping test, mysql server could not be contacted after 30 seconds\n");
}
}
ok(1);
# Create database
system("mysql -u root --skip-password --execute \"CREATE DATABASE IF NOT EXISTS $DBD_MYSQL_TESTDB CHARACTER SET='utf8mb4';\" 2>&1");
is($?, 0);