]>
git.ipfire.org Git - thirdparty/cups.git/blob - test/run-stp-tests.sh
b05c7ab8b2a0d155063f47698c24e7eed4d379f0
3 # "$Id: run-stp-tests.sh 6649 2007-07-11 21:46:42Z mike $"
5 # Perform the complete set of IPP compliance tests specified in the
6 # CUPS Software Test Plan.
8 # Copyright 2007-2008 by Apple Inc.
9 # Copyright 1997-2007 by Easy Software Products, all rights reserved.
11 # These coded instructions, statements, and computer programs are the
12 # property of Apple Inc. and are protected by Federal copyright
13 # law. Distribution and use rights are outlined in the file "LICENSE.txt"
14 # which should have been included with this file. If this file is
15 # file is missing or damaged, see the license at "http://www.cups.org/".
21 # Make the IPP test program...
27 # Figure out the proper echo options...
30 if (echo "testing\c"; echo 1,2,3) |
grep c
>/dev
/null
; then
42 echo "Welcome to the CUPS Automated Test Script."
44 echo "Before we begin, it is important that you understand that the larger"
45 echo "tests require significant amounts of RAM and disk space. If you"
46 echo "attempt to run one of the big tests on a system that lacks sufficient"
47 echo "disk and virtual memory, the UNIX kernel might decide to kill one or"
48 echo "more system processes that you've grown attached to, like the X"
49 echo "server. The question you may want to ask yourself before running a"
50 echo "large test is: Do you feel lucky?"
52 echo "OK, now that we have the Dirty Harry quote out of the way, please"
53 echo "choose the type of test you wish to perform:"
55 echo "0 - No testing, keep the scheduler running for me (all systems)"
56 echo "1 - Basic conformance test, no load testing (all systems)"
57 echo "2 - Basic conformance test, some load testing (minimum 256MB VM, 50MB disk)"
58 echo "3 - Basic conformance test, extreme load testing (minimum 1GB VM, 500MB disk)"
59 echo "4 - Basic conformance test, torture load testing (minimum 2GB VM, 1GB disk)"
61 echo $ac_n "Enter the number of the test you wish to perform: [1] $ac_c"
63 if test $# -gt 0; then
73 echo "Running in test mode (0)"
79 echo "Running the medium tests (2)"
85 echo "Running the extreme tests (3)"
91 echo "Running the torture tests (4)"
97 echo "Running the timid tests (1)"
105 # See if we want to do SSL testing...
109 echo "Now you can choose whether to create a SSL/TLS encryption key and"
110 echo "certificate for testing; these tests currently require the OpenSSL"
113 echo "0 - Do not do SSL/TLS encryption tests"
114 echo "1 - Test but do not require encryption"
115 echo "2 - Test and require encryption"
117 echo $ac_n "Enter the number of the SSL/TLS tests to perform: [0] $ac_c"
119 if test $# -gt 0; then
129 echo "Will test but not require encryption (1)"
132 echo "Will test and require encryption (2)"
135 echo "Not using SSL/TLS (0)"
141 # Information for the server/tests...
145 if test -z "$user"; then
146 if test -x /usr
/ucb
/whoami
; then
147 user
=`/usr/ucb/whoami`
152 if test -z "$user"; then
162 # Make sure that the LPDEST and PRINTER environment variables are
163 # not included in the environment that is passed to the tests. These
164 # will usually cause tests to fail erroneously...
171 # See if we want to use valgrind...
175 echo "This test script can use the Valgrind software from:"
177 echo " http://developer.kde.org/~sewardj/"
179 echo $ac_n "Enter Y to use Valgrind or N to not use Valgrind: [N] $ac_c"
181 if test $# -gt 0; then
189 case "$usevalgrind" in
191 valgrind
="valgrind --tool=memcheck --log-file=/tmp/cups-$user/log/valgrind --error-limit=no --leak-check=yes --trace-children=yes"
192 echo "Using Valgrind; log files can be found in /tmp/cups-$user/log..."
201 # Start by creating temporary directories for the tests...
204 echo "Creating directories for test..."
206 rm -rf /tmp
/cups-
$user
207 mkdir
/tmp
/cups-
$user
208 mkdir
/tmp
/cups-
$user/bin
209 mkdir
/tmp
/cups-
$user/bin
/backend
210 mkdir
/tmp
/cups-
$user/bin
/driver
211 mkdir
/tmp
/cups-
$user/bin
/filter
212 mkdir
/tmp
/cups-
$user/certs
213 mkdir
/tmp
/cups-
$user/share
214 mkdir
/tmp
/cups-
$user/share
/banners
215 mkdir
/tmp
/cups-
$user/share
/drv
216 mkdir
/tmp
/cups-
$user/share
/model
217 mkdir
/tmp
/cups-
$user/share
/ppdc
218 mkdir
/tmp
/cups-
$user/interfaces
219 mkdir
/tmp
/cups-
$user/log
220 mkdir
/tmp
/cups-
$user/ppd
221 mkdir
/tmp
/cups-
$user/spool
222 mkdir
/tmp
/cups-
$user/spool
/temp
223 mkdir
/tmp
/cups-
$user/ssl
225 ln -s $root/backend
/http
/tmp
/cups-
$user/bin
/backend
226 ln -s $root/backend
/ipp
/tmp
/cups-
$user/bin
/backend
227 ln -s $root/backend
/lpd
/tmp
/cups-
$user/bin
/backend
228 ln -s $root/backend
/mdns
/tmp
/cups-
$user/bin
/backend
229 ln -s $root/backend
/parallel
/tmp
/cups-
$user/bin
/backend
230 ln -s $root/backend
/serial
/tmp
/cups-
$user/bin
/backend
231 ln -s $root/backend
/snmp
/tmp
/cups-
$user/bin
/backend
232 ln -s $root/backend
/socket
/tmp
/cups-
$user/bin
/backend
233 ln -s $root/backend
/usb
/tmp
/cups-
$user/bin
/backend
234 ln -s $root/cgi-bin
/tmp
/cups-
$user/bin
235 ln -s $root/ppdc
/drv
/tmp
/cups-
$user/bin
/driver
236 ln -s $root/monitor
/tmp
/cups-
$user/bin
237 ln -s $root/notifier
/tmp
/cups-
$user/bin
238 ln -s $root/scheduler
/tmp
/cups-
$user/bin
/daemon
239 ln -s $root/filter
/commandtops
/tmp
/cups-
$user/bin
/filter
240 ln -s $root/filter
/hpgltops
/tmp
/cups-
$user/bin
/filter
241 ln -s $root/filter
/pstops
/tmp
/cups-
$user/bin
/filter
242 ln -s $root/filter
/rastertoepson
/tmp
/cups-
$user/bin
/filter
243 ln -s $root/filter
/rastertohp
/tmp
/cups-
$user/bin
/filter
244 ln -s $root/filter
/texttops
/tmp
/cups-
$user/bin
/filter
246 ln -s $root/data
/classified
/tmp
/cups-
$user/share
/banners
247 ln -s $root/data
/confidential
/tmp
/cups-
$user/share
/banners
248 ln -s $root/data
/secret
/tmp
/cups-
$user/share
/banners
249 ln -s $root/data
/standard
/tmp
/cups-
$user/share
/banners
250 ln -s $root/data
/topsecret
/tmp
/cups-
$user/share
/banners
251 ln -s $root/data
/unclassified
/tmp
/cups-
$user/share
/banners
252 ln -s $root/data
/tmp
/cups-
$user/share
/charmaps
253 ln -s $root/data
/tmp
/cups-
$user/share
/charsets
254 ln -s $root/data
/tmp
/cups-
$user/share
255 ln -s $root/fonts
/tmp
/cups-
$user/share
256 ln -s $root/ppdc
/sample.drv
/tmp
/cups-
$user/share
/drv
257 ln -s $root/data
/*.h
/tmp
/cups-
$user/share
/ppdc
258 ln -s $root/data
/*.defs
/tmp
/cups-
$user/share
/ppdc
259 ln -s $root/templates
/tmp
/cups-
$user/share
261 if test $ssltype != 0; then
263 cp server.
* $root/ssl
267 # Mac OS X filters and configuration files...
270 if test `uname` = Darwin
; then
271 ln -s /usr
/libexec
/cups
/filter
/cgpdfto
* /tmp
/cups-
$user/bin
/filter
272 ln -s /usr
/libexec
/cups
/filter
/nsimagetopdf
/tmp
/cups-
$user/bin
/filter
273 ln -s /usr
/libexec
/cups
/filter
/nstexttopdf
/tmp
/cups-
$user/bin
/filter
274 ln -s /usr
/libexec
/cups
/filter
/pictwpstops
/tmp
/cups-
$user/bin
/filter
275 ln -s /usr
/libexec
/cups
/filter
/pstoappleps
/tmp
/cups-
$user/bin
/filter
276 ln -s /usr
/libexec
/cups
/filter
/pstocupsraster
/tmp
/cups-
$user/bin
/filter
277 ln -s /usr
/libexec
/cups
/filter
/pstopdffilter
/tmp
/cups-
$user/bin
/filter
279 ln -s /private
/etc
/cups
/apple.
* /tmp
/cups-
$user
281 ln -s $root/filter
/imagetops
/tmp
/cups-
$user/bin
/filter
282 ln -s $root/filter
/imagetoraster
/tmp
/cups-
$user/bin
/filter
283 ln -s $root/filter
/pdftops
/tmp
/cups-
$user/bin
/filter
287 # Then create the necessary config files...
290 echo "Creating cupsd.conf for test..."
292 if test $ssltype = 2; then
293 encryption
="Encryption Required"
298 cat >/tmp
/cups-
$user/cupsd.conf
<<EOF
302 Listen 127.0.0.1:$port
304 ServerRoot /tmp/cups-$user
305 StateDir /tmp/cups-$user
306 ServerBin /tmp/cups-$user/bin
307 CacheDir /tmp/cups-$user/share
308 DataDir /tmp/cups-$user/share
309 FontPath /tmp/cups-$user/share/fonts
310 DocumentRoot $root/doc
311 RequestRoot /tmp/cups-$user/spool
312 TempDir /tmp/cups-$user/spool/temp
314 AccessLog /tmp/cups-$user/log/access_log
315 ErrorLog /tmp/cups-$user/log/error_log
316 PageLog /tmp/cups-$user/log/page_log
318 PreserveJobHistory Yes
329 touch /tmp
/cups-
$user/classes.conf
330 touch /tmp
/cups-
$user/printers.conf
333 # Setup lots of test queues - 500 with PPD files, 500 without...
336 echo "Creating printers.conf for test..."
339 while test $i -le $nprinters1; do
340 cat >>/tmp
/cups-
$user/printers.conf
<<EOF
343 DeviceURI file:/dev/null
344 Info Test PS printer $i
346 Location CUPS test suite
348 StateMessage Printer $1 is idle.
352 cp testps.ppd
/tmp
/cups-
$user/ppd
/test-
$i.ppd
357 while test $i -le $nprinters2; do
358 cat >>/tmp
/cups-
$user/printers.conf
<<EOF
361 DeviceURI file:/dev/null
362 Info Test raw printer $i
364 Location CUPS test suite
366 StateMessage Printer $1 is idle.
373 cp /tmp
/cups-
$user/printers.conf
/tmp
/cups-
$user/printers.conf.orig
375 cp $root/conf
/mime.types
/tmp
/cups-
$user/mime.types
376 cp $root/conf
/mime.convs
/tmp
/cups-
$user/mime.convs
382 echo "Setting up environment variables for test..."
384 if test "x$LD_LIBRARY_PATH" = x
; then
385 LD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc"
387 LD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc:$LD_LIBRARY_PATH"
390 export LD_LIBRARY_PATH
392 LD_PRELOAD
="$root/cups/libcups.so.2:$root/filter/libcupsimage.so.2:$root/cgi-bin/libcupscgi.so.1:$root/scheduler/libcupsmime.so.1:$root/driver/libcupsdriver.so.1:$root/ppdc/libcupsppdc.so.1"
395 if test "x$DYLD_LIBRARY_PATH" = x
; then
396 DYLD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc"
398 DYLD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc:$DYLD_LIBRARY_PATH"
401 export DYLD_LIBRARY_PATH
403 if test "x$SHLIB_PATH" = x
; then
404 SHLIB_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc"
406 SHLIB_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc:$SHLIB_PATH"
411 CUPS_SERVER
=localhost
; export CUPS_SERVER
412 CUPS_SERVERROOT
=/tmp
/cups-
$user; export CUPS_SERVERROOT
413 CUPS_STATEDIR
=/tmp
/cups-
$user; export CUPS_STATEDIR
414 CUPS_DATADIR
=/tmp
/cups-
$user/share
; export CUPS_DATADIR
417 # Set a new home directory to avoid getting user options mixed in...
424 # Force POSIX locale for tests...
431 # Start the server; run as foreground daemon in the background...
434 echo "Starting scheduler:"
435 echo " $valgrind ../scheduler/cupsd -c /tmp/cups-$user/cupsd.conf -f >/tmp/cups-$user/log/debug_log 2>&1 &"
438 $valgrind ..
/scheduler
/cupsd
-c /tmp
/cups-
$user/cupsd.conf
-f >/tmp
/cups-
$user/log
/debug_log
2>&1 &
441 if test "x$testtype" = x0
; then
442 echo "Scheduler is PID $cupsd and is listening on port 8631."
444 echo "Set the IPP_PORT environment variable to 8631 to test the software"
445 echo "interactively from the command-line."
449 if test $argcount -eq 0; then
450 echo "Scheduler is PID $cupsd; run debugger now if you need to."
452 echo $ac_n "Press ENTER to continue... $ac_c"
455 echo "Scheduler is PID $cupsd."
459 IPP_PORT
=$port; export IPP_PORT
462 running
=`../systemv/lpstat -r 2>/dev/null`
463 if test "x$running" = "xscheduler is running"; then
467 echo "Waiting for scheduler to become ready..."
472 # Create the test report source file...
475 strfile
=/tmp
/cups-
$user/cups-str-1.4
-`date +%Y-%m-%d`-$user.html
478 cat str-header.html
>$strfile
481 # Run the IPP tests...
485 echo "Running IPP compliance tests..."
487 echo "<H1>1 - IPP Compliance Tests</H1>" >>$strfile
488 echo "<P>This section provides the results to the IPP compliance tests" >>$strfile
489 echo "outlined in the CUPS Software Test Plan. These tests were run on" >>$strfile
490 echo `date "+%Y-%m-%d"` by
$user on
`hostname`.
>>$strfile
491 echo "<PRE>" >>$strfile
494 for file in 4*.
test; do
495 echo "Performing $file..."
498 .
/ipptest ipp
://localhost
:$port/printers
$file |
tee -a $strfile
501 if test $status != 0; then
503 fail
=`expr $fail + 1`
507 echo "</PRE>" >>$strfile
510 # Run the command tests...
514 echo "Running command tests..."
516 echo "<H1>2 - Command Tests</H1>" >>$strfile
517 echo "<P>This section provides the results to the command tests" >>$strfile
518 echo "outlined in the CUPS Software Test Plan. These tests were run on" >>$strfile
519 echo `date "+%Y-%m-%d"` by
$user on
`hostname`.
>>$strfile
520 echo "<PRE>" >>$strfile
522 for file in 5*.sh
; do
523 echo "Performing $file..."
525 echo "\"$file\":" >>$strfile
527 sh
$file $pjobs |
tee -a $strfile
530 if test $status != 0; then
532 fail
=`expr $fail + 1`
536 echo "</PRE>" >>$strfile
545 # Append the log files for post-mortim...
548 echo "<H1>3 - Log Files</H1>" >>$strfile
556 echo "<H2>Summary</H2>" >>$strfile
558 # Pages printed on Test1 (within 1 page for timing-dependent cancel issues)
559 count
=`grep '^Test1 ' /tmp/cups-$user/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
560 expected
=`expr $pjobs \* 2 + 35`
561 expected2
=`expr $expected + 1`
562 if test $count != $expected -a $count != $expected2; then
563 echo "FAIL: Printer 'Test1' produced $count page(s), expected $expected."
564 echo "<P>FAIL: Printer 'Test1' produced $count page(s), expected $expected.</P>" >>$strfile
565 fail
=`expr $fail + 1`
567 echo "PASS: Printer 'Test1' correctly produced $count page(s)."
568 echo "<P>PASS: Printer 'Test1' correctly produced $count page(s).</P>" >>$strfile
571 # Paged printed on Test2
572 count
=`grep '^Test2 ' /tmp/cups-$user/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
573 expected
=`expr $pjobs \* 2 + 3`
574 if test $count != $expected; then
575 echo "FAIL: Printer 'Test2' produced $count page(s), expected $expected."
576 echo "<P>FAIL: Printer 'Test2' produced $count page(s), expected $expected.</P>" >>$strfile
577 fail
=`expr $fail + 1`
579 echo "PASS: Printer 'Test2' correctly produced $count page(s)."
580 echo "<P>PASS: Printer 'Test2' correctly produced $count page(s).</P>" >>$strfile
583 # Requested processed
584 count
=`wc -l /tmp/cups-$user/log/access_log | awk '{print $1}'`
585 echo "PASS: $count requests processed."
586 echo "<P>PASS: $count requests processed.</P>" >>$strfile
588 # Emergency log messages
589 count
=`grep '^X ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
590 if test $count != 0; then
591 echo "FAIL: $count emergency messages, expected 0."
592 grep '^X ' /tmp
/cups-
$user/log
/error_log
593 echo "<P>FAIL: $count emergency messages, expected 0.</P>" >>$strfile
594 echo "<PRE>" >>$strfile
595 grep '^X ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
596 echo "</PRE>" >>$strfile
597 fail
=`expr $fail + 1`
599 echo "PASS: $count emergency messages."
600 echo "<P>PASS: $count emergency messages.</P>" >>$strfile
604 count
=`grep '^A ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
605 if test $count != 0; then
606 echo "FAIL: $count alert messages, expected 0."
607 grep '^A ' /tmp
/cups-
$user/log
/error_log
608 echo "<P>FAIL: $count alert messages, expected 0.</P>" >>$strfile
609 echo "<PRE>" >>$strfile
610 grep '^A ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
611 echo "</PRE>" >>$strfile
612 fail
=`expr $fail + 1`
614 echo "PASS: $count alert messages."
615 echo "<P>PASS: $count alert messages.</P>" >>$strfile
618 # Critical log messages
619 count
=`grep '^C ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
620 if test $count != 0; then
621 echo "FAIL: $count critical messages, expected 0."
622 grep '^C ' /tmp
/cups-
$user/log
/error_log
623 echo "<P>FAIL: $count critical messages, expected 0.</P>" >>$strfile
624 echo "<PRE>" >>$strfile
625 grep '^C ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
626 echo "</PRE>" >>$strfile
627 fail
=`expr $fail + 1`
629 echo "PASS: $count critical messages."
630 echo "<P>PASS: $count critical messages.</P>" >>$strfile
634 count
=`grep '^E ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
635 if test $count != 9; then
636 echo "FAIL: $count error messages, expected 9."
637 grep '^E ' /tmp
/cups-
$user/log
/error_log
638 echo "<P>FAIL: $count error messages, expected 9.</P>" >>$strfile
639 echo "<PRE>" >>$strfile
640 grep '^E ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
641 echo "</PRE>" >>$strfile
642 fail
=`expr $fail + 1`
644 echo "PASS: $count error messages."
645 echo "<P>PASS: $count error messages.</P>" >>$strfile
648 # Warning log messages
649 count
=`grep '^W ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
650 if test $count != 0; then
651 echo "FAIL: $count warning messages, expected 0."
652 grep '^W ' /tmp
/cups-
$user/log
/error_log
653 echo "<P>FAIL: $count warning messages, expected 0.</P>" >>$strfile
654 echo "<PRE>" >>$strfile
655 grep '^W ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
656 echo "</PRE>" >>$strfile
657 fail
=`expr $fail + 1`
659 echo "PASS: $count warning messages."
660 echo "<P>PASS: $count warning messages.</P>" >>$strfile
663 # Notice log messages
664 count
=`grep '^N ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
665 if test $count != 0; then
666 echo "FAIL: $count notice messages, expected 0."
667 grep '^N ' /tmp
/cups-
$user/log
/error_log
668 echo "<P>FAIL: $count notice messages, expected 0.</P>" >>$strfile
669 echo "<PRE>" >>$strfile
670 grep '^N ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
671 echo "</PRE>" >>$strfile
672 fail
=`expr $fail + 1`
674 echo "PASS: $count notice messages."
675 echo "<P>PASS: $count notice messages.</P>" >>$strfile
679 count
=`grep '^I ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
680 if test $count = 0; then
681 echo "FAIL: $count info messages, expected more than 0."
682 echo "<P>FAIL: $count info messages, expected more than 0.</P>" >>$strfile
683 fail
=`expr $fail + 1`
685 echo "PASS: $count info messages."
686 echo "<P>PASS: $count info messages.</P>" >>$strfile
690 count
=`grep '^D ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
691 if test $count = 0; then
692 echo "FAIL: $count debug messages, expected more than 0."
693 echo "<P>FAIL: $count debug messages, expected more than 0.</P>" >>$strfile
694 fail
=`expr $fail + 1`
696 echo "PASS: $count debug messages."
697 echo "<P>PASS: $count debug messages.</P>" >>$strfile
700 # Debug2 log messages
701 count
=`grep '^d ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
702 if test $count = 0; then
703 echo "FAIL: $count debug2 messages, expected more than 0."
704 echo "<P>FAIL: $count debug2 messages, expected more than 0.</P>" >>$strfile
705 fail
=`expr $fail + 1`
707 echo "PASS: $count debug2 messages."
708 echo "<P>PASS: $count debug2 messages.</P>" >>$strfile
712 echo "<H2>access_log</H2>" >>$strfile
713 echo "<PRE>" >>$strfile
714 sed -e '1,$s/&/&/g' -e '1,$s/</</g' /tmp
/cups-
$user/log
/access_log
>>$strfile
715 echo "</PRE>" >>$strfile
717 echo "<H2>error_log</H2>" >>$strfile
718 echo "<PRE>" >>$strfile
719 grep -v '^[dD]' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
720 echo "</PRE>" >>$strfile
722 echo "<H2>page_log</H2>" >>$strfile
723 echo "<PRE>" >>$strfile
724 sed -e '1,$s/&/&/g' -e '1,$s/</</g' /tmp
/cups-
$user/log
/page_log
>>$strfile
725 echo "</PRE>" >>$strfile
728 # Format the reports and tell the user where to find them...
731 cat str-trailer.html
>>$strfile
735 if test $fail != 0; then
736 echo "$fail tests failed."
738 echo "All tests were successful."
741 echo "Log files can be found in /tmp/cups-$user/log."
742 echo "A HTML report was created in $strfile."
745 if test $fail != 0; then
750 # End of "$Id: run-stp-tests.sh 6649 2007-07-11 21:46:42Z mike $"