]>
git.ipfire.org Git - thirdparty/cups.git/blob - test/run-stp-tests.sh
3 # "$Id: run-stp-tests.sh 7954 2008-09-17 05:23:09Z mike $"
5 # Perform the complete set of IPP compliance tests specified in the
6 # CUPS Software Test Plan.
8 # Copyright 2007-2009 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)"
80 echo "Running the medium tests (2)"
87 echo "Running the extreme tests (3)"
94 echo "Running the torture tests (4)"
101 echo "Running the timid tests (1)"
110 # See if we want to do SSL testing...
114 echo "Now you can choose whether to create a SSL/TLS encryption key and"
115 echo "certificate for testing; these tests currently require the OpenSSL"
118 echo "0 - Do not do SSL/TLS encryption tests"
119 echo "1 - Test but do not require encryption"
120 echo "2 - Test and require encryption"
122 echo $ac_n "Enter the number of the SSL/TLS tests to perform: [0] $ac_c"
124 if test $# -gt 0; then
134 echo "Will test but not require encryption (1)"
137 echo "Will test and require encryption (2)"
140 echo "Not using SSL/TLS (0)"
146 # Information for the server/tests...
150 if test -z "$user"; then
151 if test -x /usr
/ucb
/whoami
; then
152 user
=`/usr/ucb/whoami`
157 if test -z "$user"; then
167 # Make sure that the LPDEST and PRINTER environment variables are
168 # not included in the environment that is passed to the tests. These
169 # will usually cause tests to fail erroneously...
176 # See if we want to use valgrind...
180 echo "This test script can use the Valgrind software from:"
182 echo " http://developer.kde.org/~sewardj/"
184 echo $ac_n "Enter Y to use Valgrind or N to not use Valgrind: [N] $ac_c"
186 if test $# -gt 0; then
194 case "$usevalgrind" in
196 valgrind
="valgrind --tool=memcheck --log-file=/tmp/cups-$user/log/valgrind.%p --error-limit=no --leak-check=yes --trace-children=yes --read-var-info=yes"
197 echo "Using Valgrind; log files can be found in /tmp/cups-$user/log..."
206 # Start by creating temporary directories for the tests...
209 echo "Creating directories for test..."
211 rm -rf /tmp
/cups-
$user
212 mkdir
/tmp
/cups-
$user
213 mkdir
/tmp
/cups-
$user/bin
214 mkdir
/tmp
/cups-
$user/bin
/backend
215 mkdir
/tmp
/cups-
$user/bin
/driver
216 mkdir
/tmp
/cups-
$user/bin
/filter
217 mkdir
/tmp
/cups-
$user/certs
218 mkdir
/tmp
/cups-
$user/share
219 mkdir
/tmp
/cups-
$user/share
/banners
220 mkdir
/tmp
/cups-
$user/share
/drv
221 mkdir
/tmp
/cups-
$user/share
/locale
222 for file in ..
/locale
/cups_
*.po
; do
223 loc
=`basename $file .po | cut -c 6-`
224 mkdir
/tmp
/cups-
$user/share
/locale
/$loc
225 ln -s $root/locale
/cups_
$loc.po
/tmp
/cups-
$user/share
/locale
/$loc
226 ln -s $root/locale
/ppdc_
$loc.po
/tmp
/cups-
$user/share
/locale
/$loc
228 mkdir
/tmp
/cups-
$user/share
/mime
229 mkdir
/tmp
/cups-
$user/share
/model
230 mkdir
/tmp
/cups-
$user/share
/ppdc
231 mkdir
/tmp
/cups-
$user/interfaces
232 mkdir
/tmp
/cups-
$user/log
233 mkdir
/tmp
/cups-
$user/ppd
234 mkdir
/tmp
/cups-
$user/spool
235 mkdir
/tmp
/cups-
$user/spool
/temp
236 mkdir
/tmp
/cups-
$user/ssl
238 ln -s $root/backend
/dnssd
/tmp
/cups-
$user/bin
/backend
239 ln -s $root/backend
/http
/tmp
/cups-
$user/bin
/backend
240 ln -s $root/backend
/ipp
/tmp
/cups-
$user/bin
/backend
241 ln -s $root/backend
/lpd
/tmp
/cups-
$user/bin
/backend
242 ln -s $root/backend
/mdns
/tmp
/cups-
$user/bin
/backend
243 ln -s $root/backend
/parallel
/tmp
/cups-
$user/bin
/backend
244 ln -s $root/backend
/serial
/tmp
/cups-
$user/bin
/backend
245 ln -s $root/backend
/snmp
/tmp
/cups-
$user/bin
/backend
246 ln -s $root/backend
/socket
/tmp
/cups-
$user/bin
/backend
247 ln -s $root/backend
/usb
/tmp
/cups-
$user/bin
/backend
248 ln -s $root/cgi-bin
/tmp
/cups-
$user/bin
249 ln -s $root/monitor
/tmp
/cups-
$user/bin
250 ln -s $root/notifier
/tmp
/cups-
$user/bin
251 ln -s $root/scheduler
/tmp
/cups-
$user/bin
/daemon
252 ln -s $root/filter
/bannertops
/tmp
/cups-
$user/bin
/filter
253 ln -s $root/filter
/commandtops
/tmp
/cups-
$user/bin
/filter
254 ln -s $root/filter
/hpgltops
/tmp
/cups-
$user/bin
/filter
255 ln -s $root/filter
/pstops
/tmp
/cups-
$user/bin
/filter
256 ln -s $root/filter
/rastertoepson
/tmp
/cups-
$user/bin
/filter
257 ln -s $root/filter
/rastertohp
/tmp
/cups-
$user/bin
/filter
258 ln -s $root/filter
/texttops
/tmp
/cups-
$user/bin
/filter
260 ln -s $root/data
/classified
/tmp
/cups-
$user/share
/banners
261 ln -s $root/data
/confidential
/tmp
/cups-
$user/share
/banners
262 ln -s $root/data
/secret
/tmp
/cups-
$user/share
/banners
263 ln -s $root/data
/standard
/tmp
/cups-
$user/share
/banners
264 ln -s $root/data
/topsecret
/tmp
/cups-
$user/share
/banners
265 ln -s $root/data
/unclassified
/tmp
/cups-
$user/share
/banners
266 ln -s $root/data
/tmp
/cups-
$user/share
/charmaps
267 ln -s $root/data
/tmp
/cups-
$user/share
/charsets
268 ln -s $root/data
/tmp
/cups-
$user/share
269 ln -s $root/fonts
/tmp
/cups-
$user/share
270 ln -s $root/ppdc
/sample.drv
/tmp
/cups-
$user/share
/drv
271 ln -s $root/conf
/mime.types
/tmp
/cups-
$user/share
/mime
272 ln -s $root/conf
/mime.convs
/tmp
/cups-
$user/share
/mime
273 ln -s $root/data
/*.h
/tmp
/cups-
$user/share
/ppdc
274 ln -s $root/data
/*.defs
/tmp
/cups-
$user/share
/ppdc
275 ln -s $root/templates
/tmp
/cups-
$user/share
277 if test $ssltype != 0; then
279 cp server.
* $root/ssl
283 # Mac OS X filters and configuration files...
286 if test `uname` = Darwin
; then
287 ln -s /usr
/libexec
/cups
/filter
/cgpdfto
* /tmp
/cups-
$user/bin
/filter
288 ln -s /usr
/libexec
/cups
/filter
/cgbannertopdf
/tmp
/cups-
$user/bin
/filter
289 ln -s /usr
/libexec
/cups
/filter
/cgimagetopdf
/tmp
/cups-
$user/bin
/filter
290 ln -s /usr
/libexec
/cups
/filter
/cgtexttopdf
/tmp
/cups-
$user/bin
/filter
291 ln -s /usr
/libexec
/cups
/filter
/nsimagetopdf
/tmp
/cups-
$user/bin
/filter
292 ln -s /usr
/libexec
/cups
/filter
/nstexttopdf
/tmp
/cups-
$user/bin
/filter
293 ln -s /usr
/libexec
/cups
/filter
/pictwpstops
/tmp
/cups-
$user/bin
/filter
294 ln -s /usr
/libexec
/cups
/filter
/pstoappleps
/tmp
/cups-
$user/bin
/filter
295 ln -s /usr
/libexec
/cups
/filter
/pstocupsraster
/tmp
/cups-
$user/bin
/filter
296 ln -s /usr
/libexec
/cups
/filter
/pstopdffilter
/tmp
/cups-
$user/bin
/filter
298 if test -f /private
/etc
/cups
/apple.types
; then
299 ln -s /private
/etc
/cups
/apple.
* /tmp
/cups-
$user/share
/mime
300 elif test -f /usr
/share
/cups
/mime
/apple.types
; then
301 ln -s /usr
/share
/cups
/mime
/apple.
* /tmp
/cups-
$user/share
/mime
304 ln -s $root/filter
/imagetops
/tmp
/cups-
$user/bin
/filter
305 ln -s $root/filter
/imagetoraster
/tmp
/cups-
$user/bin
/filter
306 ln -s $root/filter
/pdftops
/tmp
/cups-
$user/bin
/filter
310 # Then create the necessary config files...
313 echo "Creating cupsd.conf for test..."
315 if test $ssltype = 2; then
316 encryption
="Encryption Required"
321 cat >/tmp
/cups-
$user/cupsd.conf
<<EOF
325 Listen 127.0.0.1:$port
327 ServerRoot /tmp/cups-$user
328 StateDir /tmp/cups-$user
329 ServerBin /tmp/cups-$user/bin
330 CacheDir /tmp/cups-$user/share
331 DataDir /tmp/cups-$user/share
332 FontPath /tmp/cups-$user/share/fonts
334 DocumentRoot $root/doc
335 RequestRoot /tmp/cups-$user/spool
336 TempDir /tmp/cups-$user/spool/temp
339 AccessLog /tmp/cups-$user/log/access_log
340 ErrorLog /tmp/cups-$user/log/error_log
341 PageLog /tmp/cups-$user/log/page_log
344 PreserveJobHistory Yes
356 # Setup lots of test queues - half with PPD files, half without...
359 echo "Creating printers.conf for test..."
362 while test $i -le $nprinters1; do
363 cat >>/tmp
/cups-
$user/printers.conf
<<EOF
366 DeviceURI file:/dev/null
367 Info Test PS printer $i
369 Location CUPS test suite
371 StateMessage Printer $1 is idle.
375 cp testps.ppd
/tmp
/cups-
$user/ppd
/test-
$i.ppd
380 while test $i -le $nprinters2; do
381 cat >>/tmp
/cups-
$user/printers.conf
<<EOF
384 DeviceURI file:/dev/null
385 Info Test raw printer $i
387 Location CUPS test suite
389 StateMessage Printer $1 is idle.
396 if test -f /tmp
/cups-
$user/printers.conf
; then
397 cp /tmp
/cups-
$user/printers.conf
/tmp
/cups-
$user/printers.conf.orig
399 touch /tmp
/cups-
$user/printers.conf.orig
406 echo "Setting up environment variables for test..."
408 if test "x$LD_LIBRARY_PATH" = x
; then
409 LD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc"
411 LD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc:$LD_LIBRARY_PATH"
414 export LD_LIBRARY_PATH
416 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"
419 if test "x$DYLD_LIBRARY_PATH" = x
; then
420 DYLD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc"
422 DYLD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc:$DYLD_LIBRARY_PATH"
425 export DYLD_LIBRARY_PATH
427 if test "x$SHLIB_PATH" = x
; then
428 SHLIB_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc"
430 SHLIB_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc:$SHLIB_PATH"
435 CUPS_SERVER
=localhost
:8631; export CUPS_SERVER
436 CUPS_SERVERROOT
=/tmp
/cups-
$user; export CUPS_SERVERROOT
437 CUPS_STATEDIR
=/tmp
/cups-
$user; export CUPS_STATEDIR
438 CUPS_DATADIR
=/tmp
/cups-
$user/share
; export CUPS_DATADIR
439 LOCALEDIR
=/tmp
/cups-
$user/share
/locale
; export LOCALEDIR
442 # Set a new home directory to avoid getting user options mixed in...
449 # Force POSIX locale for tests...
456 # Start the server; run as foreground daemon in the background...
459 echo "Starting scheduler:"
460 echo " $valgrind ../scheduler/cupsd -c /tmp/cups-$user/cupsd.conf -f >/tmp/cups-$user/log/debug_log 2>&1 &"
463 if test `uname` = Darwin
-a "x$valgrind" = x
; then
464 DYLD_INSERT_LIBRARIES
=/usr
/lib
/libgmalloc.dylib \
465 $valgrind ..
/scheduler
/cupsd
-c /tmp
/cups-
$user/cupsd.conf
-f >/tmp
/cups-
$user/log
/debug_log
2>&1 &
467 $valgrind ..
/scheduler
/cupsd
-c /tmp
/cups-
$user/cupsd.conf
-f >/tmp
/cups-
$user/log
/debug_log
2>&1 &
472 if test "x$testtype" = x0
; then
473 # Not running tests...
474 echo "Scheduler is PID $cupsd and is listening on port 8631."
477 # Create a helper script to run programs with...
478 runcups
="/tmp/cups-$user/runcups"
480 echo "#!/bin/sh" >$runcups
481 echo "# Helper script for running CUPS test instance." >>$runcups
483 echo "# Set required environment variables..." >>$runcups
484 echo "CUPS_DATADIR=\"$CUPS_DATADIR\"; export CUPS_DATADIR" >>$runcups
485 echo "CUPS_SERVER=\"$CUPS_SERVER\"; export CUPS_SERVER" >>$runcups
486 echo "CUPS_SERVERROOT=\"$CUPS_SERVERROOT\"; export CUPS_SERVERROOT" >>$runcups
487 echo "CUPS_STATEDIR=\"$CUPS_STATEDIR\"; export CUPS_STATEDIR" >>$runcups
488 echo "DYLD_LIBRARY_PATH=\"$DYLD_LIBRARY_PATH\"; export DYLD_LIBRARY_PATH" >>$runcups
489 echo "LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH\"; export LD_LIBRARY_PATH" >>$runcups
490 echo "LD_PRELOAD=\"$LD_PRELOAD\"; export LD_PRELOAD" >>$runcups
491 echo "LOCALEDIR=\"$LOCALEDIR\"; export LOCALEDIR" >>$runcups
492 echo "SHLIB_PATH=\"$SHLIB_PATH\"; export SHLIB_PATH" >>$runcups
494 echo "# Run command..." >>$runcups
495 echo "exec \"\$@\"" >>$runcups
499 echo "The $runcups helper script can be used to test programs"
500 echo "with the server."
504 if test $argcount -eq 0; then
505 echo "Scheduler is PID $cupsd; run debugger now if you need to."
507 echo $ac_n "Press ENTER to continue... $ac_c"
510 echo "Scheduler is PID $cupsd."
514 IPP_PORT
=$port; export IPP_PORT
517 running
=`../systemv/lpstat -r 2>/dev/null`
518 if test "x$running" = "xscheduler is running"; then
522 echo "Waiting for scheduler to become ready..."
527 # Create the test report source file...
530 date=`date "+%Y-%m-%d"`
531 strfile
=/tmp
/cups-
$user/cups-str-1.4
-$date-$user.html
534 cat str-header.html
>$strfile
537 # Run the IPP tests...
541 echo "Running IPP compliance tests..."
543 echo "<H1>1 - IPP Compliance Tests</H1>" >>$strfile
544 echo "<P>This section provides the results to the IPP compliance tests" >>$strfile
545 echo "outlined in the CUPS Software Test Plan. These tests were run on" >>$strfile
546 echo `date "+%Y-%m-%d"` by
$user on
`hostname`.
>>$strfile
547 echo "<PRE>" >>$strfile
550 for file in 4*.
test; do
551 echo "Performing $file..."
554 .
/ipptest ipp
://localhost
:$port/printers
$file |
tee -a $strfile
557 if test $status != 0; then
559 fail
=`expr $fail + 1`
563 echo "</PRE>" >>$strfile
566 # Run the command tests...
570 echo "Running command tests..."
572 echo "<H1>2 - Command Tests</H1>" >>$strfile
573 echo "<P>This section provides the results to the command tests" >>$strfile
574 echo "outlined in the CUPS Software Test Plan. These tests were run on" >>$strfile
575 echo $date by
$user on
`hostname`.
>>$strfile
576 echo "<PRE>" >>$strfile
578 for file in 5*.sh
; do
579 echo "Performing $file..."
581 echo "\"$file\":" >>$strfile
583 sh
$file $pjobs $pprinters |
tee -a $strfile
586 if test $status != 0; then
588 fail
=`expr $fail + 1`
592 echo "</PRE>" >>$strfile
601 # Append the log files for post-mortim...
604 echo "<H1>3 - Log Files</H1>" >>$strfile
612 echo "<H2>Summary</H2>" >>$strfile
614 # Pages printed on Test1 (within 1 page for timing-dependent cancel issues)
615 count
=`grep '^Test1 ' /tmp/cups-$user/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
616 expected
=`expr $pjobs \* 2 + 34`
617 expected2
=`expr $expected + 2`
618 if test $count -lt $expected -a $count -gt $expected2; then
619 echo "FAIL: Printer 'Test1' produced $count page(s), expected $expected."
620 echo "<P>FAIL: Printer 'Test1' produced $count page(s), expected $expected.</P>" >>$strfile
621 fail
=`expr $fail + 1`
623 echo "PASS: Printer 'Test1' correctly produced $count page(s)."
624 echo "<P>PASS: Printer 'Test1' correctly produced $count page(s).</P>" >>$strfile
627 # Paged printed on Test2
628 count
=`grep '^Test2 ' /tmp/cups-$user/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
629 expected
=`expr $pjobs \* 2 + 3`
630 if test $count != $expected; then
631 echo "FAIL: Printer 'Test2' produced $count page(s), expected $expected."
632 echo "<P>FAIL: Printer 'Test2' produced $count page(s), expected $expected.</P>" >>$strfile
633 fail
=`expr $fail + 1`
635 echo "PASS: Printer 'Test2' correctly produced $count page(s)."
636 echo "<P>PASS: Printer 'Test2' correctly produced $count page(s).</P>" >>$strfile
639 # Requested processed
640 count
=`wc -l /tmp/cups-$user/log/access_log | awk '{print $1}'`
641 echo "PASS: $count requests processed."
642 echo "<P>PASS: $count requests processed.</P>" >>$strfile
644 # Emergency log messages
645 count
=`grep '^X ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
646 if test $count != 0; then
647 echo "FAIL: $count emergency messages, expected 0."
648 grep '^X ' /tmp
/cups-
$user/log
/error_log
649 echo "<P>FAIL: $count emergency messages, expected 0.</P>" >>$strfile
650 echo "<PRE>" >>$strfile
651 grep '^X ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
652 echo "</PRE>" >>$strfile
653 fail
=`expr $fail + 1`
655 echo "PASS: $count emergency messages."
656 echo "<P>PASS: $count emergency messages.</P>" >>$strfile
660 count
=`grep '^A ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
661 if test $count != 0; then
662 echo "FAIL: $count alert messages, expected 0."
663 grep '^A ' /tmp
/cups-
$user/log
/error_log
664 echo "<P>FAIL: $count alert messages, expected 0.</P>" >>$strfile
665 echo "<PRE>" >>$strfile
666 grep '^A ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
667 echo "</PRE>" >>$strfile
668 fail
=`expr $fail + 1`
670 echo "PASS: $count alert messages."
671 echo "<P>PASS: $count alert messages.</P>" >>$strfile
674 # Critical log messages
675 count
=`grep '^C ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
676 if test $count != 0; then
677 echo "FAIL: $count critical messages, expected 0."
678 grep '^C ' /tmp
/cups-
$user/log
/error_log
679 echo "<P>FAIL: $count critical messages, expected 0.</P>" >>$strfile
680 echo "<PRE>" >>$strfile
681 grep '^C ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
682 echo "</PRE>" >>$strfile
683 fail
=`expr $fail + 1`
685 echo "PASS: $count critical messages."
686 echo "<P>PASS: $count critical messages.</P>" >>$strfile
690 count
=`grep '^E ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
691 if test $count != 18; then
692 echo "FAIL: $count error messages, expected 18."
693 grep '^E ' /tmp
/cups-
$user/log
/error_log
694 echo "<P>FAIL: $count error messages, expected 18.</P>" >>$strfile
695 echo "<PRE>" >>$strfile
696 grep '^E ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
697 echo "</PRE>" >>$strfile
698 fail
=`expr $fail + 1`
700 echo "PASS: $count error messages."
701 echo "<P>PASS: $count error messages.</P>" >>$strfile
704 # Warning log messages
705 count
=`grep '^W ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
706 if test $count != 0; then
707 echo "FAIL: $count warning messages, expected 0."
708 grep '^W ' /tmp
/cups-
$user/log
/error_log
709 echo "<P>FAIL: $count warning messages, expected 0.</P>" >>$strfile
710 echo "<PRE>" >>$strfile
711 grep '^W ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
712 echo "</PRE>" >>$strfile
713 fail
=`expr $fail + 1`
715 echo "PASS: $count warning messages."
716 echo "<P>PASS: $count warning messages.</P>" >>$strfile
719 # Notice log messages
720 count
=`grep '^N ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
721 if test $count != 0; then
722 echo "FAIL: $count notice messages, expected 0."
723 grep '^N ' /tmp
/cups-
$user/log
/error_log
724 echo "<P>FAIL: $count notice messages, expected 0.</P>" >>$strfile
725 echo "<PRE>" >>$strfile
726 grep '^N ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
727 echo "</PRE>" >>$strfile
728 fail
=`expr $fail + 1`
730 echo "PASS: $count notice messages."
731 echo "<P>PASS: $count notice messages.</P>" >>$strfile
735 count
=`grep '^I ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
736 if test $count = 0; then
737 echo "FAIL: $count info messages, expected more than 0."
738 echo "<P>FAIL: $count info messages, expected more than 0.</P>" >>$strfile
739 fail
=`expr $fail + 1`
741 echo "PASS: $count info messages."
742 echo "<P>PASS: $count info messages.</P>" >>$strfile
746 count
=`grep '^D ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
747 if test $count = 0; then
748 echo "FAIL: $count debug messages, expected more than 0."
749 echo "<P>FAIL: $count debug messages, expected more than 0.</P>" >>$strfile
750 fail
=`expr $fail + 1`
752 echo "PASS: $count debug messages."
753 echo "<P>PASS: $count debug messages.</P>" >>$strfile
756 # Debug2 log messages
757 count
=`grep '^d ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
758 if test $count = 0; then
759 echo "FAIL: $count debug2 messages, expected more than 0."
760 echo "<P>FAIL: $count debug2 messages, expected more than 0.</P>" >>$strfile
761 fail
=`expr $fail + 1`
763 echo "PASS: $count debug2 messages."
764 echo "<P>PASS: $count debug2 messages.</P>" >>$strfile
768 if grep -iq 'testfile.pdf na_letter_8.5x11in' /tmp
/cups-
$user/log
/page_log
; then
769 echo "PASS: page_log formatted correctly."
770 echo "<P>PASS: page_log formatted correctly.</P>" >>$strfile
772 echo "FAIL: page_log formatted incorrectly."
773 echo "<P>FAIL: page_log formatted incorrectly.</P>" >>$strfile
774 fail
=`expr $fail + 1`
778 echo "<H2>access_log</H2>" >>$strfile
779 echo "<PRE>" >>$strfile
780 sed -e '1,$s/&/&/g' -e '1,$s/</</g' /tmp
/cups-
$user/log
/access_log
>>$strfile
781 echo "</PRE>" >>$strfile
783 echo "<H2>error_log</H2>" >>$strfile
784 echo "<PRE>" >>$strfile
785 grep -v '^[dD]' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
786 echo "</PRE>" >>$strfile
788 echo "<H2>page_log</H2>" >>$strfile
789 echo "<PRE>" >>$strfile
790 sed -e '1,$s/&/&/g' -e '1,$s/</</g' /tmp
/cups-
$user/log
/page_log
>>$strfile
791 echo "</PRE>" >>$strfile
794 # Format the reports and tell the user where to find them...
797 cat str-trailer.html
>>$strfile
801 if test $fail != 0; then
802 echo "$fail tests failed."
803 cp /tmp
/cups-
$user/log
/error_log error_log-
$date-$user
806 echo "All tests were successful."
809 echo "Log files can be found in /tmp/cups-$user/log."
810 echo "A HTML report was created in $strfile."
813 if test $fail != 0; then
814 echo "Copies of the error_log and `basename $strfile` files are in"
822 # End of "$Id: run-stp-tests.sh 7954 2008-09-17 05:23:09Z mike $"