#!/bin/sh : $(srcdir=.) source "$srcdir/init.sh"; path_prepend_ . setglobal too_big = '99999999999999999999999999999999999999999999999999999999999999999999' setglobal result = '0' # test xstrtoumax test-xstrtoumax 1 >> out !2 > !1 || setglobal result = '1' test-xstrtoumax -1 >> out !2 > !1 && setglobal result = '1' test-xstrtoumax 1k >> out !2 > !1 || setglobal result = '1' test-xstrtoumax $(too_big)h >> out !2 > !1 && setglobal result = '1' test-xstrtoumax $too_big >> out !2 > !1 && setglobal result = '1' test-xstrtoumax x >> out !2 > !1 && setglobal result = '1' test-xstrtoumax 9x >> out !2 > !1 && setglobal result = '1' test-xstrtoumax 010 >> out !2 > !1 || setglobal result = '1' test-xstrtoumax 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 > exp << """ 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 exp out || setglobal result = '1' Exit $result