aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/databases.scm19
-rw-r--r--gnu/packages/patches/mariadb-client-test-32bit.patch37
3 files changed, 55 insertions, 2 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 4ed341df8f..adae0f3d23 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -930,6 +930,7 @@ dist_patch_DATA = \
%D%/packages/patches/make-glibc-compat.patch \
%D%/packages/patches/make-impure-dirs.patch \
%D%/packages/patches/mariadb-gcc-ice.patch \
+ %D%/packages/patches/mariadb-client-test-32bit.patch \
%D%/packages/patches/mars-install.patch \
%D%/packages/patches/mars-sfml-2.3.patch \
%D%/packages/patches/maxima-defsystem-mkdir.patch \
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 4c9382ce6d..48c75bbba8 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -636,7 +636,8 @@ Language.")
(sha256
(base32
"0j2mdpyvj41vkq2rwrzky88b7170hzz6gy2vb2bc1447s2gp3q67"))
- (patches (search-patches "mariadb-gcc-ice.patch"))
+ (patches (search-patches "mariadb-gcc-ice.patch"
+ "mariadb-client-test-32bit.patch"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -713,7 +714,18 @@ Language.")
;; See <https://jira.mariadb.org/browse/MDEV-7761>.
"main.join_cache"
"main.explain_non_select"
- "roles.acl_statistics"))
+ "roles.acl_statistics"
+
+ ;; FIXME: This test fails on i686:
+ ;; -myisampack: Can't create/write to file (Errcode: 17 "File exists")
+ ;; +myisampack: Can't create/write to file (Errcode: 17 "File exists)
+ ;; When running "myisampack --join=foo/t3 foo/t1 foo/t2"
+ ;; (all three tables must exist and be identical)
+ ;; in a loop it produces the same error around 1/240 times.
+ ;; montywi on #maria suggested removing the real_end check in
+ ;; "strings/my_vsnprintf.c" on line 503, yet it still does not
+ ;; reach the ending quote occasionally. Disable it for now.
+ "main.myisampack"))
;; This file contains a list of known-flaky tests for this
;; release. Append our own items.
@@ -745,6 +757,9 @@ Language.")
(if tests?
(with-directory-excursion "mysql-test"
(invoke "./mtr" "--verbose"
+ "--retry=3"
+ "--testcase-timeout=30"
+ "--suite-timeout=540"
"--parallel" (number->string (parallel-job-count))
"--skip-test-list=unstable-tests"))
(format #t "test suite not run~%"))
diff --git a/gnu/packages/patches/mariadb-client-test-32bit.patch b/gnu/packages/patches/mariadb-client-test-32bit.patch
new file mode 100644
index 0000000000..02017e324d
--- /dev/null
+++ b/gnu/packages/patches/mariadb-client-test-32bit.patch
@@ -0,0 +1,37 @@
+From 93efa48a7b972fc463406603574a4d508eefe792 Mon Sep 17 00:00:00 2001
+From: Sergei Golubchik <serg@mariadb.org>
+Date: Sun, 13 May 2018 18:50:21 +0200
+Subject: [PATCH] fix failing main.mysql_client_test test on 32bit
+
+in `ulonglong=ulong*uint` multiplication
+is done in ulong, wrapping around on 32bit.
+
+This became visible after C/C changed the
+default charset to utf8, thus changing
+mbmaxlem from 1 to 3.
+---
+ tests/mysql_client_fw.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/mysql_client_fw.c b/tests/mysql_client_fw.c
+index f69eb28a2871..4d036887629a 100644
+--- a/tests/mysql_client_fw.c
++++ b/tests/mysql_client_fw.c
+@@ -768,7 +768,7 @@ static void do_verify_prepare_field(MYSQL_RES *result,
+ {
+ MYSQL_FIELD *field;
+ CHARSET_INFO *cs;
+- ulonglong expected_field_length;
++ ulonglong expected_field_length= length;
+
+ if (!(field= mysql_fetch_field_direct(result, no)))
+ {
+@@ -777,7 +777,7 @@ static void do_verify_prepare_field(MYSQL_RES *result,
+ }
+ cs= get_charset(field->charsetnr, 0);
+ DIE_UNLESS(cs);
+- if ((expected_field_length= length * cs->mbmaxlen) > UINT_MAX32)
++ if ((expected_field_length*= cs->mbmaxlen) > UINT_MAX32)
+ expected_field_length= UINT_MAX32;
+ if (!opt_silent)
+ {