1*01826a49SYabin Cui# ################################################################ 2*01826a49SYabin Cui# Copyright (c) Meta Platforms, Inc. and affiliates. 3*01826a49SYabin Cui# All rights reserved. 4*01826a49SYabin Cui# 5*01826a49SYabin Cui# This source code is licensed under both the BSD-style license (found in the 6*01826a49SYabin Cui# LICENSE file in the root directory of this source tree) and the GPLv2 (found 7*01826a49SYabin Cui# in the COPYING file in the root directory of this source tree). 8*01826a49SYabin Cui# You may select, at your option, one of the above-listed licenses. 9*01826a49SYabin Cui# ################################################################ 10*01826a49SYabin Cui 11*01826a49SYabin CuiLIBDIR =../lib 12*01826a49SYabin CuiCPPFLAGS += -I$(LIBDIR) 13*01826a49SYabin CuiLIB = $(LIBDIR)/libzstd.a 14*01826a49SYabin Cui 15*01826a49SYabin Cui 16*01826a49SYabin Cui.PHONY: default 17*01826a49SYabin Cuidefault: all 18*01826a49SYabin Cui 19*01826a49SYabin Cui.PHONY: all 20*01826a49SYabin Cuiall: simple_compression simple_decompression \ 21*01826a49SYabin Cui multiple_simple_compression\ 22*01826a49SYabin Cui dictionary_compression dictionary_decompression \ 23*01826a49SYabin Cui streaming_compression streaming_decompression \ 24*01826a49SYabin Cui multiple_streaming_compression streaming_memory_usage 25*01826a49SYabin Cui 26*01826a49SYabin Cui$(LIB) : 27*01826a49SYabin Cui $(MAKE) -C $(LIBDIR) libzstd.a 28*01826a49SYabin Cui 29*01826a49SYabin Cuisimple_compression.o: common.h 30*01826a49SYabin Cuisimple_compression : $(LIB) 31*01826a49SYabin Cui 32*01826a49SYabin Cuisimple_decompression.o: common.h 33*01826a49SYabin Cuisimple_decompression : $(LIB) 34*01826a49SYabin Cui 35*01826a49SYabin Cuimultiple_simple_compression.o: common.h 36*01826a49SYabin Cuimultiple_simple_compression : $(LIB) 37*01826a49SYabin Cui 38*01826a49SYabin Cuidictionary_compression.o: common.h 39*01826a49SYabin Cuidictionary_compression : $(LIB) 40*01826a49SYabin Cui 41*01826a49SYabin Cuidictionary_decompression.o: common.h 42*01826a49SYabin Cuidictionary_decompression : $(LIB) 43*01826a49SYabin Cui 44*01826a49SYabin Cuistreaming_compression.o: common.h 45*01826a49SYabin Cuistreaming_compression : $(LIB) 46*01826a49SYabin Cui 47*01826a49SYabin Cuimultiple_streaming_compression.o: common.h 48*01826a49SYabin Cuimultiple_streaming_compression : $(LIB) 49*01826a49SYabin Cui 50*01826a49SYabin Cuistreaming_decompression.o: common.h 51*01826a49SYabin Cuistreaming_decompression : $(LIB) 52*01826a49SYabin Cui 53*01826a49SYabin Cuistreaming_memory_usage.o: common.h 54*01826a49SYabin Cuistreaming_memory_usage : $(LIB) 55*01826a49SYabin Cui 56*01826a49SYabin Cui 57*01826a49SYabin Cui.PHONY:clean 58*01826a49SYabin Cuiclean: 59*01826a49SYabin Cui @$(RM) core *.o tmp* result* *.zst \ 60*01826a49SYabin Cui simple_compression simple_decompression \ 61*01826a49SYabin Cui multiple_simple_compression \ 62*01826a49SYabin Cui dictionary_compression dictionary_decompression \ 63*01826a49SYabin Cui streaming_compression streaming_decompression \ 64*01826a49SYabin Cui multiple_streaming_compression streaming_memory_usage 65*01826a49SYabin Cui @echo Cleaning completed 66*01826a49SYabin Cui 67*01826a49SYabin Cui.PHONY:test 68*01826a49SYabin Cuitest: all 69*01826a49SYabin Cui cp README.md tmp 70*01826a49SYabin Cui cp Makefile tmp2 71*01826a49SYabin Cui @echo -- Simple compression tests 72*01826a49SYabin Cui ./simple_compression tmp 73*01826a49SYabin Cui ./simple_decompression tmp.zst 74*01826a49SYabin Cui ./multiple_simple_compression *.c 75*01826a49SYabin Cui ./streaming_decompression tmp.zst > /dev/null 76*01826a49SYabin Cui @echo -- Streaming memory usage 77*01826a49SYabin Cui ./streaming_memory_usage 78*01826a49SYabin Cui @echo -- Streaming compression tests 79*01826a49SYabin Cui ./streaming_compression tmp 80*01826a49SYabin Cui ./streaming_decompression tmp.zst > /dev/null 81*01826a49SYabin Cui @echo -- Edge cases detection 82*01826a49SYabin Cui ! ./streaming_decompression tmp # invalid input, must fail 83*01826a49SYabin Cui ! ./simple_decompression tmp # invalid input, must fail 84*01826a49SYabin Cui touch tmpNull # create 0-size file 85*01826a49SYabin Cui ./simple_compression tmpNull 86*01826a49SYabin Cui ./simple_decompression tmpNull.zst # 0-size frame : must work 87*01826a49SYabin Cui @echo -- Multiple streaming tests 88*01826a49SYabin Cui ./multiple_streaming_compression *.c 89*01826a49SYabin Cui @echo -- Dictionary compression tests 90*01826a49SYabin Cui ./dictionary_compression tmp2 tmp README.md 91*01826a49SYabin Cui ./dictionary_decompression tmp2.zst tmp.zst README.md 92*01826a49SYabin Cui $(RM) tmp* *.zst 93*01826a49SYabin Cui @echo tests completed 94