Added sanitize=undefine test
This commit is contained in:
parent
17867ced03
commit
674d91b3da
@ -15,6 +15,7 @@ env:
|
|||||||
- ZSTD_TRAVIS_CI_ENV=clangtest
|
- ZSTD_TRAVIS_CI_ENV=clangtest
|
||||||
- ZSTD_TRAVIS_CI_ENV=gpptest
|
- ZSTD_TRAVIS_CI_ENV=gpptest
|
||||||
- ZSTD_TRAVIS_CI_ENV=armtest
|
- ZSTD_TRAVIS_CI_ENV=armtest
|
||||||
|
- ZSTD_TRAVIS_CI_ENV=sanitize
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
|
4
Makefile
4
Makefile
@ -100,9 +100,9 @@ gpptest: clean
|
|||||||
|
|
||||||
armtest: clean
|
armtest: clean
|
||||||
cd $(ZSTDDIR); $(MAKE) -e all CC=arm-linux-gnueabi-gcc MOREFLAGS="-Werror"
|
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
|
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
|
endif
|
||||||
|
10
lib/zstd.c
10
lib/zstd.c
@ -178,11 +178,13 @@ static unsigned ZSTD_isLittleEndian(void)
|
|||||||
return one.c[0];
|
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); }
|
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 & 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 ( (*(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 * 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 ( (*(U64*)p * prime5bytes) >> (40-HASH_LOG)) & HASH_MASK; }
|
||||||
//static U32 ZSTD_hashPtr(const void* p) { return ( (*(U32*)p * KNUTH) >> (32-HASH_LOG)); }
|
//static U32 ZSTD_hashPtr(const void* p) { return ( (*(U32*)p * KNUTH) >> (32-HASH_LOG)); }
|
||||||
|
@ -116,11 +116,11 @@ uninstall:
|
|||||||
[ -f $(DESTDIR)$(MANDIR)/unzstd.1 ] && rm -f $(DESTDIR)$(MANDIR)/unzstd.1
|
[ -f $(DESTDIR)$(MANDIR)/unzstd.1 ] && rm -f $(DESTDIR)$(MANDIR)/unzstd.1
|
||||||
@echo zstd programs successfully uninstalled
|
@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
|
test32: test-zstd32 test-fullbench32 test-fuzzer32
|
||||||
|
|
||||||
test-all: test test32
|
test-all: test test32 test-mem
|
||||||
|
|
||||||
test-zstd: zstd datagen
|
test-zstd: zstd datagen
|
||||||
./datagen | ./zstd -v | ./zstd -d > $(VOID)
|
./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
|
valgrind --leak-check=yes --error-exitcode=1 ./datagen -g50M > /dev/null
|
||||||
./datagen -g16KB > tmp
|
./datagen -g16KB > tmp
|
||||||
valgrind --leak-check=yes --error-exitcode=1 ./zstd -vf tmp /dev/null
|
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
|
valgrind --leak-check=yes --error-exitcode=1 ./zstd -vf tmp /dev/null
|
||||||
@rm tmp
|
@rm tmp
|
||||||
valgrind --leak-check=yes --error-exitcode=1 ./fuzzer -i128 -t1
|
valgrind --leak-check=yes --error-exitcode=1 ./fuzzer -i128 -t1
|
||||||
|
Loading…
Reference in New Issue
Block a user