1#!/bin/sh 2 3test -f "$bindir/.config" && . "$bindir/.config" 4 5FAILCOUNT=0 6 7bb="busybox " 8 9unset LC_ALL 10unset LC_MESSAGES 11unset LANG 12unset LANGUAGE 13 14hello_Z() { 15 # Compressed "HELLO\n" 16 $ECHO -ne "\x1f\x9d\x90\x48\x8a\x30\x61\xf2\x44\x01" 17} 18 19hello_gz() { 20 # Gzipped "HELLO\n" 21 #_________________________ vvv vvv vvv vvv - mtime 22 $ECHO -ne "\x1f\x8b\x08\x00\x85\x1d\xef\x45\x02\x03\xf3\x70\xf5\xf1\xf1\xe7" 23 $ECHO -ne "\x02\x00\x6e\xd7\xac\xfd\x06\x00\x00\x00" 24} 25 26hello_bz2() { 27 # Bzipped "HELLO\n" 28 $ECHO -ne "\x42\x5a\x68\x39\x31\x41\x59\x26\x53\x59\x5b\xb8\xe8\xa3\x00\x00" 29 $ECHO -ne "\x01\x44\x00\x00\x10\x02\x44\xa0\x00\x30\xcd\x00\xc3\x46\x29\x97" 30 $ECHO -ne "\x17\x72\x45\x38\x50\x90\x5b\xb8\xe8\xa3" 31} 32 33test x"$CONFIG_ZCAT" = x"y" && \ 34for ext in \ 35 `test x"$CONFIG_FEATURE_SEAMLESS_GZ" = x"y" && echo gz` \ 36 `test x"$CONFIG_FEATURE_SEAMLESS_BZ2" = x"y" && echo bz2` \ 37 `test x"$CONFIG_FEATURE_SEAMLESS_Z" = x"y" && echo Z` 38do 39 prep() { 40 rm -f t1.$ext t2.$ext t_actual 41 hello_$ext >t1.$ext 42 hello_$ext >t2.$ext 43 } 44 45 check() { 46 eval $2 >t_actual 2>&1 47 if $ECHO -ne "$expected" | cmp - t_actual; then 48 echo "PASS: $1" 49 else 50 echo "FAIL: $1" 51 #echo "t_actual:" 52 #cat t_actual 53 FAILCOUNT=$((FAILCOUNT + 1)) 54 fi 55 } 56 57 mkdir testdir 2>/dev/null 58 ( 59 cd testdir || { echo "cannot cd testdir!"; exit 1; } 60 expected="HELLO\nok\n" 61 prep 62 check "zcat: dont delete $ext src" "${bb}zcat t2.$ext; test -f t2.$ext && echo ok" 63 exit $FAILCOUNT 64 ) 65 FAILCOUNT=$? 66 rm -rf testdir 67done 68 69 70# Copyright 2011 by Denys Vlasenko 71# Licensed under GPLv2, see file LICENSE in this source tree. 72 73. ./testing.sh 74 75# testing "test name" "command" "expected result" "file input" "stdin" 76 77## bzip algorithm 78 79# "input" file is bzipped file with "a\n" data 80testing "bzcat can print many files" \ 81"bzcat input input; echo \$?" \ 82"\ 83a 84a 850 86" "\ 87\x42\x5a\x68\x39\x31\x41\x59\x26\x53\x59\x63\x3e\xd6\xe2\x00\x00\ 88\x00\xc1\x00\x00\x10\x20\x00\x20\x00\x21\x00\x82\xb1\x77\x24\x53\ 89\x85\x09\x06\x33\xed\x6e\x20\ 90" "" 91 92# "input" file is bzipped zero byte file 93testing "bzcat can handle compressed zero-length bzip2 files" \ 94"bzcat input input; echo \$?" \ 95"0\n" \ 96"\x42\x5a\x68\x39\x17\x72\x45\x38\x50\x90\x00\x00\x00\x00" "" 97 98## compress algorithm 99 100# "input" file is compressed (.Z) file with "a\n" data 101test x"$CONFIG_ZCAT" = x"y" && \ 102test x"$CONFIG_FEATURE_SEAMLESS_Z" = x"y" && \ 103testing "zcat can print many files" \ 104"zcat input input; echo \$?" \ 105"\ 106a 107a 1080 109" "\ 110\x1f\x9d\x90\x61\x14\x00\ 111" "" 112 113# "input" file is compressed (.Z) zero byte file 114test x"$CONFIG_ZCAT" = x"y" && \ 115test x"$CONFIG_FEATURE_SEAMLESS_Z" = x"y" && \ 116testing "zcat can handle compressed zero-length (.Z) files" \ 117"zcat input input; echo \$?" \ 118"0\n" \ 119"\x1f\x9d\x90\x00" "" 120 121 122 123exit $((FAILCOUNT <= 255 ? FAILCOUNT : 255)) 124