123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #!/bin/bash
- [ -f testing.sh ] && . testing.sh
- #testing "name" "command" "result" "infile" "stdin"
- # Decompress files.
- # On success, the input files are removed and replaced by new
- # files without the .gz suffix.
- echo -n "foo " | gzip > f1.gz
- echo "bar" | gzip > f2.gz
- testing "with input files" "gunzip f1.gz f2.gz &&
- ! test -f f1.gz && ! test -f f2.gz &&
- test -f f1 && test -f f2 &&
- cat f1 f2" "foo bar\n" "" ""
- rm -f f1 f2 f1.gz f2.gz
- # With no files, decompresses stdin to stdout.
- echo "hello world" | gzip > f.gz
- testing "no files (stdin to stdout)" "cat f.gz | gunzip > f &&
- test -f f.gz && cat f" "hello world\n" "" ""
- rm -f f f.gz
- # test FEXTRA support
- echo "1f8b08040000000000ff04000000ffff4bcbcfe70200a865327e04000000" | xxd -r -p > f1.gz
- testing "FEXTRA flag skipped properly" "gunzip f1.gz &&
- ! test -f f1.gz && test -f f1 &&
- cat f1" "foo\n" "" ""
- rm -f f1 f1.gz
- # -c Output to stdout
- echo -n "foo " | gzip > f1.gz
- echo "bar" | gzip > f2.gz
- testing "with input files and -c" "gunzip -c f1.gz f2.gz > out &&
- test -f f1.gz && test -f f2.gz &&
- ! test -f f1 && ! test -f f2 &&
- cat out" "foo bar\n" "" ""
- rm -f f1.gz f2.gz out
- # TODO: how to test "gunzip -f"?
- # -k Keep input files (don't remove)
- echo "hello world" | gzip > f1.gz
- testing "-k" "gunzip -k f1.gz && cat f1 && zcat f1.gz" \
- "hello world\nhello world\n" "" ""
- rm -f f1 f1.gz
- # Test that gunzip preserves permissions and times.
- export TZ=UTC
- echo "hello world" | gzip > f1.gz
- chmod 0411 f1.gz
- touch -a -t 197801020304 f1.gz
- touch -m -t 198704030201 f1.gz
- testing "permissions/times preservation" \
- "gunzip -k f1.gz && stat -c '%a %X %Y' f1 && stat -c '%a %Y' f1.gz" \
- "411 252558240 544413660\n411 544413660\n" "" ""
- rm -f f1 f1.gz
|