pacman/test/scripts/human_to_size_test.sh
Eli Schwartz 860e4c4943 Remove all modelines from the project
Many of these are pointless (e.g. there is no need to explicitly turn on
spellchecking and language dictionaries for the manpages by default).

The only useful modelines are the ones enforcing the project coding
standards for indentation style (and "maybe" filetype/syntax, but
everything except the asciidoc manpages and makepkg.conf is already
autodetected), and indent style can be applied more easily with
.editorconfig

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2018-05-14 09:59:15 +10:00

55 lines
977 B
Bash
Executable file

#!/bin/bash
source "$(dirname "$0")"/../tap.sh || exit 1
# source the library function
lib=${1:-${PMTEST_SCRIPTLIB_DIR}human_to_size.sh}
if [[ -z $lib || ! -f $lib ]]; then
tap_bail "human_to_size library (%s) could not be located" "${lib}"
exit 1
fi
. "$lib"
if ! type -t human_to_size &>/dev/null; then
tap_bail "human_to_size function not found"
exit 1
fi
tap_parse_hts() {
local input=$1 expected=$2
tap_is_str "$(human_to_size "$input")" "$expected" "$input"
}
tap_plan 15
# tap_parse_hts <input> <expected output>
tap_parse_hts '1MiB' 1048576
tap_parse_hts '10XiB' ''
tap_parse_hts '10 MiB' 10485760
tap_parse_hts '10 XiB' ''
tap_parse_hts '.1 TiB' 109951162778
tap_parse_hts ' -3 KiB ' -3072
tap_parse_hts 'foo3KiB' ''
tap_parse_hts '3KiBfoo' ''
tap_parse_hts '3kib' ''
tap_parse_hts '+1KiB' 1024
tap_parse_hts '+1.0 KiB' 1024
tap_parse_hts '1MB' 1000000
tap_parse_hts '1M' 1048576
tap_parse_hts ' 1 G ' 1073741824
tap_parse_hts '1Q' ''