Commit | Line | Data |
---|---|---|
b64eb60f MW |
1 | ### -*-autotest-*- |
2 | ### | |
3 | ### Test script for test machinery | |
4 | ### | |
5 | ### (c) 2023 Straylight/Edgeware | |
6 | ### | |
7 | ||
8 | ###----- Licensing notice --------------------------------------------------- | |
9 | ### | |
10 | ### This file is part of the mLib utilities library. | |
11 | ### | |
12 | ### mLib is free software; you can redistribute it and/or modify | |
13 | ### it under the terms of the GNU Library General Public License as | |
14 | ### published by the Free Software Foundation; either version 2 of the | |
15 | ### License, or (at your option) any later version. | |
16 | ### | |
17 | ### mLib is distributed in the hope that it will be useful, | |
18 | ### but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 | ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 | ### GNU Library General Public License for more details. | |
21 | ### | |
22 | ### You should have received a copy of the GNU Library General Public | |
23 | ### License along with mLib; if not, write to the Free | |
24 | ### Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, | |
25 | ### MA 02111-1307, USA. | |
26 | ||
27 | ###-------------------------------------------------------------------------- | |
e63124bc | 28 | ### Preliminaries. |
b64eb60f | 29 | |
e63124bc MW |
30 | dnl padding_string(STRING, N, [PAD]) |
31 | m4_define([padding_string], | |
32 | [m4_if([m4_expr([m4_len([$1]) > $2])], [1], [], | |
33 | [m4_for([i], m4_len([$1]), [($2) - 1], [1], [m4_default([$3], [ ])])])]) | |
b64eb60f | 34 | |
e63124bc MW |
35 | dnl left_pad(STRING, N, [PAD]) |
36 | dnl right_pad(STRING, N, [PAD]) | |
37 | m4_define([left_pad], [padding_string([$1], [$2], [$3])$1]) | |
38 | m4_define([right_pad], [$1[]padding_string([$1], [$2], [$3])]) | |
39 | ||
40 | dnl check_template(CMD, RC, STDOUT, STDERR) | |
41 | m4_define([check_template], [ | |
42 | AT_CHECK([$1], [$2], [stdout], [stderr-nolog]) | |
43 | AT_DATA([expout.tpl], [$3]) | |
44 | $PYTHON $abs_srcdir/template-canonify expout.tpl stdout expout stdout.found | |
45 | AT_DATA([experr.tpl], [$4]) | |
46 | $PYTHON $abs_srcdir/template-canonify experr.tpl stderr experr stderr.found | |
47 | AT_CHECK([cat stdout.found; cat stderr.found >&2], [0], [expout], [experr])]) | |
b64eb60f MW |
48 | |
49 | dnl test_parse(TY, IN, OUT) | |
50 | m4_define([test_parse], [ | |
51 | AT_DATA([tv], | |
52 | [;;; -*-conf-*- | |
db2bf411 | 53 | @<:@copy-$1@:>@ |
b64eb60f | 54 | $1 = $2 |
e63124bc | 55 | @show = t |
b64eb60f | 56 | ]) |
e63124bc | 57 | check_template([BUILDDIR/t/tvec.t -fh tv], [0], |
c91413e6 | 58 | [left_pad([matched $1], [21]) = $3 |
db2bf411 | 59 | copy-$1: ok |
e63124bc | 60 | PASSED all 1 test in 1 group |
b64eb60f MW |
61 | ])]) |
62 | ||
63 | dnl test_parserr(TY, IN, LNO, ERR) | |
64 | m4_define([test_parserr], [ | |
65 | AT_DATA([tv], | |
66 | [;;; -*-conf-*- | |
db2bf411 | 67 | @<:@copy-$1@:>@ |
b64eb60f | 68 | $1 = $2 |
b64eb60f | 69 | ]) |
e63124bc | 70 | check_template([BUILDDIR/t/tvec.t -fh tv], [2], |
31d0247c MW |
71 | [tv:$3: ERROR: $4 |
72 | tv:={N:\d+}: ERROR: required register `$1' not set in test `copy-$1' | |
5fb354e3 | 73 | copy-$1 skipped: no tests to run |
e63124bc MW |
74 | PASSED 0 tests in 0 groups (1 skipped) |
75 | ERRORS found in input; tests may not have run correctly | |
76 | ], | |
31d0247c MW |
77 | [tvec.t: tv:$3: ERROR: $4 |
78 | tvec.t: tv:={N:\d+}: ERROR: required register `$1' not set in test `copy-$1' | |
b64eb60f MW |
79 | ])]) |
80 | ||
e63124bc | 81 | ###-------------------------------------------------------------------------- |
b64eb60f | 82 | AT_SETUP(tvec type-int) |
e63124bc MW |
83 | |
84 | test_parse([int], [4], [4 ; = 0x04 = '\x04']) | |
85 | test_parse([int], [ 17; comment], [17 ; = 0x11 = '\x11']) | |
86 | ||
87 | test_parse([int], [0x234], [564 ; = 0x0234]) | |
67b5031e | 88 | test_parse([int], [0o33], [27 ; = 0x1b = @%:@escape = '\e']) |
e63124bc MW |
89 | |
90 | test_parse([int], [ +192], [192 ; = 0xc0 = '\xc0']) | |
91 | test_parse([int], [ -192], [-192 ; = -0xc0]) | |
92 | ||
3efcfd2d MW |
93 | test_parserr([int], [17 : badness], |
94 | [3], [syntax error: expected end-of-line but found `:']) | |
95 | test_parserr([int], [17: badness], | |
96 | [3], [syntax error: expected end-of-line but found `:']) | |
97 | ||
98 | test_parserr([int], [-_1], | |
99 | [3], [invalid signed integer `-_1']) | |
100 | test_parserr([int], [+1234_], | |
101 | [3], [syntax error: expected end-of-line but found `_']) | |
102 | test_parse([int], [-1234_5], [-12345 ; = -0x3039]) | |
103 | test_parserr([int], [+0x_abc], | |
104 | [3], [syntax error: expected end-of-line but found `x']) | |
105 | test_parse([int], [-0xa_bc], [-2748 ; = -0x0abc]) | |
106 | test_parserr([int], [-0xab__c], | |
107 | [3], [syntax error: expected end-of-line but found `_']) | |
108 | test_parserr([int], [+010r1234], | |
109 | [3], [syntax error: expected end-of-line but found `r']) | |
110 | test_parserr([int], [-1_0r1234], | |
111 | [3], [syntax error: expected end-of-line but found `r']) | |
112 | ||
113 | test_parserr([int], [xyzzy], | |
114 | [3], [invalid signed integer `xyzzy']) | |
115 | test_parserr([int], [-splat], | |
116 | [3], [invalid signed integer `-splat']) | |
117 | test_parserr([int], [- 1], | |
118 | [3], [invalid signed integer `-']) | |
119 | ||
120 | test_parserr([int], [0xq], | |
121 | [3], [syntax error: expected end-of-line but found `x']) | |
122 | test_parserr([int], [0x], | |
123 | [3], [syntax error: expected end-of-line but found `x']) | |
124 | ||
125 | test_parserr([int], [], | |
67b5031e | 126 | [3], [syntax error: expected signed integer but found @%:@eol]) |
3efcfd2d MW |
127 | |
128 | test_parserr([int], [123456], | |
129 | [3], [integer 123456 out of range (must be in @<:@-32768 .. 32767@:>@)]) | |
e63124bc | 130 | |
b64eb60f MW |
131 | AT_CLEANUP |
132 | ||
e63124bc | 133 | ###-------------------------------------------------------------------------- |
b64eb60f | 134 | AT_SETUP(tvec type-uint) |
e63124bc MW |
135 | |
136 | test_parse([uint], [4], [4 ; = 0x04 = '\x04']) | |
137 | test_parse([uint], [ 17; comment], [17 ; = 0x11 = '\x11']) | |
138 | ||
67b5031e MW |
139 | test_parse([uint], [0], [0 ; = 0x00 = @%:@nul = '\0']) |
140 | ||
3efcfd2d | 141 | test_parse([uint], [012345], [12345 ; = 0x3039]) |
e63124bc | 142 | test_parse([uint], [0x234], [564 ; = 0x0234]) |
67b5031e | 143 | test_parse([uint], [0o33], [27 ; = 0x1b = @%:@escape = '\e']) |
3efcfd2d MW |
144 | test_parse([uint], [0b1011_1101], [189 ; = 0xbd = '\xbd']) |
145 | test_parse([uint], [12r123], [171 ; = 0xab = '\xab']) | |
146 | ||
147 | test_parserr([uint], [17 : badness], | |
148 | [3], [syntax error: expected end-of-line but found `:']) | |
149 | test_parserr([uint], [17: badness], | |
150 | [3], [syntax error: expected end-of-line but found `:']) | |
151 | ||
152 | test_parserr([uint], [_1], | |
153 | [3], [invalid unsigned integer `_1']) | |
154 | test_parserr([uint], [1234_], | |
155 | [3], [syntax error: expected end-of-line but found `_']) | |
156 | test_parse([uint], [1234_5], [12345 ; = 0x3039]) | |
157 | test_parserr([uint], [0x_abcd], | |
158 | [3], [syntax error: expected end-of-line but found `x']) | |
159 | test_parse([uint], [0xa_bcd], [43981 ; = 0xabcd]) | |
160 | test_parserr([uint], [0xab__cd], | |
161 | [3], [syntax error: expected end-of-line but found `_']) | |
162 | test_parserr([uint], [010r1234], | |
163 | [3], [syntax error: expected end-of-line but found `r']) | |
164 | test_parserr([uint], [1_0r1234], | |
165 | [3], [syntax error: expected end-of-line but found `r']) | |
166 | ||
167 | test_parserr([uint], [ +192], | |
168 | [3], [invalid unsigned integer `+192']) | |
169 | test_parserr([uint], [ -192], | |
170 | [3], [invalid unsigned integer `-192']) | |
171 | ||
172 | test_parserr([uint], [xyzzy], | |
173 | [3], [invalid unsigned integer `xyzzy']) | |
174 | ||
175 | test_parserr([uint], [0xq], | |
176 | [3], [syntax error: expected end-of-line but found `x']) | |
177 | test_parserr([uint], [0x], | |
178 | [3], [syntax error: expected end-of-line but found `x']) | |
179 | ||
180 | test_parserr([uint], [], | |
67b5031e | 181 | [3], [syntax error: expected unsigned integer but found @%:@eol]) |
3efcfd2d MW |
182 | |
183 | test_parserr([uint], [123456], | |
184 | [3], [integer 123456 out of range (must be in @<:@0 .. 65535@:>@)]) | |
e63124bc | 185 | |
b64eb60f MW |
186 | AT_CLEANUP |
187 | ||
e63124bc MW |
188 | ###-------------------------------------------------------------------------- |
189 | AT_SETUP([tvec type-float]) | |
190 | ||
3efcfd2d MW |
191 | test_parse([float], [0.0], [0]) |
192 | test_parse([float], [-0.0], [-0]) | |
193 | ||
e63124bc MW |
194 | test_parse([float], [1.234], [1.234]) |
195 | ||
67b5031e MW |
196 | test_parse([float], [@%:@nan], [@%:@nan]) |
197 | test_parse([float], [@%:@+inf], [@%:@+inf]) | |
198 | test_parse([float], [@%:@inf], [@%:@+inf]) | |
199 | test_parse([float], [+@%:@inf], [@%:@+inf]) | |
200 | test_parse([float], [@%:@-inf], [@%:@-inf]) | |
201 | test_parse([float], [-@%:@inf], [@%:@-inf]) | |
202 | ||
e63124bc MW |
203 | AT_CLEANUP |
204 | ||
205 | ###-------------------------------------------------------------------------- | |
b64eb60f | 206 | AT_SETUP([tvec type-enum]) |
e63124bc MW |
207 | |
208 | test_parse([ienum], [less], [less ; = -1 = -0x01 = @%:@eof]) | |
209 | test_parse([ienum], [+1], [greater ; = 1 = 0x01 = '\x01']) | |
210 | test_parse([ienum], [17], [17 ; = 0x11 = '\x11']) | |
211 | ||
212 | test_parse([uenum], [banana], [banana ; = 1 = 0x01 = '\x01']) | |
213 | test_parse([uenum], [clementine], [clementine ; = 2 = 0x02 = '\x02']) | |
214 | test_parse([uenum], [17], [17 ; = 0x11 = '\x11']) | |
215 | ||
216 | test_parse([penum], [carol], [carol ; = @%:@<actor ={ACTOR:@<:@^>@:>@*}>]) | |
217 | test_parse([penum], [alice], [alice ; = @%:@<actor ={ACTOR:@<:@^>@:>@*}>]) | |
b64eb60f | 218 | test_parse([penum], [@%:@nil], [@%:@nil]) |
e63124bc MW |
219 | |
220 | AT_CLEANUP | |
221 | ||
67b5031e MW |
222 | ###-------------------------------------------------------------------------- |
223 | AT_SETUP([tvec type-char]) | |
224 | ||
225 | test_parse([char], [a], ['a' ; = 97 = 0x61]) | |
226 | test_parse([char], [a;?], ['a' ; = 97 = 0x61]) | |
227 | test_parse([char], [a ;?], ['a' ; = 97 = 0x61]) | |
228 | test_parse([char], [\\], ['\\' ; = 92 = 0x5c]) | |
229 | test_parse([char], ['], ['\'' ; = 39 = 0x27]) | |
230 | test_parse([char], [\'], ['\'' ; = 39 = 0x27]) | |
231 | test_parse([char], ["], ['"' ; = 34 = 0x22]) | |
232 | test_parse([char], [';'], [';' ; = 59 = 0x3b]) | |
233 | test_parse([char], [';';?], [';' ; = 59 = 0x3b]) | |
234 | test_parse([char], [';' ;?], [';' ; = 59 = 0x3b]) | |
235 | test_parse([char], [\"], ['"' ; = 34 = 0x22]) # " | |
236 | test_parse([char], ['@%:@'], ['@%:@' ; = 35 = 0x23]) | |
237 | ||
238 | test_parse([char], [\n], [@%:@newline ; = '\n' = 10 = 0x0a]) | |
239 | test_parse([char], [\x0a], [@%:@newline ; = '\n' = 10 = 0x0a]) | |
240 | ||
241 | test_parse([char], [@%:@newline], [@%:@newline ; = '\n' = 10 = 0x0a]) | |
242 | test_parse([char], [@%:@lf], [@%:@newline ; = '\n' = 10 = 0x0a]) | |
243 | test_parse([char], [@%:@del;?], [@%:@delete ; = '\x7f' = 127 = 0x7f]) | |
244 | test_parse([char], [@%:@space ;?], [' ' ; = 32 = 0x20]) | |
245 | ||
246 | test_parse([char], [' '], [' ' ; = 32 = 0x20]) | |
247 | test_parse([char], ['a'], ['a' ; = 97 = 0x61]) | |
248 | test_parse([char], ['\n'], [@%:@newline ; = '\n' = 10 = 0x0a]) | |
249 | test_parse([char], ['\12' ;?], [@%:@newline ; = '\n' = 10 = 0x0a]) | |
250 | test_parse([char], ['\{12}' ;?], [@%:@newline ; = '\n' = 10 = 0x0a]) | |
251 | test_parse([char], ['\x0a'], [@%:@newline ; = '\n' = 10 = 0x0a]) | |
252 | test_parse([char], ['\x{0a}'], [@%:@newline ; = '\n' = 10 = 0x0a]) | |
253 | ||
254 | test_parse([char], [@%:@eof], [@%:@eof ; = -1 = -0x01]) | |
255 | test_parse([char], [@%:@eof], [@%:@eof ; = -1 = -0x01]) | |
256 | ||
257 | test_parserr([char], [ ], | |
258 | [3], [syntax error: expected character but found @%:@eol]) | |
259 | test_parserr([char], [''], | |
260 | [3], [syntax error: expected character but found `'']) | |
261 | test_parserr([char], ['''], | |
262 | [3], [syntax error: expected character but found `'']) | |
263 | test_parserr([char], [;], | |
264 | [3], [syntax error: expected character but found `;']) | |
265 | test_parserr([char], [@%:@], | |
266 | [3], [unknown character name `@%:@']) | |
267 | test_parserr([char], [';], | |
268 | [3], [syntax error: expected `'' but found @%:@eol]) | |
269 | test_parserr([char], [\], | |
270 | [3], [syntax error: expected string escape but found @%:@eol]) | |
271 | test_parserr([char], [\q], | |
272 | [3], [syntax error: expected string escape but found `q']) | |
273 | test_parserr([char], ['\], | |
274 | [3], [syntax error: expected string escape but found @%:@eol]) | |
275 | test_parserr([char], [ab], | |
276 | [3], [syntax error: expected end-of-line but found `b']) | |
277 | test_parserr([char], [\x{0a], | |
278 | [3], [syntax error: expected `}' but found @%:@eol]) | |
279 | test_parserr([char], [\{012], | |
280 | [3], [syntax error: expected `}' but found @%:@eol]) | |
281 | ||
282 | AT_CLEANUP | |
283 | ||
284 | ###-------------------------------------------------------------------------- | |
285 | AT_SETUP([tvec type-string]) | |
286 | ||
287 | test_parse([string], [foo], [foo]) | |
288 | test_parse([string], [foo bar], ["foo bar"]) | |
289 | test_parse([string], [foo bar], ["foo bar"]) | |
290 | test_parse([string], [foo "" bar], [foobar]) | |
291 | test_parse([string], [ foo bar ], ["foo bar"]) | |
292 | test_parse([string], [ foo @&t@ | |
293 | bar ], ["foo bar"]) | |
294 | ||
295 | test_parse([string], [foo @%:@nul bar], ["foo\{0}bar"]) | |
296 | ||
297 | test_parse([string], ["f" !repeat 2 { o } "bar"], [foobar]) | |
298 | test_parse([string], ["{"!repeat 5{"abc"}"}"], ["{abcabcabcabcabc}"]) | |
299 | ||
300 | test_parse([string], [!hex "f" 6f "o"], [foo]) | |
301 | ||
302 | test_parse([string], ["foo\n"], ["foo\n"]) | |
303 | ||
304 | test_parse([string], [foo\ | |
305 | bar], [ | |
306 | "foo\n" | |
307 | "bar"]) | |
308 | test_parse([string], ["foo\ | |
309 | bar"], [foobar]) | |
310 | test_parse([string], ["foo" @%:@newline "bar" @%:@newline], [ | |
311 | "foo\n" | |
312 | "bar\n"]) | |
313 | ||
314 | test_parserr([string], [], | |
315 | [4], [syntax error: expected string but found @%:@eof]) | |
316 | test_parse([string], [""], [""]) | |
317 | test_parse([string], [''], [""]) | |
318 | ||
319 | test_parse([string], ["f\x{6f}o"], [foo]) | |
320 | ||
321 | AT_CLEANUP | |
322 | ||
323 | ###-------------------------------------------------------------------------- | |
324 | AT_SETUP([tvec type-bytes]) | |
325 | ||
326 | test_parse([bytes], [""], ["" ; empty]) | |
327 | test_parse([bytes], [61], [61 ; a]) | |
328 | test_parse([bytes], ["abc"], [616263 ; abc]) | |
329 | test_parse([bytes], ["abcd"], [61626364 ; abcd]) | |
330 | test_parse([bytes], ["abcde"], [61626364 65 ; abcde]) | |
331 | ||
332 | test_parse([bytes], [!base64 YWJjZGVmZ2hpamtsbW5vcA==], | |
333 | [61626364 65666768 696a6b6c 6d6e6f70 ; abcdefghijklmnop]) | |
334 | test_parse([bytes], | |
335 | [!base64 QUJDREVGR0hJSktMTU5PUGFiY2RlZmdo | |
336 | a Wp rbG 1ub3A=], | |
337 | [ | |
338 | 41424344 45464748 494a4b4c 4d4e4f50 ; @<:@00@:>@ ABCDEFGHIJKLMNOP | |
339 | 61626364 65666768 696a6b6c 6d6e6f70 ; @<:@10@:>@ abcdefghijklmnop]) | |
340 | ||
341 | test_parse([bytes], [6 1], [61 ; a]) | |
342 | test_parserr([bytes], [6 "" 1], | |
343 | [3], [invalid hex sequence end: Excess or nonzero padding bits]) | |
344 | ||
345 | test_parse([bytes], [!base64 AA==], [00 ; .]) | |
346 | test_parse([bytes], [!base64 AAA=], [0000 ; ..]) | |
347 | test_parse([bytes], [!base64 AAAA], [000000 ; ...]) | |
348 | test_parse([bytes], [!base64 AA], [00 ; .]) | |
349 | test_parse([bytes], [!base64 AAA], [0000 ; ..]) | |
350 | ||
351 | test_parserr([bytes], [0], | |
352 | [4], [invalid hex sequence end: Excess or nonzero padding bits]) | |
353 | test_parserr([bytes], [!base64 A], | |
354 | [4], [invalid base64 sequence end: Excess or nonzero padding bits]) | |
355 | test_parserr([bytes], [!base64 A=], | |
356 | [3], [invalid base64 fragment `A=': Excess or nonzero padding bits]) | |
357 | ||
358 | AT_CLEANUP | |
359 | ||
360 | ###-------------------------------------------------------------------------- | |
361 | AT_SETUP([tvec type-buffer]) | |
362 | ||
363 | test_parse([buffer], [16], [16 B]) | |
364 | test_parse([buffer], [16;?], [16 B]) | |
365 | test_parse([buffer], [16 ;?], [16 B]) | |
366 | test_parse([buffer], [16384], [16 kB]) | |
367 | test_parse([buffer], [16777216], [16 MB]) | |
368 | test_parse([buffer], [16k], [16 kB]) | |
369 | test_parse([buffer], [16k;?], [16 kB]) | |
370 | test_parse([buffer], [16k ;?], [16 kB]) | |
371 | test_parse([buffer], [16 k], [16 kB]) | |
372 | test_parse([buffer], [16 k;?], [16 kB]) | |
373 | test_parse([buffer], [16 k ;?], [16 kB]) | |
374 | test_parse([buffer], [16kB], [16 kB]) | |
375 | test_parse([buffer], [16kB;?], [16 kB]) | |
376 | test_parse([buffer], [16kB ;?], [16 kB]) | |
377 | test_parse([buffer], [16 kB], [16 kB]) | |
378 | test_parse([buffer], [16 kB;?], [16 kB]) | |
379 | test_parse([buffer], [16 kB ;?], [16 kB]) | |
380 | ||
381 | test_parserr([buffer], [16!], [3], [invalid buffer length `16!']) | |
382 | test_parserr([buffer], [16 !], [3], [invalid buffer length `16 !']) | |
383 | test_parserr([buffer], [16 k!], [3], [invalid buffer length `16 k!']) | |
384 | test_parserr([buffer], [16 kB!], [3], [invalid buffer length `16 kB!']) | |
385 | test_parserr([buffer], [16 kB !], | |
386 | [3], [syntax error: expected end-of-line but found `!']) | |
387 | test_parserr([buffer], [16 EB], [3], [buffer length `16 EB' out of range]) | |
388 | ||
389 | AT_CLEANUP | |
390 | ||
c91413e6 MW |
391 | ###-------------------------------------------------------------------------- |
392 | AT_SETUP([tvec remote]) | |
393 | ||
394 | AT_DATA([tv], | |
395 | [;;; -*-conf-*- | |
396 | ||
397 | @<:@crash@:>@ | |
398 | ||
399 | crash = t | |
400 | x = 1 | |
401 | z = 0 | |
402 | @progress = %RUN | |
403 | @exit = killed | SIGABRT | |
404 | ||
405 | crash = nil | |
406 | x = 0 | |
407 | z = 0 | |
408 | @reconnect = skip | |
409 | ||
410 | crash = nil | |
411 | x = 1 | |
412 | z = 1 | |
413 | ||
414 | crash = nil | |
415 | x = 1 | |
416 | z = 1 | |
417 | @progress = %DONE | |
418 | @exit = running | |
419 | ]) | |
420 | check_template([BUILDDIR/t/tvec.t -fh tv], [0], | |
421 | [tv:11: `crash' skipped: no connection | |
422 | crash: ok (1 skipped) | |
423 | PASSED 3 tests (1 skipped) in 1 group | |
424 | ]) | |
425 | ||
426 | AT_CLEANUP | |
427 | ||
e63124bc MW |
428 | ###-------------------------------------------------------------------------- |
429 | AT_SETUP([tvec serialize]) | |
430 | ||
431 | AT_DATA([tv], | |
db2bf411 | 432 | [@<:@multi@:>@ |
e63124bc MW |
433 | |
434 | int = -2 | |
435 | uint = 7 | |
3efcfd2d | 436 | float = @%:@nan |
e63124bc MW |
437 | fltish = 0.1 |
438 | char = x | |
439 | ienum = greater | |
440 | uenum = banana | |
441 | fenum = tau | |
442 | penum = alice | |
443 | flags = red-fg | white-bg | bright | |
444 | string = "Hello, world!" | |
445 | bytes = | |
446 | 2923be84 e16cd6ae 529049f1 f1bbe9eb | |
447 | b3a6db3c 870c3e99 245e0d1c 06b747de | |
448 | b3124dc8 43bb8ba6 1f035a7d 0938251f | |
449 | 5dd4cbfc 96f5453b 130d890a 1cdbae32 | |
450 | 209a50ee 407836fd 124932f6 9e7d49dc | |
451 | ad4f14f2 444066d0 6bc430b7 323ba122 | |
452 | f622919d e18b1fda b0ca9902 b9729d49 | |
453 | 2c807ec5 99d5e980 b2eac9cc 53bf67d6 | |
3efcfd2d | 454 | @show = t |
e63124bc MW |
455 | ]) |
456 | AT_CHECK([BUILDDIR/t/tvec.t -fh tv], [0], [ignore]) | |
457 | ||
b64eb60f MW |
458 | AT_CLEANUP |
459 | ||
460 | ###----- That's all, folks -------------------------------------------------- |