mysql8.4/mysql-testing.patch
Tom Lane 96ebf13bb4 Add code to cleanup leftover mysql daemon processes --- should make
brew/beehive builds more robust when retrying after a failure.
2024-02-05 16:59:12 +01:00

69 lines
2.7 KiB
Diff

This patch is needed to improve the probability that the MySQL tests pass
in Red Hat's build environment. The 32-bit and 64-bit variants of a single
architecture may be built on the same machine at the same time, so we have
to ensure that the tests use different port numbers on each arch, else they
will interfere with each other. Also, it's been observed that sometimes
the build environment fails to kill a test mysql daemon when a build is
stopped early due to build failure on another machine. To ensure subsequent
tests can succeed, kill off any such daemons.
We also have to hack the top-level Makefile to enable the openssl regression
tests. (Why doesn't this happen automatically given the configure option??)
Note: keep an eye on which version of "mysql-test-run" gets invoked by
the "make test" target. In the 4.1 branch this is now defaulting to the
perl script, but 5.0 is not (yet?) doing that; they also seem to be fooling
with a C-code version. Besides this patch, mysql-libtool.patch
would need to be changed to use either one.
diff -Naur mysql-5.0.22.orig/Makefile.am mysql-5.0.22/Makefile.am
--- mysql-5.0.22.orig/Makefile.am 2006-05-25 04:56:41.000000000 -0400
+++ mysql-5.0.22/Makefile.am 2006-06-10 13:13:34.000000000 -0400
@@ -106,8 +106,8 @@
test:
cd mysql-test ; \
- ./mysql-test-run && \
- ./mysql-test-run --ps-protocol
+ ./mysql-test-run --with-openssl && \
+ ./mysql-test-run --ps-protocol --with-openssl
test-force:
cd mysql-test; \
diff -Naur mysql-5.0.22.orig/mysql-test/mysql-test-run.sh mysql-5.0.22/mysql-test/mysql-test-run.sh
--- mysql-5.0.22.orig/mysql-test/mysql-test-run.sh 2006-05-25 04:56:49.000000000 -0400
+++ mysql-5.0.22/mysql-test/mysql-test-run.sh 2006-06-10 13:36:32.000000000 -0400
@@ -252,6 +252,16 @@
# 5.1 test run, even if different MTR_BUILD_THREAD is used. This means
# all port numbers might not be used in this version of the script.
#
+# hack to allow 32- and 64-bit tests to run concurrently on same build machine
+case `uname -m` in
+ ppc64 | s390x | x86_64)
+ MTR_BUILD_THREAD=7
+ ;;
+ *)
+ MTR_BUILD_THREAD=11
+ ;;
+esac
+
if [ -n "$MTR_BUILD_THREAD" ] ; then
MASTER_MYPORT=`expr $MTR_BUILD_THREAD '*' 10 + 10000`
MYSQL_MANAGER_PORT=`expr $MASTER_MYPORT + 2`
@@ -265,6 +275,14 @@
echo "Using NDBCLUSTER_PORT = $NDBCLUSTER_PORT"
fi
+#
+# If a previous build attempt failed it's possible that mysql daemons
+# launched by previous run of this script are still hanging around.
+# Kill 'em so we can re-use the ports.
+#
+ps auxww | grep "/sql/mysqld .*port=$MASTER_MYPORT" | awk '{print $2}' | xargs kill
+ps auxww | grep "/sql/mysqld .*port=$SLAVE_MYPORT" | awk '{print $2}' | xargs kill
+
NO_SLAVE=0
USER_TEST=
FAILED_CASES=