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