Commit | Line | Data |
---|---|---|
1479465f GJ |
1 | #! /bin/sh |
2 | # Generated from testsuite.at by GNU Autoconf 2.69. | |
3 | # | |
4 | # Copyright (C) 2009-2012 Free Software Foundation, Inc. | |
5 | # | |
6 | # This test suite is free software; the Free Software Foundation gives | |
7 | # unlimited permission to copy, distribute and modify it. | |
8 | ## -------------------- ## | |
9 | ## M4sh Initialization. ## | |
10 | ## -------------------- ## | |
11 | ||
12 | # Be more Bourne compatible | |
13 | DUALCASE=1; export DUALCASE # for MKS sh | |
14 | if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : | |
15 | emulate sh | |
16 | NULLCMD=: | |
17 | # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which | |
18 | # is contrary to our usage. Disable this feature. | |
19 | alias -g '${1+"$@"}'='"$@"' | |
20 | setopt NO_GLOB_SUBST | |
21 | else | |
22 | case `(set -o) 2>/dev/null` in #( | |
23 | *posix*) : | |
24 | set -o posix ;; #( | |
25 | *) : | |
26 | ;; | |
27 | esac | |
28 | fi | |
29 | ||
30 | ||
31 | as_nl=' | |
32 | ' | |
33 | export as_nl | |
34 | # Printing a long string crashes Solaris 7 /usr/bin/printf. | |
35 | as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' | |
36 | as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo | |
37 | as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo | |
38 | # Prefer a ksh shell builtin over an external printf program on Solaris, | |
39 | # but without wasting forks for bash or zsh. | |
40 | if test -z "$BASH_VERSION$ZSH_VERSION" \ | |
41 | && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then | |
42 | as_echo='print -r --' | |
43 | as_echo_n='print -rn --' | |
44 | elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then | |
45 | as_echo='printf %s\n' | |
46 | as_echo_n='printf %s' | |
47 | else | |
48 | if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then | |
49 | as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' | |
50 | as_echo_n='/usr/ucb/echo -n' | |
51 | else | |
52 | as_echo_body='eval expr "X$1" : "X\\(.*\\)"' | |
53 | as_echo_n_body='eval | |
54 | arg=$1; | |
55 | case $arg in #( | |
56 | *"$as_nl"*) | |
57 | expr "X$arg" : "X\\(.*\\)$as_nl"; | |
58 | arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; | |
59 | esac; | |
60 | expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" | |
61 | ' | |
62 | export as_echo_n_body | |
63 | as_echo_n='sh -c $as_echo_n_body as_echo' | |
64 | fi | |
65 | export as_echo_body | |
66 | as_echo='sh -c $as_echo_body as_echo' | |
67 | fi | |
68 | ||
69 | # The user is always right. | |
70 | if test "${PATH_SEPARATOR+set}" != set; then | |
71 | PATH_SEPARATOR=: | |
72 | (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { | |
73 | (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || | |
74 | PATH_SEPARATOR=';' | |
75 | } | |
76 | fi | |
77 | ||
78 | ||
79 | # IFS | |
80 | # We need space, tab and new line, in precisely that order. Quoting is | |
81 | # there to prevent editors from complaining about space-tab. | |
82 | # (If _AS_PATH_WALK were called with IFS unset, it would disable word | |
83 | # splitting by setting IFS to empty value.) | |
84 | IFS=" "" $as_nl" | |
85 | ||
86 | # Find who we are. Look in the path if we contain no directory separator. | |
87 | as_myself= | |
88 | case $0 in #(( | |
89 | *[\\/]* ) as_myself=$0 ;; | |
90 | *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
91 | for as_dir in $PATH | |
92 | do | |
93 | IFS=$as_save_IFS | |
94 | test -z "$as_dir" && as_dir=. | |
95 | test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break | |
96 | done | |
97 | IFS=$as_save_IFS | |
98 | ||
99 | ;; | |
100 | esac | |
101 | # We did not find ourselves, most probably we were run as `sh COMMAND' | |
102 | # in which case we are not to be found in the path. | |
103 | if test "x$as_myself" = x; then | |
104 | as_myself=$0 | |
105 | fi | |
106 | if test ! -f "$as_myself"; then | |
107 | $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 | |
108 | exit 1 | |
109 | fi | |
110 | ||
111 | # Unset variables that we do not need and which cause bugs (e.g. in | |
112 | # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" | |
113 | # suppresses any "Segmentation fault" message there. '((' could | |
114 | # trigger a bug in pdksh 5.2.14. | |
115 | for as_var in BASH_ENV ENV MAIL MAILPATH | |
116 | do eval test x\${$as_var+set} = xset \ | |
117 | && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : | |
118 | done | |
119 | PS1='$ ' | |
120 | PS2='> ' | |
121 | PS4='+ ' | |
122 | ||
123 | # NLS nuisances. | |
124 | LC_ALL=C | |
125 | export LC_ALL | |
126 | LANGUAGE=C | |
127 | export LANGUAGE | |
128 | ||
129 | # CDPATH. | |
130 | (unset CDPATH) >/dev/null 2>&1 && unset CDPATH | |
131 | ||
132 | if test "x$CONFIG_SHELL" = x; then | |
133 | as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : | |
134 | emulate sh | |
135 | NULLCMD=: | |
136 | # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which | |
137 | # is contrary to our usage. Disable this feature. | |
138 | alias -g '\${1+\"\$@\"}'='\"\$@\"' | |
139 | setopt NO_GLOB_SUBST | |
140 | else | |
141 | case \`(set -o) 2>/dev/null\` in #( | |
142 | *posix*) : | |
143 | set -o posix ;; #( | |
144 | *) : | |
145 | ;; | |
146 | esac | |
147 | fi | |
148 | " | |
149 | as_required="as_fn_return () { (exit \$1); } | |
150 | as_fn_success () { as_fn_return 0; } | |
151 | as_fn_failure () { as_fn_return 1; } | |
152 | as_fn_ret_success () { return 0; } | |
153 | as_fn_ret_failure () { return 1; } | |
154 | ||
155 | exitcode=0 | |
156 | as_fn_success || { exitcode=1; echo as_fn_success failed.; } | |
157 | as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } | |
158 | as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } | |
159 | as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } | |
160 | if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : | |
161 | ||
162 | else | |
163 | exitcode=1; echo positional parameters were not saved. | |
164 | fi | |
165 | test x\$exitcode = x0 || exit 1 | |
166 | test -x / || exit 1" | |
167 | as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO | |
168 | as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO | |
169 | eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && | |
170 | test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 | |
171 | test \$(( 1 + 1 )) = 2 || exit 1" | |
172 | if (eval "$as_required") 2>/dev/null; then : | |
173 | as_have_required=yes | |
174 | else | |
175 | as_have_required=no | |
176 | fi | |
177 | if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : | |
178 | ||
179 | else | |
180 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
181 | as_found=false | |
182 | for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH | |
183 | do | |
184 | IFS=$as_save_IFS | |
185 | test -z "$as_dir" && as_dir=. | |
186 | as_found=: | |
187 | case $as_dir in #( | |
188 | /*) | |
189 | for as_base in sh bash ksh sh5; do | |
190 | # Try only shells that exist, to save several forks. | |
191 | as_shell=$as_dir/$as_base | |
192 | if { test -f "$as_shell" || test -f "$as_shell.exe"; } && | |
193 | { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : | |
194 | CONFIG_SHELL=$as_shell as_have_required=yes | |
195 | if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : | |
196 | break 2 | |
197 | fi | |
198 | fi | |
199 | done;; | |
200 | esac | |
201 | as_found=false | |
202 | done | |
203 | $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && | |
204 | { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : | |
205 | CONFIG_SHELL=$SHELL as_have_required=yes | |
206 | fi; } | |
207 | IFS=$as_save_IFS | |
208 | ||
209 | ||
210 | if test "x$CONFIG_SHELL" != x; then : | |
211 | export CONFIG_SHELL | |
212 | # We cannot yet assume a decent shell, so we have to provide a | |
213 | # neutralization value for shells without unset; and this also | |
214 | # works around shells that cannot unset nonexistent variables. | |
215 | # Preserve -v and -x to the replacement shell. | |
216 | BASH_ENV=/dev/null | |
217 | ENV=/dev/null | |
218 | (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV | |
219 | case $- in # (((( | |
220 | *v*x* | *x*v* ) as_opts=-vx ;; | |
221 | *v* ) as_opts=-v ;; | |
222 | *x* ) as_opts=-x ;; | |
223 | * ) as_opts= ;; | |
224 | esac | |
225 | exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} | |
226 | # Admittedly, this is quite paranoid, since all the known shells bail | |
227 | # out after a failed `exec'. | |
228 | $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 | |
229 | exit 255 | |
230 | fi | |
231 | ||
232 | if test x$as_have_required = xno; then : | |
233 | $as_echo "$0: This script requires a shell more modern than all" | |
234 | $as_echo "$0: the shells that I found on your system." | |
235 | if test x${ZSH_VERSION+set} = xset ; then | |
236 | $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" | |
237 | $as_echo "$0: be upgraded to zsh 4.3.4 or later." | |
238 | else | |
239 | $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, | |
240 | $0: including any error possibly output before this | |
241 | $0: message. Then install a modern shell, or manually run | |
242 | $0: the script under such a shell if you do have one." | |
243 | fi | |
244 | exit 1 | |
245 | fi | |
246 | fi | |
247 | fi | |
248 | SHELL=${CONFIG_SHELL-/bin/sh} | |
249 | export SHELL | |
250 | # Unset more variables known to interfere with behavior of common tools. | |
251 | CLICOLOR_FORCE= GREP_OPTIONS= | |
252 | unset CLICOLOR_FORCE GREP_OPTIONS | |
253 | ||
254 | ## --------------------- ## | |
255 | ## M4sh Shell Functions. ## | |
256 | ## --------------------- ## | |
257 | # as_fn_unset VAR | |
258 | # --------------- | |
259 | # Portably unset VAR. | |
260 | as_fn_unset () | |
261 | { | |
262 | { eval $1=; unset $1;} | |
263 | } | |
264 | as_unset=as_fn_unset | |
265 | ||
266 | # as_fn_set_status STATUS | |
267 | # ----------------------- | |
268 | # Set $? to STATUS, without forking. | |
269 | as_fn_set_status () | |
270 | { | |
271 | return $1 | |
272 | } # as_fn_set_status | |
273 | ||
274 | # as_fn_exit STATUS | |
275 | # ----------------- | |
276 | # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. | |
277 | as_fn_exit () | |
278 | { | |
279 | set +e | |
280 | as_fn_set_status $1 | |
281 | exit $1 | |
282 | } # as_fn_exit | |
283 | ||
284 | # as_fn_mkdir_p | |
285 | # ------------- | |
286 | # Create "$as_dir" as a directory, including parents if necessary. | |
287 | as_fn_mkdir_p () | |
288 | { | |
289 | ||
290 | case $as_dir in #( | |
291 | -*) as_dir=./$as_dir;; | |
292 | esac | |
293 | test -d "$as_dir" || eval $as_mkdir_p || { | |
294 | as_dirs= | |
295 | while :; do | |
296 | case $as_dir in #( | |
297 | *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( | |
298 | *) as_qdir=$as_dir;; | |
299 | esac | |
300 | as_dirs="'$as_qdir' $as_dirs" | |
301 | as_dir=`$as_dirname -- "$as_dir" || | |
302 | $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | |
303 | X"$as_dir" : 'X\(//\)[^/]' \| \ | |
304 | X"$as_dir" : 'X\(//\)$' \| \ | |
305 | X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || | |
306 | $as_echo X"$as_dir" | | |
307 | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ | |
308 | s//\1/ | |
309 | q | |
310 | } | |
311 | /^X\(\/\/\)[^/].*/{ | |
312 | s//\1/ | |
313 | q | |
314 | } | |
315 | /^X\(\/\/\)$/{ | |
316 | s//\1/ | |
317 | q | |
318 | } | |
319 | /^X\(\/\).*/{ | |
320 | s//\1/ | |
321 | q | |
322 | } | |
323 | s/.*/./; q'` | |
324 | test -d "$as_dir" && break | |
325 | done | |
326 | test -z "$as_dirs" || eval "mkdir $as_dirs" | |
327 | } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" | |
328 | ||
329 | ||
330 | } # as_fn_mkdir_p | |
331 | ||
332 | # as_fn_executable_p FILE | |
333 | # ----------------------- | |
334 | # Test if FILE is an executable regular file. | |
335 | as_fn_executable_p () | |
336 | { | |
337 | test -f "$1" && test -x "$1" | |
338 | } # as_fn_executable_p | |
339 | # as_fn_append VAR VALUE | |
340 | # ---------------------- | |
341 | # Append the text in VALUE to the end of the definition contained in VAR. Take | |
342 | # advantage of any shell optimizations that allow amortized linear growth over | |
343 | # repeated appends, instead of the typical quadratic growth present in naive | |
344 | # implementations. | |
345 | if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : | |
346 | eval 'as_fn_append () | |
347 | { | |
348 | eval $1+=\$2 | |
349 | }' | |
350 | else | |
351 | as_fn_append () | |
352 | { | |
353 | eval $1=\$$1\$2 | |
354 | } | |
355 | fi # as_fn_append | |
356 | ||
357 | # as_fn_arith ARG... | |
358 | # ------------------ | |
359 | # Perform arithmetic evaluation on the ARGs, and store the result in the | |
360 | # global $as_val. Take advantage of shells that can avoid forks. The arguments | |
361 | # must be portable across $(()) and expr. | |
362 | if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : | |
363 | eval 'as_fn_arith () | |
364 | { | |
365 | as_val=$(( $* )) | |
366 | }' | |
367 | else | |
368 | as_fn_arith () | |
369 | { | |
370 | as_val=`expr "$@" || test $? -eq 1` | |
371 | } | |
372 | fi # as_fn_arith | |
373 | ||
374 | ||
375 | # as_fn_error STATUS ERROR [LINENO LOG_FD] | |
376 | # ---------------------------------------- | |
377 | # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are | |
378 | # provided, also output the error to LOG_FD, referencing LINENO. Then exit the | |
379 | # script with STATUS, using 1 if that was 0. | |
380 | as_fn_error () | |
381 | { | |
382 | as_status=$1; test $as_status -eq 0 && as_status=1 | |
383 | if test "$4"; then | |
384 | as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | |
385 | $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 | |
386 | fi | |
387 | $as_echo "$as_me: error: $2" >&2 | |
388 | as_fn_exit $as_status | |
389 | } # as_fn_error | |
390 | ||
391 | if expr a : '\(a\)' >/dev/null 2>&1 && | |
392 | test "X`expr 00001 : '.*\(...\)'`" = X001; then | |
393 | as_expr=expr | |
394 | else | |
395 | as_expr=false | |
396 | fi | |
397 | ||
398 | if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then | |
399 | as_basename=basename | |
400 | else | |
401 | as_basename=false | |
402 | fi | |
403 | ||
404 | as_me=`$as_basename -- "$0" || | |
405 | $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ | |
406 | X"$0" : 'X\(//\)$' \| \ | |
407 | X"$0" : 'X\(/\)' \| . 2>/dev/null || | |
408 | $as_echo X/"$0" | | |
409 | sed '/^.*\/\([^/][^/]*\)\/*$/{ | |
410 | s//\1/ | |
411 | q | |
412 | } | |
413 | /^X\/\(\/\/\)$/{ | |
414 | s//\1/ | |
415 | q | |
416 | } | |
417 | /^X\/\(\/\).*/{ | |
418 | s//\1/ | |
419 | q | |
420 | } | |
421 | s/.*/./; q'` | |
422 | ||
423 | if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then | |
424 | as_dirname=dirname | |
425 | else | |
426 | as_dirname=false | |
427 | fi | |
428 | ||
429 | # Avoid depending upon Character Ranges. | |
430 | as_cr_letters='abcdefghijklmnopqrstuvwxyz' | |
431 | as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' | |
432 | as_cr_Letters=$as_cr_letters$as_cr_LETTERS | |
433 | as_cr_digits='0123456789' | |
434 | as_cr_alnum=$as_cr_Letters$as_cr_digits | |
435 | ||
436 | ||
437 | as_lineno_1=$LINENO as_lineno_1a=$LINENO | |
438 | as_lineno_2=$LINENO as_lineno_2a=$LINENO | |
439 | eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && | |
440 | test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { | |
441 | # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) | |
442 | sed -n ' | |
443 | p | |
444 | /[$]LINENO/= | |
445 | ' <$as_myself | | |
446 | sed ' | |
447 | s/[$]LINENO.*/&-/ | |
448 | t lineno | |
449 | b | |
450 | :lineno | |
451 | N | |
452 | :loop | |
453 | s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ | |
454 | t loop | |
455 | s/-\n.*// | |
456 | ' >$as_me.lineno && | |
457 | chmod +x "$as_me.lineno" || | |
458 | { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } | |
459 | ||
460 | # If we had to re-execute with $CONFIG_SHELL, we're ensured to have | |
461 | # already done that, so ensure we don't try to do so again and fall | |
462 | # in an infinite loop. This has already happened in practice. | |
463 | _as_can_reexec=no; export _as_can_reexec | |
464 | # Don't try to exec as it changes $[0], causing all sort of problems | |
465 | # (the dirname of $[0] is not the place where we might find the | |
466 | # original and so on. Autoconf is especially sensitive to this). | |
467 | . "./$as_me.lineno" | |
468 | # Exit status is that of the last command. | |
469 | exit | |
470 | } | |
471 | ||
472 | ECHO_C= ECHO_N= ECHO_T= | |
473 | case `echo -n x` in #((((( | |
474 | -n*) | |
475 | case `echo 'xy\c'` in | |
476 | *c*) ECHO_T=' ';; # ECHO_T is single tab character. | |
477 | xy) ECHO_C='\c';; | |
478 | *) echo `echo ksh88 bug on AIX 6.1` > /dev/null | |
479 | ECHO_T=' ';; | |
480 | esac;; | |
481 | *) | |
482 | ECHO_N='-n';; | |
483 | esac | |
484 | ||
485 | rm -f conf$$ conf$$.exe conf$$.file | |
486 | if test -d conf$$.dir; then | |
487 | rm -f conf$$.dir/conf$$.file | |
488 | else | |
489 | rm -f conf$$.dir | |
490 | mkdir conf$$.dir 2>/dev/null | |
491 | fi | |
492 | if (echo >conf$$.file) 2>/dev/null; then | |
493 | if ln -s conf$$.file conf$$ 2>/dev/null; then | |
494 | as_ln_s='ln -s' | |
495 | # ... but there are two gotchas: | |
496 | # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. | |
497 | # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. | |
498 | # In both cases, we have to default to `cp -pR'. | |
499 | ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || | |
500 | as_ln_s='cp -pR' | |
501 | elif ln conf$$.file conf$$ 2>/dev/null; then | |
502 | as_ln_s=ln | |
503 | else | |
504 | as_ln_s='cp -pR' | |
505 | fi | |
506 | else | |
507 | as_ln_s='cp -pR' | |
508 | fi | |
509 | rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file | |
510 | rmdir conf$$.dir 2>/dev/null | |
511 | ||
512 | if mkdir -p . 2>/dev/null; then | |
513 | as_mkdir_p='mkdir -p "$as_dir"' | |
514 | else | |
515 | test -d ./-p && rmdir ./-p | |
516 | as_mkdir_p=false | |
517 | fi | |
518 | ||
519 | as_test_x='test -x' | |
520 | as_executable_p=as_fn_executable_p | |
521 | ||
522 | # Sed expression to map a string onto a valid CPP name. | |
523 | as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" | |
524 | ||
525 | # Sed expression to map a string onto a valid variable name. | |
526 | as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" | |
527 | ||
528 | ||
529 | ||
530 | ||
531 | ||
532 | SHELL=${CONFIG_SHELL-/bin/sh} | |
533 | ||
534 | # How were we run? | |
535 | at_cli_args="$@" | |
536 | ||
537 | ||
538 | # Not all shells have the 'times' builtin; the subshell is needed to make | |
539 | # sure we discard the 'times: not found' message from the shell. | |
540 | at_times_p=false | |
541 | (times) >/dev/null 2>&1 && at_times_p=: | |
542 | ||
543 | # CLI Arguments to pass to the debugging scripts. | |
544 | at_debug_args= | |
545 | # -e sets to true | |
546 | at_errexit_p=false | |
547 | # Shall we be verbose? ':' means no, empty means yes. | |
548 | at_verbose=: | |
549 | at_quiet= | |
550 | # Running several jobs in parallel, 0 means as many as test groups. | |
551 | at_jobs=1 | |
552 | at_traceon=: | |
553 | at_trace_echo=: | |
554 | at_check_filter_trace=: | |
555 | ||
556 | # Shall we keep the debug scripts? Must be `:' when the suite is | |
557 | # run by a debug script, so that the script doesn't remove itself. | |
558 | at_debug_p=false | |
559 | # Display help message? | |
560 | at_help_p=false | |
561 | # Display the version message? | |
562 | at_version_p=false | |
563 | # List test groups? | |
564 | at_list_p=false | |
565 | # --clean | |
566 | at_clean=false | |
567 | # Test groups to run | |
568 | at_groups= | |
569 | # Whether to rerun failed tests. | |
570 | at_recheck= | |
571 | # Whether a write failure occurred | |
572 | at_write_fail=0 | |
573 | ||
574 | # The directory we run the suite in. Default to . if no -C option. | |
575 | at_dir=`pwd` | |
576 | # An absolute reference to this testsuite script. | |
577 | case $as_myself in | |
578 | [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;; | |
579 | * ) at_myself=$at_dir/$as_myself ;; | |
580 | esac | |
581 | # Whether -C is in effect. | |
582 | at_change_dir=false | |
583 | ||
584 | # Whether to enable colored test results. | |
585 | at_color=auto | |
586 | # List of the tested programs. | |
587 | at_tested='dpkg-deb | |
588 | dpkg-split' | |
589 | # As many question marks as there are digits in the last test group number. | |
590 | # Used to normalize the test group numbers so that `ls' lists them in | |
591 | # numerical order. | |
592 | at_format='?' | |
593 | # Description of all the test groups. | |
594 | at_help_all="1;deb-format.at:3;dpkg-deb options;dpkg-deb command-line; | |
595 | 2;deb-format.at:8;dpkg-deb .deb format;dpkg-deb deb; | |
596 | 3;deb-content.at:3;dpkg-deb .deb conffiles;dpkg-deb deb conffiles; | |
597 | 4;deb-fields.at:3;dpkg-deb .deb fields;dpkg-deb deb fields; | |
598 | 5;deb-split.at:3;dpkg-split options;dpkg-split command-line; | |
599 | 6;deb-split.at:8;dpkg-split .deb format;dpkg-split deb-split; | |
600 | " | |
601 | # List of the all the test groups. | |
602 | at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'` | |
603 | ||
604 | # at_fn_validate_ranges NAME... | |
605 | # ----------------------------- | |
606 | # Validate and normalize the test group number contained in each variable | |
607 | # NAME. Leading zeroes are treated as decimal. | |
608 | at_fn_validate_ranges () | |
609 | { | |
610 | for at_grp | |
611 | do | |
612 | eval at_value=\$$at_grp | |
613 | if test $at_value -lt 1 || test $at_value -gt 6; then | |
614 | $as_echo "invalid test group: $at_value" >&2 | |
615 | exit 1 | |
616 | fi | |
617 | case $at_value in | |
618 | 0*) # We want to treat leading 0 as decimal, like expr and test, but | |
619 | # AS_VAR_ARITH treats it as octal if it uses $(( )). | |
620 | # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the | |
621 | # expr fork, but it is not worth the effort to determine if the | |
622 | # shell supports XSI when the user can just avoid leading 0. | |
623 | eval $at_grp='`expr $at_value + 0`' ;; | |
624 | esac | |
625 | done | |
626 | } | |
627 | ||
628 | at_prev= | |
629 | for at_option | |
630 | do | |
631 | # If the previous option needs an argument, assign it. | |
632 | if test -n "$at_prev"; then | |
633 | at_option=$at_prev=$at_option | |
634 | at_prev= | |
635 | fi | |
636 | ||
637 | case $at_option in | |
638 | *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;; | |
639 | *) at_optarg= ;; | |
640 | esac | |
641 | ||
642 | # Accept the important Cygnus configure options, so we can diagnose typos. | |
643 | ||
644 | case $at_option in | |
645 | --help | -h ) | |
646 | at_help_p=: | |
647 | ;; | |
648 | ||
649 | --list | -l ) | |
650 | at_list_p=: | |
651 | ;; | |
652 | ||
653 | --version | -V ) | |
654 | at_version_p=: | |
655 | ;; | |
656 | ||
657 | --clean | -c ) | |
658 | at_clean=: | |
659 | ;; | |
660 | ||
661 | --color ) | |
662 | at_color=always | |
663 | ;; | |
664 | --color=* ) | |
665 | case $at_optarg in | |
666 | no | never | none) at_color=never ;; | |
667 | auto | tty | if-tty) at_color=auto ;; | |
668 | always | yes | force) at_color=always ;; | |
669 | *) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'` | |
670 | as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;; | |
671 | esac | |
672 | ;; | |
673 | ||
674 | --debug | -d ) | |
675 | at_debug_p=: | |
676 | ;; | |
677 | ||
678 | --errexit | -e ) | |
679 | at_debug_p=: | |
680 | at_errexit_p=: | |
681 | ;; | |
682 | ||
683 | --verbose | -v ) | |
684 | at_verbose=; at_quiet=: | |
685 | ;; | |
686 | ||
687 | --trace | -x ) | |
688 | at_traceon='set -x' | |
689 | at_trace_echo=echo | |
690 | at_check_filter_trace=at_fn_filter_trace | |
691 | ;; | |
692 | ||
693 | [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]) | |
694 | at_fn_validate_ranges at_option | |
695 | as_fn_append at_groups "$at_option$as_nl" | |
696 | ;; | |
697 | ||
698 | # Ranges | |
699 | [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-) | |
700 | at_range_start=`echo $at_option |tr -d X-` | |
701 | at_fn_validate_ranges at_range_start | |
702 | at_range=`$as_echo "$at_groups_all" | \ | |
703 | sed -ne '/^'$at_range_start'$/,$p'` | |
704 | as_fn_append at_groups "$at_range$as_nl" | |
705 | ;; | |
706 | ||
707 | -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9]) | |
708 | at_range_end=`echo $at_option |tr -d X-` | |
709 | at_fn_validate_ranges at_range_end | |
710 | at_range=`$as_echo "$at_groups_all" | \ | |
711 | sed -ne '1,/^'$at_range_end'$/p'` | |
712 | as_fn_append at_groups "$at_range$as_nl" | |
713 | ;; | |
714 | ||
715 | [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \ | |
716 | [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \ | |
717 | [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \ | |
718 | [0-9][0-9][0-9]-[0-9][0-9][0-9] | \ | |
719 | [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \ | |
720 | [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] ) | |
721 | at_range_start=`expr $at_option : '\(.*\)-'` | |
722 | at_range_end=`expr $at_option : '.*-\(.*\)'` | |
723 | if test $at_range_start -gt $at_range_end; then | |
724 | at_tmp=$at_range_end | |
725 | at_range_end=$at_range_start | |
726 | at_range_start=$at_tmp | |
727 | fi | |
728 | at_fn_validate_ranges at_range_start at_range_end | |
729 | at_range=`$as_echo "$at_groups_all" | \ | |
730 | sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'` | |
731 | as_fn_append at_groups "$at_range$as_nl" | |
732 | ;; | |
733 | ||
734 | # Directory selection. | |
735 | --directory | -C ) | |
736 | at_prev=--directory | |
737 | ;; | |
738 | --directory=* ) | |
739 | at_change_dir=: | |
740 | at_dir=$at_optarg | |
741 | if test x- = "x$at_dir" ; then | |
742 | at_dir=./- | |
743 | fi | |
744 | ;; | |
745 | ||
746 | # Parallel execution. | |
747 | --jobs | -j ) | |
748 | at_jobs=0 | |
749 | ;; | |
750 | --jobs=* | -j[0-9]* ) | |
751 | if test -n "$at_optarg"; then | |
752 | at_jobs=$at_optarg | |
753 | else | |
754 | at_jobs=`expr X$at_option : 'X-j\(.*\)'` | |
755 | fi | |
756 | case $at_jobs in *[!0-9]*) | |
757 | at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'` | |
758 | as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;; | |
759 | esac | |
760 | ;; | |
761 | ||
762 | # Keywords. | |
763 | --keywords | -k ) | |
764 | at_prev=--keywords | |
765 | ;; | |
766 | --keywords=* ) | |
767 | at_groups_selected=$at_help_all | |
768 | at_save_IFS=$IFS | |
769 | IFS=, | |
770 | set X $at_optarg | |
771 | shift | |
772 | IFS=$at_save_IFS | |
773 | for at_keyword | |
774 | do | |
775 | at_invert= | |
776 | case $at_keyword in | |
777 | '!'*) | |
778 | at_invert="-v" | |
779 | at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'` | |
780 | ;; | |
781 | esac | |
782 | # It is on purpose that we match the test group titles too. | |
783 | at_groups_selected=`$as_echo "$at_groups_selected" | | |
784 | grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"` | |
785 | done | |
786 | # Smash the keywords. | |
787 | at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'` | |
788 | as_fn_append at_groups "$at_groups_selected$as_nl" | |
789 | ;; | |
790 | --recheck) | |
791 | at_recheck=: | |
792 | ;; | |
793 | ||
794 | *=*) | |
795 | at_envvar=`expr "x$at_option" : 'x\([^=]*\)='` | |
796 | # Reject names that are not valid shell variable names. | |
797 | case $at_envvar in | |
798 | '' | [0-9]* | *[!_$as_cr_alnum]* ) | |
799 | as_fn_error $? "invalid variable name: \`$at_envvar'" ;; | |
800 | esac | |
801 | at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"` | |
802 | # Export now, but save eval for later and for debug scripts. | |
803 | export $at_envvar | |
804 | as_fn_append at_debug_args " $at_envvar='$at_value'" | |
805 | ;; | |
806 | ||
807 | *) $as_echo "$as_me: invalid option: $at_option" >&2 | |
808 | $as_echo "Try \`$0 --help' for more information." >&2 | |
809 | exit 1 | |
810 | ;; | |
811 | esac | |
812 | done | |
813 | ||
814 | # Verify our last option didn't require an argument | |
815 | if test -n "$at_prev"; then : | |
816 | as_fn_error $? "\`$at_prev' requires an argument" | |
817 | fi | |
818 | ||
819 | # The file containing the suite. | |
820 | at_suite_log=$at_dir/$as_me.log | |
821 | ||
822 | # Selected test groups. | |
823 | if test -z "$at_groups$at_recheck"; then | |
824 | at_groups=$at_groups_all | |
825 | else | |
826 | if test -n "$at_recheck" && test -r "$at_suite_log"; then | |
827 | at_oldfails=`sed -n ' | |
828 | /^Failed tests:$/,/^Skipped tests:$/{ | |
829 | s/^[ ]*\([1-9][0-9]*\):.*/\1/p | |
830 | } | |
831 | /^Unexpected passes:$/,/^## Detailed failed tests/{ | |
832 | s/^[ ]*\([1-9][0-9]*\):.*/\1/p | |
833 | } | |
834 | /^## Detailed failed tests/q | |
835 | ' "$at_suite_log"` | |
836 | as_fn_append at_groups "$at_oldfails$as_nl" | |
837 | fi | |
838 | # Sort the tests, removing duplicates. | |
839 | at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'` | |
840 | fi | |
841 | ||
842 | if test x"$at_color" = xalways \ | |
843 | || { test x"$at_color" = xauto && test -t 1; }; then | |
844 | at_red=`printf '\033[0;31m'` | |
845 | at_grn=`printf '\033[0;32m'` | |
846 | at_lgn=`printf '\033[1;32m'` | |
847 | at_blu=`printf '\033[1;34m'` | |
848 | at_std=`printf '\033[m'` | |
849 | else | |
850 | at_red= at_grn= at_lgn= at_blu= at_std= | |
851 | fi | |
852 | ||
853 | # Help message. | |
854 | if $at_help_p; then | |
855 | cat <<_ATEOF || at_write_fail=1 | |
856 | Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS] | |
857 | ||
858 | Run all the tests, or the selected TESTS, given by numeric ranges, and | |
859 | save a detailed log file. Upon failure, create debugging scripts. | |
860 | ||
861 | Do not change environment variables directly. Instead, set them via | |
862 | command line arguments. Set \`AUTOTEST_PATH' to select the executables | |
863 | to exercise. Each relative directory is expanded as build and source | |
864 | directories relative to the top level of this distribution. | |
865 | E.g., from within the build directory /tmp/foo-1.0, invoking this: | |
866 | ||
867 | $ $0 AUTOTEST_PATH=bin | |
868 | ||
869 | is equivalent to the following, assuming the source directory is /src/foo-1.0: | |
870 | ||
871 | PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0 | |
872 | _ATEOF | |
873 | cat <<_ATEOF || at_write_fail=1 | |
874 | ||
875 | Operation modes: | |
876 | -h, --help print the help message, then exit | |
877 | -V, --version print version number, then exit | |
878 | -c, --clean remove all the files this test suite might create and exit | |
879 | -l, --list describes all the tests, or the selected TESTS | |
880 | _ATEOF | |
881 | cat <<_ATEOF || at_write_fail=1 | |
882 | ||
883 | Execution tuning: | |
884 | -C, --directory=DIR | |
885 | change to directory DIR before starting | |
886 | --color[=never|auto|always] | |
887 | disable colored test results, or enable even without terminal | |
888 | -j, --jobs[=N] | |
889 | Allow N jobs at once; infinite jobs with no arg (default 1) | |
890 | -k, --keywords=KEYWORDS | |
891 | select the tests matching all the comma-separated KEYWORDS | |
892 | multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD | |
893 | --recheck select all tests that failed or passed unexpectedly last time | |
894 | -e, --errexit abort as soon as a test fails; implies --debug | |
895 | -v, --verbose force more detailed output | |
896 | default for debugging scripts | |
897 | -d, --debug inhibit clean up and top-level logging | |
898 | default for debugging scripts | |
899 | -x, --trace enable tests shell tracing | |
900 | _ATEOF | |
901 | cat <<_ATEOF || at_write_fail=1 | |
902 | ||
903 | Report bugs to <debian-dpkg@lists.debian.org>. | |
904 | _ATEOF | |
905 | exit $at_write_fail | |
906 | fi | |
907 | ||
908 | # List of tests. | |
909 | if $at_list_p; then | |
910 | cat <<_ATEOF || at_write_fail=1 | |
911 | dpkg 1.18.25 test suite: dpkg tools functional test suite test groups: | |
912 | ||
913 | NUM: FILE-NAME:LINE TEST-GROUP-NAME | |
914 | KEYWORDS | |
915 | ||
916 | _ATEOF | |
917 | # Pass an empty line as separator between selected groups and help. | |
918 | $as_echo "$at_groups$as_nl$as_nl$at_help_all" | | |
919 | awk 'NF == 1 && FS != ";" { | |
920 | selected[$ 1] = 1 | |
921 | next | |
922 | } | |
923 | /^$/ { FS = ";" } | |
924 | NF > 0 { | |
925 | if (selected[$ 1]) { | |
926 | printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3 | |
927 | if ($ 4) { | |
928 | lmax = 79 | |
929 | indent = " " | |
930 | line = indent | |
931 | len = length (line) | |
932 | n = split ($ 4, a, " ") | |
933 | for (i = 1; i <= n; i++) { | |
934 | l = length (a[i]) + 1 | |
935 | if (i > 1 && len + l > lmax) { | |
936 | print line | |
937 | line = indent " " a[i] | |
938 | len = length (line) | |
939 | } else { | |
940 | line = line " " a[i] | |
941 | len += l | |
942 | } | |
943 | } | |
944 | if (n) | |
945 | print line | |
946 | } | |
947 | } | |
948 | }' || at_write_fail=1 | |
949 | exit $at_write_fail | |
950 | fi | |
951 | if $at_version_p; then | |
952 | $as_echo "$as_me (dpkg 1.18.25)" && | |
953 | cat <<\_ATEOF || at_write_fail=1 | |
954 | ||
955 | Copyright (C) 2012 Free Software Foundation, Inc. | |
956 | This test suite is free software; the Free Software Foundation gives | |
957 | unlimited permission to copy, distribute and modify it. | |
958 | _ATEOF | |
959 | exit $at_write_fail | |
960 | fi | |
961 | ||
962 | # Should we print banners? Yes if more than one test is run. | |
963 | case $at_groups in #( | |
964 | *$as_nl* ) | |
965 | at_print_banners=: ;; #( | |
966 | * ) at_print_banners=false ;; | |
967 | esac | |
968 | # Text for banner N, set to a single space once printed. | |
969 | # Banner 1. testsuite.at:4 | |
970 | # Category starts at test group 1. | |
971 | at_banner_text_1="Binary .deb packages" | |
972 | # Banner 2. testsuite.at:9 | |
973 | # Category starts at test group 5. | |
974 | at_banner_text_2="Split .deb packages" | |
975 | ||
976 | # Take any -C into account. | |
977 | if $at_change_dir ; then | |
978 | test x != "x$at_dir" && cd "$at_dir" \ | |
979 | || as_fn_error $? "unable to change directory" | |
980 | at_dir=`pwd` | |
981 | fi | |
982 | ||
983 | # Load the config files for any default variable assignments. | |
984 | for at_file in atconfig atlocal | |
985 | do | |
986 | test -r $at_file || continue | |
987 | . ./$at_file || as_fn_error $? "invalid content: $at_file" | |
988 | done | |
989 | ||
990 | # Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix: | |
991 | : "${at_top_build_prefix=$at_top_builddir}" | |
992 | ||
993 | # Perform any assignments requested during argument parsing. | |
994 | eval "$at_debug_args" | |
995 | ||
996 | # atconfig delivers names relative to the directory the test suite is | |
997 | # in, but the groups themselves are run in testsuite-dir/group-dir. | |
998 | if test -n "$at_top_srcdir"; then | |
999 | builddir=../.. | |
1000 | for at_dir_var in srcdir top_srcdir top_build_prefix | |
1001 | do | |
1002 | eval at_val=\$at_$at_dir_var | |
1003 | case $at_val in | |
1004 | [\\/$]* | ?:[\\/]* ) at_prefix= ;; | |
1005 | *) at_prefix=../../ ;; | |
1006 | esac | |
1007 | eval "$at_dir_var=\$at_prefix\$at_val" | |
1008 | done | |
1009 | fi | |
1010 | ||
1011 | ## -------------------- ## | |
1012 | ## Directory structure. ## | |
1013 | ## -------------------- ## | |
1014 | ||
1015 | # This is the set of directories and files used by this script | |
1016 | # (non-literals are capitalized): | |
1017 | # | |
1018 | # TESTSUITE - the testsuite | |
1019 | # TESTSUITE.log - summarizes the complete testsuite run | |
1020 | # TESTSUITE.dir/ - created during a run, remains after -d or failed test | |
1021 | # + at-groups/ - during a run: status of all groups in run | |
1022 | # | + NNN/ - during a run: meta-data about test group NNN | |
1023 | # | | + check-line - location (source file and line) of current AT_CHECK | |
1024 | # | | + status - exit status of current AT_CHECK | |
1025 | # | | + stdout - stdout of current AT_CHECK | |
1026 | # | | + stder1 - stderr, including trace | |
1027 | # | | + stderr - stderr, with trace filtered out | |
1028 | # | | + test-source - portion of testsuite that defines group | |
1029 | # | | + times - timestamps for computing duration | |
1030 | # | | + pass - created if group passed | |
1031 | # | | + xpass - created if group xpassed | |
1032 | # | | + fail - created if group failed | |
1033 | # | | + xfail - created if group xfailed | |
1034 | # | | + skip - created if group skipped | |
1035 | # + at-stop - during a run: end the run if this file exists | |
1036 | # + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction | |
1037 | # + 0..NNN/ - created for each group NNN, remains after -d or failed test | |
1038 | # | + TESTSUITE.log - summarizes the group results | |
1039 | # | + ... - files created during the group | |
1040 | ||
1041 | # The directory the whole suite works in. | |
1042 | # Should be absolute to let the user `cd' at will. | |
1043 | at_suite_dir=$at_dir/$as_me.dir | |
1044 | # The file containing the suite ($at_dir might have changed since earlier). | |
1045 | at_suite_log=$at_dir/$as_me.log | |
1046 | # The directory containing helper files per test group. | |
1047 | at_helper_dir=$at_suite_dir/at-groups | |
1048 | # Stop file: if it exists, do not start new jobs. | |
1049 | at_stop_file=$at_suite_dir/at-stop | |
1050 | # The fifo used for the job dispatcher. | |
1051 | at_job_fifo=$at_suite_dir/at-job-fifo | |
1052 | ||
1053 | if $at_clean; then | |
1054 | test -d "$at_suite_dir" && | |
1055 | find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; | |
1056 | rm -f -r "$at_suite_dir" "$at_suite_log" | |
1057 | exit $? | |
1058 | fi | |
1059 | ||
1060 | # Don't take risks: use only absolute directories in PATH. | |
1061 | # | |
1062 | # For stand-alone test suites (ie. atconfig was not found), | |
1063 | # AUTOTEST_PATH is relative to `.'. | |
1064 | # | |
1065 | # For embedded test suites, AUTOTEST_PATH is relative to the top level | |
1066 | # of the package. Then expand it into build/src parts, since users | |
1067 | # may create executables in both places. | |
1068 | AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"` | |
1069 | at_path= | |
1070 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
1071 | for as_dir in $AUTOTEST_PATH $PATH | |
1072 | do | |
1073 | IFS=$as_save_IFS | |
1074 | test -z "$as_dir" && as_dir=. | |
1075 | test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR | |
1076 | case $as_dir in | |
1077 | [\\/]* | ?:[\\/]* ) | |
1078 | as_fn_append at_path "$as_dir" | |
1079 | ;; | |
1080 | * ) | |
1081 | if test -z "$at_top_build_prefix"; then | |
1082 | # Stand-alone test suite. | |
1083 | as_fn_append at_path "$as_dir" | |
1084 | else | |
1085 | # Embedded test suite. | |
1086 | as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR" | |
1087 | as_fn_append at_path "$at_top_srcdir/$as_dir" | |
1088 | fi | |
1089 | ;; | |
1090 | esac | |
1091 | done | |
1092 | IFS=$as_save_IFS | |
1093 | ||
1094 | ||
1095 | # Now build and simplify PATH. | |
1096 | # | |
1097 | # There might be directories that don't exist, but don't redirect | |
1098 | # builtins' (eg., cd) stderr directly: Ultrix's sh hates that. | |
1099 | at_new_path= | |
1100 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
1101 | for as_dir in $at_path | |
1102 | do | |
1103 | IFS=$as_save_IFS | |
1104 | test -z "$as_dir" && as_dir=. | |
1105 | test -d "$as_dir" || continue | |
1106 | case $as_dir in | |
1107 | [\\/]* | ?:[\\/]* ) ;; | |
1108 | * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;; | |
1109 | esac | |
1110 | case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in | |
1111 | *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;; | |
1112 | $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;; | |
1113 | *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;; | |
1114 | esac | |
1115 | done | |
1116 | IFS=$as_save_IFS | |
1117 | ||
1118 | PATH=$at_new_path | |
1119 | export PATH | |
1120 | ||
1121 | # Setting up the FDs. | |
1122 | ||
1123 | ||
1124 | ||
1125 | # 5 is the log file. Not to be overwritten if `-d'. | |
1126 | if $at_debug_p; then | |
1127 | at_suite_log=/dev/null | |
1128 | else | |
1129 | : >"$at_suite_log" | |
1130 | fi | |
1131 | exec 5>>"$at_suite_log" | |
1132 | ||
1133 | # Banners and logs. | |
1134 | $as_echo "## ---------------------------------------------------------- ## | |
1135 | ## dpkg 1.18.25 test suite: dpkg tools functional test suite. ## | |
1136 | ## ---------------------------------------------------------- ##" | |
1137 | { | |
1138 | $as_echo "## ---------------------------------------------------------- ## | |
1139 | ## dpkg 1.18.25 test suite: dpkg tools functional test suite. ## | |
1140 | ## ---------------------------------------------------------- ##" | |
1141 | echo | |
1142 | ||
1143 | $as_echo "$as_me: command line was:" | |
1144 | $as_echo " \$ $0 $at_cli_args" | |
1145 | echo | |
1146 | ||
1147 | # If ChangeLog exists, list a few lines in case it might help determining | |
1148 | # the exact version. | |
1149 | if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then | |
1150 | $as_echo "## ---------- ## | |
1151 | ## ChangeLog. ## | |
1152 | ## ---------- ##" | |
1153 | echo | |
1154 | sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog" | |
1155 | echo | |
1156 | fi | |
1157 | ||
1158 | { | |
1159 | cat <<_ASUNAME | |
1160 | ## --------- ## | |
1161 | ## Platform. ## | |
1162 | ## --------- ## | |
1163 | ||
1164 | hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` | |
1165 | uname -m = `(uname -m) 2>/dev/null || echo unknown` | |
1166 | uname -r = `(uname -r) 2>/dev/null || echo unknown` | |
1167 | uname -s = `(uname -s) 2>/dev/null || echo unknown` | |
1168 | uname -v = `(uname -v) 2>/dev/null || echo unknown` | |
1169 | ||
1170 | /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` | |
1171 | /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` | |
1172 | ||
1173 | /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` | |
1174 | /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` | |
1175 | /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` | |
1176 | /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` | |
1177 | /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` | |
1178 | /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` | |
1179 | /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` | |
1180 | ||
1181 | _ASUNAME | |
1182 | ||
1183 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
1184 | for as_dir in $PATH | |
1185 | do | |
1186 | IFS=$as_save_IFS | |
1187 | test -z "$as_dir" && as_dir=. | |
1188 | $as_echo "PATH: $as_dir" | |
1189 | done | |
1190 | IFS=$as_save_IFS | |
1191 | ||
1192 | } | |
1193 | echo | |
1194 | ||
1195 | # Contents of the config files. | |
1196 | for at_file in atconfig atlocal | |
1197 | do | |
1198 | test -r $at_file || continue | |
1199 | $as_echo "$as_me: $at_file:" | |
1200 | sed 's/^/| /' $at_file | |
1201 | echo | |
1202 | done | |
1203 | } >&5 | |
1204 | ||
1205 | ||
1206 | ## ------------------------- ## | |
1207 | ## Autotest shell functions. ## | |
1208 | ## ------------------------- ## | |
1209 | ||
1210 | # at_fn_banner NUMBER | |
1211 | # ------------------- | |
1212 | # Output banner NUMBER, provided the testsuite is running multiple groups and | |
1213 | # this particular banner has not yet been printed. | |
1214 | at_fn_banner () | |
1215 | { | |
1216 | $at_print_banners || return 0 | |
1217 | eval at_banner_text=\$at_banner_text_$1 | |
1218 | test "x$at_banner_text" = "x " && return 0 | |
1219 | eval "at_banner_text_$1=\" \"" | |
1220 | if test -z "$at_banner_text"; then | |
1221 | $at_first || echo | |
1222 | else | |
1223 | $as_echo "$as_nl$at_banner_text$as_nl" | |
1224 | fi | |
1225 | } # at_fn_banner | |
1226 | ||
1227 | # at_fn_check_prepare_notrace REASON LINE | |
1228 | # --------------------------------------- | |
1229 | # Perform AT_CHECK preparations for the command at LINE for an untraceable | |
1230 | # command; REASON is the reason for disabling tracing. | |
1231 | at_fn_check_prepare_notrace () | |
1232 | { | |
1233 | $at_trace_echo "Not enabling shell tracing (command contains $1)" | |
1234 | $as_echo "$2" >"$at_check_line_file" | |
1235 | at_check_trace=: at_check_filter=: | |
1236 | : >"$at_stdout"; : >"$at_stderr" | |
1237 | } | |
1238 | ||
1239 | # at_fn_check_prepare_trace LINE | |
1240 | # ------------------------------ | |
1241 | # Perform AT_CHECK preparations for the command at LINE for a traceable | |
1242 | # command. | |
1243 | at_fn_check_prepare_trace () | |
1244 | { | |
1245 | $as_echo "$1" >"$at_check_line_file" | |
1246 | at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace | |
1247 | : >"$at_stdout"; : >"$at_stderr" | |
1248 | } | |
1249 | ||
1250 | # at_fn_check_prepare_dynamic COMMAND LINE | |
1251 | # ---------------------------------------- | |
1252 | # Decide if COMMAND at LINE is traceable at runtime, and call the appropriate | |
1253 | # preparation function. | |
1254 | at_fn_check_prepare_dynamic () | |
1255 | { | |
1256 | case $1 in | |
1257 | *$as_nl*) | |
1258 | at_fn_check_prepare_notrace 'an embedded newline' "$2" ;; | |
1259 | *) | |
1260 | at_fn_check_prepare_trace "$2" ;; | |
1261 | esac | |
1262 | } | |
1263 | ||
1264 | # at_fn_filter_trace | |
1265 | # ------------------ | |
1266 | # Remove the lines in the file "$at_stderr" generated by "set -x" and print | |
1267 | # them to stderr. | |
1268 | at_fn_filter_trace () | |
1269 | { | |
1270 | mv "$at_stderr" "$at_stder1" | |
1271 | grep '^ *+' "$at_stder1" >&2 | |
1272 | grep -v '^ *+' "$at_stder1" >"$at_stderr" | |
1273 | } | |
1274 | ||
1275 | # at_fn_log_failure FILE-LIST | |
1276 | # --------------------------- | |
1277 | # Copy the files in the list on stdout with a "> " prefix, and exit the shell | |
1278 | # with a failure exit code. | |
1279 | at_fn_log_failure () | |
1280 | { | |
1281 | for file | |
1282 | do $as_echo "$file:"; sed 's/^/> /' "$file"; done | |
1283 | echo 1 > "$at_status_file" | |
1284 | exit 1 | |
1285 | } | |
1286 | ||
1287 | # at_fn_check_skip EXIT-CODE LINE | |
1288 | # ------------------------------- | |
1289 | # Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit | |
1290 | # the test group subshell with that same exit code. Use LINE in any report | |
1291 | # about test failure. | |
1292 | at_fn_check_skip () | |
1293 | { | |
1294 | case $1 in | |
1295 | 99) echo 99 > "$at_status_file"; at_failed=: | |
1296 | $as_echo "$2: hard failure"; exit 99;; | |
1297 | 77) echo 77 > "$at_status_file"; exit 77;; | |
1298 | esac | |
1299 | } | |
1300 | ||
1301 | # at_fn_check_status EXPECTED EXIT-CODE LINE | |
1302 | # ------------------------------------------ | |
1303 | # Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing. | |
1304 | # Otherwise, if it is 77 or 99, exit the test group subshell with that same | |
1305 | # exit code; if it is anything else print an error message referring to LINE, | |
1306 | # and fail the test. | |
1307 | at_fn_check_status () | |
1308 | { | |
1309 | case $2 in | |
1310 | $1 ) ;; | |
1311 | 77) echo 77 > "$at_status_file"; exit 77;; | |
1312 | 99) echo 99 > "$at_status_file"; at_failed=: | |
1313 | $as_echo "$3: hard failure"; exit 99;; | |
1314 | *) $as_echo "$3: exit code was $2, expected $1" | |
1315 | at_failed=:;; | |
1316 | esac | |
1317 | } | |
1318 | ||
1319 | # at_fn_diff_devnull FILE | |
1320 | # ----------------------- | |
1321 | # Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff | |
1322 | # invocations. | |
1323 | at_fn_diff_devnull () | |
1324 | { | |
1325 | test -s "$1" || return 0 | |
1326 | $at_diff "$at_devnull" "$1" | |
1327 | } | |
1328 | ||
1329 | # at_fn_test NUMBER | |
1330 | # ----------------- | |
1331 | # Parse out test NUMBER from the tail of this file. | |
1332 | at_fn_test () | |
1333 | { | |
1334 | eval at_sed=\$at_sed$1 | |
1335 | sed "$at_sed" "$at_myself" > "$at_test_source" | |
1336 | } | |
1337 | ||
1338 | # at_fn_create_debugging_script | |
1339 | # ----------------------------- | |
1340 | # Create the debugging script $at_group_dir/run which will reproduce the | |
1341 | # current test group. | |
1342 | at_fn_create_debugging_script () | |
1343 | { | |
1344 | { | |
1345 | echo "#! /bin/sh" && | |
1346 | echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' && | |
1347 | $as_echo "cd '$at_dir'" && | |
1348 | $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" && | |
1349 | echo 'exit 1' | |
1350 | } >"$at_group_dir/run" && | |
1351 | chmod +x "$at_group_dir/run" | |
1352 | } | |
1353 | ||
1354 | ## -------------------------------- ## | |
1355 | ## End of autotest shell functions. ## | |
1356 | ## -------------------------------- ## | |
1357 | { | |
1358 | $as_echo "## ---------------- ## | |
1359 | ## Tested programs. ## | |
1360 | ## ---------------- ##" | |
1361 | echo | |
1362 | } >&5 | |
1363 | ||
1364 | # Report what programs are being tested. | |
1365 | for at_program in : $at_tested | |
1366 | do | |
1367 | test "$at_program" = : && continue | |
1368 | case $at_program in | |
1369 | [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;; | |
1370 | * ) | |
1371 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
1372 | for as_dir in $PATH | |
1373 | do | |
1374 | IFS=$as_save_IFS | |
1375 | test -z "$as_dir" && as_dir=. | |
1376 | test -f "$as_dir/$at_program" && break | |
1377 | done | |
1378 | IFS=$as_save_IFS | |
1379 | ||
1380 | at_program_=$as_dir/$at_program ;; | |
1381 | esac | |
1382 | if test -f "$at_program_"; then | |
1383 | { | |
1384 | $as_echo "$at_srcdir/testsuite.at:1: $at_program_ --version" | |
1385 | "$at_program_" --version </dev/null | |
1386 | echo | |
1387 | } >&5 2>&1 | |
1388 | else | |
1389 | as_fn_error $? "cannot find $at_program" "$LINENO" 5 | |
1390 | fi | |
1391 | done | |
1392 | ||
1393 | { | |
1394 | $as_echo "## ------------------ ## | |
1395 | ## Running the tests. ## | |
1396 | ## ------------------ ##" | |
1397 | } >&5 | |
1398 | ||
1399 | at_start_date=`date` | |
1400 | at_start_time=`date +%s 2>/dev/null` | |
1401 | $as_echo "$as_me: starting at: $at_start_date" >&5 | |
1402 | ||
1403 | # Create the master directory if it doesn't already exist. | |
1404 | as_dir="$at_suite_dir"; as_fn_mkdir_p || | |
1405 | as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5 | |
1406 | ||
1407 | # Can we diff with `/dev/null'? DU 5.0 refuses. | |
1408 | if diff /dev/null /dev/null >/dev/null 2>&1; then | |
1409 | at_devnull=/dev/null | |
1410 | else | |
1411 | at_devnull=$at_suite_dir/devnull | |
1412 | >"$at_devnull" | |
1413 | fi | |
1414 | ||
1415 | # Use `diff -u' when possible. | |
1416 | if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff" | |
1417 | then | |
1418 | at_diff='diff -u' | |
1419 | else | |
1420 | at_diff=diff | |
1421 | fi | |
1422 | ||
1423 | # Get the last needed group. | |
1424 | for at_group in : $at_groups; do :; done | |
1425 | ||
1426 | # Extract the start and end lines of each test group at the tail | |
1427 | # of this file | |
1428 | awk ' | |
1429 | BEGIN { FS="\a" } | |
1430 | /^#AT_START_/ { | |
1431 | start = NR | |
1432 | } | |
1433 | /^#AT_STOP_/ { | |
1434 | test = substr ($ 0, 10) | |
1435 | print "at_sed" test "=\"1," start "d;" (NR-1) "q\"" | |
1436 | if (test == "'"$at_group"'") exit | |
1437 | }' "$at_myself" > "$at_suite_dir/at-source-lines" && | |
1438 | . "$at_suite_dir/at-source-lines" || | |
1439 | as_fn_error $? "cannot create test line number cache" "$LINENO" 5 | |
1440 | rm -f "$at_suite_dir/at-source-lines" | |
1441 | ||
1442 | # Set number of jobs for `-j'; avoid more jobs than test groups. | |
1443 | set X $at_groups; shift; at_max_jobs=$# | |
1444 | if test $at_max_jobs -eq 0; then | |
1445 | at_jobs=1 | |
1446 | fi | |
1447 | if test $at_jobs -ne 1 && | |
1448 | { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then | |
1449 | at_jobs=$at_max_jobs | |
1450 | fi | |
1451 | ||
1452 | # If parallel mode, don't output banners, don't split summary lines. | |
1453 | if test $at_jobs -ne 1; then | |
1454 | at_print_banners=false | |
1455 | at_quiet=: | |
1456 | fi | |
1457 | ||
1458 | # Set up helper dirs. | |
1459 | rm -rf "$at_helper_dir" && | |
1460 | mkdir "$at_helper_dir" && | |
1461 | cd "$at_helper_dir" && | |
1462 | { test -z "$at_groups" || mkdir $at_groups; } || | |
1463 | as_fn_error $? "testsuite directory setup failed" "$LINENO" 5 | |
1464 | ||
1465 | # Functions for running a test group. We leave the actual | |
1466 | # test group execution outside of a shell function in order | |
1467 | # to avoid hitting zsh 4.x exit status bugs. | |
1468 | ||
1469 | # at_fn_group_prepare | |
1470 | # ------------------- | |
1471 | # Prepare for running a test group. | |
1472 | at_fn_group_prepare () | |
1473 | { | |
1474 | # The directory for additional per-group helper files. | |
1475 | at_job_dir=$at_helper_dir/$at_group | |
1476 | # The file containing the location of the last AT_CHECK. | |
1477 | at_check_line_file=$at_job_dir/check-line | |
1478 | # The file containing the exit status of the last command. | |
1479 | at_status_file=$at_job_dir/status | |
1480 | # The files containing the output of the tested commands. | |
1481 | at_stdout=$at_job_dir/stdout | |
1482 | at_stder1=$at_job_dir/stder1 | |
1483 | at_stderr=$at_job_dir/stderr | |
1484 | # The file containing the code for a test group. | |
1485 | at_test_source=$at_job_dir/test-source | |
1486 | # The file containing dates. | |
1487 | at_times_file=$at_job_dir/times | |
1488 | ||
1489 | # Be sure to come back to the top test directory. | |
1490 | cd "$at_suite_dir" | |
1491 | ||
1492 | # Clearly separate the test groups when verbose. | |
1493 | $at_first || $at_verbose echo | |
1494 | ||
1495 | at_group_normalized=$at_group | |
1496 | ||
1497 | eval 'while :; do | |
1498 | case $at_group_normalized in #( | |
1499 | '"$at_format"'*) break;; | |
1500 | esac | |
1501 | at_group_normalized=0$at_group_normalized | |
1502 | done' | |
1503 | ||
1504 | ||
1505 | # Create a fresh directory for the next test group, and enter. | |
1506 | # If one already exists, the user may have invoked ./run from | |
1507 | # within that directory; we remove the contents, but not the | |
1508 | # directory itself, so that we aren't pulling the rug out from | |
1509 | # under the shell's notion of the current directory. | |
1510 | at_group_dir=$at_suite_dir/$at_group_normalized | |
1511 | at_group_log=$at_group_dir/$as_me.log | |
1512 | if test -d "$at_group_dir"; then | |
1513 | find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \; | |
1514 | rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??* | |
1515 | fi || | |
1516 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5 | |
1517 | $as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;} | |
1518 | # Be tolerant if the above `rm' was not able to remove the directory. | |
1519 | as_dir="$at_group_dir"; as_fn_mkdir_p | |
1520 | ||
1521 | echo 0 > "$at_status_file" | |
1522 | ||
1523 | # In verbose mode, append to the log file *and* show on | |
1524 | # the standard output; in quiet mode only write to the log. | |
1525 | if test -z "$at_verbose"; then | |
1526 | at_tee_pipe='tee -a "$at_group_log"' | |
1527 | else | |
1528 | at_tee_pipe='cat >> "$at_group_log"' | |
1529 | fi | |
1530 | } | |
1531 | ||
1532 | # at_fn_group_banner ORDINAL LINE DESC PAD [BANNER] | |
1533 | # ------------------------------------------------- | |
1534 | # Declare the test group ORDINAL, located at LINE with group description DESC, | |
1535 | # and residing under BANNER. Use PAD to align the status column. | |
1536 | at_fn_group_banner () | |
1537 | { | |
1538 | at_setup_line="$2" | |
1539 | test -n "$5" && at_fn_banner $5 | |
1540 | at_desc="$3" | |
1541 | case $1 in | |
1542 | [0-9]) at_desc_line=" $1: ";; | |
1543 | [0-9][0-9]) at_desc_line=" $1: " ;; | |
1544 | *) at_desc_line="$1: " ;; | |
1545 | esac | |
1546 | as_fn_append at_desc_line "$3$4" | |
1547 | $at_quiet $as_echo_n "$at_desc_line" | |
1548 | echo "# -*- compilation -*-" >> "$at_group_log" | |
1549 | } | |
1550 | ||
1551 | # at_fn_group_postprocess | |
1552 | # ----------------------- | |
1553 | # Perform cleanup after running a test group. | |
1554 | at_fn_group_postprocess () | |
1555 | { | |
1556 | # Be sure to come back to the suite directory, in particular | |
1557 | # since below we might `rm' the group directory we are in currently. | |
1558 | cd "$at_suite_dir" | |
1559 | ||
1560 | if test ! -f "$at_check_line_file"; then | |
1561 | sed "s/^ */$as_me: WARNING: /" <<_ATEOF | |
1562 | A failure happened in a test group before any test could be | |
1563 | run. This means that test suite is improperly designed. Please | |
1564 | report this failure to <debian-dpkg@lists.debian.org>. | |
1565 | _ATEOF | |
1566 | $as_echo "$at_setup_line" >"$at_check_line_file" | |
1567 | at_status=99 | |
1568 | fi | |
1569 | $at_verbose $as_echo_n "$at_group. $at_setup_line: " | |
1570 | $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log" | |
1571 | case $at_xfail:$at_status in | |
1572 | yes:0) | |
1573 | at_msg="UNEXPECTED PASS" | |
1574 | at_res=xpass | |
1575 | at_errexit=$at_errexit_p | |
1576 | at_color=$at_red | |
1577 | ;; | |
1578 | no:0) | |
1579 | at_msg="ok" | |
1580 | at_res=pass | |
1581 | at_errexit=false | |
1582 | at_color=$at_grn | |
1583 | ;; | |
1584 | *:77) | |
1585 | at_msg='skipped ('`cat "$at_check_line_file"`')' | |
1586 | at_res=skip | |
1587 | at_errexit=false | |
1588 | at_color=$at_blu | |
1589 | ;; | |
1590 | no:* | *:99) | |
1591 | at_msg='FAILED ('`cat "$at_check_line_file"`')' | |
1592 | at_res=fail | |
1593 | at_errexit=$at_errexit_p | |
1594 | at_color=$at_red | |
1595 | ;; | |
1596 | yes:*) | |
1597 | at_msg='expected failure ('`cat "$at_check_line_file"`')' | |
1598 | at_res=xfail | |
1599 | at_errexit=false | |
1600 | at_color=$at_lgn | |
1601 | ;; | |
1602 | esac | |
1603 | echo "$at_res" > "$at_job_dir/$at_res" | |
1604 | # In parallel mode, output the summary line only afterwards. | |
1605 | if test $at_jobs -ne 1 && test -n "$at_verbose"; then | |
1606 | $as_echo "$at_desc_line $at_color$at_msg$at_std" | |
1607 | else | |
1608 | # Make sure there is a separator even with long titles. | |
1609 | $as_echo " $at_color$at_msg$at_std" | |
1610 | fi | |
1611 | at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg" | |
1612 | case $at_status in | |
1613 | 0|77) | |
1614 | # $at_times_file is only available if the group succeeded. | |
1615 | # We're not including the group log, so the success message | |
1616 | # is written in the global log separately. But we also | |
1617 | # write to the group log in case they're using -d. | |
1618 | if test -f "$at_times_file"; then | |
1619 | at_log_msg="$at_log_msg ("`sed 1d "$at_times_file"`')' | |
1620 | rm -f "$at_times_file" | |
1621 | fi | |
1622 | $as_echo "$at_log_msg" >> "$at_group_log" | |
1623 | $as_echo "$at_log_msg" >&5 | |
1624 | ||
1625 | # Cleanup the group directory, unless the user wants the files | |
1626 | # or the success was unexpected. | |
1627 | if $at_debug_p || test $at_res = xpass; then | |
1628 | at_fn_create_debugging_script | |
1629 | if test $at_res = xpass && $at_errexit; then | |
1630 | echo stop > "$at_stop_file" | |
1631 | fi | |
1632 | else | |
1633 | if test -d "$at_group_dir"; then | |
1634 | find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; | |
1635 | rm -fr "$at_group_dir" | |
1636 | fi | |
1637 | rm -f "$at_test_source" | |
1638 | fi | |
1639 | ;; | |
1640 | *) | |
1641 | # Upon failure, include the log into the testsuite's global | |
1642 | # log. The failure message is written in the group log. It | |
1643 | # is later included in the global log. | |
1644 | $as_echo "$at_log_msg" >> "$at_group_log" | |
1645 | ||
1646 | # Upon failure, keep the group directory for autopsy, and create | |
1647 | # the debugging script. With -e, do not start any further tests. | |
1648 | at_fn_create_debugging_script | |
1649 | if $at_errexit; then | |
1650 | echo stop > "$at_stop_file" | |
1651 | fi | |
1652 | ;; | |
1653 | esac | |
1654 | } | |
1655 | ||
1656 | ||
1657 | ## ------------ ## | |
1658 | ## Driver loop. ## | |
1659 | ## ------------ ## | |
1660 | ||
1661 | ||
1662 | if (set -m && set +m && set +b) >/dev/null 2>&1; then | |
1663 | set +b | |
1664 | at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=- | |
1665 | else | |
1666 | at_job_control_on=: at_job_control_off=: at_job_group= | |
1667 | fi | |
1668 | ||
1669 | for at_signal in 1 2 15; do | |
1670 | trap 'set +x; set +e | |
1671 | $at_job_control_off | |
1672 | at_signal='"$at_signal"' | |
1673 | echo stop > "$at_stop_file" | |
1674 | trap "" $at_signal | |
1675 | at_pgids= | |
1676 | for at_pgid in `jobs -p 2>/dev/null`; do | |
1677 | at_pgids="$at_pgids $at_job_group$at_pgid" | |
1678 | done | |
1679 | test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null | |
1680 | wait | |
1681 | if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then | |
1682 | echo >&2 | |
1683 | fi | |
1684 | at_signame=`kill -l $at_signal 2>&1 || echo $at_signal` | |
1685 | set x $at_signame | |
1686 | test 1 -gt 2 && at_signame=$at_signal | |
1687 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5 | |
1688 | $as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;} | |
1689 | as_fn_arith 128 + $at_signal && exit_status=$as_val | |
1690 | as_fn_exit $exit_status' $at_signal | |
1691 | done | |
1692 | ||
1693 | rm -f "$at_stop_file" | |
1694 | at_first=: | |
1695 | ||
1696 | if test $at_jobs -ne 1 && | |
1697 | rm -f "$at_job_fifo" && | |
1698 | test -n "$at_job_group" && | |
1699 | ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null | |
1700 | then | |
1701 | # FIFO job dispatcher. | |
1702 | ||
1703 | trap 'at_pids= | |
1704 | for at_pid in `jobs -p`; do | |
1705 | at_pids="$at_pids $at_job_group$at_pid" | |
1706 | done | |
1707 | if test -n "$at_pids"; then | |
1708 | at_sig=TSTP | |
1709 | test "${TMOUT+set}" = set && at_sig=STOP | |
1710 | kill -$at_sig $at_pids 2>/dev/null | |
1711 | fi | |
1712 | kill -STOP $$ | |
1713 | test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP | |
1714 | ||
1715 | echo | |
1716 | # Turn jobs into a list of numbers, starting from 1. | |
1717 | at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p` | |
1718 | ||
1719 | set X $at_joblist | |
1720 | shift | |
1721 | for at_group in $at_groups; do | |
1722 | $at_job_control_on 2>/dev/null | |
1723 | ( | |
1724 | # Start one test group. | |
1725 | $at_job_control_off | |
1726 | if $at_first; then | |
1727 | exec 7>"$at_job_fifo" | |
1728 | else | |
1729 | exec 6<&- | |
1730 | fi | |
1731 | trap 'set +x; set +e | |
1732 | trap "" PIPE | |
1733 | echo stop > "$at_stop_file" | |
1734 | echo >&7 | |
1735 | as_fn_exit 141' PIPE | |
1736 | at_fn_group_prepare | |
1737 | if cd "$at_group_dir" && | |
1738 | at_fn_test $at_group && | |
1739 | . "$at_test_source" | |
1740 | then :; else | |
1741 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5 | |
1742 | $as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;} | |
1743 | at_failed=: | |
1744 | fi | |
1745 | at_fn_group_postprocess | |
1746 | echo >&7 | |
1747 | ) & | |
1748 | $at_job_control_off | |
1749 | if $at_first; then | |
1750 | at_first=false | |
1751 | exec 6<"$at_job_fifo" 7>"$at_job_fifo" | |
1752 | fi | |
1753 | shift # Consume one token. | |
1754 | if test $# -gt 0; then :; else | |
1755 | read at_token <&6 || break | |
1756 | set x $* | |
1757 | fi | |
1758 | test -f "$at_stop_file" && break | |
1759 | done | |
1760 | exec 7>&- | |
1761 | # Read back the remaining ($at_jobs - 1) tokens. | |
1762 | set X $at_joblist | |
1763 | shift | |
1764 | if test $# -gt 0; then | |
1765 | shift | |
1766 | for at_job | |
1767 | do | |
1768 | read at_token | |
1769 | done <&6 | |
1770 | fi | |
1771 | exec 6<&- | |
1772 | wait | |
1773 | else | |
1774 | # Run serially, avoid forks and other potential surprises. | |
1775 | for at_group in $at_groups; do | |
1776 | at_fn_group_prepare | |
1777 | if cd "$at_group_dir" && | |
1778 | at_fn_test $at_group && | |
1779 | . "$at_test_source"; then :; else | |
1780 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5 | |
1781 | $as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;} | |
1782 | at_failed=: | |
1783 | fi | |
1784 | at_fn_group_postprocess | |
1785 | test -f "$at_stop_file" && break | |
1786 | at_first=false | |
1787 | done | |
1788 | fi | |
1789 | ||
1790 | # Wrap up the test suite with summary statistics. | |
1791 | cd "$at_helper_dir" | |
1792 | ||
1793 | # Use ?..???? when the list must remain sorted, the faster * otherwise. | |
1794 | at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'` | |
1795 | at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'` | |
1796 | at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'` | |
1797 | at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do | |
1798 | echo $f; done | sed '/?/d; s,/xpass,,'` | |
1799 | at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do | |
1800 | echo $f; done | sed '/?/d; s,/fail,,'` | |
1801 | ||
1802 | set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list | |
1803 | shift; at_group_count=$# | |
1804 | set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$* | |
1805 | set X $at_xfail_list; shift; at_xfail_count=$# | |
1806 | set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$* | |
1807 | set X $at_skip_list; shift; at_skip_count=$# | |
1808 | ||
1809 | as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val | |
1810 | as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val | |
1811 | as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val | |
1812 | ||
1813 | # Back to the top directory. | |
1814 | cd "$at_dir" | |
1815 | rm -rf "$at_helper_dir" | |
1816 | ||
1817 | # Compute the duration of the suite. | |
1818 | at_stop_date=`date` | |
1819 | at_stop_time=`date +%s 2>/dev/null` | |
1820 | $as_echo "$as_me: ending at: $at_stop_date" >&5 | |
1821 | case $at_start_time,$at_stop_time in | |
1822 | [0-9]*,[0-9]*) | |
1823 | as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val | |
1824 | as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val | |
1825 | as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val | |
1826 | as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val | |
1827 | as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val | |
1828 | at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s" | |
1829 | $as_echo "$as_me: test suite duration: $at_duration" >&5 | |
1830 | ;; | |
1831 | esac | |
1832 | ||
1833 | echo | |
1834 | $as_echo "## ------------- ## | |
1835 | ## Test results. ## | |
1836 | ## ------------- ##" | |
1837 | echo | |
1838 | { | |
1839 | echo | |
1840 | $as_echo "## ------------- ## | |
1841 | ## Test results. ## | |
1842 | ## ------------- ##" | |
1843 | echo | |
1844 | } >&5 | |
1845 | ||
1846 | if test $at_run_count = 1; then | |
1847 | at_result="1 test" | |
1848 | at_were=was | |
1849 | else | |
1850 | at_result="$at_run_count tests" | |
1851 | at_were=were | |
1852 | fi | |
1853 | if $at_errexit_p && test $at_unexpected_count != 0; then | |
1854 | if test $at_xpass_count = 1; then | |
1855 | at_result="$at_result $at_were run, one passed" | |
1856 | else | |
1857 | at_result="$at_result $at_were run, one failed" | |
1858 | fi | |
1859 | at_result="$at_result unexpectedly and inhibited subsequent tests." | |
1860 | at_color=$at_red | |
1861 | else | |
1862 | # Don't you just love exponential explosion of the number of cases? | |
1863 | at_color=$at_red | |
1864 | case $at_xpass_count:$at_fail_count:$at_xfail_count in | |
1865 | # So far, so good. | |
1866 | 0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;; | |
1867 | 0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;; | |
1868 | ||
1869 | # Some unexpected failures | |
1870 | 0:*:0) at_result="$at_result $at_were run, | |
1871 | $at_fail_count failed unexpectedly." ;; | |
1872 | ||
1873 | # Some failures, both expected and unexpected | |
1874 | 0:*:1) at_result="$at_result $at_were run, | |
1875 | $at_total_fail_count failed ($at_xfail_count expected failure)." ;; | |
1876 | 0:*:*) at_result="$at_result $at_were run, | |
1877 | $at_total_fail_count failed ($at_xfail_count expected failures)." ;; | |
1878 | ||
1879 | # No unexpected failures, but some xpasses | |
1880 | *:0:*) at_result="$at_result $at_were run, | |
1881 | $at_xpass_count passed unexpectedly." ;; | |
1882 | ||
1883 | # No expected failures, but failures and xpasses | |
1884 | *:1:0) at_result="$at_result $at_were run, | |
1885 | $at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;; | |
1886 | *:*:0) at_result="$at_result $at_were run, | |
1887 | $at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;; | |
1888 | ||
1889 | # All of them. | |
1890 | *:*:1) at_result="$at_result $at_were run, | |
1891 | $at_xpass_count passed unexpectedly, | |
1892 | $at_total_fail_count failed ($at_xfail_count expected failure)." ;; | |
1893 | *:*:*) at_result="$at_result $at_were run, | |
1894 | $at_xpass_count passed unexpectedly, | |
1895 | $at_total_fail_count failed ($at_xfail_count expected failures)." ;; | |
1896 | esac | |
1897 | ||
1898 | if test $at_skip_count = 0 && test $at_run_count -gt 1; then | |
1899 | at_result="All $at_result" | |
1900 | fi | |
1901 | fi | |
1902 | ||
1903 | # Now put skips in the mix. | |
1904 | case $at_skip_count in | |
1905 | 0) ;; | |
1906 | 1) at_result="$at_result | |
1907 | 1 test was skipped." ;; | |
1908 | *) at_result="$at_result | |
1909 | $at_skip_count tests were skipped." ;; | |
1910 | esac | |
1911 | ||
1912 | if test $at_unexpected_count = 0; then | |
1913 | echo "$at_color$at_result$at_std" | |
1914 | echo "$at_result" >&5 | |
1915 | else | |
1916 | echo "${at_color}ERROR: $at_result$at_std" >&2 | |
1917 | echo "ERROR: $at_result" >&5 | |
1918 | { | |
1919 | echo | |
1920 | $as_echo "## ------------------------ ## | |
1921 | ## Summary of the failures. ## | |
1922 | ## ------------------------ ##" | |
1923 | ||
1924 | # Summary of failed and skipped tests. | |
1925 | if test $at_fail_count != 0; then | |
1926 | echo "Failed tests:" | |
1927 | $SHELL "$at_myself" $at_fail_list --list | |
1928 | echo | |
1929 | fi | |
1930 | if test $at_skip_count != 0; then | |
1931 | echo "Skipped tests:" | |
1932 | $SHELL "$at_myself" $at_skip_list --list | |
1933 | echo | |
1934 | fi | |
1935 | if test $at_xpass_count != 0; then | |
1936 | echo "Unexpected passes:" | |
1937 | $SHELL "$at_myself" $at_xpass_list --list | |
1938 | echo | |
1939 | fi | |
1940 | if test $at_fail_count != 0; then | |
1941 | $as_echo "## ---------------------- ## | |
1942 | ## Detailed failed tests. ## | |
1943 | ## ---------------------- ##" | |
1944 | echo | |
1945 | for at_group in $at_fail_list | |
1946 | do | |
1947 | at_group_normalized=$at_group | |
1948 | ||
1949 | eval 'while :; do | |
1950 | case $at_group_normalized in #( | |
1951 | '"$at_format"'*) break;; | |
1952 | esac | |
1953 | at_group_normalized=0$at_group_normalized | |
1954 | done' | |
1955 | ||
1956 | cat "$at_suite_dir/$at_group_normalized/$as_me.log" | |
1957 | echo | |
1958 | done | |
1959 | echo | |
1960 | fi | |
1961 | if test -n "$at_top_srcdir"; then | |
1962 | sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX | |
1963 | ## ${at_top_build_prefix}config.log ## | |
1964 | _ASBOX | |
1965 | sed 's/^/| /' ${at_top_build_prefix}config.log | |
1966 | echo | |
1967 | fi | |
1968 | } >&5 | |
1969 | ||
1970 | sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX | |
1971 | ## $as_me.log was created. ## | |
1972 | _ASBOX | |
1973 | ||
1974 | echo | |
1975 | if $at_debug_p; then | |
1976 | at_msg='per-test log files' | |
1977 | else | |
1978 | at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'" | |
1979 | fi | |
1980 | $as_echo "Please send $at_msg and all information you think might help: | |
1981 | ||
1982 | To: <debian-dpkg@lists.debian.org> | |
1983 | Subject: [dpkg 1.18.25] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly} | |
1984 | ||
1985 | You may investigate any problem if you feel able to do so, in which | |
1986 | case the test suite provides a good starting point. Its output may | |
1987 | be found below \`${at_testdir+${at_testdir}/}$as_me.dir'. | |
1988 | " | |
1989 | exit 1 | |
1990 | fi | |
1991 | ||
1992 | exit 0 | |
1993 | ||
1994 | ## ------------- ## | |
1995 | ## Actual tests. ## | |
1996 | ## ------------- ## | |
1997 | #AT_START_1 | |
1998 | at_fn_group_banner 1 'deb-format.at:3' \ | |
1999 | "dpkg-deb options" " " 1 | |
2000 | at_xfail=no | |
2001 | ( | |
2002 | $as_echo "1. $at_setup_line: testing $at_desc ..." | |
2003 | $at_traceon | |
2004 | ||
2005 | ||
2006 | { set +x | |
2007 | $as_echo "$at_srcdir/deb-format.at:5: dpkg-deb --help" | |
2008 | at_fn_check_prepare_trace "deb-format.at:5" | |
2009 | ( $at_check_trace; dpkg-deb --help | |
2010 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2011 | at_status=$? at_failed=false | |
2012 | $at_check_filter | |
2013 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2014 | echo stdout:; cat "$at_stdout" | |
2015 | at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:5" | |
2016 | $at_failed && at_fn_log_failure | |
2017 | $at_traceon; } | |
2018 | ||
2019 | set +x | |
2020 | $at_times_p && times >"$at_times_file" | |
2021 | ) 5>&1 2>&1 7>&- | eval $at_tee_pipe | |
2022 | read at_status <"$at_status_file" | |
2023 | #AT_STOP_1 | |
2024 | #AT_START_2 | |
2025 | at_fn_group_banner 2 'deb-format.at:8' \ | |
2026 | "dpkg-deb .deb format" " " 1 | |
2027 | at_xfail=no | |
2028 | ( | |
2029 | $as_echo "2. $at_setup_line: testing $at_desc ..." | |
2030 | $at_traceon | |
2031 | ||
2032 | ||
2033 | ||
2034 | ||
2035 | mkdir -p 'pkg-deb-format/DEBIAN' | |
2036 | ||
2037 | cat >'pkg-deb-format/DEBIAN/control' <<CTRL_TEMPL | |
2038 | Package: pkg-deb-format | |
2039 | Version: 0.0-1 | |
2040 | Section: test | |
2041 | Priority: extra | |
2042 | Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org> | |
2043 | Architecture: all | |
2044 | Description: test package | |
2045 | CTRL_TEMPL | |
2046 | ||
2047 | ||
2048 | sed -i -e 's/^Description:.*$/& - deb format support/' 'pkg-deb-format/DEBIAN/control' | |
2049 | ||
2050 | cat >pkg-deb-format/file-templ <<'_ATEOF' | |
2051 | test | |
2052 | _ATEOF | |
2053 | ||
2054 | { set +x | |
2055 | $as_echo "$at_srcdir/deb-format.at:16: | |
2056 | # Initialize the template package | |
2057 | mv pkg-deb-format pkg-templ | |
2058 | chmod -R u+w pkg-templ | |
2059 | find pkg-templ | xargs touch -t 197001010100.00 | |
2060 | \$ASROOT dpkg-deb --uniform-compression -Znone -b pkg-templ >/dev/null | |
2061 | ||
2062 | # Extract the base members | |
2063 | ar x pkg-templ.deb | |
2064 | gzip -c control.tar >control.tar.gz | |
2065 | gzip -c data.tar >data.tar.gz | |
2066 | xz -c control.tar >control.tar.xz | |
2067 | xz -c data.tar >data.tar.xz | |
2068 | bzip2 -c data.tar >data.tar.bz2 | |
2069 | lzma -c data.tar >data.tar.lzma | |
2070 | touch _ignore | |
2071 | touch unknown | |
2072 | " | |
2073 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:16" | |
2074 | ( $at_check_trace; | |
2075 | # Initialize the template package | |
2076 | mv pkg-deb-format pkg-templ | |
2077 | chmod -R u+w pkg-templ | |
2078 | find pkg-templ | xargs touch -t 197001010100.00 | |
2079 | $ASROOT dpkg-deb --uniform-compression -Znone -b pkg-templ >/dev/null | |
2080 | ||
2081 | # Extract the base members | |
2082 | ar x pkg-templ.deb | |
2083 | gzip -c control.tar >control.tar.gz | |
2084 | gzip -c data.tar >data.tar.gz | |
2085 | xz -c control.tar >control.tar.xz | |
2086 | xz -c data.tar >data.tar.xz | |
2087 | bzip2 -c data.tar >data.tar.bz2 | |
2088 | lzma -c data.tar >data.tar.lzma | |
2089 | touch _ignore | |
2090 | touch unknown | |
2091 | ||
2092 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2093 | at_status=$? at_failed=false | |
2094 | $at_check_filter | |
2095 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2096 | at_fn_diff_devnull "$at_stdout" || at_failed=: | |
2097 | at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:16" | |
2098 | $at_failed && at_fn_log_failure | |
2099 | $at_traceon; } | |
2100 | ||
2101 | ||
2102 | { set +x | |
2103 | $as_echo "$at_srcdir/deb-format.at:35: | |
2104 | # Test debian-binary with 2.x versions | |
2105 | cp pkg-templ.deb pkg-version-2x.deb | |
2106 | echo 2.999 >debian-binary | |
2107 | ar rc pkg-version-2x.deb debian-binary | |
2108 | ar t pkg-version-2x.deb | |
2109 | ar x pkg-templ.deb debian-binary | |
2110 | # XXX: Ideally we would have no need to strip trailing spaces. | |
2111 | dpkg-deb -I pkg-version-2x.deb | sed -e 's/ *\$//' | |
2112 | " | |
2113 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:35" | |
2114 | ( $at_check_trace; | |
2115 | # Test debian-binary with 2.x versions | |
2116 | cp pkg-templ.deb pkg-version-2x.deb | |
2117 | echo 2.999 >debian-binary | |
2118 | ar rc pkg-version-2x.deb debian-binary | |
2119 | ar t pkg-version-2x.deb | |
2120 | ar x pkg-templ.deb debian-binary | |
2121 | # XXX: Ideally we would have no need to strip trailing spaces. | |
2122 | dpkg-deb -I pkg-version-2x.deb | sed -e 's/ *$//' | |
2123 | ||
2124 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2125 | at_status=$? at_failed=false | |
2126 | $at_check_filter | |
2127 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2128 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2129 | control.tar | |
2130 | data.tar | |
2131 | new debian package, version 2.999. | |
2132 | size 20674 bytes: control archive=10240 bytes. | |
2133 | 193 bytes, 7 lines control | |
2134 | Package: pkg-deb-format | |
2135 | Version: 0.0-1 | |
2136 | Section: test | |
2137 | Priority: extra | |
2138 | Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org> | |
2139 | Architecture: all | |
2140 | Description: test package - deb format support | |
2141 | " | \ | |
2142 | $at_diff - "$at_stdout" || at_failed=: | |
2143 | at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:35" | |
2144 | $at_failed && at_fn_log_failure | |
2145 | $at_traceon; } | |
2146 | ||
2147 | ||
2148 | { set +x | |
2149 | $as_echo "$at_srcdir/deb-format.at:59: | |
2150 | # Test debian-binary with extra lines | |
2151 | cp pkg-templ.deb pkg-magic-extra.deb | |
2152 | echo \"extra line\" >>debian-binary | |
2153 | ar rc pkg-magic-extra.deb debian-binary | |
2154 | ar t pkg-magic-extra.deb | |
2155 | ar x pkg-templ.deb debian-binary | |
2156 | # XXX: Ideally we would have no need to strip trailing spaces. | |
2157 | dpkg-deb -I pkg-magic-extra.deb | sed -e 's/ *\$//' | |
2158 | " | |
2159 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:59" | |
2160 | ( $at_check_trace; | |
2161 | # Test debian-binary with extra lines | |
2162 | cp pkg-templ.deb pkg-magic-extra.deb | |
2163 | echo "extra line" >>debian-binary | |
2164 | ar rc pkg-magic-extra.deb debian-binary | |
2165 | ar t pkg-magic-extra.deb | |
2166 | ar x pkg-templ.deb debian-binary | |
2167 | # XXX: Ideally we would have no need to strip trailing spaces. | |
2168 | dpkg-deb -I pkg-magic-extra.deb | sed -e 's/ *$//' | |
2169 | ||
2170 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2171 | at_status=$? at_failed=false | |
2172 | $at_check_filter | |
2173 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2174 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2175 | control.tar | |
2176 | data.tar | |
2177 | new debian package, version 2.0. | |
2178 | size 20684 bytes: control archive=10240 bytes. | |
2179 | 193 bytes, 7 lines control | |
2180 | Package: pkg-deb-format | |
2181 | Version: 0.0-1 | |
2182 | Section: test | |
2183 | Priority: extra | |
2184 | Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org> | |
2185 | Architecture: all | |
2186 | Description: test package - deb format support | |
2187 | " | \ | |
2188 | $at_diff - "$at_stdout" || at_failed=: | |
2189 | at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:59" | |
2190 | $at_failed && at_fn_log_failure | |
2191 | $at_traceon; } | |
2192 | ||
2193 | ||
2194 | { set +x | |
2195 | $as_echo "$at_srcdir/deb-format.at:83: | |
2196 | # Test missing debian-binary member | |
2197 | cp pkg-templ.deb pkg-missing-magic.deb | |
2198 | ar d pkg-missing-magic.deb debian-binary | |
2199 | ar t pkg-missing-magic.deb | |
2200 | dpkg-deb -I pkg-missing-magic.deb | |
2201 | " | |
2202 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:83" | |
2203 | ( $at_check_trace; | |
2204 | # Test missing debian-binary member | |
2205 | cp pkg-templ.deb pkg-missing-magic.deb | |
2206 | ar d pkg-missing-magic.deb debian-binary | |
2207 | ar t pkg-missing-magic.deb | |
2208 | dpkg-deb -I pkg-missing-magic.deb | |
2209 | ||
2210 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2211 | at_status=$? at_failed=false | |
2212 | $at_check_filter | |
2213 | echo >>"$at_stderr"; $as_echo "dpkg-deb: error: file 'pkg-missing-magic.deb' is not a debian binary archive (try dpkg-split?) | |
2214 | " | \ | |
2215 | $at_diff - "$at_stderr" || at_failed=: | |
2216 | echo >>"$at_stdout"; $as_echo "control.tar | |
2217 | data.tar | |
2218 | " | \ | |
2219 | $at_diff - "$at_stdout" || at_failed=: | |
2220 | at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:83" | |
2221 | $at_failed && at_fn_log_failure | |
2222 | $at_traceon; } | |
2223 | ||
2224 | ||
2225 | { set +x | |
2226 | $as_echo "$at_srcdir/deb-format.at:94: | |
2227 | # Test missing control member | |
2228 | cp pkg-templ.deb pkg-missing-control.deb | |
2229 | ar d pkg-missing-control.deb control.tar | |
2230 | ar t pkg-missing-control.deb | |
2231 | dpkg-deb -I pkg-missing-control.deb | |
2232 | " | |
2233 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:94" | |
2234 | ( $at_check_trace; | |
2235 | # Test missing control member | |
2236 | cp pkg-templ.deb pkg-missing-control.deb | |
2237 | ar d pkg-missing-control.deb control.tar | |
2238 | ar t pkg-missing-control.deb | |
2239 | dpkg-deb -I pkg-missing-control.deb | |
2240 | ||
2241 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2242 | at_status=$? at_failed=false | |
2243 | $at_check_filter | |
2244 | echo >>"$at_stderr"; $as_echo "dpkg-deb: error: archive 'pkg-missing-control.deb' has premature member 'data.tar' before 'control.tar', giving up | |
2245 | " | \ | |
2246 | $at_diff - "$at_stderr" || at_failed=: | |
2247 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2248 | data.tar | |
2249 | " | \ | |
2250 | $at_diff - "$at_stdout" || at_failed=: | |
2251 | at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:94" | |
2252 | $at_failed && at_fn_log_failure | |
2253 | $at_traceon; } | |
2254 | ||
2255 | ||
2256 | { set +x | |
2257 | $as_echo "$at_srcdir/deb-format.at:105: | |
2258 | # Test missing data member | |
2259 | cp pkg-templ.deb pkg-missing-data.deb | |
2260 | ar d pkg-missing-data.deb data.tar | |
2261 | ar t pkg-missing-data.deb | |
2262 | dpkg-deb -c pkg-missing-data.deb | |
2263 | " | |
2264 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:105" | |
2265 | ( $at_check_trace; | |
2266 | # Test missing data member | |
2267 | cp pkg-templ.deb pkg-missing-data.deb | |
2268 | ar d pkg-missing-data.deb data.tar | |
2269 | ar t pkg-missing-data.deb | |
2270 | dpkg-deb -c pkg-missing-data.deb | |
2271 | ||
2272 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2273 | at_status=$? at_failed=false | |
2274 | $at_check_filter | |
2275 | echo >>"$at_stderr"; $as_echo "dpkg-deb: error: unexpected end of file in archive member header in pkg-missing-data.deb | |
2276 | " | \ | |
2277 | $at_diff - "$at_stderr" || at_failed=: | |
2278 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2279 | control.tar | |
2280 | " | \ | |
2281 | $at_diff - "$at_stdout" || at_failed=: | |
2282 | at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:105" | |
2283 | $at_failed && at_fn_log_failure | |
2284 | $at_traceon; } | |
2285 | ||
2286 | ||
2287 | { set +x | |
2288 | $as_echo "$at_srcdir/deb-format.at:116: | |
2289 | # Test mixed member (index 1) | |
2290 | cp pkg-templ.deb pkg-mixed-1-member.deb | |
2291 | ar ra debian-binary pkg-mixed-1-member.deb unknown | |
2292 | ar t pkg-mixed-1-member.deb | |
2293 | dpkg-deb -I pkg-mixed-1-member.deb | |
2294 | " | |
2295 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:116" | |
2296 | ( $at_check_trace; | |
2297 | # Test mixed member (index 1) | |
2298 | cp pkg-templ.deb pkg-mixed-1-member.deb | |
2299 | ar ra debian-binary pkg-mixed-1-member.deb unknown | |
2300 | ar t pkg-mixed-1-member.deb | |
2301 | dpkg-deb -I pkg-mixed-1-member.deb | |
2302 | ||
2303 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2304 | at_status=$? at_failed=false | |
2305 | $at_check_filter | |
2306 | echo >>"$at_stderr"; $as_echo "dpkg-deb: error: archive 'pkg-mixed-1-member.deb' has premature member 'unknown' before 'control.tar', giving up | |
2307 | " | \ | |
2308 | $at_diff - "$at_stderr" || at_failed=: | |
2309 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2310 | unknown | |
2311 | control.tar | |
2312 | data.tar | |
2313 | " | \ | |
2314 | $at_diff - "$at_stdout" || at_failed=: | |
2315 | at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:116" | |
2316 | $at_failed && at_fn_log_failure | |
2317 | $at_traceon; } | |
2318 | ||
2319 | ||
2320 | { set +x | |
2321 | $as_echo "$at_srcdir/deb-format.at:129: | |
2322 | # Test mixed member (index 2) | |
2323 | cp pkg-templ.deb pkg-mixed-2-member.deb | |
2324 | ar ra control.tar pkg-mixed-2-member.deb unknown | |
2325 | ar t pkg-mixed-2-member.deb | |
2326 | dpkg-deb -c pkg-mixed-2-member.deb | |
2327 | " | |
2328 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:129" | |
2329 | ( $at_check_trace; | |
2330 | # Test mixed member (index 2) | |
2331 | cp pkg-templ.deb pkg-mixed-2-member.deb | |
2332 | ar ra control.tar pkg-mixed-2-member.deb unknown | |
2333 | ar t pkg-mixed-2-member.deb | |
2334 | dpkg-deb -c pkg-mixed-2-member.deb | |
2335 | ||
2336 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2337 | at_status=$? at_failed=false | |
2338 | $at_check_filter | |
2339 | echo >>"$at_stderr"; $as_echo "dpkg-deb: error: archive 'pkg-mixed-2-member.deb' has premature member 'unknown' before 'data.tar', giving up | |
2340 | " | \ | |
2341 | $at_diff - "$at_stderr" || at_failed=: | |
2342 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2343 | control.tar | |
2344 | unknown | |
2345 | data.tar | |
2346 | " | \ | |
2347 | $at_diff - "$at_stdout" || at_failed=: | |
2348 | at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:129" | |
2349 | $at_failed && at_fn_log_failure | |
2350 | $at_traceon; } | |
2351 | ||
2352 | ||
2353 | { set +x | |
2354 | $as_echo "$at_srcdir/deb-format.at:142: | |
2355 | # Test swapped control and data members | |
2356 | cp pkg-templ.deb pkg-swap-members.deb | |
2357 | ar ma data.tar pkg-swap-members.deb control.tar | |
2358 | ar t pkg-swap-members.deb | |
2359 | dpkg-deb -I pkg-swap-members.deb | |
2360 | " | |
2361 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:142" | |
2362 | ( $at_check_trace; | |
2363 | # Test swapped control and data members | |
2364 | cp pkg-templ.deb pkg-swap-members.deb | |
2365 | ar ma data.tar pkg-swap-members.deb control.tar | |
2366 | ar t pkg-swap-members.deb | |
2367 | dpkg-deb -I pkg-swap-members.deb | |
2368 | ||
2369 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2370 | at_status=$? at_failed=false | |
2371 | $at_check_filter | |
2372 | echo >>"$at_stderr"; $as_echo "dpkg-deb: error: archive 'pkg-swap-members.deb' has premature member 'data.tar' before 'control.tar', giving up | |
2373 | " | \ | |
2374 | $at_diff - "$at_stderr" || at_failed=: | |
2375 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2376 | data.tar | |
2377 | control.tar | |
2378 | " | \ | |
2379 | $at_diff - "$at_stdout" || at_failed=: | |
2380 | at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:142" | |
2381 | $at_failed && at_fn_log_failure | |
2382 | $at_traceon; } | |
2383 | ||
2384 | ||
2385 | { set +x | |
2386 | $as_echo "$at_srcdir/deb-format.at:154: | |
2387 | # Test extra member | |
2388 | cp pkg-templ.deb pkg-extra-member.deb | |
2389 | ar q pkg-extra-member.deb unknown | |
2390 | ar t pkg-extra-member.deb | |
2391 | # XXX: Ideally we would have no need to strip trailing spaces. | |
2392 | dpkg-deb -I pkg-extra-member.deb | sed -e 's/ *\$//' | |
2393 | " | |
2394 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:154" | |
2395 | ( $at_check_trace; | |
2396 | # Test extra member | |
2397 | cp pkg-templ.deb pkg-extra-member.deb | |
2398 | ar q pkg-extra-member.deb unknown | |
2399 | ar t pkg-extra-member.deb | |
2400 | # XXX: Ideally we would have no need to strip trailing spaces. | |
2401 | dpkg-deb -I pkg-extra-member.deb | sed -e 's/ *$//' | |
2402 | ||
2403 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2404 | at_status=$? at_failed=false | |
2405 | $at_check_filter | |
2406 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2407 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2408 | control.tar | |
2409 | data.tar | |
2410 | unknown | |
2411 | new debian package, version 2.0. | |
2412 | size 20732 bytes: control archive=10240 bytes. | |
2413 | 193 bytes, 7 lines control | |
2414 | Package: pkg-deb-format | |
2415 | Version: 0.0-1 | |
2416 | Section: test | |
2417 | Priority: extra | |
2418 | Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org> | |
2419 | Architecture: all | |
2420 | Description: test package - deb format support | |
2421 | " | \ | |
2422 | $at_diff - "$at_stdout" || at_failed=: | |
2423 | at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:154" | |
2424 | $at_failed && at_fn_log_failure | |
2425 | $at_traceon; } | |
2426 | ||
2427 | ||
2428 | { set +x | |
2429 | $as_echo "$at_srcdir/deb-format.at:177: | |
2430 | # Test _ member | |
2431 | cp pkg-templ.deb pkg-under-member.deb | |
2432 | ar ra debian-binary pkg-under-member.deb _ignore | |
2433 | ar t pkg-under-member.deb | |
2434 | # XXX: Ideally we would have no need to strip trailing spaces. | |
2435 | dpkg-deb -I pkg-under-member.deb | sed -e 's/ *\$//' | |
2436 | " | |
2437 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:177" | |
2438 | ( $at_check_trace; | |
2439 | # Test _ member | |
2440 | cp pkg-templ.deb pkg-under-member.deb | |
2441 | ar ra debian-binary pkg-under-member.deb _ignore | |
2442 | ar t pkg-under-member.deb | |
2443 | # XXX: Ideally we would have no need to strip trailing spaces. | |
2444 | dpkg-deb -I pkg-under-member.deb | sed -e 's/ *$//' | |
2445 | ||
2446 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2447 | at_status=$? at_failed=false | |
2448 | $at_check_filter | |
2449 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2450 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2451 | _ignore | |
2452 | control.tar | |
2453 | data.tar | |
2454 | new debian package, version 2.0. | |
2455 | size 20732 bytes: control archive=10240 bytes. | |
2456 | 193 bytes, 7 lines control | |
2457 | Package: pkg-deb-format | |
2458 | Version: 0.0-1 | |
2459 | Section: test | |
2460 | Priority: extra | |
2461 | Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org> | |
2462 | Architecture: all | |
2463 | Description: test package - deb format support | |
2464 | " | \ | |
2465 | $at_diff - "$at_stdout" || at_failed=: | |
2466 | at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:177" | |
2467 | $at_failed && at_fn_log_failure | |
2468 | $at_traceon; } | |
2469 | ||
2470 | ||
2471 | { set +x | |
2472 | $as_echo "$at_srcdir/deb-format.at:200: | |
2473 | # Test data.tar.bad member | |
2474 | dd if=/dev/zero of=data.tar.bad bs=1K count=4 status=none | |
2475 | ar rc pkg-data-bad.deb debian-binary control.tar.gz data.tar.bad | |
2476 | ar t pkg-data-bad.deb | |
2477 | dpkg-deb -c pkg-data-bad.deb | |
2478 | " | |
2479 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:200" | |
2480 | ( $at_check_trace; | |
2481 | # Test data.tar.bad member | |
2482 | dd if=/dev/zero of=data.tar.bad bs=1K count=4 status=none | |
2483 | ar rc pkg-data-bad.deb debian-binary control.tar.gz data.tar.bad | |
2484 | ar t pkg-data-bad.deb | |
2485 | dpkg-deb -c pkg-data-bad.deb | |
2486 | ||
2487 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2488 | at_status=$? at_failed=false | |
2489 | $at_check_filter | |
2490 | echo >>"$at_stderr"; $as_echo "dpkg-deb: error: archive 'pkg-data-bad.deb' uses unknown compression for member 'data.tar.bad', giving up | |
2491 | " | \ | |
2492 | $at_diff - "$at_stderr" || at_failed=: | |
2493 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2494 | control.tar.gz | |
2495 | data.tar.bad | |
2496 | " | \ | |
2497 | $at_diff - "$at_stdout" || at_failed=: | |
2498 | at_fn_check_status 2 $at_status "$at_srcdir/deb-format.at:200" | |
2499 | $at_failed && at_fn_log_failure | |
2500 | $at_traceon; } | |
2501 | ||
2502 | ||
2503 | { set +x | |
2504 | $as_echo "$at_srcdir/deb-format.at:212: | |
2505 | # Test control.tar member | |
2506 | ar rc pkg-control-none.deb debian-binary control.tar data.tar | |
2507 | ar t pkg-control-none.deb | |
2508 | # XXX: Ideally we would have no need to strip trailing spaces. | |
2509 | dpkg-deb -I pkg-control-none.deb | sed -e 's/ *\$//' | |
2510 | " | |
2511 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:212" | |
2512 | ( $at_check_trace; | |
2513 | # Test control.tar member | |
2514 | ar rc pkg-control-none.deb debian-binary control.tar data.tar | |
2515 | ar t pkg-control-none.deb | |
2516 | # XXX: Ideally we would have no need to strip trailing spaces. | |
2517 | dpkg-deb -I pkg-control-none.deb | sed -e 's/ *$//' | |
2518 | ||
2519 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2520 | at_status=$? at_failed=false | |
2521 | $at_check_filter | |
2522 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2523 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2524 | control.tar | |
2525 | data.tar | |
2526 | new debian package, version 2.0. | |
2527 | size 20672 bytes: control archive=10240 bytes. | |
2528 | 193 bytes, 7 lines control | |
2529 | Package: pkg-deb-format | |
2530 | Version: 0.0-1 | |
2531 | Section: test | |
2532 | Priority: extra | |
2533 | Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org> | |
2534 | Architecture: all | |
2535 | Description: test package - deb format support | |
2536 | " | \ | |
2537 | $at_diff - "$at_stdout" || at_failed=: | |
2538 | at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:212" | |
2539 | $at_failed && at_fn_log_failure | |
2540 | $at_traceon; } | |
2541 | ||
2542 | ||
2543 | { set +x | |
2544 | $as_echo "$at_srcdir/deb-format.at:233: | |
2545 | # Test control.tar.xz member | |
2546 | ar rc pkg-control-xz.deb debian-binary control.tar.xz data.tar.xz | |
2547 | ar t pkg-control-xz.deb | |
2548 | dpkg-deb -c pkg-control-xz.deb | |
2549 | " | |
2550 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:233" | |
2551 | ( $at_check_trace; | |
2552 | # Test control.tar.xz member | |
2553 | ar rc pkg-control-xz.deb debian-binary control.tar.xz data.tar.xz | |
2554 | ar t pkg-control-xz.deb | |
2555 | dpkg-deb -c pkg-control-xz.deb | |
2556 | ||
2557 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2558 | at_status=$? at_failed=false | |
2559 | $at_check_filter | |
2560 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2561 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2562 | control.tar.xz | |
2563 | data.tar.xz | |
2564 | drwxr-xr-x root/root 0 1970-01-01 00:00 ./ | |
2565 | -rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ | |
2566 | " | \ | |
2567 | $at_diff - "$at_stdout" || at_failed=: | |
2568 | at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:233" | |
2569 | $at_failed && at_fn_log_failure | |
2570 | $at_traceon; } | |
2571 | ||
2572 | ||
2573 | { set +x | |
2574 | $as_echo "$at_srcdir/deb-format.at:245: | |
2575 | # Test data.tar member | |
2576 | ar rc pkg-data-none.deb debian-binary control.tar.gz data.tar | |
2577 | ar t pkg-data-none.deb | |
2578 | dpkg-deb -c pkg-data-none.deb | |
2579 | " | |
2580 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:245" | |
2581 | ( $at_check_trace; | |
2582 | # Test data.tar member | |
2583 | ar rc pkg-data-none.deb debian-binary control.tar.gz data.tar | |
2584 | ar t pkg-data-none.deb | |
2585 | dpkg-deb -c pkg-data-none.deb | |
2586 | ||
2587 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2588 | at_status=$? at_failed=false | |
2589 | $at_check_filter | |
2590 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2591 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2592 | control.tar.gz | |
2593 | data.tar | |
2594 | drwxr-xr-x root/root 0 1970-01-01 00:00 ./ | |
2595 | -rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ | |
2596 | " | \ | |
2597 | $at_diff - "$at_stdout" || at_failed=: | |
2598 | at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:245" | |
2599 | $at_failed && at_fn_log_failure | |
2600 | $at_traceon; } | |
2601 | ||
2602 | ||
2603 | { set +x | |
2604 | $as_echo "$at_srcdir/deb-format.at:257: | |
2605 | # Test data.tar.gz member | |
2606 | ar rc pkg-data-gz.deb debian-binary control.tar.gz data.tar.gz | |
2607 | ar t pkg-data-gz.deb | |
2608 | dpkg-deb -c pkg-data-gz.deb | |
2609 | " | |
2610 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:257" | |
2611 | ( $at_check_trace; | |
2612 | # Test data.tar.gz member | |
2613 | ar rc pkg-data-gz.deb debian-binary control.tar.gz data.tar.gz | |
2614 | ar t pkg-data-gz.deb | |
2615 | dpkg-deb -c pkg-data-gz.deb | |
2616 | ||
2617 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2618 | at_status=$? at_failed=false | |
2619 | $at_check_filter | |
2620 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2621 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2622 | control.tar.gz | |
2623 | data.tar.gz | |
2624 | drwxr-xr-x root/root 0 1970-01-01 00:00 ./ | |
2625 | -rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ | |
2626 | " | \ | |
2627 | $at_diff - "$at_stdout" || at_failed=: | |
2628 | at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:257" | |
2629 | $at_failed && at_fn_log_failure | |
2630 | $at_traceon; } | |
2631 | ||
2632 | ||
2633 | { set +x | |
2634 | $as_echo "$at_srcdir/deb-format.at:269: | |
2635 | # Test data.tar.xz member | |
2636 | ar rc pkg-data-xz.deb debian-binary control.tar.gz data.tar.xz | |
2637 | ar t pkg-data-xz.deb | |
2638 | dpkg-deb -c pkg-data-xz.deb | |
2639 | " | |
2640 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:269" | |
2641 | ( $at_check_trace; | |
2642 | # Test data.tar.xz member | |
2643 | ar rc pkg-data-xz.deb debian-binary control.tar.gz data.tar.xz | |
2644 | ar t pkg-data-xz.deb | |
2645 | dpkg-deb -c pkg-data-xz.deb | |
2646 | ||
2647 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2648 | at_status=$? at_failed=false | |
2649 | $at_check_filter | |
2650 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2651 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2652 | control.tar.gz | |
2653 | data.tar.xz | |
2654 | drwxr-xr-x root/root 0 1970-01-01 00:00 ./ | |
2655 | -rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ | |
2656 | " | \ | |
2657 | $at_diff - "$at_stdout" || at_failed=: | |
2658 | at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:269" | |
2659 | $at_failed && at_fn_log_failure | |
2660 | $at_traceon; } | |
2661 | ||
2662 | ||
2663 | { set +x | |
2664 | $as_echo "$at_srcdir/deb-format.at:281: | |
2665 | # Test data.tar.bz2 member | |
2666 | ar rc pkg-data-bz2.deb debian-binary control.tar.gz data.tar.bz2 | |
2667 | ar t pkg-data-bz2.deb | |
2668 | dpkg-deb -c pkg-data-bz2.deb | |
2669 | " | |
2670 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:281" | |
2671 | ( $at_check_trace; | |
2672 | # Test data.tar.bz2 member | |
2673 | ar rc pkg-data-bz2.deb debian-binary control.tar.gz data.tar.bz2 | |
2674 | ar t pkg-data-bz2.deb | |
2675 | dpkg-deb -c pkg-data-bz2.deb | |
2676 | ||
2677 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2678 | at_status=$? at_failed=false | |
2679 | $at_check_filter | |
2680 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2681 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2682 | control.tar.gz | |
2683 | data.tar.bz2 | |
2684 | drwxr-xr-x root/root 0 1970-01-01 00:00 ./ | |
2685 | -rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ | |
2686 | " | \ | |
2687 | $at_diff - "$at_stdout" || at_failed=: | |
2688 | at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:281" | |
2689 | $at_failed && at_fn_log_failure | |
2690 | $at_traceon; } | |
2691 | ||
2692 | ||
2693 | { set +x | |
2694 | $as_echo "$at_srcdir/deb-format.at:293: | |
2695 | # Test data.tar.lzma member | |
2696 | ar rc pkg-data-lzma.deb debian-binary control.tar.gz data.tar.lzma | |
2697 | ar t pkg-data-lzma.deb | |
2698 | dpkg-deb -c pkg-data-lzma.deb | |
2699 | " | |
2700 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:293" | |
2701 | ( $at_check_trace; | |
2702 | # Test data.tar.lzma member | |
2703 | ar rc pkg-data-lzma.deb debian-binary control.tar.gz data.tar.lzma | |
2704 | ar t pkg-data-lzma.deb | |
2705 | dpkg-deb -c pkg-data-lzma.deb | |
2706 | ||
2707 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2708 | at_status=$? at_failed=false | |
2709 | $at_check_filter | |
2710 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2711 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2712 | control.tar.gz | |
2713 | data.tar.lzma | |
2714 | drwxr-xr-x root/root 0 1970-01-01 00:00 ./ | |
2715 | -rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ | |
2716 | " | \ | |
2717 | $at_diff - "$at_stdout" || at_failed=: | |
2718 | at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:293" | |
2719 | $at_failed && at_fn_log_failure | |
2720 | $at_traceon; } | |
2721 | ||
2722 | ||
2723 | { set +x | |
2724 | $as_echo "$at_srcdir/deb-format.at:305: | |
2725 | # Test non-uniform data.tar/control.tar member compression | |
2726 | ar rc pkg-mixed-comp.deb debian-binary control.tar.xz data.tar.gz | |
2727 | ar t pkg-mixed-comp.deb | |
2728 | # XXX: Ideally we would have no need to strip trailing spaces. | |
2729 | dpkg-deb -I pkg-mixed-comp.deb | sed -e 's/ *\$//' | |
2730 | dpkg-deb -c pkg-mixed-comp.deb | |
2731 | " | |
2732 | at_fn_check_prepare_notrace 'an embedded newline' "deb-format.at:305" | |
2733 | ( $at_check_trace; | |
2734 | # Test non-uniform data.tar/control.tar member compression | |
2735 | ar rc pkg-mixed-comp.deb debian-binary control.tar.xz data.tar.gz | |
2736 | ar t pkg-mixed-comp.deb | |
2737 | # XXX: Ideally we would have no need to strip trailing spaces. | |
2738 | dpkg-deb -I pkg-mixed-comp.deb | sed -e 's/ *$//' | |
2739 | dpkg-deb -c pkg-mixed-comp.deb | |
2740 | ||
2741 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2742 | at_status=$? at_failed=false | |
2743 | $at_check_filter | |
2744 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2745 | echo >>"$at_stdout"; $as_echo "debian-binary | |
2746 | control.tar.xz | |
2747 | data.tar.gz | |
2748 | new debian package, version 2.0. | |
2749 | size 682 bytes: control archive=336 bytes. | |
2750 | 193 bytes, 7 lines control | |
2751 | Package: pkg-deb-format | |
2752 | Version: 0.0-1 | |
2753 | Section: test | |
2754 | Priority: extra | |
2755 | Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org> | |
2756 | Architecture: all | |
2757 | Description: test package - deb format support | |
2758 | drwxr-xr-x root/root 0 1970-01-01 00:00 ./ | |
2759 | -rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ | |
2760 | " | \ | |
2761 | $at_diff - "$at_stdout" || at_failed=: | |
2762 | at_fn_check_status 0 $at_status "$at_srcdir/deb-format.at:305" | |
2763 | $at_failed && at_fn_log_failure | |
2764 | $at_traceon; } | |
2765 | ||
2766 | ||
2767 | set +x | |
2768 | $at_times_p && times >"$at_times_file" | |
2769 | ) 5>&1 2>&1 7>&- | eval $at_tee_pipe | |
2770 | read at_status <"$at_status_file" | |
2771 | #AT_STOP_2 | |
2772 | #AT_START_3 | |
2773 | at_fn_group_banner 3 'deb-content.at:3' \ | |
2774 | "dpkg-deb .deb conffiles" " " 1 | |
2775 | at_xfail=no | |
2776 | ( | |
2777 | $as_echo "3. $at_setup_line: testing $at_desc ..." | |
2778 | $at_traceon | |
2779 | ||
2780 | ||
2781 | ||
2782 | ||
2783 | mkdir -p 'pkg-conff-dupe/DEBIAN' | |
2784 | ||
2785 | cat >'pkg-conff-dupe/DEBIAN/control' <<CTRL_TEMPL | |
2786 | Package: pkg-conff-dupe | |
2787 | Version: 0.0-1 | |
2788 | Section: test | |
2789 | Priority: extra | |
2790 | Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org> | |
2791 | Architecture: all | |
2792 | Description: test package | |
2793 | CTRL_TEMPL | |
2794 | ||
2795 | ||
2796 | mkdir -p 'pkg-conff-dupe/DEBIAN' | |
2797 | ||
2798 | cat >'pkg-conff-dupe/DEBIAN/conffiles' <<CTRL_TEMPL | |
2799 | /test-conffile-1 | |
2800 | /test-conffile-2 | |
2801 | /test-conffile-1 | |
2802 | CTRL_TEMPL | |
2803 | ||
2804 | cat >pkg-conff-dupe/test-conffile-1 <<'_ATEOF' | |
2805 | test init | |
2806 | _ATEOF | |
2807 | ||
2808 | cat >pkg-conff-dupe/test-conffile-2 <<'_ATEOF' | |
2809 | test init | |
2810 | _ATEOF | |
2811 | ||
2812 | { set +x | |
2813 | $as_echo "$at_srcdir/deb-content.at:14: | |
2814 | # Duplicate conffile entries should produce a warning. | |
2815 | dpkg-deb -b pkg-conff-dupe | |
2816 | " | |
2817 | at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:14" | |
2818 | ( $at_check_trace; | |
2819 | # Duplicate conffile entries should produce a warning. | |
2820 | dpkg-deb -b pkg-conff-dupe | |
2821 | ||
2822 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2823 | at_status=$? at_failed=false | |
2824 | $at_check_filter | |
2825 | echo >>"$at_stderr"; $as_echo "dpkg-deb: warning: conffile name '/test-conffile-1' is duplicated | |
2826 | dpkg-deb: warning: ignoring 1 warning about the control file(s) | |
2827 | " | \ | |
2828 | $at_diff - "$at_stderr" || at_failed=: | |
2829 | echo stdout:; cat "$at_stdout" | |
2830 | at_fn_check_status 0 $at_status "$at_srcdir/deb-content.at:14" | |
2831 | $at_failed && at_fn_log_failure | |
2832 | $at_traceon; } | |
2833 | ||
2834 | ||
2835 | ||
2836 | mkdir -p 'pkg-conff-noel/DEBIAN' | |
2837 | ||
2838 | cat >'pkg-conff-noel/DEBIAN/control' <<CTRL_TEMPL | |
2839 | Package: pkg-conff-noel | |
2840 | Version: 0.0-1 | |
2841 | Section: test | |
2842 | Priority: extra | |
2843 | Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org> | |
2844 | Architecture: all | |
2845 | Description: test package | |
2846 | CTRL_TEMPL | |
2847 | ||
2848 | printf "/test-conffile-1" >"pkg-conff-noel/DEBIAN/conffiles" | |
2849 | cat >pkg-conff-noel/test-conffile-1 <<'_ATEOF' | |
2850 | test init | |
2851 | _ATEOF | |
2852 | ||
2853 | { set +x | |
2854 | $as_echo "$at_srcdir/deb-content.at:25: | |
2855 | # Conffiles need a final newline to guarantee there's been no accidental | |
2856 | # file truncation. | |
2857 | dpkg-deb -b pkg-conff-noel pkg-conff-noel.deb | |
2858 | " | |
2859 | at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:25" | |
2860 | ( $at_check_trace; | |
2861 | # Conffiles need a final newline to guarantee there's been no accidental | |
2862 | # file truncation. | |
2863 | dpkg-deb -b pkg-conff-noel pkg-conff-noel.deb | |
2864 | ||
2865 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2866 | at_status=$? at_failed=false | |
2867 | $at_check_filter | |
2868 | echo >>"$at_stderr"; $as_echo "dpkg-deb: error: conffile name '/test-conffile-1' is too long, or missing final newline | |
2869 | " | \ | |
2870 | $at_diff - "$at_stderr" || at_failed=: | |
2871 | echo stdout:; cat "$at_stdout" | |
2872 | at_fn_check_status 2 $at_status "$at_srcdir/deb-content.at:25" | |
2873 | $at_failed && at_fn_log_failure | |
2874 | $at_traceon; } | |
2875 | ||
2876 | ||
2877 | ||
2878 | mkdir -p 'pkg-deb-newline/DEBIAN' | |
2879 | ||
2880 | cat >'pkg-deb-newline/DEBIAN/control' <<CTRL_TEMPL | |
2881 | Package: pkg-deb-newline | |
2882 | Version: 0.0-1 | |
2883 | Section: test | |
2884 | Priority: extra | |
2885 | Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org> | |
2886 | Architecture: all | |
2887 | Description: test package | |
2888 | CTRL_TEMPL | |
2889 | ||
2890 | touch 'pkg-deb-newline/file | |
2891 | newline' | |
2892 | { set +x | |
2893 | $as_echo "$at_srcdir/deb-content.at:35: | |
2894 | # Cannot create package with newlines in filenames. | |
2895 | dpkg-deb -b pkg-deb-newline | |
2896 | " | |
2897 | at_fn_check_prepare_notrace 'an embedded newline' "deb-content.at:35" | |
2898 | ( $at_check_trace; | |
2899 | # Cannot create package with newlines in filenames. | |
2900 | dpkg-deb -b pkg-deb-newline | |
2901 | ||
2902 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2903 | at_status=$? at_failed=false | |
2904 | $at_check_filter | |
2905 | echo >>"$at_stderr"; $as_echo "dpkg-deb: error: newline not allowed in pathname './file | |
2906 | newline' | |
2907 | " | \ | |
2908 | $at_diff - "$at_stderr" || at_failed=: | |
2909 | echo stdout:; cat "$at_stdout" | |
2910 | at_fn_check_status 2 $at_status "$at_srcdir/deb-content.at:35" | |
2911 | $at_failed && at_fn_log_failure | |
2912 | $at_traceon; } | |
2913 | ||
2914 | ||
2915 | set +x | |
2916 | $at_times_p && times >"$at_times_file" | |
2917 | ) 5>&1 2>&1 7>&- | eval $at_tee_pipe | |
2918 | read at_status <"$at_status_file" | |
2919 | #AT_STOP_3 | |
2920 | #AT_START_4 | |
2921 | at_fn_group_banner 4 'deb-fields.at:3' \ | |
2922 | "dpkg-deb .deb fields" " " 1 | |
2923 | at_xfail=no | |
2924 | ( | |
2925 | $as_echo "4. $at_setup_line: testing $at_desc ..." | |
2926 | $at_traceon | |
2927 | ||
2928 | ||
2929 | ||
2930 | ||
2931 | mkdir -p 'pkg-package-type-void/DEBIAN' | |
2932 | ||
2933 | cat >'pkg-package-type-void/DEBIAN/control' <<CTRL_TEMPL | |
2934 | Package: pkg-package-type-void | |
2935 | Version: 0.0-1 | |
2936 | Section: test | |
2937 | Priority: extra | |
2938 | Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org> | |
2939 | Architecture: all | |
2940 | Description: test package | |
2941 | CTRL_TEMPL | |
2942 | ||
2943 | { set +x | |
2944 | $as_echo "$at_srcdir/deb-fields.at:7: | |
2945 | dpkg-deb -b pkg-package-type-void | |
2946 | # Test absence of Package-Type field. | |
2947 | test -z \"\$(dpkg-deb -f pkg-package-type-void.deb Package-Type)\" | |
2948 | " | |
2949 | at_fn_check_prepare_notrace 'a $(...) command substitution' "deb-fields.at:7" | |
2950 | ( $at_check_trace; | |
2951 | dpkg-deb -b pkg-package-type-void | |
2952 | # Test absence of Package-Type field. | |
2953 | test -z "$(dpkg-deb -f pkg-package-type-void.deb Package-Type)" | |
2954 | ||
2955 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2956 | at_status=$? at_failed=false | |
2957 | $at_check_filter | |
2958 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2959 | echo stdout:; cat "$at_stdout" | |
2960 | at_fn_check_status 0 $at_status "$at_srcdir/deb-fields.at:7" | |
2961 | $at_failed && at_fn_log_failure | |
2962 | $at_traceon; } | |
2963 | ||
2964 | ||
2965 | ||
2966 | mkdir -p 'pkg-package-type-use/DEBIAN' | |
2967 | ||
2968 | cat >'pkg-package-type-use/DEBIAN/control' <<CTRL_TEMPL | |
2969 | Package: pkg-package-type-use | |
2970 | Version: 0.0-1 | |
2971 | Section: test | |
2972 | Priority: extra | |
2973 | Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org> | |
2974 | Architecture: all | |
2975 | Description: test package | |
2976 | CTRL_TEMPL | |
2977 | ||
2978 | ||
2979 | sed -i -e '/^Package:/aPackage-Type: udeb' 'pkg-package-type-use/DEBIAN/control' | |
2980 | ||
2981 | { set +x | |
2982 | $as_echo "$at_srcdir/deb-fields.at:15: | |
2983 | dpkg-deb -b pkg-package-type-use | |
2984 | # Test presence of Package-Type field. | |
2985 | test -n \"\$(dpkg-deb -f pkg-package-type-use.deb Package-Type)\" | |
2986 | " | |
2987 | at_fn_check_prepare_notrace 'a $(...) command substitution' "deb-fields.at:15" | |
2988 | ( $at_check_trace; | |
2989 | dpkg-deb -b pkg-package-type-use | |
2990 | # Test presence of Package-Type field. | |
2991 | test -n "$(dpkg-deb -f pkg-package-type-use.deb Package-Type)" | |
2992 | ||
2993 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
2994 | at_status=$? at_failed=false | |
2995 | $at_check_filter | |
2996 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
2997 | echo stdout:; cat "$at_stdout" | |
2998 | at_fn_check_status 0 $at_status "$at_srcdir/deb-fields.at:15" | |
2999 | $at_failed && at_fn_log_failure | |
3000 | $at_traceon; } | |
3001 | ||
3002 | ||
3003 | set +x | |
3004 | $at_times_p && times >"$at_times_file" | |
3005 | ) 5>&1 2>&1 7>&- | eval $at_tee_pipe | |
3006 | read at_status <"$at_status_file" | |
3007 | #AT_STOP_4 | |
3008 | #AT_START_5 | |
3009 | at_fn_group_banner 5 'deb-split.at:3' \ | |
3010 | "dpkg-split options" " " 2 | |
3011 | at_xfail=no | |
3012 | ( | |
3013 | $as_echo "5. $at_setup_line: testing $at_desc ..." | |
3014 | $at_traceon | |
3015 | ||
3016 | ||
3017 | { set +x | |
3018 | $as_echo "$at_srcdir/deb-split.at:5: dpkg-split --help" | |
3019 | at_fn_check_prepare_trace "deb-split.at:5" | |
3020 | ( $at_check_trace; dpkg-split --help | |
3021 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
3022 | at_status=$? at_failed=false | |
3023 | $at_check_filter | |
3024 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
3025 | echo stdout:; cat "$at_stdout" | |
3026 | at_fn_check_status 0 $at_status "$at_srcdir/deb-split.at:5" | |
3027 | $at_failed && at_fn_log_failure | |
3028 | $at_traceon; } | |
3029 | ||
3030 | set +x | |
3031 | $at_times_p && times >"$at_times_file" | |
3032 | ) 5>&1 2>&1 7>&- | eval $at_tee_pipe | |
3033 | read at_status <"$at_status_file" | |
3034 | #AT_STOP_5 | |
3035 | #AT_START_6 | |
3036 | at_fn_group_banner 6 'deb-split.at:8' \ | |
3037 | "dpkg-split .deb format" " " 2 | |
3038 | at_xfail=no | |
3039 | ( | |
3040 | $as_echo "6. $at_setup_line: testing $at_desc ..." | |
3041 | $at_traceon | |
3042 | ||
3043 | ||
3044 | ||
3045 | ||
3046 | mkdir -p 'pkg-split/DEBIAN' | |
3047 | ||
3048 | cat >'pkg-split/DEBIAN/control' <<CTRL_TEMPL | |
3049 | Package: pkg-split | |
3050 | Version: 0.0-1 | |
3051 | Section: test | |
3052 | Priority: extra | |
3053 | Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org> | |
3054 | Architecture: all | |
3055 | Description: test package | |
3056 | CTRL_TEMPL | |
3057 | ||
3058 | ||
3059 | sed -i -e 's/^Description:.*$/& - normal package to be split/' 'pkg-split/DEBIAN/control' | |
3060 | ||
3061 | { set +x | |
3062 | $as_echo "$at_srcdir/deb-split.at:14: | |
3063 | # Initialize the template package | |
3064 | chmod -R u+w pkg-split | |
3065 | # XXX: Some environments set SIGPIPE to ignore which we cannot reset, and yes | |
3066 | # does check print error conditions, so we ignore its error message here. | |
3067 | yes 2>/dev/null | dd of=pkg-split/data-file bs=1024 count=1024 status=none | |
3068 | find pkg-split | xargs touch -t 197001010100.00 | |
3069 | \$ASROOT dpkg-deb -b -Znone pkg-split >/dev/null | |
3070 | " | |
3071 | at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:14" | |
3072 | ( $at_check_trace; | |
3073 | # Initialize the template package | |
3074 | chmod -R u+w pkg-split | |
3075 | # XXX: Some environments set SIGPIPE to ignore which we cannot reset, and yes | |
3076 | # does check print error conditions, so we ignore its error message here. | |
3077 | yes 2>/dev/null | dd of=pkg-split/data-file bs=1024 count=1024 status=none | |
3078 | find pkg-split | xargs touch -t 197001010100.00 | |
3079 | $ASROOT dpkg-deb -b -Znone pkg-split >/dev/null | |
3080 | ||
3081 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
3082 | at_status=$? at_failed=false | |
3083 | $at_check_filter | |
3084 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
3085 | at_fn_diff_devnull "$at_stdout" || at_failed=: | |
3086 | at_fn_check_status 0 $at_status "$at_srcdir/deb-split.at:14" | |
3087 | $at_failed && at_fn_log_failure | |
3088 | $at_traceon; } | |
3089 | ||
3090 | ||
3091 | { set +x | |
3092 | $as_echo "$at_srcdir/deb-split.at:24: | |
3093 | # Test splitting a package (in 3 parts: 400 KiB + 400 KiB + 224 KiB) | |
3094 | dpkg-split -S 400 -s pkg-split.deb pkg-split-part | |
3095 | test -f pkg-split-part.1of3.deb | |
3096 | test -f pkg-split-part.2of3.deb | |
3097 | test -f pkg-split-part.3of3.deb | |
3098 | " | |
3099 | at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:24" | |
3100 | ( $at_check_trace; | |
3101 | # Test splitting a package (in 3 parts: 400 KiB + 400 KiB + 224 KiB) | |
3102 | dpkg-split -S 400 -s pkg-split.deb pkg-split-part | |
3103 | test -f pkg-split-part.1of3.deb | |
3104 | test -f pkg-split-part.2of3.deb | |
3105 | test -f pkg-split-part.3of3.deb | |
3106 | ||
3107 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
3108 | at_status=$? at_failed=false | |
3109 | $at_check_filter | |
3110 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
3111 | echo >>"$at_stdout"; $as_echo "Splitting package pkg-split into 3 parts: 1 2 3 done | |
3112 | " | \ | |
3113 | $at_diff - "$at_stdout" || at_failed=: | |
3114 | at_fn_check_status 0 $at_status "$at_srcdir/deb-split.at:24" | |
3115 | $at_failed && at_fn_log_failure | |
3116 | $at_traceon; } | |
3117 | ||
3118 | ||
3119 | DEB_SPLIT_MD5SUM=a4042d88f6da3da8ab2ab191a290ab66 | |
3120 | ||
3121 | { set +x | |
3122 | $as_echo "$at_srcdir/deb-split.at:35: | |
3123 | # Test getting information about the split parts (parsing verification) | |
3124 | dpkg-split -I pkg-split-part.1of3.deb | |
3125 | dpkg-split -I pkg-split-part.2of3.deb | |
3126 | dpkg-split -I pkg-split-part.3of3.deb | |
3127 | " | |
3128 | at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:35" | |
3129 | ( $at_check_trace; | |
3130 | # Test getting information about the split parts (parsing verification) | |
3131 | dpkg-split -I pkg-split-part.1of3.deb | |
3132 | dpkg-split -I pkg-split-part.2of3.deb | |
3133 | dpkg-split -I pkg-split-part.3of3.deb | |
3134 | ||
3135 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
3136 | at_status=$? at_failed=false | |
3137 | $at_check_filter | |
3138 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
3139 | echo >>"$at_stdout"; $as_echo "pkg-split-part.1of3.deb: | |
3140 | Part format version: 2.1 | |
3141 | Part of package: pkg-split | |
3142 | ... version: 0.0-1 | |
3143 | ... architecture: all | |
3144 | ... MD5 checksum: $DEB_SPLIT_MD5SUM | |
3145 | ... length: 1055178 bytes | |
3146 | ... split every: 408576 bytes | |
3147 | Part number: 1/3 | |
3148 | Part length: 408576 bytes | |
3149 | Part offset: 0 bytes | |
3150 | Part file size (used portion): 408780 bytes | |
3151 | ||
3152 | pkg-split-part.2of3.deb: | |
3153 | Part format version: 2.1 | |
3154 | Part of package: pkg-split | |
3155 | ... version: 0.0-1 | |
3156 | ... architecture: all | |
3157 | ... MD5 checksum: $DEB_SPLIT_MD5SUM | |
3158 | ... length: 1055178 bytes | |
3159 | ... split every: 408576 bytes | |
3160 | Part number: 2/3 | |
3161 | Part length: 408576 bytes | |
3162 | Part offset: 408576 bytes | |
3163 | Part file size (used portion): 408780 bytes | |
3164 | ||
3165 | pkg-split-part.3of3.deb: | |
3166 | Part format version: 2.1 | |
3167 | Part of package: pkg-split | |
3168 | ... version: 0.0-1 | |
3169 | ... architecture: all | |
3170 | ... MD5 checksum: $DEB_SPLIT_MD5SUM | |
3171 | ... length: 1055178 bytes | |
3172 | ... split every: 408576 bytes | |
3173 | Part number: 3/3 | |
3174 | Part length: 238026 bytes | |
3175 | Part offset: 817152 bytes | |
3176 | Part file size (used portion): 238230 bytes | |
3177 | ||
3178 | " | \ | |
3179 | $at_diff - "$at_stdout" || at_failed=: | |
3180 | at_fn_check_status 0 $at_status "$at_srcdir/deb-split.at:35" | |
3181 | $at_failed && at_fn_log_failure | |
3182 | $at_traceon; } | |
3183 | ||
3184 | ||
3185 | { set +x | |
3186 | $as_echo "$at_srcdir/deb-split.at:81: | |
3187 | # Test joining the split parts back together | |
3188 | dpkg-split -o pkg-joined.deb -j pkg-split-part.*.deb | |
3189 | cmp pkg-split.deb pkg-joined.deb | |
3190 | " | |
3191 | at_fn_check_prepare_notrace 'an embedded newline' "deb-split.at:81" | |
3192 | ( $at_check_trace; | |
3193 | # Test joining the split parts back together | |
3194 | dpkg-split -o pkg-joined.deb -j pkg-split-part.*.deb | |
3195 | cmp pkg-split.deb pkg-joined.deb | |
3196 | ||
3197 | ) >>"$at_stdout" 2>>"$at_stderr" 5>&- | |
3198 | at_status=$? at_failed=false | |
3199 | $at_check_filter | |
3200 | at_fn_diff_devnull "$at_stderr" || at_failed=: | |
3201 | echo >>"$at_stdout"; $as_echo "Putting package pkg-split together from 3 parts: 1 2 3 done | |
3202 | " | \ | |
3203 | $at_diff - "$at_stdout" || at_failed=: | |
3204 | at_fn_check_status 0 $at_status "$at_srcdir/deb-split.at:81" | |
3205 | $at_failed && at_fn_log_failure | |
3206 | $at_traceon; } | |
3207 | ||
3208 | ||
3209 | set +x | |
3210 | $at_times_p && times >"$at_times_file" | |
3211 | ) 5>&1 2>&1 7>&- | eval $at_tee_pipe | |
3212 | read at_status <"$at_status_file" | |
3213 | #AT_STOP_6 |