From 4cceb1432a381b100d416e6451e63b278e626710 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 6 Nov 2018 17:08:46 +0100 Subject: gnu: libgit2: Work around test failures on 32-bit platforms. * gnu/packages/patches/libgit2-oom-test.patch: New file. * gnu/packages/version-control.scm (libgit2)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/patches/libgit2-oom-test.patch | 62 +++++++++++++++++++++++++++++ gnu/packages/version-control.scm | 3 +- 3 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libgit2-oom-test.patch diff --git a/gnu/local.mk b/gnu/local.mk index c2075f7d09..bfe93159dc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -876,6 +876,7 @@ dist_patch_DATA = \ %D%/packages/patches/libexif-CVE-2016-6328.patch \ %D%/packages/patches/libexif-CVE-2017-7544.patch \ %D%/packages/patches/libgit2-mtime-0.patch \ + %D%/packages/patches/libgit2-oom-test.patch \ %D%/packages/patches/libgdata-fix-tests.patch \ %D%/packages/patches/libgdata-glib-duplicate-tests.patch \ %D%/packages/patches/libgnome-encoding.patch \ diff --git a/gnu/packages/patches/libgit2-oom-test.patch b/gnu/packages/patches/libgit2-oom-test.patch new file mode 100644 index 0000000000..9667d1c0da --- /dev/null +++ b/gnu/packages/patches/libgit2-oom-test.patch @@ -0,0 +1,62 @@ +Fix a test failure on 32-bit platforms as reported +at . + +From 415a8ae9c9b6ac18f0524b6af8e58408b426457d Mon Sep 17 00:00:00 2001 +From: Edward Thomson +Date: Thu, 13 Sep 2018 13:27:07 +0100 +Subject: [PATCH] tests: don't run buf::oom on 32-bit systems + +On a 32-bit Linux systems, the value large enough to make malloc +guarantee a failure is also large enough that valgrind considers it +"fishy". Skip this test on those systems entirely. +--- + tests/buf/oom.c | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +diff --git a/tests/buf/oom.c b/tests/buf/oom.c +index 2741a8ddf2..ec3bad9979 100644 +--- a/tests/buf/oom.c ++++ b/tests/buf/oom.c +@@ -11,12 +11,8 @@ + */ + #if defined(GIT_ARCH_64) && defined(__linux__) + # define TOOBIG 0x0fffffffffffffff +-#elif defined(__linux__) +-# define TOOBIG 0x0fffffff + #elif defined(GIT_ARCH_64) + # define TOOBIG 0xffffffffffffff00 +-#else +-# define TOOBIG 0xffffff00 + #endif + + /** +@@ -25,13 +21,18 @@ + * will fail. And because the git_buf_grow() wrapper always + * sets mark_oom, the code in git_buf_try_grow() will free + * the internal buffer and set it to git_buf__oom. +- * ++ * + * We initialized the internal buffer to (the static variable) + * git_buf__initbuf. The purpose of this test is to make sure + * that we don't try to free the static buffer. ++ * ++ * Skip this test entirely on 32-bit platforms; a buffer large enough ++ * to guarantee malloc failures is so large that valgrind considers ++ * it likely to be an error. + */ + void test_buf_oom__grow(void) + { ++#ifdef GIT_ARCH_64 + git_buf buf = GIT_BUF_INIT; + + git_buf_clear(&buf); +@@ -40,6 +41,9 @@ void test_buf_oom__grow(void) + cl_assert(git_buf_oom(&buf)); + + git_buf_free(&buf); ++#else ++ cl_skip(); ++#endif + } + + void test_buf_oom__grow_by(void) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index b9a2ff2ea0..04d28044dd 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -469,7 +469,8 @@ everything from small to very large projects with speed and efficiency.") (sha256 (base32 "15kp4sq72kh762bm7dgspyrk0a6siarvll3k7nrhs0xy77idf80g")) - (patches (search-patches "libgit2-mtime-0.patch")) + (patches (search-patches "libgit2-mtime-0.patch" + "libgit2-oom-test.patch")) ;; Remove bundled software. (snippet '(begin -- cgit v1.2.3