syntax-check: detect incorrect boolean macro values in config.h
[gnulib.git] / tests / test-xstrtoimax.sh
1 #!/bin/sh
2
3 tmpfiles=""
4 trap 'rm -fr $tmpfiles' 1 2 3 15
5
6 tmpfiles="t-xstrtoimax.tmp t-xstrtoimax.xo"
7 : > t-xstrtoimax.tmp
8 too_big=99999999999999999999999999999999999999999999999999999999999999999999
9 result=0
10
11 # test xstrtoimax
12 ./test-xstrtoimax${EXEEXT} 1 >> t-xstrtoimax.tmp 2>&1 || result=1
13 ./test-xstrtoimax${EXEEXT} -1 >> t-xstrtoimax.tmp 2>&1 || result=1
14 ./test-xstrtoimax${EXEEXT} 1k >> t-xstrtoimax.tmp 2>&1 || result=1
15 ./test-xstrtoimax${EXEEXT} ${too_big}h >> t-xstrtoimax.tmp 2>&1 && result=1
16 ./test-xstrtoimax${EXEEXT} $too_big >> t-xstrtoimax.tmp 2>&1 && result=1
17 ./test-xstrtoimax${EXEEXT} x >> t-xstrtoimax.tmp 2>&1 && result=1
18 ./test-xstrtoimax${EXEEXT} 9x >> t-xstrtoimax.tmp 2>&1 && result=1
19 ./test-xstrtoimax${EXEEXT} 010 >> t-xstrtoimax.tmp 2>&1 || result=1
20 ./test-xstrtoimax${EXEEXT} MiB >> t-xstrtoimax.tmp 2>&1 || result=1
21
22 # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
23 # does not understand '\r'.
24 if echo solaris | tr -d '\r' | grep solais > /dev/null; then
25   cr='\015'
26 else
27   cr='\r'
28 fi
29
30 # normalize output
31 LC_ALL=C tr -d "$cr" < t-xstrtoimax.tmp > t-xstrtoimax.xo
32 mv t-xstrtoimax.xo t-xstrtoimax.tmp
33
34 # compare expected output
35 cat > t-xstrtoimax.xo <<EOF
36 1->1 ()
37 -1->-1 ()
38 1k->1024 ()
39 invalid suffix in X argument \`${too_big}h'
40 X argument \`$too_big' too large
41 invalid X argument \`x'
42 invalid suffix in X argument \`9x'
43 010->8 ()
44 MiB->1048576 ()
45 EOF
46
47 diff t-xstrtoimax.xo t-xstrtoimax.tmp || result=1
48
49 rm -fr $tmpfiles
50
51 exit $result