From 16b5a7baf67169ff12a9a2de9c2853c6f921317c 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. [rebased for v0.26.8] --- 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 16a03cc1a..86f5e7239 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) -- 2.19.1