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