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