[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/02: gnu: mariadb: Adjust to test failures on Hydra.
From: |
Marius Bakke |
Subject: |
02/02: gnu: mariadb: Adjust to test failures on Hydra. |
Date: |
Mon, 6 Aug 2018 18:57:35 -0400 (EDT) |
mbakke pushed a commit to branch staging
in repository guix.
commit 3418e43bf55033c15b997a46a56c9efd69c0624e
Author: Marius Bakke <address@hidden>
Date: Tue Aug 7 00:51:48 2018 +0200
gnu: mariadb: Adjust to test failures on Hydra.
* gnu/packages/patches/mariadb-client-test-32bit.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/databases.scm (mariadb)[source](patches): Add it.
[arguments]: Increase retry count and test timeout. Disable test
main.myisampack.
---
gnu/local.mk | 1 +
gnu/packages/databases.scm | 19 +++++++++--
.../patches/mariadb-client-test-32bit.patch | 37 ++++++++++++++++++++++
3 files changed, 55 insertions(+), 2 deletions(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index 4ed341d..adae0f3 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 4c9382c..48c75bb 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 0000000..02017e3
--- /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 <address@hidden>
+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)
+ {