1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
#!/bin/bash
#
# Copyright (c) 2013, Simon Howard
#
# Permission to use, copy, modify, and/or distribute this software
# for any purpose with or without fee is hereby granted, provided
# that the above copyright notice and this permission notice appear
# in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
# AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
#
# Test script that tests the print functionality functionality.
#
. test_common.sh
# Run the program under test, comparing the output to the contents
# of the specified file.
lha_check_output() {
#echo "lha_check_output: $@"
local expected_output="$1"
shift
test_lha "$@" >"$wd/output.txt" 2>&1
if $GATHER && [ ! -e "$expected_output" ]; then
$LHA_TOOL "$@" > $expected_output
fi
if ! diff -u "$expected_output" "$wd/output.txt"; then
fail "Output not as expected for command:" \
" lha $*" >&2
fi
rm -f "$wd/output.txt"
}
test_archive() {
local archive_file="$1"
shift
# Normal outputs for test_archive just look like:
# output/lha_foo/filename.lzh-p.txt - but for special cases
# with particular filenames we want to be able to include
# a special test name in the filename, eg.
# output/lha_foo/filename.lzh-p-testname.txt
local suffix=""
if [ $# -gt 0 ]; then
suffix="-$1"
shift
fi
# Invoke test_lha to do the printing: test in quiet mode
# as well as normal mode, and -i (ignore case) mode.
lha_check_output "output/$archive_file$suffix-p.txt" \
p "archives/$archive_file" "$@"
lha_check_output "output/$archive_file$suffix-pq.txt" \
pq "archives/$archive_file" "$@"
lha_check_output "output/$archive_file$suffix-pi.txt" \
pi "archives/$archive_file" "$@"
}
# Directories should be ignored:
test_archive lha_unix114i/h1_subdir.lzh
# Archive containing multiple files:
test_archive regression/multiple.lzh
# Test printing of a specific file:
test_archive regression/multiple.lzh onefile file3.txt
# Test printing with wildcards:
test_archive regression/multiple.lzh wildcard "file2-*"
# Archive containing file with bad characters:
test_archive regression/badterm.lzh
# Symlinks are printed:
test_archive lha_unix114i/h1_symlink.lzh
|