1*27162e4eSAndroid Build Coastguard Worker#!/bin/sh 2*27162e4eSAndroid Build Coastguard Worker 3*27162e4eSAndroid Build Coastguard WorkerFPREFIX="tmp-dict" 4*27162e4eSAndroid Build Coastguard Worker 5*27162e4eSAndroid Build Coastguard Workerset -e 6*27162e4eSAndroid Build Coastguard Worker 7*27162e4eSAndroid Build Coastguard Workerremove () { 8*27162e4eSAndroid Build Coastguard Worker rm $FPREFIX* 9*27162e4eSAndroid Build Coastguard Worker} 10*27162e4eSAndroid Build Coastguard Worker 11*27162e4eSAndroid Build Coastguard Workertrap remove EXIT 12*27162e4eSAndroid Build Coastguard Worker 13*27162e4eSAndroid Build Coastguard Workerset -x 14*27162e4eSAndroid Build Coastguard Worker 15*27162e4eSAndroid Build Coastguard Workerdatagen -g16KB > $FPREFIX 16*27162e4eSAndroid Build Coastguard Workerdatagen -g32KB > $FPREFIX-sample-32k 17*27162e4eSAndroid Build Coastguard Worker< $FPREFIX-sample-32k lz4 -D $FPREFIX | lz4 -dD $FPREFIX | diff - $FPREFIX-sample-32k 18*27162e4eSAndroid Build Coastguard Workerdatagen -g16MB > $FPREFIX-sample-16m 19*27162e4eSAndroid Build Coastguard Workerlz4 -v -B5 $FPREFIX-sample-16m -D $FPREFIX -c | lz4 -d -D $FPREFIX | diff - $FPREFIX-sample-16m 20*27162e4eSAndroid Build Coastguard Worker 21*27162e4eSAndroid Build Coastguard Worker# Check dictionary compression efficiency 22*27162e4eSAndroid Build Coastguard Workersize_dict=$( lz4 -3 -B4 $FPREFIX-sample-16m -D $FPREFIX -c | wc -c) 23*27162e4eSAndroid Build Coastguard Workersize_nodict=$( lz4 -3 -B4 $FPREFIX-sample-16m -c | wc -c) 24*27162e4eSAndroid Build Coastguard Workerif [ "$size_dict" -lt "$size_nodict" ]; then 25*27162e4eSAndroid Build Coastguard Worker echo "Test Passed: dictionary is effective." 26*27162e4eSAndroid Build Coastguard Workerelse 27*27162e4eSAndroid Build Coastguard Worker echo "Test Failed: dictionary wasn't effective." 28*27162e4eSAndroid Build Coastguard Worker exit 1 29*27162e4eSAndroid Build Coastguard Workerfi 30*27162e4eSAndroid Build Coastguard Worker 31*27162e4eSAndroid Build Coastguard Workertouch $FPREFIX-sample-0 32*27162e4eSAndroid Build Coastguard Worker< $FPREFIX-sample-0 lz4 -D $FPREFIX | lz4 -dD $FPREFIX | diff - $FPREFIX-sample-0 33*27162e4eSAndroid Build Coastguard Worker 34*27162e4eSAndroid Build Coastguard Worker< $FPREFIX-sample-32k lz4 -D $FPREFIX-sample-0 | lz4 -dD $FPREFIX-sample-0 | diff - $FPREFIX-sample-32k 35*27162e4eSAndroid Build Coastguard Worker< $FPREFIX-sample-0 lz4 -D $FPREFIX-sample-0 | lz4 -dD $FPREFIX-sample-0 | diff - $FPREFIX-sample-0 36*27162e4eSAndroid Build Coastguard Workerlz4 -bi0 -D $FPREFIX $FPREFIX-sample-32k $FPREFIX-sample-32k 37*27162e4eSAndroid Build Coastguard Worker 38*27162e4eSAndroid Build Coastguard Workerecho "---- test lz4 dictionary loading ----" 39*27162e4eSAndroid Build Coastguard Workerdatagen -g128KB > $FPREFIX-data-128KB 40*27162e4eSAndroid Build Coastguard Workerset -e; \ 41*27162e4eSAndroid Build Coastguard Workerfor l in 0 1 4 128 32767 32768 32769 65535 65536 65537 98303 98304 98305 131071 131072 131073; do \ 42*27162e4eSAndroid Build Coastguard Worker datagen -g$$l > $FPREFIX-$$l; \ 43*27162e4eSAndroid Build Coastguard Worker dd if=$FPREFIX-$$l of=$FPREFIX-$$l-tail bs=1 count=65536 skip=$((l > 65536 ? l - 65536 : 0)); \ 44*27162e4eSAndroid Build Coastguard Worker < $FPREFIX-$$l lz4 -D stdin $FPREFIX-data-128KB -c | lz4 -dD $FPREFIX-$$l-tail | diff - $FPREFIX-data-128KB; \ 45*27162e4eSAndroid Build Coastguard Worker < $FPREFIX-$$l-tail lz4 -D stdin $FPREFIX-data-128KB -c | lz4 -dD $FPREFIX-$$l | diff - $FPREFIX-data-128KB; \ 46*27162e4eSAndroid Build Coastguard Workerdone 47