fixed Travis tests
authorPrzemyslaw Skibinski <inikep@gmail.com>
Fri, 4 Nov 2016 15:56:01 +0000 (16:56 +0100)
committerPrzemyslaw Skibinski <inikep@gmail.com>
Fri, 4 Nov 2016 15:56:01 +0000 (16:56 +0100)
.travis.yml
contrib/cmake_unofficial/CMakeLists.txt
programs/bench.c

index 2a0eaab..ef8732c 100644 (file)
@@ -100,6 +100,8 @@ matrix:
           sources:
             - ubuntu-toolchain-r-test
           packages:
+            - libc6-dev-i386
+            - gcc-multilib
             - gcc-5
             - gcc-5-multilib
     - env: Ubu="14.04" PARAMS='-C tests test-lz4 CC=gcc-6' COMPILER=gcc-6
index 6edec98..899ce35 100644 (file)
@@ -27,7 +27,7 @@ ENDIF()
 set(LZ4_DIR ../../lib/)
 set(PRG_DIR ../../programs/)
 set(LZ4_SRCS_LIB ${LZ4_DIR}lz4.c ${LZ4_DIR}lz4hc.c ${LZ4_DIR}lz4.h ${LZ4_DIR}lz4hc.h ${LZ4_DIR}lz4frame.c ${LZ4_DIR}lz4frame.h ${LZ4_DIR}xxhash.c)
-set(LZ4_SRCS ${LZ4_DIR}lz4frame.c ${LZ4_DIR}xxhash.c ${PRG_DIR}bench.c ${PRG_DIR}lz4cli.c ${PRG_DIR}lz4io.c)
+set(LZ4_SRCS ${LZ4_DIR}lz4frame.c ${LZ4_DIR}xxhash.c ${PRG_DIR}bench.c ${PRG_DIR}lz4cli.c ${PRG_DIR}lz4io.c ${PRG_DIR}datagen.c)
 
 if(BUILD_TOOLS AND NOT (LINK_TOOLS_WITH_LIB AND BUILD_LIBS))
     set(LZ4_SRCS ${LZ4_SRCS} ${LZ4_SRCS_LIB})
index 51c07f5..33f5fcf 100644 (file)
@@ -353,22 +353,28 @@ static int BMK_benchMem(const void* srcBuffer, size_t srcSize,
 
 static size_t BMK_findMaxMem(U64 requiredMem)
 {
-    size_t const step = 64 MB;
-    BYTE* testmem = NULL;
+    size_t step = 64 MB;
+    BYTE* testmem=NULL;
 
     requiredMem = (((requiredMem >> 26) + 1) << 26);
-    requiredMem += step;
+    requiredMem += 2*step;
     if (requiredMem > maxMemory) requiredMem = maxMemory;
 
-    do {
-        testmem = (BYTE*)malloc((size_t)requiredMem);
-        requiredMem -= step;
-    } while (!testmem);
+    while (!testmem) {
+        if (requiredMem > step) requiredMem -= step;
+        else requiredMem >>= 1;
+        testmem = (BYTE*) malloc ((size_t)requiredMem);
+    }
+    free (testmem);
+
+    /* keep some space available */
+    if (requiredMem > step) requiredMem -= step;
+    else requiredMem >>= 1;
 
-    free(testmem);
-    return (size_t)(requiredMem);
+    return (size_t)requiredMem;
 }
 
+
 static void BMK_benchCLevel(void* srcBuffer, size_t benchedSize,
                             const char* displayName, int cLevel, int cLevelLast,
                             const size_t* fileSizes, unsigned nbFiles)