init version.
[bush.git] / tests.bak / glob3.sub
blob662c65e97f98acc9784ec73f28e64f22514037bf
1 #   This program is free software: you can redistribute it and/or modify
2 #   it under the terms of the GNU General Public License as published by
3 #   the Free Software Foundation, either version 3 of the License, or
4 #   (at your option) any later version.
6 #   This program is distributed in the hope that it will be useful,
7 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
8 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9 #   GNU General Public License for more details.
11 #   You should have received a copy of the GNU General Public License
12 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
14 : ${TMPDIR:=/var/tmp}
16 TESTDIR=${TMPDIR}/glob-test-$$
17 mkdir ${TESTDIR}
18 cd $TESTDIR ||  {
19         echo "$TESTDIR: cannot cd" >&2
20         exit 1
23 matchfunc()
25         echo == LANG=$LANG ==
27         touch a p
28         echo [[:alpha:]
29         rm a p
31         case l in
32         [[:alpha:])     echo bad 1;;
33         *)              echo ok 1;;
34         esac
36         touch '[a' '[x'
37         echo [[:alpha:]
38         rm '[a'
39         echo [[:alpha:]
40         rm '[x'
42         case [a in
43         [[:alpha:])     echo ok 2;;
44         *)              echo bad 2;;
45         esac
47         case x in
48         [[:aeioux:])    echo bad 2.1 ;;
49         *)              echo ok 2.1 ;;
50         esac
52         case [x in
53         [[:alpha:])     echo bad 3;;
54         *)              echo ok 3;;
55         esac
57         # unclosed bracket char class expression just matches against ":alpha"
58         case a in
59         [[:alpha])      echo ok 4;;
60         *)              echo bad 4;;
61         esac
64 echo invalid bracket expression
65 export LANG=C
66 matchfunc
68 export LANG=en_US.UTF-8
69 matchfunc
71 unset -f matchfunc
73 matchfunc()
75         echo == LANG=$LANG ==
77         touch p
78         # quoted character classes work as if they were unquoted now
79         echo [[:alpha:]]
80         echo [[:"alpha":]]
81         rm -f p
83         case a] in
84         [[:aleph:]])    echo bad 1;;
85         *)              echo ok 1;;
86         esac
88         case a in
89         [[:aleph:]])    echo bad 2;;
90         *)              echo ok 2;;
91         esac
93         case a] in
94         [[:"alpha":]])  echo bad 3;;
95         *)              echo ok 3;;
96         esac
98         # Posix says quoted character class names work now
99         case x in
100         [[:"alpha":]])  echo ok 4;;
101         *)              echo bad 4;;
102         esac
104         case a in
105         [abc[:foo:]])   echo ok 5;;
106         *)              echo bad 5 ;;
107         esac
109         case a in
110         [[:foo:]abc])   echo ok 6;;
111         *)              echo bad 6 ;;
112         esac
115 echo invalid character class
116 export LANG=C
117 matchfunc
119 export LANG=en_US.UTF-8
120 matchfunc
122 unset -f matchfunc
124 matchfunc()
126         echo == LANG=$LANG ==
128         case h in
129         [[.hyphen.])    echo bad 1;;
130         *)              echo ok 1;;
131         esac
133         case - in
134         [[.hyphen.]])   echo ok 2;;
135         *)              echo bad 2;;
136         esac
138         case slash in
139         [[.slash.]])    echo bad 3;;
140         *)              echo ok 3;;
141         esac
143         case a in
144         [abc[.nonsense.]])      echo ok 4;;
145         *)              echo bad 4 ;;
146         esac
148         case a in
149         [[.nonsense.]abc])      echo ok 5;;
150         *)              echo bad 5 ;;
151         esac
154 echo invalid collating symbols
156 export LANG=C
157 matchfunc
159 export LANG=en_US.UTF-8
160 matchfunc
162 cd $OLDPWD
163 rm -rf $TESTDIR