diff --git a/DBD-mysql-5.001-Fix-version-tests.patch b/DBD-mysql-5.001-Fix-version-tests.patch index 48f175a..24a5688 100644 --- a/DBD-mysql-5.001-Fix-version-tests.patch +++ b/DBD-mysql-5.001-Fix-version-tests.patch @@ -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?= +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 + diff --git a/perl-DBD-MySQL.spec b/perl-DBD-MySQL.spec index 50c5952..f78987d 100644 --- a/perl-DBD-MySQL.spec +++ b/perl-DBD-MySQL.spec @@ -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 diff --git a/test-env.sh b/test-env.sh index 2a10623..7913c4d 100755 --- a/test-env.sh +++ b/test-env.sh @@ -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 diff --git a/test-setup.t b/test-setup.t index 724c5ea..6f4fa55 100755 --- a/test-setup.t +++ b/test-setup.t @@ -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);