]> git.ipfire.org Git - thirdparty/cups.git/blame - test/run-stp-tests.sh
Add missing DNSSD.LIB functions.
[thirdparty/cups.git] / test / run-stp-tests.sh
CommitLineData
ef416fc2 1#!/bin/sh
2#
8fe0183a
MS
3# Perform the complete set of IPP compliance tests specified in the
4# CUPS Software Test Plan.
ef416fc2 5#
53f8d64f
MS
6# Copyright © 2007-2018 by Apple Inc.
7# Copyright © 1997-2007 by Easy Software Products, all rights reserved.
8#
9# Licensed under Apache License v2.0. See the file "LICENSE" for more
10# information.
ef416fc2 11#
12
a74454a7 13argcount=$#
14
a29fd7dd
MS
15#
16# Don't allow "make check" or "make test" to be run by root...
17#
18
19if test "x`id -u`" = x0; then
20 echo Please run this as a normal user. Not supported when run as root.
21 exit 1
22fi
23
24#
25# Force the permissions of the files we create...
26#
27
28umask 022
29
ef416fc2 30#
31# Make the IPP test program...
32#
33
34make
35
0268488e
MS
36#
37# Solaris has a non-POSIX grep in /bin...
38#
39
40if test -x /usr/xpg4/bin/grep; then
41 GREP=/usr/xpg4/bin/grep
42else
43 GREP=grep
44fi
45
bd7854cb 46#
47# Figure out the proper echo options...
48#
49
0268488e 50if (echo "testing\c"; echo 1,2,3) | $GREP c >/dev/null; then
bd7854cb 51 ac_n=-n
52 ac_c=
53else
54 ac_n=
55 ac_c='\c'
56fi
57
ef416fc2 58#
59# Greet the tester...
60#
61
62echo "Welcome to the CUPS Automated Test Script."
63echo ""
64echo "Before we begin, it is important that you understand that the larger"
65echo "tests require significant amounts of RAM and disk space. If you"
66echo "attempt to run one of the big tests on a system that lacks sufficient"
67echo "disk and virtual memory, the UNIX kernel might decide to kill one or"
68echo "more system processes that you've grown attached to, like the X"
69echo "server. The question you may want to ask yourself before running a"
70echo "large test is: Do you feel lucky?"
71echo ""
72echo "OK, now that we have the Dirty Harry quote out of the way, please"
73echo "choose the type of test you wish to perform:"
74echo ""
75echo "0 - No testing, keep the scheduler running for me (all systems)"
76echo "1 - Basic conformance test, no load testing (all systems)"
77echo "2 - Basic conformance test, some load testing (minimum 256MB VM, 50MB disk)"
78echo "3 - Basic conformance test, extreme load testing (minimum 1GB VM, 500MB disk)"
79echo "4 - Basic conformance test, torture load testing (minimum 2GB VM, 1GB disk)"
80echo ""
bd7854cb 81echo $ac_n "Enter the number of the test you wish to perform: [1] $ac_c"
ef416fc2 82
a74454a7 83if test $# -gt 0; then
84 testtype=$1
85 shift
86else
87 read testtype
88fi
bd7854cb 89echo ""
ef416fc2 90
91case "$testtype" in
92 0)
93 echo "Running in test mode (0)"
67bd1f47 94 nprinters=0
ef416fc2 95 pjobs=0
b9faaae1 96 pprinters=0
766a8229 97 loglevel="debug2"
ef416fc2 98 ;;
99 2)
100 echo "Running the medium tests (2)"
67bd1f47 101 nprinters=20
ef416fc2 102 pjobs=20
b9faaae1 103 pprinters=10
766a8229 104 loglevel="debug"
ef416fc2 105 ;;
106 3)
107 echo "Running the extreme tests (3)"
67bd1f47 108 nprinters=1000
ef416fc2 109 pjobs=100
b9faaae1 110 pprinters=50
766a8229 111 loglevel="debug"
ef416fc2 112 ;;
113 4)
114 echo "Running the torture tests (4)"
67bd1f47 115 nprinters=20000
ef416fc2 116 pjobs=200
b9faaae1 117 pprinters=100
766a8229 118 loglevel="debug"
ef416fc2 119 ;;
120 *)
121 echo "Running the timid tests (1)"
67bd1f47 122 nprinters=0
839a51c8 123 pjobs=10
b9faaae1 124 pprinters=0
766a8229 125 loglevel="debug2"
6a638e32 126 testtype="1"
ef416fc2 127 ;;
128esac
129
130#
131# See if we want to do SSL testing...
132#
133
134echo ""
135echo "Now you can choose whether to create a SSL/TLS encryption key and"
6ccb19f3 136echo "certificate for testing:"
ef416fc2 137echo ""
138echo "0 - Do not do SSL/TLS encryption tests"
411affcf 139echo "1 - Test but do not require encryption"
140echo "2 - Test and require encryption"
ef416fc2 141echo ""
bd7854cb 142echo $ac_n "Enter the number of the SSL/TLS tests to perform: [0] $ac_c"
ef416fc2 143
a74454a7 144if test $# -gt 0; then
145 ssltype=$1
146 shift
147else
148 read ssltype
149fi
bd7854cb 150echo ""
ef416fc2 151
152case "$ssltype" in
411affcf 153 1)
154 echo "Will test but not require encryption (1)"
155 ;;
156 2)
157 echo "Will test and require encryption (2)"
ef416fc2 158 ;;
ef416fc2 159 *)
411affcf 160 echo "Not using SSL/TLS (0)"
ef416fc2 161 ssltype=0
162 ;;
163esac
164
165#
166# Information for the server/tests...
167#
168
e1d6a774 169user="$USER"
170if test -z "$user"; then
171 if test -x /usr/ucb/whoami; then
172 user=`/usr/ucb/whoami`
173 else
174 user=`whoami`
175 fi
176
177 if test -z "$user"; then
178 user="unknown"
179 fi
180fi
181
95dd8876 182port="${CUPS_TESTPORT:=8631}"
ef416fc2 183cwd=`pwd`
184root=`dirname $cwd`
8fe0183a
MS
185CUPS_TESTROOT="$root"; export CUPS_TESTROOT
186
95dd8876
MS
187BASE="${CUPS_TESTBASE:=}"
188if test -z "$BASE"; then
189 if test -d /private/tmp; then
190 BASE=/private/tmp/cups-$user
191 else
192 BASE=/tmp/cups-$user
193 fi
8fe0183a 194fi
2a8db0cd 195export BASE
ef416fc2 196
197#
198# Make sure that the LPDEST and PRINTER environment variables are
199# not included in the environment that is passed to the tests. These
200# will usually cause tests to fail erroneously...
201#
202
634763e8
MS
203unset LPDEST
204unset PRINTER
ef416fc2 205
206#
207# See if we want to use valgrind...
208#
209
210echo ""
211echo "This test script can use the Valgrind software from:"
212echo ""
213echo " http://developer.kde.org/~sewardj/"
214echo ""
bd7854cb 215echo $ac_n "Enter Y to use Valgrind or N to not use Valgrind: [N] $ac_c"
ef416fc2 216
a74454a7 217if test $# -gt 0; then
218 usevalgrind=$1
219 shift
220else
221 read usevalgrind
222fi
bd7854cb 223echo ""
ef416fc2 224
225case "$usevalgrind" in
226 Y* | y*)
484798d8 227 VALGRIND="valgrind --tool=memcheck --log-file=$BASE/log/valgrind.%p --error-limit=no --leak-check=yes --trace-children=yes"
a2326b5b
MS
228 if test `uname` = Darwin; then
229 VALGRIND="$VALGRIND --dsymutil=yes"
230 fi
231 export VALGRIND
8fe0183a 232 echo "Using Valgrind; log files can be found in $BASE/log..."
ef416fc2 233 ;;
234
235 *)
a2326b5b
MS
236 VALGRIND=""
237 export VALGRIND
ef416fc2 238 ;;
239esac
240
85dda01c
MS
241#
242# See if we want to do debug logging of the libraries...
243#
244
245echo ""
246echo "If CUPS was built with the --enable-debug-printfs configure option, you"
247echo "can enable debug logging of the libraries."
248echo ""
249echo $ac_n "Enter Y or a number from 0 to 9 to enable debug logging or N to not: [N] $ac_c"
250
251if test $# -gt 0; then
252 usedebugprintfs=$1
253 shift
254else
255 read usedebugprintfs
256fi
257echo ""
258
259case "$usedebugprintfs" in
260 Y* | y*)
8fe0183a
MS
261 echo "Enabling debug printfs (level 5); log files can be found in $BASE/log..."
262 CUPS_DEBUG_LOG="$BASE/log/debug_printfs.%d"; export CUPS_DEBUG_LOG
85dda01c 263 CUPS_DEBUG_LEVEL=5; export CUPS_DEBUG_LEVEL
a2326b5b 264 CUPS_DEBUG_FILTER='^(http|_http|ipp|_ipp|cups.*Request|cupsGetResponse|cupsSend).*$'; export CUPS_DEBUG_FILTER
85dda01c
MS
265 ;;
266
267 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9)
8fe0183a
MS
268 echo "Enabling debug printfs (level $usedebugprintfs); log files can be found in $BASE/log..."
269 CUPS_DEBUG_LOG="$BASE/log/debug_printfs.%d"; export CUPS_DEBUG_LOG
c41769ff 270 CUPS_DEBUG_LEVEL="$usedebugprintfs"; export CUPS_DEBUG_LEVEL
830cfed9 271 CUPS_DEBUG_FILTER='^(http|_http|ipp|_ipp|cups.*Request|cupsGetResponse|cupsSend|mime).*$'; export CUPS_DEBUG_FILTER
85dda01c
MS
272 ;;
273
274 *)
275 ;;
276esac
277
ef416fc2 278#
279# Start by creating temporary directories for the tests...
280#
281
a74454a7 282echo "Creating directories for test..."
283
8fe0183a
MS
284rm -rf $BASE
285mkdir $BASE
286mkdir $BASE/bin
287mkdir $BASE/bin/backend
288mkdir $BASE/bin/driver
289mkdir $BASE/bin/filter
290mkdir $BASE/certs
291mkdir $BASE/share
292mkdir $BASE/share/banners
293mkdir $BASE/share/drv
294mkdir $BASE/share/locale
4509bb49
MS
295for file in ../locale/cups_*.po; do
296 loc=`basename $file .po | cut -c 6-`
8fe0183a
MS
297 mkdir $BASE/share/locale/$loc
298 ln -s $root/locale/cups_$loc.po $BASE/share/locale/$loc
4509bb49 299done
a8b28f18
MS
300mkdir $BASE/share/locale/en
301ln -s $root/locale/cups.pot $BASE/share/locale/en/cups_en.po
8fe0183a
MS
302mkdir $BASE/share/mime
303mkdir $BASE/share/model
304mkdir $BASE/share/ppdc
305mkdir $BASE/interfaces
306mkdir $BASE/log
307mkdir $BASE/ppd
308mkdir $BASE/spool
309mkdir $BASE/spool/temp
310mkdir $BASE/ssl
311
312ln -s $root/backend/dnssd $BASE/bin/backend
313ln -s $root/backend/http $BASE/bin/backend
314ln -s $root/backend/ipp $BASE/bin/backend
7a16b8b3 315ln -s ipp $BASE/bin/backend/ipps
8fe0183a
MS
316ln -s $root/backend/lpd $BASE/bin/backend
317ln -s $root/backend/mdns $BASE/bin/backend
318ln -s $root/backend/pseudo $BASE/bin/backend
319ln -s $root/backend/snmp $BASE/bin/backend
320ln -s $root/backend/socket $BASE/bin/backend
321ln -s $root/backend/usb $BASE/bin/backend
322ln -s $root/cgi-bin $BASE/bin
323ln -s $root/monitor $BASE/bin
324ln -s $root/notifier $BASE/bin
325ln -s $root/scheduler $BASE/bin/daemon
326ln -s $root/filter/commandtops $BASE/bin/filter
327ln -s $root/filter/gziptoany $BASE/bin/filter
328ln -s $root/filter/pstops $BASE/bin/filter
329ln -s $root/filter/rastertoepson $BASE/bin/filter
330ln -s $root/filter/rastertohp $BASE/bin/filter
331ln -s $root/filter/rastertolabel $BASE/bin/filter
332ln -s $root/filter/rastertopwg $BASE/bin/filter
1d58a957
MS
333cat >$BASE/share/banners/standard <<EOF
334 ==== Cover Page ====
8fe0183a 335
1d58a957
MS
336
337 Job: {?printer-name}-{?job-id}
338 Owner: {?job-originating-user-name}
339 Name: {?job-name}
340 Pages: {?job-impressions}
341
342
343 ==== Cover Page ====
344EOF
345cat >$BASE/share/banners/classified <<EOF
346 ==== Classified - Do Not Disclose ====
347
348
349 Job: {?printer-name}-{?job-id}
350 Owner: {?job-originating-user-name}
351 Name: {?job-name}
352 Pages: {?job-impressions}
353
354
355 ==== Classified - Do Not Disclose ====
356EOF
8fe0183a
MS
357ln -s $root/data $BASE/share
358ln -s $root/ppdc/sample.drv $BASE/share/drv
359ln -s $root/conf/mime.types $BASE/share/mime
360ln -s $root/conf/mime.convs $BASE/share/mime
361ln -s $root/data/*.h $BASE/share/ppdc
362ln -s $root/data/*.defs $BASE/share/ppdc
363ln -s $root/templates $BASE/share
ef416fc2 364
bc44d920 365#
f3c17241 366# Local filters and configuration files...
bc44d920 367#
368
79a784c4
MS
369instfilter() {
370 # instfilter src dst format
371 #
372 # See if the filter exists in a standard location; if so, make a
373 # symlink, otherwise create a dummy script for the specified format.
374 #
375 src="$1"
376 dst="$2"
377 format="$3"
378
95dd8876 379 for dir in /usr/local/libexec/cups/filter /usr/libexec/cups/filter /usr/lib/cups/filter; do
79a784c4 380 if test -x "$dir/$src"; then
8fe0183a 381 ln -s "$dir/$src" "$BASE/bin/filter/$dst"
79a784c4
MS
382 return
383 fi
384 done
385
386 # Source filter not present, create a dummy filter
387 case $format in
388 passthru)
8fe0183a 389 ln -s gziptoany "$BASE/bin/filter/$dst"
79a784c4
MS
390 ;;
391 pdf)
8fe0183a 392 cat >"$BASE/bin/filter/$dst" <<EOF
79a784c4 393#!/bin/sh
e7061482
MS
394trap "" TERM
395trap "" PIPE
f0cd6a7c 396gziptoany "$1" "$2" "$3" "$4" "$5" \$6 >/dev/null
79a784c4
MS
397case "\$5" in
398 *media=a4* | *media=iso_a4* | *PageSize=A4*)
da5f55b5 399 gziptoany "$1" "$2" "$3" "$4" "$5" "$root/test/onepage-a4.pdf"
79a784c4
MS
400 ;;
401 *)
da5f55b5 402 gziptoany "$1" "$2" "$3" "$4" "$5" "$root/test/onepage-letter.pdf"
79a784c4
MS
403 ;;
404esac
405EOF
8fe0183a 406 chmod +x "$BASE/bin/filter/$dst"
79a784c4
MS
407 ;;
408 ps)
8fe0183a 409 cat >"$BASE/bin/filter/$dst" <<EOF
79a784c4 410#!/bin/sh
e7061482
MS
411trap "" TERM
412trap "" PIPE
f0cd6a7c 413gziptoany "$1" "$2" "$3" "$4" "$5" \$6 >/dev/null
79a784c4
MS
414case "\$5" in
415 *media=a4* | *media=iso_a4* | *PageSize=A4*)
da5f55b5 416 gziptoany "$1" "$2" "$3" "$4" "$5" "$root/test/onepage-a4.ps"
79a784c4
MS
417 ;;
418 *)
da5f55b5 419 gziptoany "$1" "$2" "$3" "$4" "$5" "$root/test/onepage-letter.ps"
79a784c4
MS
420 ;;
421esac
422EOF
8fe0183a 423 chmod +x "$BASE/bin/filter/$dst"
79a784c4
MS
424 ;;
425 raster)
8fe0183a 426 cat >"$BASE/bin/filter/$dst" <<EOF
79a784c4 427#!/bin/sh
e7061482
MS
428trap "" TERM
429trap "" PIPE
f0cd6a7c 430gziptoany "$1" "$2" "$3" "$4" "$5" \$6 >/dev/null
79a784c4
MS
431case "\$5" in
432 *media=a4* | *media=iso_a4* | *PageSize=A4*)
da5f55b5 433 gziptoany "$1" "$2" "$3" "$4" "$5" "$root/test/onepage-a4-300-black-1.pwg.gz"
79a784c4
MS
434 ;;
435 *)
da5f55b5 436 gziptoany "$1" "$2" "$3" "$4" "$5" "$root/test/onepage-letter-300-black-1.pwg.gz"
79a784c4
MS
437 ;;
438esac
439EOF
8fe0183a 440 chmod +x "$BASE/bin/filter/$dst"
79a784c4
MS
441 ;;
442 esac
443}
72d05bc9 444
8fe0183a 445ln -s $root/test/test.convs $BASE/share/mime
830cfed9 446ln -s $root/test/test.types $BASE/share/mime
79a784c4 447
bc44d920 448if test `uname` = Darwin; then
79a784c4
MS
449 instfilter cgimagetopdf imagetopdf pdf
450 instfilter cgpdftopdf pdftopdf passthru
451 instfilter cgpdftops pdftops ps
452 instfilter cgpdftoraster pdftoraster raster
830cfed9 453 instfilter cgpdftoraster pdftourf raster
79a784c4
MS
454 instfilter cgtexttopdf texttopdf pdf
455 instfilter pstocupsraster pstoraster raster
839a51c8 456else
79a784c4
MS
457 instfilter imagetopdf imagetopdf pdf
458 instfilter pdftopdf pdftopdf passthru
459 instfilter pdftops pdftops ps
460 instfilter pdftoraster pdftoraster raster
ae7225e5 461 instfilter pdftoraster pdftourf raster
79a784c4
MS
462 instfilter pstoraster pstoraster raster
463 instfilter texttopdf texttopdf pdf
464
465 if test -d /usr/share/cups/charsets; then
8fe0183a 466 ln -s /usr/share/cups/charsets $BASE/share
5a9febac 467 fi
bc44d920 468fi
469
ef416fc2 470#
471# Then create the necessary config files...
472#
473
a74454a7 474echo "Creating cupsd.conf for test..."
475
ef416fc2 476if test $ssltype = 2; then
477 encryption="Encryption Required"
478else
479 encryption=""
480fi
481
8fe0183a 482cat >$BASE/cupsd.conf <<EOF
a29fd7dd 483StrictConformance Yes
ef416fc2 484Browsing Off
a29fd7dd 485Listen localhost:$port
8fe0183a 486Listen $BASE/sock
52f6f666 487MaxSubscriptions 3
ef416fc2 488MaxLogSize 0
e07d4801 489AccessLogLevel actions
766a8229 490LogLevel $loglevel
b9faaae1 491LogTimeFormat usecs
ef416fc2 492PreserveJobHistory Yes
237b42e9 493PreserveJobFiles 5m
ef416fc2 494<Policy default>
495<Limit All>
a29fd7dd 496Order Allow,Deny
ef416fc2 497$encryption
498</Limit>
499</Policy>
500EOF
501
72d05bc9 502if test $testtype = 0; then
8fe0183a 503 echo WebInterface yes >>$BASE/cupsd.conf
72d05bc9
MS
504fi
505
8fe0183a 506cat >$BASE/cups-files.conf <<EOF
c41769ff
MS
507FileDevice yes
508Printcap
509User $user
8fe0183a
MS
510ServerRoot $BASE
511StateDir $BASE
512ServerBin $BASE/bin
513CacheDir $BASE/share
514DataDir $BASE/share
515FontPath $BASE/share/fonts
c41769ff 516DocumentRoot $root/doc
8fe0183a
MS
517RequestRoot $BASE/spool
518TempDir $BASE/spool/temp
519AccessLog $BASE/log/access_log
520ErrorLog $BASE/log/error_log
521PageLog $BASE/log/page_log
d47f6aec 522
b37177a7 523PassEnv DYLD_INSERT_LIBRARIES
d47f6aec
MS
524PassEnv DYLD_LIBRARY_PATH
525PassEnv LD_LIBRARY_PATH
526PassEnv LD_PRELOAD
527PassEnv LOCALEDIR
528PassEnv SHLIB_PATH
c41769ff
MS
529EOF
530
c1420c87 531if test $ssltype != 0 -a `uname` = Darwin; then
8fe0183a 532 echo "ServerKeychain $HOME/Library/Keychains/login.keychain" >> $BASE/cups-files.conf
c1420c87
MS
533fi
534
ef416fc2 535#
67bd1f47 536# Setup lots of test queues with PPD files...
ef416fc2 537#
538
a74454a7 539echo "Creating printers.conf for test..."
540
ef416fc2 541i=1
67bd1f47 542while test $i -le $nprinters; do
8fe0183a 543 cat >>$BASE/printers.conf <<EOF
ef416fc2 544<Printer test-$i>
545Accepting Yes
546DeviceURI file:/dev/null
547Info Test PS printer $i
548JobSheets none none
549Location CUPS test suite
550State Idle
551StateMessage Printer $1 is idle.
552</Printer>
553EOF
554
8fe0183a 555 cp testps.ppd $BASE/ppd/test-$i.ppd
ef416fc2 556
557 i=`expr $i + 1`
558done
559
8fe0183a
MS
560if test -f $BASE/printers.conf; then
561 cp $BASE/printers.conf $BASE/printers.conf.orig
426c6a59 562else
8fe0183a 563 touch $BASE/printers.conf.orig
426c6a59 564fi
ef416fc2 565
ef416fc2 566#
b37177a7 567# Create a helper script to run programs with...
ef416fc2 568#
569
a74454a7 570echo "Setting up environment variables for test..."
571
ef416fc2 572if test "x$LD_LIBRARY_PATH" = x; then
82cc1f9a 573 LD_LIBRARY_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc"
ef416fc2 574else
82cc1f9a 575 LD_LIBRARY_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc:$LD_LIBRARY_PATH"
ef416fc2 576fi
577
b87ec789 578LD_PRELOAD="$root/cups/libcups.so.2:$root/cups/libcupsimage.so.2:$root/cgi-bin/libcupscgi.so.1:$root/scheduler/libcupsmime.so.1:$root/ppdc/libcupsppdc.so.1"
f11a948a
MS
579if test `uname` = SunOS -a -r /usr/lib/libCrun.so.1; then
580 LD_PRELOAD="/usr/lib/libCrun.so.1:$LD_PRELOAD"
581fi
ef416fc2 582
7536de1a
MS
583if test -f $root/cups/libcups.2.dylib; then
584 if test "x$DYLD_INSERT_LIBRARIES" = x; then
b87ec789 585 DYLD_INSERT_LIBRARIES="$root/cups/libcups.2.dylib:$root/cups/libcupsimage.2.dylib:$root/cgi-bin/libcupscgi.1.dylib:$root/scheduler/libcupsmime.1.dylib:$root/ppdc/libcupsppdc.1.dylib"
7536de1a 586 else
b87ec789 587 DYLD_INSERT_LIBRARIES="$root/cups/libcups.2.dylib:$root/cups/libcupsimage.2.dylib:$root/cgi-bin/libcupscgi.1.dylib:$root/scheduler/libcupsmime.1.dylib:$root/ppdc/libcupsppdc.1.dylib:$DYLD_INSERT_LIBRARIES"
7536de1a 588 fi
7536de1a
MS
589fi
590
ef416fc2 591if test "x$DYLD_LIBRARY_PATH" = x; then
82cc1f9a 592 DYLD_LIBRARY_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc"
ef416fc2 593else
82cc1f9a 594 DYLD_LIBRARY_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc:$DYLD_LIBRARY_PATH"
ef416fc2 595fi
596
ef416fc2 597if test "x$SHLIB_PATH" = x; then
82cc1f9a 598 SHLIB_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc"
ef416fc2 599else
82cc1f9a 600 SHLIB_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc:$SHLIB_PATH"
ef416fc2 601fi
602
b37177a7 603# These get exported because they don't have side-effects...
ef55b745 604CUPS_DISABLE_APPLE_DEFAULT=yes; export CUPS_DISABLE_APPLE_DEFAULT
95dd8876 605CUPS_SERVER=localhost:$port; export CUPS_SERVER
8fe0183a
MS
606CUPS_SERVERROOT=$BASE; export CUPS_SERVERROOT
607CUPS_STATEDIR=$BASE; export CUPS_STATEDIR
608CUPS_DATADIR=$BASE/share; export CUPS_DATADIR
b37177a7 609IPP_PORT=$port; export IPP_PORT
8fe0183a 610LOCALEDIR=$BASE/share/locale; export LOCALEDIR
ef416fc2 611
b37177a7
MS
612echo "Creating wrapper script..."
613
614runcups="$BASE/runcups"; export runcups
615
616echo "#!/bin/sh" >$runcups
617echo "# Helper script for running CUPS test instance." >>$runcups
618echo "" >>$runcups
619echo "# Set required environment variables..." >>$runcups
620echo "CUPS_DATADIR=\"$CUPS_DATADIR\"; export CUPS_DATADIR" >>$runcups
621echo "CUPS_SERVER=\"$CUPS_SERVER\"; export CUPS_SERVER" >>$runcups
622echo "CUPS_SERVERROOT=\"$CUPS_SERVERROOT\"; export CUPS_SERVERROOT" >>$runcups
623echo "CUPS_STATEDIR=\"$CUPS_STATEDIR\"; export CUPS_STATEDIR" >>$runcups
624echo "DYLD_INSERT_LIBRARIES=\"$DYLD_INSERT_LIBRARIES\"; export DYLD_INSERT_LIBRARIES" >>$runcups
625echo "DYLD_LIBRARY_PATH=\"$DYLD_LIBRARY_PATH\"; export DYLD_LIBRARY_PATH" >>$runcups
626# IPP_PORT=$port; export IPP_PORT
627echo "LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH\"; export LD_LIBRARY_PATH" >>$runcups
628echo "LD_PRELOAD=\"$LD_PRELOAD\"; export LD_PRELOAD" >>$runcups
629echo "LOCALEDIR=\"$LOCALEDIR\"; export LOCALEDIR" >>$runcups
630echo "SHLIB_PATH=\"$SHLIB_PATH\"; export SHLIB_PATH" >>$runcups
631if test "x$CUPS_DEBUG_LEVEL" != x; then
632 echo "CUPS_DEBUG_FILTER='$CUPS_DEBUG_FILTER'; export CUPS_DEBUG_FILTER" >>$runcups
633 echo "CUPS_DEBUG_LEVEL=$CUPS_DEBUG_LEVEL; export CUPS_DEBUG_LEVEL" >>$runcups
634 echo "CUPS_DEBUG_LOG='$CUPS_DEBUG_LOG'; export CUPS_DEBUG_LOG" >>$runcups
635fi
636echo "" >>$runcups
637echo "# Run command..." >>$runcups
638echo "exec \"\$@\"" >>$runcups
639
640chmod +x $runcups
641
ef416fc2 642#
643# Set a new home directory to avoid getting user options mixed in...
644#
645
8fe0183a 646HOME=$BASE
ef416fc2 647export HOME
648
f42414bf 649#
650# Force POSIX locale for tests...
651#
652
653LANG=C
654export LANG
655
0268488e
MS
656LC_MESSAGES=C
657export LC_MESSAGES
658
ef416fc2 659#
660# Start the server; run as foreground daemon in the background...
661#
662
663echo "Starting scheduler:"
b37177a7 664echo " $runcups $VALGRIND ../scheduler/cupsd -c $BASE/cupsd.conf -f >$BASE/log/debug_log 2>&1 &"
ef416fc2 665echo ""
666
a2326b5b 667if test `uname` = Darwin -a "x$VALGRIND" = x; then
7536de1a
MS
668 if test "x$DYLD_INSERT_LIBRARIES" = x; then
669 insert="/usr/lib/libgmalloc.dylib"
670 else
671 insert="/usr/lib/libgmalloc.dylib:$DYLD_INSERT_LIBRARIES"
672 fi
673
b37177a7 674 DYLD_INSERT_LIBRARIES="$insert" MallocStackLogging=1 $runcups ../scheduler/cupsd -c $BASE/cupsd.conf -f >$BASE/log/debug_log 2>&1 &
b9faaae1 675else
b37177a7 676 $runcups $VALGRIND ../scheduler/cupsd -c $BASE/cupsd.conf -f >$BASE/log/debug_log 2>&1 &
b9faaae1
MS
677fi
678
ef416fc2 679cupsd=$!
680
ef416fc2 681if test "x$testtype" = x0; then
b19ccc9e 682 # Not running tests...
6f260d7d 683 echo "Scheduler is PID $cupsd and is listening on port $port."
ef416fc2 684 echo ""
b19ccc9e 685
b19ccc9e
MS
686 echo "The $runcups helper script can be used to test programs"
687 echo "with the server."
ef416fc2 688 exit 0
689fi
690
a74454a7 691if test $argcount -eq 0; then
692 echo "Scheduler is PID $cupsd; run debugger now if you need to."
693 echo ""
694 echo $ac_n "Press ENTER to continue... $ac_c"
695 read junk
696else
697 echo "Scheduler is PID $cupsd."
698 sleep 2
699fi
ef416fc2 700
ef416fc2 701while true; do
b37177a7 702 running=`$runcups ../systemv/lpstat -r 2>/dev/null`
ef416fc2 703 if test "x$running" = "xscheduler is running"; then
704 break
705 fi
706
707 echo "Waiting for scheduler to become ready..."
708 sleep 10
709done
710
711#
712# Create the test report source file...
713#
714
dd1abb6b 715date=`date "+%Y-%m-%d"`
6015e919 716
35fc2243 717strfile=$BASE/cups-str-$date-$user.html
ef416fc2 718
719rm -f $strfile
720cat str-header.html >$strfile
721
722#
723# Run the IPP tests...
724#
725
a74454a7 726echo ""
ef416fc2 727echo "Running IPP compliance tests..."
728
35fc2243
MS
729echo " <h1><a name='IPP'>1 - IPP Compliance Tests</a></h1>" >>$strfile
730echo " <p>This section provides the results to the IPP compliance tests" >>$strfile
731echo " outlined in the CUPS Software Test Plan. These tests were run on" >>$strfile
732echo " $date by $user on `hostname`." >>$strfile
733echo " <pre>" >>$strfile
ef416fc2 734
735fail=0
a29fd7dd 736for file in 4*.test ipp-2.1.test; do
a2326b5b 737 echo $ac_n "Performing $file: $ac_c"
ef416fc2 738 echo "" >>$strfile
b37177a7 739 echo $ac_n "`date '+[%d/%b/%Y:%H:%M:%S %z]'` $ac_c" >>$strfile
ef416fc2 740
a29fd7dd
MS
741 if test $file = ipp-2.1.test; then
742 uri="ipp://localhost:$port/printers/Test1"
743 options="-V 2.1 -d NOPRINT=1 -f testfile.ps"
744 else
745 uri="ipp://localhost:$port/printers"
746 options=""
747 fi
b37177a7 748 $runcups $VALGRIND ./ipptool -tI $options $uri $file >> $strfile
ef416fc2 749 status=$?
750
751 if test $status != 0; then
a2326b5b 752 echo FAIL
ef416fc2 753 fail=`expr $fail + 1`
a2326b5b
MS
754 else
755 echo PASS
ef416fc2 756 fi
757done
758
35fc2243 759echo " </pre>" >>$strfile
ef416fc2 760
761#
762# Run the command tests...
763#
764
a74454a7 765echo ""
ef416fc2 766echo "Running command tests..."
767
35fc2243
MS
768echo " <h1><a name='COMMAND'>2 - Command Tests</a></h1>" >>$strfile
769echo " <p>This section provides the results to the command tests" >>$strfile
770echo " outlined in the CUPS Software Test Plan. These tests were run on" >>$strfile
771echo " $date by $user on `hostname`." >>$strfile
772echo " <pre>" >>$strfile
ef416fc2 773
774for file in 5*.sh; do
a2326b5b 775 echo $ac_n "Performing $file: $ac_c"
ef416fc2 776 echo "" >>$strfile
b37177a7 777 echo "`date '+[%d/%b/%Y:%H:%M:%S %z]'` \"$file\":" >>$strfile
ef416fc2 778
a2326b5b 779 sh $file $pjobs $pprinters >> $strfile
ef416fc2 780 status=$?
781
782 if test $status != 0; then
a2326b5b 783 echo FAIL
ef416fc2 784 fail=`expr $fail + 1`
a2326b5b
MS
785 else
786 echo PASS
ef416fc2 787 fi
788done
789
8e8d3a71
MS
790#
791# Log all allocations made by the scheduler...
792#
35fc2243 793
8e8d3a71
MS
794if test `uname` = Darwin -a "x$VALGRIND" = x; then
795 malloc_history $cupsd -callTree -showContent >$BASE/log/malloc_log 2>&1
796fi
797
698fa0aa
MS
798#
799# Restart the server...
800#
801
802echo $ac_n "Performing restart test: $ac_c"
803echo "" >>$strfile
b37177a7 804echo "`date '+[%d/%b/%Y:%H:%M:%S %z]'` \"5.10-restart\":" >>$strfile
698fa0aa
MS
805
806kill -HUP $cupsd
807
808while true; do
8e8d3a71
MS
809 sleep 10
810
b37177a7 811 running=`$runcups ../systemv/lpstat -r 2>/dev/null`
698fa0aa
MS
812 if test "x$running" = "xscheduler is running"; then
813 break
814 fi
698fa0aa
MS
815done
816
b37177a7 817description="`$runcups ../systemv/lpstat -l -p Test1 | grep Description | sed -e '1,$s/^[^:]*: //g'`"
698fa0aa
MS
818if test "x$description" != "xTest Printer 1"; then
819 echo "Failed, printer-info for Test1 is '$description', expected 'Test Printer 1'." >>$strfile
820 echo "FAIL (got '$description', expected 'Test Printer 1')"
821 fail=`expr $fail + 1`
822else
823 echo "Passed." >>$strfile
824 echo PASS
825fi
826
35fc2243 827echo " </pre>" >>$strfile
ef416fc2 828
ef416fc2 829#
830# Stop the server...
831#
832
833kill $cupsd
87f8ade3
MS
834wait $cupsd
835cupsdstatus=$?
ef416fc2 836
839a51c8
MS
837#
838# Verify counts...
839#
840
841echo "Test Summary"
842echo ""
35fc2243 843echo " <h1><a name='SUMMARY'>3 - Test Summary</a></h1>" >>$strfile
87f8ade3
MS
844
845if test $cupsdstatus != 0; then
846 echo "FAIL: cupsd failed with exit status $cupsdstatus."
35fc2243 847 echo " <p>FAIL: cupsd failed with exit status $cupsdstatus.</p>" >>$strfile
87f8ade3
MS
848 fail=`expr $fail + 1`
849else
850 echo "PASS: cupsd exited with no errors."
35fc2243 851 echo " <p>PASS: cupsd exited with no errors.</p>" >>$strfile
87f8ade3 852fi
839a51c8 853
ba55dc12 854# Job control files
8fe0183a 855count=`ls -1 $BASE/spool | wc -l`
ba55dc12
MS
856count=`expr $count - 1`
857if test $count != 0; then
858 echo "FAIL: $count job control files were not purged."
35fc2243 859 echo " <p>FAIL: $count job control files were not purged.</p>" >>$strfile
ba55dc12
MS
860 fail=`expr $fail + 1`
861else
862 echo "PASS: All job control files purged."
35fc2243 863 echo " <p>PASS: All job control files purged.</p>" >>$strfile
ba55dc12
MS
864fi
865
7a14d768 866# Pages printed on Test1 (within 1 page for timing-dependent cancel issues)
8fe0183a 867count=`$GREP '^Test1 ' $BASE/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
969307f0
MS
868expected=`expr $pjobs \* 2 + 34`
869expected2=`expr $expected + 2`
870if test $count -lt $expected -a $count -gt $expected2; then
839a51c8 871 echo "FAIL: Printer 'Test1' produced $count page(s), expected $expected."
35fc2243 872 echo " <p>FAIL: Printer 'Test1' produced $count page(s), expected $expected.</p>" >>$strfile
839a51c8
MS
873 fail=`expr $fail + 1`
874else
875 echo "PASS: Printer 'Test1' correctly produced $count page(s)."
35fc2243 876 echo " <p>PASS: Printer 'Test1' correctly produced $count page(s).</p>" >>$strfile
839a51c8
MS
877fi
878
879# Paged printed on Test2
8fe0183a 880count=`$GREP '^Test2 ' $BASE/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
839a51c8
MS
881expected=`expr $pjobs \* 2 + 3`
882if test $count != $expected; then
883 echo "FAIL: Printer 'Test2' produced $count page(s), expected $expected."
35fc2243 884 echo " <p>FAIL: Printer 'Test2' produced $count page(s), expected $expected.</p>" >>$strfile
839a51c8
MS
885 fail=`expr $fail + 1`
886else
887 echo "PASS: Printer 'Test2' correctly produced $count page(s)."
35fc2243 888 echo " <p>PASS: Printer 'Test2' correctly produced $count page(s).</p>" >>$strfile
839a51c8
MS
889fi
890
a29fd7dd 891# Paged printed on Test3
3d468ced 892count=`$GREP '^Test3 ' $BASE/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
a29fd7dd
MS
893expected=2
894if test $count != $expected; then
895 echo "FAIL: Printer 'Test3' produced $count page(s), expected $expected."
35fc2243 896 echo " <p>FAIL: Printer 'Test3' produced $count page(s), expected $expected.</p>" >>$strfile
a29fd7dd
MS
897 fail=`expr $fail + 1`
898else
899 echo "PASS: Printer 'Test3' correctly produced $count page(s)."
35fc2243 900 echo " <p>PASS: Printer 'Test3' correctly produced $count page(s).</p>" >>$strfile
a29fd7dd
MS
901fi
902
e07d4801 903# Requests logged
8fe0183a 904count=`wc -l $BASE/log/access_log | awk '{print $1}'`
67bd1f47 905expected=`expr 35 + 18 + 30 + $pjobs \* 8 + $pprinters \* $pjobs \* 4`
e07d4801
MS
906if test $count != $expected; then
907 echo "FAIL: $count requests logged, expected $expected."
35fc2243 908 echo " <p>FAIL: $count requests logged, expected $expected.</p>" >>$strfile
e07d4801
MS
909 fail=`expr $fail + 1`
910else
911 echo "PASS: $count requests logged."
35fc2243 912 echo " <p>PASS: $count requests logged.</p>" >>$strfile
e07d4801
MS
913fi
914
915# Did CUPS-Get-Default get logged?
8fe0183a 916if $GREP -q CUPS-Get-Default $BASE/log/access_log; then
e07d4801 917 echo "FAIL: CUPS-Get-Default logged with 'AccessLogLevel actions'"
35fc2243
MS
918 echo " <p>FAIL: CUPS-Get-Default logged with 'AccessLogLevel actions'</p>" >>$strfile
919 echo " <pre>" >>$strfile
8fe0183a 920 $GREP CUPS-Get-Default $BASE/log/access_log | sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' >>$strfile
35fc2243 921 echo " </pre>" >>$strfile
e07d4801
MS
922 fail=`expr $fail + 1`
923else
924 echo "PASS: CUPS-Get-Default not logged."
35fc2243 925 echo " <p>PASS: CUPS-Get-Default not logged.</p>" >>$strfile
e07d4801 926fi
839a51c8
MS
927
928# Emergency log messages
8fe0183a 929count=`$GREP '^X ' $BASE/log/error_log | wc -l | awk '{print $1}'`
839a51c8
MS
930if test $count != 0; then
931 echo "FAIL: $count emergency messages, expected 0."
8fe0183a 932 $GREP '^X ' $BASE/log/error_log
35fc2243
MS
933 echo " <p>FAIL: $count emergency messages, expected 0.</p>" >>$strfile
934 echo " <pre>" >>$strfile
8fe0183a 935 $GREP '^X ' $BASE/log/error_log | sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' >>$strfile
35fc2243 936 echo " </pre>" >>$strfile
839a51c8
MS
937 fail=`expr $fail + 1`
938else
939 echo "PASS: $count emergency messages."
35fc2243 940 echo " <p>PASS: $count emergency messages.</p>" >>$strfile
839a51c8
MS
941fi
942
943# Alert log messages
8fe0183a 944count=`$GREP '^A ' $BASE/log/error_log | wc -l | awk '{print $1}'`
839a51c8
MS
945if test $count != 0; then
946 echo "FAIL: $count alert messages, expected 0."
8fe0183a 947 $GREP '^A ' $BASE/log/error_log
35fc2243
MS
948 echo " <p>FAIL: $count alert messages, expected 0.</p>" >>$strfile
949 echo " <pre>" >>$strfile
8fe0183a 950 $GREP '^A ' $BASE/log/error_log | sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' >>$strfile
35fc2243 951 echo " </pre>" >>$strfile
839a51c8
MS
952 fail=`expr $fail + 1`
953else
954 echo "PASS: $count alert messages."
35fc2243 955 echo " <p>PASS: $count alert messages.</p>" >>$strfile
839a51c8
MS
956fi
957
958# Critical log messages
8fe0183a 959count=`$GREP '^C ' $BASE/log/error_log | wc -l | awk '{print $1}'`
839a51c8
MS
960if test $count != 0; then
961 echo "FAIL: $count critical messages, expected 0."
8fe0183a 962 $GREP '^C ' $BASE/log/error_log
35fc2243
MS
963 echo " <p>FAIL: $count critical messages, expected 0.</p>" >>$strfile
964 echo " <pre>" >>$strfile
8fe0183a 965 $GREP '^C ' $BASE/log/error_log | sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' >>$strfile
35fc2243 966 echo " </pre>" >>$strfile
839a51c8
MS
967 fail=`expr $fail + 1`
968else
969 echo "PASS: $count critical messages."
35fc2243 970 echo " <p>PASS: $count critical messages.</p>" >>$strfile
839a51c8
MS
971fi
972
973# Error log messages
97980490 974count=`$GREP '^E ' $BASE/log/error_log | $GREP -v 'Unknown default SystemGroup' | wc -l | awk '{print $1}'`
a29fd7dd
MS
975if test $count != 33; then
976 echo "FAIL: $count error messages, expected 33."
8fe0183a 977 $GREP '^E ' $BASE/log/error_log
35fc2243
MS
978 echo " <p>FAIL: $count error messages, expected 33.</p>" >>$strfile
979 echo " <pre>" >>$strfile
8fe0183a 980 $GREP '^E ' $BASE/log/error_log | sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' >>$strfile
35fc2243 981 echo " </pre>" >>$strfile
839a51c8
MS
982 fail=`expr $fail + 1`
983else
984 echo "PASS: $count error messages."
35fc2243 985 echo " <p>PASS: $count error messages.</p>" >>$strfile
839a51c8
MS
986fi
987
988# Warning log messages
8fe0183a 989count=`$GREP '^W ' $BASE/log/error_log | $GREP -v CreateProfile | wc -l | awk '{print $1}'`
3fc450cd 990if test $count != 8; then
ea99768e 991 echo "FAIL: $count warning messages, expected 8."
8fe0183a 992 $GREP '^W ' $BASE/log/error_log
35fc2243
MS
993 echo " <p>FAIL: $count warning messages, expected 8.</p>" >>$strfile
994 echo " <pre>" >>$strfile
8fe0183a 995 $GREP '^W ' $BASE/log/error_log | sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' >>$strfile
35fc2243 996 echo " </pre>" >>$strfile
839a51c8
MS
997 fail=`expr $fail + 1`
998else
999 echo "PASS: $count warning messages."
35fc2243 1000 echo " <p>PASS: $count warning messages.</p>" >>$strfile
839a51c8
MS
1001fi
1002
1003# Notice log messages
8fe0183a 1004count=`$GREP '^N ' $BASE/log/error_log | wc -l | awk '{print $1}'`
839a51c8
MS
1005if test $count != 0; then
1006 echo "FAIL: $count notice messages, expected 0."
8fe0183a 1007 $GREP '^N ' $BASE/log/error_log
35fc2243
MS
1008 echo " <p>FAIL: $count notice messages, expected 0.</p>" >>$strfile
1009 echo " <pre>" >>$strfile
8fe0183a 1010 $GREP '^N ' $BASE/log/error_log | sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' >>$strfile
35fc2243 1011 echo " </pre>" >>$strfile
839a51c8
MS
1012 fail=`expr $fail + 1`
1013else
1014 echo "PASS: $count notice messages."
35fc2243 1015 echo " <p>PASS: $count notice messages.</p>" >>$strfile
839a51c8
MS
1016fi
1017
1018# Info log messages
8fe0183a 1019count=`$GREP '^I ' $BASE/log/error_log | wc -l | awk '{print $1}'`
839a51c8
MS
1020if test $count = 0; then
1021 echo "FAIL: $count info messages, expected more than 0."
35fc2243 1022 echo " <p>FAIL: $count info messages, expected more than 0.</p>" >>$strfile
839a51c8
MS
1023 fail=`expr $fail + 1`
1024else
1025 echo "PASS: $count info messages."
35fc2243 1026 echo " <p>PASS: $count info messages.</p>" >>$strfile
839a51c8
MS
1027fi
1028
1029# Debug log messages
8fe0183a 1030count=`$GREP '^D ' $BASE/log/error_log | wc -l | awk '{print $1}'`
839a51c8
MS
1031if test $count = 0; then
1032 echo "FAIL: $count debug messages, expected more than 0."
35fc2243 1033 echo " <p>FAIL: $count debug messages, expected more than 0.</p>" >>$strfile
839a51c8
MS
1034 fail=`expr $fail + 1`
1035else
1036 echo "PASS: $count debug messages."
35fc2243 1037 echo " <p>PASS: $count debug messages.</p>" >>$strfile
839a51c8
MS
1038fi
1039
1040# Debug2 log messages
8fe0183a 1041count=`$GREP '^d ' $BASE/log/error_log | wc -l | awk '{print $1}'`
7a14d768
MS
1042if test $count = 0; then
1043 echo "FAIL: $count debug2 messages, expected more than 0."
35fc2243 1044 echo " <p>FAIL: $count debug2 messages, expected more than 0.</p>" >>$strfile
839a51c8
MS
1045 fail=`expr $fail + 1`
1046else
1047 echo "PASS: $count debug2 messages."
35fc2243 1048 echo " <p>PASS: $count debug2 messages.</p>" >>$strfile
839a51c8
MS
1049fi
1050
87f8ade3 1051#
839a51c8 1052# Log files...
87f8ade3
MS
1053#
1054
35fc2243
MS
1055echo " <h1><a name='LOGS'>4 - Log Files</a></h1>" >>$strfile
1056
1057for file in $BASE/log/*_log; do
1058 baselog=`basename $file`
1059
1060 echo " <h2><a name=\"$baselog\">$baselog</a></h2>" >>$strfile
1061 case $baselog in
1062 error_log)
1063 echo " <blockquote>Note: debug2 messages have been filtered out of the HTML report.</blockquote>" >>$strfile
1064 echo " <pre>" >>$strfile
1065 $GREP -v '^d' $BASE/log/error_log | sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' >>$strfile
1066 echo " </pre>" >>$strfile
1067 ;;
1068
1069 *)
1070 echo " <pre>" >>$strfile
1071 sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' $file >>$strfile
1072 echo " </pre>" >>$strfile
1073 ;;
1074 esac
1075done
ef416fc2 1076
ef416fc2 1077#
1078# Format the reports and tell the user where to find them...
1079#
1080
ef416fc2 1081cat str-trailer.html >>$strfile
1082
ef416fc2 1083echo ""
d2f1a784
MS
1084for file in $BASE/log/*_log; do
1085 baselog=`basename $file`
1086 cp $file $baselog-$date-$user
1087 echo "Copied log file \"$baselog-$date-$user\" to test directory."
1088done
1089cp $strfile .
1090echo "Copied report file \"cups-str-$date-$user.html\" to test directory."
ef416fc2 1091
d2f1a784 1092# Clean out old failure log files after 1 week...
ae7225e5
MS
1093find . -name \*_log-\*-$user -a -mtime +7 -print -exec rm -f '{}' \; | awk '{print "Removed old log file \"" substr($1,3) "\" from test directory."}'
1094find . -name cups-str-\*-$user.html -a -mtime +7 -print -exec rm -f '{}' \; | awk '{print "Removed old report file \"" $1 "\" from test directory."}'
ef416fc2 1095
d2f1a784 1096echo ""
dd1abb6b 1097
d2f1a784
MS
1098if test $fail != 0; then
1099 echo "$fail tests failed."
db0bd74a 1100 exit 1
35fc2243
MS
1101else
1102 echo "All tests were successful."
db0bd74a 1103fi