verify: new macro 'assume'
[gnulib.git] / tests / test-xstrtol.sh
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