* 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.
		
			
				
	
	
		
			62 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Fix a test failure on 32-bit platforms as reported
 | |
| at <https://github.com/libgit2/libgit2/issues/4868>.
 | |
| 
 | |
| From 415a8ae9c9b6ac18f0524b6af8e58408b426457d Mon Sep 17 00:00:00 2001
 | |
| From: Edward Thomson <ethomson@edwardthomson.com>
 | |
| 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)
 |