Fixed #80 (reported by @luben)

Added : tests for ZSTD_LEGACY=disable build mode
extended ZSTD_LEGACY=disable to dll build
This commit is contained in:
Yann Collet 2015-11-30 11:53:11 +01:00
parent 305c325192
commit a85a8dd94a
5 changed files with 32 additions and 17 deletions

View File

@ -16,6 +16,7 @@ env:
- ZSTD_TRAVIS_CI_ENV=armtest - ZSTD_TRAVIS_CI_ENV=armtest
- ZSTD_TRAVIS_CI_ENV=test - ZSTD_TRAVIS_CI_ENV=test
- ZSTD_TRAVIS_CI_ENV="-C programs test32" - ZSTD_TRAVIS_CI_ENV="-C programs test32"
- ZSTD_TRAVIS_CI_ENV="-C programs test-zstd_nolegacy"
- ZSTD_TRAVIS_CI_ENV=usan - ZSTD_TRAVIS_CI_ENV=usan
- ZSTD_TRAVIS_CI_ENV=asan - ZSTD_TRAVIS_CI_ENV=asan
- ZSTD_TRAVIS_CI_ENV="-C programs valgrindTest" - ZSTD_TRAVIS_CI_ENV="-C programs valgrindTest"

5
NEWS
View File

@ -1,5 +1,8 @@
v0.4.1
Fixed : ZSTD_LEGACY=disable build mode (reported by Luben)
v0.4.0 v0.4.0
Command line utility is now compatible with high compression levels Command line utility compatible with high compression levels
Removed zstdhc => merged into zstd Removed zstdhc => merged into zstd
Added : ZBUFF API (see zstd_buffered.h) Added : ZBUFF API (see zstd_buffered.h)
Rolling buffer support Rolling buffer support

View File

@ -40,7 +40,7 @@ VERSION?= $(LIBVER)
DESTDIR?= DESTDIR?=
PREFIX ?= /usr/local PREFIX ?= /usr/local
CPPFLAGS= -I. -I./legacy -DZSTD_LEGACY_SUPPORT=1 CPPFLAGS= -I.
CFLAGS ?= -O3 CFLAGS ?= -O3
CFLAGS += -std=c99 -Wall -Wextra -Wundef -Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes CFLAGS += -std=c99 -Wall -Wextra -Wundef -Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes
FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(MOREFLAGS) FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(MOREFLAGS)
@ -48,6 +48,16 @@ FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(MOREFLAGS)
LIBDIR ?= $(PREFIX)/lib LIBDIR ?= $(PREFIX)/lib
INCLUDEDIR=$(PREFIX)/include INCLUDEDIR=$(PREFIX)/include
ZSTD_FILES := zstd_compress.c zstd_decompress.c fse.c huff0.c
ZSTD_LEGACY:= legacy/zstd_v01.c legacy/zstd_v02.c legacy/zstd_v03.c
ifeq ($(ZSTD_LEGACY),disable)
CPPFLAGS += -DZSTD_LEGACY_SUPPORT=0
else
ZSTD_FILES+= $(ZSTD_LEGACY)
CPPFLAGS += -I./legacy -DZSTD_LEGACY_SUPPORT=1
endif
# OS X linker doesn't support -soname, and use different extension # OS X linker doesn't support -soname, and use different extension
# see : https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html # see : https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html
@ -70,8 +80,7 @@ default: clean libzstd
all: clean libzstd all: clean libzstd
libzstd: zstd_compress.c zstd_decompress.c huff0.c fse.c \ libzstd: $(ZSTD_FILES)
legacy/zstd_v01.c legacy/zstd_v02.c legacy/zstd_v03.c
@echo compiling static library @echo compiling static library
@$(CC) $(FLAGS) -c $^ @$(CC) $(FLAGS) -c $^
@$(AR) rcs libzstd.a *.o @$(AR) rcs libzstd.a *.o

View File

@ -80,6 +80,9 @@ zstd32: $(ZSTD_FILES) $(ZSTDDIR)/zstd_buffered.c \
xxhash.c bench.c fileio.c zstdcli.c $(ZSTD_FILEIO_LEGACY) xxhash.c bench.c fileio.c zstdcli.c $(ZSTD_FILEIO_LEGACY)
$(CC) -m32 $(FLAGS) $^ -o $@$(EXT) $(CC) -m32 $(FLAGS) $^ -o $@$(EXT)
zstd_nolegacy :
$(MAKE) zstd ZSTD_LEGACY=disable
fullbench : $(ZSTD_FILES) \ fullbench : $(ZSTD_FILES) \
datagen.c fullbench.c datagen.c fullbench.c
$(CC) $(FLAGS) $^ -o $@$(EXT) $(CC) $(FLAGS) $^ -o $@$(EXT)
@ -230,6 +233,9 @@ test-zstd: zstd zstd-playTests
test-zstd32: ZSTD = ./zstd32 test-zstd32: ZSTD = ./zstd32
test-zstd32: zstd32 zstd-playTests test-zstd32: zstd32 zstd-playTests
test-zstd_nolegacy: ZSTD = ./zstd
test-zstd_nolegacy: zstd_nolegacy zstd-playTests
test-fullbench: fullbench datagen test-fullbench: fullbench datagen
./fullbench -i1 ./fullbench -i1
./fullbench -i1 -P0 ./fullbench -i1 -P0

View File

@ -382,21 +382,17 @@ unsigned long long FIO_decompressFilename(const char* output_filename, const cha
/* for each frame */ /* for each frame */
for ( ; ; ) for ( ; ; )
{ {
toRead = 0; size_t sizeCheck;
/* check magic number -> version */
toRead = 4;
sizeCheck = fread(inBuff, (size_t)1, toRead, finput);
if (sizeCheck==0) break; /* no more input */
if (sizeCheck != toRead) EXM_THROW(31, "Read error : cannot read header");
#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT==1) #if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT==1)
if (ZSTD_isLegacy(MEM_readLE32(inBuff)))
{ {
size_t sizeCheck; filesize += FIO_decompressLegacyFrame(foutput, finput, MEM_readLE32(inBuff));
/* check magic number -> version */ continue;
toRead = 4;
sizeCheck = fread(inBuff, (size_t)1, toRead, finput);
if (sizeCheck==0) break; /* no more input */
if (sizeCheck != toRead) EXM_THROW(31, "Read error : cannot read header");
if (ZSTD_isLegacy(MEM_readLE32(inBuff)))
{
filesize += FIO_decompressLegacyFrame(foutput, finput, MEM_readLE32(inBuff));
continue;
}
} }
#endif /* ZSTD_LEGACY_SUPPORT */ #endif /* ZSTD_LEGACY_SUPPORT */