]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Added sanitize=undefine test
authorYann Collet <yann.collet.73@gmail.com>
Tue, 7 Jul 2015 08:36:49 +0000 (00:36 -0800)
committerYann Collet <yann.collet.73@gmail.com>
Tue, 7 Jul 2015 08:36:49 +0000 (00:36 -0800)
.travis.yml
Makefile
lib/zstd.c
programs/Makefile

index 62e818929e6cd02d6cc76809c14c4b6203a76f4b..463cb6efc7694484e6c33fc12d0ff8b590cec902 100644 (file)
@@ -15,6 +15,7 @@ env:
   - ZSTD_TRAVIS_CI_ENV=clangtest  
   - ZSTD_TRAVIS_CI_ENV=gpptest  
   - ZSTD_TRAVIS_CI_ENV=armtest  
+  - ZSTD_TRAVIS_CI_ENV=sanitize
 
 matrix:
   fast_finish: true
index 47d727cc9d72fc203d320043914fc929849a32a6..8049649d697f40434347442ad609607f44a960c0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -100,9 +100,9 @@ gpptest: clean
 
 armtest: clean
        cd $(ZSTDDIR); $(MAKE) -e all CC=arm-linux-gnueabi-gcc MOREFLAGS="-Werror"
-       cd $(PRGDIR); $(MAKE) -e CC=arm-linux-gnueabi-gcc CPPFLAGS="-Werror"
+       cd $(PRGDIR); $(MAKE) -e CC=arm-linux-gnueabi-gcc MOREFLAGS="-Werror"
 
 sanitize: clean
-       $(MAKE) test CC=clang CPPFLAGS="-g -fsanitize=undefined" FUZZER_TIME="-T1mn" NB_LOOPS=-i1
+       $(MAKE) test CC=clang MOREFLAGS="-g -fsanitize=undefined"
 
 endif
index 880bd8eac40a4ede449d59a8c2e7b9c581e2a607..32cb89298a47b16d30df04d6b641fe8397ae3548 100644 (file)
@@ -178,11 +178,13 @@ static unsigned ZSTD_isLittleEndian(void)
     return one.c[0];
 }
 
-static U16    ZSTD_read16(const void* p) { return *(const U16*)p; }
+static U16    ZSTD_read16(const void* p) { U16 r; memcpy(&r, p, sizeof(r)); return r; }
 
-static U32    ZSTD_read32(const void* p) { return *(const U32*)p; }
+static U32    ZSTD_read32(const void* p) { U32 r; memcpy(&r, p, sizeof(r)); return r; }
 
-static size_t ZSTD_read_ARCH(const void* p) { return *(const size_t*)p; }
+static U32    ZSTD_read64(const void* p) { U64 r; memcpy(&r, p, sizeof(r)); return r; }
+
+static size_t ZSTD_read_ARCH(const void* p) { size_t r; memcpy(&r, p, sizeof(r)); return r; }
 
 static void   ZSTD_copy4(void* dst, const void* src) { memcpy(dst, src, 4); }
 
@@ -911,7 +913,7 @@ static const U64 prime7bytes =    58295818150454627ULL;
 //static U32   ZSTD_hashPtr(const void* p) { return ( ((*(U64*)p & 0xFFFFFFFFFFFFFF) * prime7bytes) >> (64-HASH_LOG)); }
 
 //static U32   ZSTD_hashPtr(const void* p) { return ( (*(U64*)p * prime8bytes) >> (64-HASH_LOG)); }
-static U32   ZSTD_hashPtr(const void* p) { return ( (*(const U64*)p * prime7bytes) >> (56-HASH_LOG)) & HASH_MASK; }
+static U32   ZSTD_hashPtr(const void* p) { return ( (ZSTD_read64(p) * prime7bytes) >> (56-HASH_LOG)) & HASH_MASK; }
 //static U32   ZSTD_hashPtr(const void* p) { return ( (*(U64*)p * prime6bytes) >> (48-HASH_LOG)) & HASH_MASK; }
 //static U32   ZSTD_hashPtr(const void* p) { return ( (*(U64*)p * prime5bytes) >> (40-HASH_LOG)) & HASH_MASK; }
 //static U32   ZSTD_hashPtr(const void* p) { return ( (*(U32*)p * KNUTH) >> (32-HASH_LOG)); }
index a6304db55b74fc1d682cbc4b8470f4564b61695a..640446225b0345288a024ec7738dd1c7a2dd134a 100644 (file)
@@ -116,11 +116,11 @@ uninstall:
        [ -f $(DESTDIR)$(MANDIR)/unzstd.1 ] && rm -f $(DESTDIR)$(MANDIR)/unzstd.1
        @echo zstd programs successfully uninstalled
 
-test: test-zstd test-fullbench test-fuzzer test-mem
+test: test-zstd test-fullbench test-fuzzer
 
 test32: test-zstd32 test-fullbench32 test-fuzzer32
 
-test-all: test test32
+test-all: test test32 test-mem
 
 test-zstd: zstd datagen
        ./datagen          | ./zstd -v    | ./zstd -d > $(VOID)
@@ -151,7 +151,7 @@ test-mem: zstd datagen fuzzer fullbench
        valgrind --leak-check=yes --error-exitcode=1 ./datagen -g50M > /dev/null
        ./datagen -g16KB > tmp
        valgrind --leak-check=yes --error-exitcode=1 ./zstd -vf tmp /dev/null
-       ./datagen -g128MB > tmp
+       ./datagen -g64MB > tmp
        valgrind --leak-check=yes --error-exitcode=1 ./zstd -vf tmp /dev/null
        @rm tmp
        valgrind --leak-check=yes --error-exitcode=1 ./fuzzer -i128 -t1