Magellan Linux

Annotation of /tags/mkinitrd-6_3_1/busybox/testsuite/awk.tests

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1143 - (hide annotations) (download)
Thu Aug 19 12:44:27 2010 UTC (13 years, 10 months ago) by niro
File size: 3963 byte(s)
tagged 'mkinitrd-6_3_1'
1 niro 816 #!/bin/sh
2    
3     # Copyright 2007 by Denys Vlasenko <vda.linux@googlemail.com>
4     # Licensed under GPL v2, see file LICENSE for details.
5    
6 niro 984 . ./testing.sh
7 niro 816
8     # testing "description" "command" "result" "infile" "stdin"
9    
10     testing "awk -F case 0" "awk -F '[#]' '{ print NF }'" "" "" ""
11     testing "awk -F case 1" "awk -F '[#]' '{ print NF }'" "0\n" "" "\n"
12     testing "awk -F case 2" "awk -F '[#]' '{ print NF }'" "2\n" "" "#\n"
13     testing "awk -F case 3" "awk -F '[#]' '{ print NF }'" "3\n" "" "#abc#\n"
14     testing "awk -F case 4" "awk -F '[#]' '{ print NF }'" "3\n" "" "#abc#zz\n"
15     testing "awk -F case 5" "awk -F '[#]' '{ print NF }'" "4\n" "" "#abc##zz\n"
16     testing "awk -F case 6" "awk -F '[#]' '{ print NF }'" "4\n" "" "z#abc##zz\n"
17     testing "awk -F case 7" "awk -F '[#]' '{ print NF }'" "5\n" "" "z##abc##zz\n"
18    
19     # 4294967295 = 0xffffffff
20     testing "awk bitwise op" "awk '{ print or(4294967295,1) }'" "4.29497e+09\n" "" "\n"
21 niro 1123 optional DESKTOP
22 niro 816 testing "awk hex const 1" "awk '{ print or(0xffffffff,1) }'" "4.29497e+09\n" "" "\n"
23     testing "awk hex const 2" "awk '{ print or(0x80000000,1) }'" "2.14748e+09\n" "" "\n"
24     testing "awk oct const" "awk '{ print or(01234,1) }'" "669\n" "" "\n"
25 niro 1123 SKIP=
26 niro 816
27 niro 984 # long field seps requiring regex
28     testing "awk long field sep" "awk -F-- '{ print NF, length(\$NF), \$NF }'" \
29     "2 0 \n3 0 \n4 0 \n5 0 \n" \
30     "" \
31     "a--\na--b--\na--b--c--\na--b--c--d--"
32    
33     # '@(samp|code|file)\{' is an invalid extended regex (unmatched '{'),
34     # but gawk 3.1.5 does not bail out on it.
35     testing "awk gsub falls back to non-extended-regex" \
36     "awk 'gsub(\"@(samp|code|file)\{\",\"\");'; echo \$?" "0\n" "" "Hi\n"
37    
38 niro 1123 optional TAR BUNZIP2 FEATURE_SEAMLESS_BZ2
39     test x"$SKIP" != x"1" && tar xjf awk_t1.tar.bz2
40 niro 816 testing "awk 'gcc build bug'" \
41     "awk -f awk_t1_opt-functions.awk -f awk_t1_opth-gen.awk <awk_t1_input | md5sum" \
42     "f842e256461a5ab1ec60b58d16f1114f -\n" \
43     "" ""
44 niro 1123 rm -rf awk_t1_* 2>/dev/null
45     SKIP=
46 niro 816
47 niro 984 Q='":"'
48    
49     testing "awk NF in BEGIN" \
50     "awk 'BEGIN { print ${Q} NF ${Q} \$0 ${Q} \$1 ${Q} \$2 ${Q} }'" \
51     ":0::::\n" \
52     "" ""
53    
54     prg='
55     function b(tmp) {
56     tmp = 0;
57     print "" tmp; #this line causes the bug
58     return tmp;
59     }
60     function c(tmpc) {
61     tmpc = b(); return tmpc;
62     }
63     BEGIN {
64     print (c() ? "string" : "number");
65     }'
66     testing "awk string cast (bug 725)" \
67     "awk '$prg'" \
68     "0\nnumber\n" \
69     "" ""
70    
71 niro 1123 testing "awk handles whitespace before array subscript" \
72     "awk 'BEGIN { arr [3] = 1; print arr [3] }'" "1\n" "" ""
73    
74     prg='
75     BEGIN {
76     u["a"]=1
77     u["b"]=1
78     u["c"]=1
79     v["d"]=1
80     v["e"]=1
81     v["f"]=1
82     for (l in u) {
83     print "outer1", l;
84     for (l in v) {
85     print " inner", l;
86     }
87     print "outer2", l;
88     }
89     print "end", l;
90     l="a"
91     exit;
92     }'
93     testing "awk nested loops with the same variable" \
94     "awk '$prg'" \
95     "\
96     outer1 a
97     inner d
98     inner e
99     inner f
100     outer2 f
101     outer1 b
102     inner d
103     inner e
104     inner f
105     outer2 f
106     outer1 c
107     inner d
108     inner e
109     inner f
110     outer2 f
111     end f
112     " \
113     "" ""
114    
115     prg='
116     BEGIN {
117     u["a"]=1
118     u["b"]=1
119     u["c"]=1
120     v["d"]=1
121     v["e"]=1
122     v["f"]=1
123     for (l in u) {
124     print "outer1", l;
125     for (l in v) {
126     print " inner", l;
127     break;
128     }
129     print "outer2", l;
130     }
131     print "end", l;
132     l="a"
133     exit;
134     }'
135     # It's not just buggy, it enters infinite loop. Thus disabled
136     false && test x"$SKIP_KNOWN_BUGS" = x"" && testing "awk nested loops with the same variable and break" \
137     "awk '$prg'" \
138     "\
139     outer1 a
140     inner d
141     outer2 d
142     outer1 b
143     inner d
144     outer2 d
145     outer1 c
146     inner d
147     outer2 d
148     end d
149     " \
150     "" ""
151    
152     prg='
153     function f() {
154     for (l in v) {
155     print " inner", l;
156     return;
157     }
158     }
159    
160     BEGIN {
161     u["a"]=1
162     u["b"]=1
163     u["c"]=1
164     v["d"]=1
165     v["e"]=1
166     v["f"]=1
167     for (l in u) {
168     print "outer1", l;
169     f();
170     print "outer2", l;
171     }
172     print "end", l;
173     l="a"
174     exit;
175     }'
176     # It's not just buggy, it enters infinite loop. Thus disabled
177     false && test x"$SKIP_KNOWN_BUGS" = x"" && testing "awk nested loops with the same variable and return" \
178     "awk '$prg'" \
179     "\
180     outer1 a
181     inner d
182     outer2 d
183     outer1 b
184     inner d
185     outer2 d
186     outer1 c
187     inner d
188     outer2 d
189     end d
190     " \
191     "" ""
192    
193 niro 816 exit $FAILCOUNT