| 1 | #!/bin/sh
|
|---|
| 2 | : ${srcdir=.}
|
|---|
| 3 | . "$srcdir/init.sh"; path_prepend_ .
|
|---|
| 4 |
|
|---|
| 5 | too_big=99999999999999999999999999999999999999999999999999999999999999999999
|
|---|
| 6 | result=0
|
|---|
| 7 |
|
|---|
| 8 | # test xstrtol
|
|---|
| 9 | test-xstrtol 1 >> out 2>&1 || result=1
|
|---|
| 10 | test-xstrtol -1 >> out 2>&1 || result=1
|
|---|
| 11 | test-xstrtol 1k >> out 2>&1 || result=1
|
|---|
| 12 | test-xstrtol ${too_big}h >> out 2>&1 && result=1
|
|---|
| 13 | test-xstrtol $too_big >> out 2>&1 && result=1
|
|---|
| 14 | test-xstrtol x >> out 2>&1 && result=1
|
|---|
| 15 | test-xstrtol 9x >> out 2>&1 && result=1
|
|---|
| 16 | test-xstrtol 010 >> out 2>&1 || result=1
|
|---|
| 17 | # suffix without integer is valid
|
|---|
| 18 | test-xstrtol MiB >> out 2>&1 || result=1
|
|---|
| 19 |
|
|---|
| 20 | # test xstrtoul
|
|---|
| 21 | test-xstrtoul 1 >> out 2>&1 || result=1
|
|---|
| 22 | test-xstrtoul -1 >> out 2>&1 && result=1
|
|---|
| 23 | test-xstrtoul 1k >> out 2>&1 || result=1
|
|---|
| 24 | test-xstrtoul ${too_big}h >> out 2>&1 && result=1
|
|---|
| 25 | test-xstrtoul $too_big >> out 2>&1 && result=1
|
|---|
| 26 | test-xstrtoul x >> out 2>&1 && result=1
|
|---|
| 27 | test-xstrtoul 9x >> out 2>&1 && result=1
|
|---|
| 28 | test-xstrtoul 010 >> out 2>&1 || result=1
|
|---|
| 29 | test-xstrtoul MiB >> out 2>&1 || result=1
|
|---|
| 30 |
|
|---|
| 31 | # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
|
|---|
| 32 | # does not understand '\r'.
|
|---|
| 33 | if echo solaris | tr -d '\r' | grep solais > /dev/null; then
|
|---|
| 34 | cr='\015'
|
|---|
| 35 | else
|
|---|
| 36 | cr='\r'
|
|---|
| 37 | fi
|
|---|
| 38 |
|
|---|
| 39 | # normalize output
|
|---|
| 40 | LC_ALL=C tr -d "$cr" < out > k
|
|---|
| 41 | mv k out
|
|---|
| 42 |
|
|---|
| 43 | # compare expected output
|
|---|
| 44 | cat > expected <<EOF
|
|---|
| 45 | 1->1 ()
|
|---|
| 46 | -1->-1 ()
|
|---|
| 47 | 1k->1024 ()
|
|---|
| 48 | invalid suffix in X argument '${too_big}h'
|
|---|
| 49 | X argument '$too_big' too large
|
|---|
| 50 | invalid X argument 'x'
|
|---|
| 51 | invalid suffix in X argument '9x'
|
|---|
| 52 | 010->8 ()
|
|---|
| 53 | MiB->1048576 ()
|
|---|
| 54 | 1->1 ()
|
|---|
| 55 | invalid X argument '-1'
|
|---|
| 56 | 1k->1024 ()
|
|---|
| 57 | invalid suffix in X argument '${too_big}h'
|
|---|
| 58 | X argument '$too_big' too large
|
|---|
| 59 | invalid X argument 'x'
|
|---|
| 60 | invalid suffix in X argument '9x'
|
|---|
| 61 | 010->8 ()
|
|---|
| 62 | MiB->1048576 ()
|
|---|
| 63 | EOF
|
|---|
| 64 |
|
|---|
| 65 | compare expected out || result=1
|
|---|
| 66 |
|
|---|
| 67 | Exit $result
|
|---|