Blame gnulib-tests/test-xstrtoumax.sh

Packit 33f14e
#!/bin/sh
Packit 33f14e
: ${srcdir=.}
Packit 33f14e
. "$srcdir/init.sh"; path_prepend_ .
Packit 33f14e
Packit 33f14e
too_big=99999999999999999999999999999999999999999999999999999999999999999999
Packit 33f14e
result=0
Packit 33f14e
Packit 33f14e
# test xstrtoumax
Packit 33f14e
test-xstrtoumax 1 >> out 2>&1 || result=1
Packit 33f14e
test-xstrtoumax -1 >> out 2>&1 && result=1
Packit 33f14e
test-xstrtoumax 1k >> out 2>&1 || result=1
Packit 33f14e
test-xstrtoumax ${too_big}h >> out 2>&1 && result=1
Packit 33f14e
test-xstrtoumax $too_big >> out 2>&1 && result=1
Packit 33f14e
test-xstrtoumax x >> out 2>&1 && result=1
Packit 33f14e
test-xstrtoumax 9x >> out 2>&1 && result=1
Packit 33f14e
test-xstrtoumax 010 >> out 2>&1 || result=1
Packit 33f14e
test-xstrtoumax MiB >> out 2>&1 || result=1
Packit 33f14e
Packit 33f14e
# Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
Packit 33f14e
# does not understand '\r'.
Packit 33f14e
if echo solaris | tr -d '\r' | grep solais > /dev/null; then
Packit 33f14e
  cr='\015'
Packit 33f14e
else
Packit 33f14e
  cr='\r'
Packit 33f14e
fi
Packit 33f14e
Packit 33f14e
# normalize output
Packit 33f14e
LC_ALL=C tr -d "$cr" < out > k
Packit 33f14e
mv k out
Packit 33f14e
Packit 33f14e
# compare expected output
Packit 33f14e
cat > exp <
Packit 33f14e
1->1 ()
Packit 33f14e
invalid X argument '-1'
Packit 33f14e
1k->1024 ()
Packit 33f14e
invalid suffix in X argument '${too_big}h'
Packit 33f14e
X argument '$too_big' too large
Packit 33f14e
invalid X argument 'x'
Packit 33f14e
invalid suffix in X argument '9x'
Packit 33f14e
010->8 ()
Packit 33f14e
MiB->1048576 ()
Packit 33f14e
EOF
Packit 33f14e
Packit 33f14e
compare exp out || result=1
Packit 33f14e
Packit 33f14e
Exit $result