sd: remove 'ssd' driver support
[unleashed/tickless.git] / usr / src / lib / libshell / common / tests / enum.sh
blobb5e2aefa1ac5963a1e1d04c050ace56d0182a8e8
1 ########################################################################
2 # #
3 # This software is part of the ast package #
4 # Copyright (c) 1982-2010 AT&T Intellectual Property #
5 # and is licensed under the #
6 # Common Public License, Version 1.0 #
7 # by AT&T Intellectual Property #
8 # #
9 # A copy of the License is available at #
10 # http://www.opensource.org/licenses/cpl1.0.txt #
11 # (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) #
12 # #
13 # Information and Software Systems Research #
14 # AT&T Research #
15 # Florham Park NJ #
16 # #
17 # David Korn <dgk@research.att.com> #
18 # #
19 ########################################################################
20 function err_exit
22 print -u2 -n "\t"
23 print -u2 -r ${Command}[$1]: "${@:2}"
24 (( Errors+=1 ))
26 alias err_exit='err_exit $LINENO'
28 Command=${0##*/}
29 integer Errors=0
30 enum Color_t=(red green blue orange yellow)
31 enum -i Sex_t=(Male Female)
32 for ((i=0; i < 1000; i++))
34 Color_t x
35 [[ $x == red ]] || err_exit 'Color_t does not default to red'
36 x=orange
37 [[ $x == orange ]] || err_exit '$x should be orange'
38 ( x=violet) 2> /dev/null && err_exit 'x=violet should fail'
39 x[2]=green
40 [[ ${x[2]} == green ]] || err_exit '${x[2]} should be green'
41 (( x[2] == 1 )) || err_exit '((x[2]!=1))'
42 [[ $((x[2])) == 1 ]] || err_exit '$((x[2]))!=1'
43 [[ $x == orange ]] || err_exit '$x is no longer orange'
44 Color_t -A y
45 y[foo]=yellow
46 [[ ${y[foo]} == yellow ]] || err_exit '${y[foo]} != yellow'
47 (( y[foo] == 4 )) || err_exit '(( y[foo] != 4))'
48 unset y
49 typeset -a [Color_t] z
50 z[green]=xyz
51 [[ ${z[green]} == xyz ]] || err_exit '${z[green]} should be xyz'
52 [[ ${z[1]} == xyz ]] || err_exit '${z[1]} should be xyz'
53 z[orange]=bam
54 [[ ${!z[@]} == 'green orange' ]] || err_exit '${!z[@]} == "green orange"'
55 unset x
56 Sex_t x
57 [[ $x == Male ]] || err_exit 'Sex_t not defaulting to Male'
58 x=female
59 [[ $x == Female ]] || err_exit 'Sex_t not case sensitive'
60 unset x y z
61 done
63 typeset -T X_t=( typeset name=aha )
64 typeset -a[X_t] arr
65 ) 2> /dev/null
66 [[ $? == 1 ]] || err_exit 'typeset -a[X_t] should generate an error message when X-t is not an enumeriation type'
67 exit $Errors