| #!/bin/bash | |
| ############################################################################### | |
| # | |
| # Script to check output of some translated messages | |
| # | |
| # This should be useful for translators to check that the translated strings | |
| # look good. This doesn't make xz print all possible strings, but it should | |
| # cover most of the cases where mistakes can easily happen. | |
| # | |
| # Give the path and filename of the xz executable as an argument. If no | |
| # arguments are given, this script uses ../src/xz/xz (relative to the | |
| # location of this script). | |
| # | |
| # You may want to pipe the output of this script to less -S to view the | |
| # tables printed by xz --list on a 80-column terminal. On the other hand, | |
| # viewing the other messages may be better without -S. | |
| # | |
| ############################################################################### | |
| # | |
| # Author: Lasse Collin | |
| # | |
| # This file has been put into the public domain. | |
| # You can do whatever you want with this file. | |
| # | |
| ############################################################################### | |
| set -e | |
| # If an argument was given, use it to set the location of the xz executable. | |
| unset XZ | |
| if [ -n "$1" ]; then | |
| XZ=$1 | |
| [ "x${XZ:0:1}" != "x/" ] && XZ="$PWD/$XZ" | |
| fi | |
| # Locate top_srcdir and go there. | |
| top_srcdir="$(cd -- "$(dirname -- "$0")" && cd .. && pwd)" | |
| cd -- "$top_srcdir" | |
| # If XZ wasn't already set, use the default location. | |
| XZ=${XZ-"$PWD/src/xz/xz"} | |
| if [ "$(type -t "$XZ" || true)" != "file" ]; then | |
| echo "Give the location of the xz executable as an argument" \ | |
| "to this script." | |
| exit 1 | |
| fi | |
| XZ=$(type -p -- "$XZ") | |
| # Print the xz version and locale information. | |
| echo "$XZ --version" | |
| "$XZ" --version | |
| echo | |
| if [ -d .git ] && type git > /dev/null 2>&1; then | |
| echo "Source code version in $PWD:" | |
| git describe --abbrev=4 | |
| fi | |
| echo | |
| locale | |
| echo | |
| # Make the test files directory the current directory. | |
| cd tests/files | |
| # Put xz in PATH so that argv[0] stays short. | |
| PATH=${XZ%/*}:$PATH | |
| # Some of the test commands are error messages and thus don't | |
| # return successfully. | |
| set +e | |
| for CMD in \ | |
| "xz --foobarbaz" \ | |
| "xz --memlimit=123abcd" \ | |
| "xz --memlimit=40MiB -6 /dev/null" \ | |
| "xz --memlimit=0 --info-memory" \ | |
| "xz --memlimit-compress=1234MiB --memlimit-decompress=50MiB --info-memory" \ | |
| "xz --verbose --verbose /dev/null | cat" \ | |
| "xz --lzma2=foobarbaz" \ | |
| "xz --lzma2=foobarbaz=abcd" \ | |
| "xz --lzma2=mf=abcd" \ | |
| "xz --lzma2=preset=foobarbaz" \ | |
| "xz --lzma2=mf=bt4,nice=2" \ | |
| "xz --lzma2=nice=50000" \ | |
| "xz --help" \ | |
| "xz --long-help" \ | |
| "xz --list good-*lzma2*" \ | |
| "xz --list good-1-check*" \ | |
| "xz --list --verbose good-*lzma2*" \ | |
| "xz --list --verbose good-1-check*" \ | |
| "xz --list --verbose --verbose good-*lzma2*" \ | |
| "xz --list --verbose --verbose good-1-check*" \ | |
| "xz --list --verbose --verbose unsupported-check.xz" | |
| do | |
| echo "-----------------------------------------------------------" | |
| echo | |
| echo "\$ $CMD" | |
| eval "$CMD" | |
| echo | |
| done 2>&1 |