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.
master
Marius Bakke 2018-08-07 00:51:48 +02:00
parent 6af7c2b178
commit 3418e43bf5
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
3 changed files with 55 additions and 2 deletions

View File

@ -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 \

View File

@ -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~%"))

View File

@ -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)
{