Blame gnulib-tests/test-xstrtol.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 xstrtol
Packit 33f14e
test-xstrtol 1 >> out 2>&1 || result=1
Packit 33f14e
test-xstrtol -1 >> out 2>&1 || result=1
Packit 33f14e
test-xstrtol 1k >> out 2>&1 || result=1
Packit 33f14e
test-xstrtol ${too_big}h >> out 2>&1 && result=1
Packit 33f14e
test-xstrtol $too_big >> out 2>&1 && result=1
Packit 33f14e
test-xstrtol x >> out 2>&1 && result=1
Packit 33f14e
test-xstrtol 9x >> out 2>&1 && result=1
Packit 33f14e
test-xstrtol 010 >> out 2>&1 || result=1
Packit 33f14e
# suffix without integer is valid
Packit 33f14e
test-xstrtol MiB >> out 2>&1 || result=1
Packit 33f14e
test-xstrtol 1bB >> out 2>&1 && result=1
Packit 33f14e
Packit 33f14e
# test xstrtoul
Packit 33f14e
test-xstrtoul 1 >> out 2>&1 || result=1
Packit 33f14e
test-xstrtoul -1 >> out 2>&1 && result=1
Packit 33f14e
test-xstrtoul 1k >> out 2>&1 || result=1
Packit 33f14e
test-xstrtoul ${too_big}h >> out 2>&1 && result=1
Packit 33f14e
test-xstrtoul $too_big >> out 2>&1 && result=1
Packit 33f14e
test-xstrtoul x >> out 2>&1 && result=1
Packit 33f14e
test-xstrtoul 9x >> out 2>&1 && result=1
Packit 33f14e
test-xstrtoul 010 >> out 2>&1 || result=1
Packit 33f14e
test-xstrtoul MiB >> out 2>&1 || result=1
Packit 33f14e
test-xstrtoul 1bB >> 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 > expected <
Packit 33f14e
1->1 ()
Packit 33f14e
-1->-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
invalid suffix in X argument '1bB'
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
invalid suffix in X argument '1bB'
Packit 33f14e
EOF
Packit 33f14e
Packit 33f14e
compare expected out || result=1
Packit 33f14e
Packit 33f14e
Exit $result