#!/bin/sh

FAILCOUNT=0

bb="busybox "

unset LC_ALL
unset LC_MESSAGES
unset LANG
unset LANGUAGE

hello_Z() {
    # Compressed "HELLO\n"
    $ECHO -ne "\x1f\x9d\x90\x48\x8a\x30\x61\xf2\x44\x01"
}

hello_gz() {
    # Gzipped "HELLO\n"
    #_________________________ vvv vvv vvv vvv - mtime
    $ECHO -ne "\x1f\x8b\x08\x00\x85\x1d\xef\x45\x02\x03\xf3\x70\xf5\xf1\xf1\xe7"
    $ECHO -ne "\x02\x00\x6e\xd7\xac\xfd\x06\x00\x00\x00"
}

hello_bz2() {
    # Bzipped "HELLO\n"
    $ECHO -ne "\x42\x5a\x68\x39\x31\x41\x59\x26\x53\x59\x5b\xb8\xe8\xa3\x00\x00"
    $ECHO -ne "\x01\x44\x00\x00\x10\x02\x44\xa0\x00\x30\xcd\x00\xc3\x46\x29\x97"
    $ECHO -ne "\x17\x72\x45\x38\x50\x90\x5b\xb8\xe8\xa3"
}

for ext in gz bz2 Z
do
    prep() {
	rm -f t1.$ext t2.$ext t_actual
	hello_$ext >t1.$ext
	hello_$ext >t2.$ext
    }

    check() {
	eval $2 >t_actual 2>&1
	if $ECHO -ne "$expected" | cmp - t_actual; then
	    echo "PASS: $1"
	else
	    echo "FAIL: $1"
	    FAILCOUNT=$((FAILCOUNT + 1))
	fi
    }

    mkdir testdir 2>/dev/null
    (
    cd testdir || { echo "cannot cd testdir!"; exit 1; }

    expected="HELLO\nok\n"
    prep; check "zcat: dont delete $ext src" "${bb}zcat t2.$ext; test -f t2.$ext && echo ok"

    )
    rm -rf testdir
done


# Copyright 2011 by Denys Vlasenko
# Licensed under GPLv2, see file LICENSE in this source tree.

. ./testing.sh

# testing "test name" "command" "expected result" "file input" "stdin"

## bzip algorithm

# "input" file is bzipped file with "a\n" data
testing "bzcat can print many files" \
"$ECHO -ne '$hexdump' | bzcat input input; echo \$?" \
"\
a
a
0
" "\
\x42\x5a\x68\x39\x31\x41\x59\x26\x53\x59\x63\x3e\xd6\xe2\x00\x00\
\x00\xc1\x00\x00\x10\x20\x00\x20\x00\x21\x00\x82\xb1\x77\x24\x53\
\x85\x09\x06\x33\xed\x6e\x20\
" ""

# "input" file is bzipped zero byte file
testing "bzcat can handle compressed zero-length bzip2 files" \
"$ECHO -ne '$hexdump' | bzcat input input; echo \$?" \
"0\n" \
"\x42\x5a\x68\x39\x17\x72\x45\x38\x50\x90\x00\x00\x00\x00" ""

## compress algorithm

# "input" file is compressed (.Z) file with "a\n" data
testing "zcat can print many files" \
"$ECHO -ne '$hexdump' | zcat input input; echo \$?" \
"\
a
a
0
" "\
\x1f\x9d\x90\x61\x14\x00\
" ""

# "input" file is compressed (.Z) zero byte file
testing "zcat can handle compressed zero-length compressed (.Z) files" \
"$ECHO -ne '$hexdump' | zcat input input; echo \$?" \
"0\n" \
"\x1f\x9d\x90\x00" ""



exit $((FAILCOUNT <= 255 ? FAILCOUNT : 255))
