3 # "$Id: run-stp-tests.sh 9034 2010-03-09 07:03:06Z mike $"
5 # Perform the complete set of IPP compliance tests specified in the
6 # CUPS Software Test Plan.
8 # Copyright 2007-2011 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 # Solaris has a non-POSIX grep in /bin...
30 if test -x /usr
/xpg
4/bin
/grep; then
31 GREP
=/usr
/xpg
4/bin
/grep
37 # Figure out the proper echo options...
40 if (echo "testing\c"; echo 1,2,3) |
$GREP c
>/dev
/null
; then
52 echo "Welcome to the CUPS Automated Test Script."
54 echo "Before we begin, it is important that you understand that the larger"
55 echo "tests require significant amounts of RAM and disk space. If you"
56 echo "attempt to run one of the big tests on a system that lacks sufficient"
57 echo "disk and virtual memory, the UNIX kernel might decide to kill one or"
58 echo "more system processes that you've grown attached to, like the X"
59 echo "server. The question you may want to ask yourself before running a"
60 echo "large test is: Do you feel lucky?"
62 echo "OK, now that we have the Dirty Harry quote out of the way, please"
63 echo "choose the type of test you wish to perform:"
65 echo "0 - No testing, keep the scheduler running for me (all systems)"
66 echo "1 - Basic conformance test, no load testing (all systems)"
67 echo "2 - Basic conformance test, some load testing (minimum 256MB VM, 50MB disk)"
68 echo "3 - Basic conformance test, extreme load testing (minimum 1GB VM, 500MB disk)"
69 echo "4 - Basic conformance test, torture load testing (minimum 2GB VM, 1GB disk)"
71 echo $ac_n "Enter the number of the test you wish to perform: [1] $ac_c"
73 if test $# -gt 0; then
83 echo "Running in test mode (0)"
90 echo "Running the medium tests (2)"
97 echo "Running the extreme tests (3)"
104 echo "Running the torture tests (4)"
111 echo "Running the timid tests (1)"
120 # See if we want to do SSL testing...
124 echo "Now you can choose whether to create a SSL/TLS encryption key and"
125 echo "certificate for testing; these tests currently require the OpenSSL"
128 echo "0 - Do not do SSL/TLS encryption tests"
129 echo "1 - Test but do not require encryption"
130 echo "2 - Test and require encryption"
132 echo $ac_n "Enter the number of the SSL/TLS tests to perform: [0] $ac_c"
134 if test $# -gt 0; then
144 echo "Will test but not require encryption (1)"
147 echo "Will test and require encryption (2)"
150 echo "Not using SSL/TLS (0)"
156 # Information for the server/tests...
160 if test -z "$user"; then
161 if test -x /usr
/ucb
/whoami
; then
162 user
=`/usr/ucb/whoami`
167 if test -z "$user"; then
177 # Make sure that the LPDEST and PRINTER environment variables are
178 # not included in the environment that is passed to the tests. These
179 # will usually cause tests to fail erroneously...
186 # See if we want to use valgrind...
190 echo "This test script can use the Valgrind software from:"
192 echo " http://developer.kde.org/~sewardj/"
194 echo $ac_n "Enter Y to use Valgrind or N to not use Valgrind: [N] $ac_c"
196 if test $# -gt 0; then
204 case "$usevalgrind" in
206 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"
207 echo "Using Valgrind; log files can be found in /tmp/cups-$user/log..."
216 # Start by creating temporary directories for the tests...
219 echo "Creating directories for test..."
221 rm -rf /tmp
/cups-
$user
222 mkdir
/tmp
/cups-
$user
223 mkdir
/tmp
/cups-
$user/bin
224 mkdir
/tmp
/cups-
$user/bin
/backend
225 mkdir
/tmp
/cups-
$user/bin
/driver
226 mkdir
/tmp
/cups-
$user/bin
/filter
227 mkdir
/tmp
/cups-
$user/certs
228 mkdir
/tmp
/cups-
$user/share
229 mkdir
/tmp
/cups-
$user/share
/banners
230 mkdir
/tmp
/cups-
$user/share
/drv
231 mkdir
/tmp
/cups-
$user/share
/locale
232 for file in ..
/locale
/cups_
*.po
; do
233 loc
=`basename $file .po | cut -c 6-`
234 mkdir
/tmp
/cups-
$user/share
/locale
/$loc
235 ln -s $root/locale
/cups_
$loc.po
/tmp
/cups-
$user/share
/locale
/$loc
236 ln -s $root/locale
/ppdc_
$loc.po
/tmp
/cups-
$user/share
/locale
/$loc
238 mkdir
/tmp
/cups-
$user/share
/mime
239 mkdir
/tmp
/cups-
$user/share
/model
240 mkdir
/tmp
/cups-
$user/share
/ppdc
241 mkdir
/tmp
/cups-
$user/interfaces
242 mkdir
/tmp
/cups-
$user/log
243 mkdir
/tmp
/cups-
$user/ppd
244 mkdir
/tmp
/cups-
$user/spool
245 mkdir
/tmp
/cups-
$user/spool
/temp
246 mkdir
/tmp
/cups-
$user/ssl
248 ln -s $root/backend
/dnssd
/tmp
/cups-
$user/bin
/backend
249 ln -s $root/backend
/http
/tmp
/cups-
$user/bin
/backend
250 ln -s $root/backend
/ipp
/tmp
/cups-
$user/bin
/backend
251 ln -s $root/backend
/lpd
/tmp
/cups-
$user/bin
/backend
252 ln -s $root/backend
/mdns
/tmp
/cups-
$user/bin
/backend
253 ln -s $root/backend
/pseudo
/tmp
/cups-
$user/bin
/backend
254 ln -s $root/backend
/snmp
/tmp
/cups-
$user/bin
/backend
255 ln -s $root/backend
/socket
/tmp
/cups-
$user/bin
/backend
256 ln -s $root/backend
/usb
/tmp
/cups-
$user/bin
/backend
257 ln -s $root/cgi-bin
/tmp
/cups-
$user/bin
258 ln -s $root/monitor
/tmp
/cups-
$user/bin
259 ln -s $root/notifier
/tmp
/cups-
$user/bin
260 ln -s $root/scheduler
/tmp
/cups-
$user/bin
/daemon
261 ln -s $root/filter
/commandtops
/tmp
/cups-
$user/bin
/filter
262 ln -s $root/filter
/gziptoany
/tmp
/cups-
$user/bin
/filter
263 ln -s $root/filter
/pstops
/tmp
/cups-
$user/bin
/filter
264 ln -s $root/filter
/rastertoepson
/tmp
/cups-
$user/bin
/filter
265 ln -s $root/filter
/rastertohp
/tmp
/cups-
$user/bin
/filter
266 ln -s $root/filter
/rastertolabel
/tmp
/cups-
$user/bin
/filter
267 ln -s $root/filter
/rastertopwg
/tmp
/cups-
$user/bin
/filter
269 ln -s $root/data
/classified
/tmp
/cups-
$user/share
/banners
270 ln -s $root/data
/confidential
/tmp
/cups-
$user/share
/banners
271 ln -s $root/data
/secret
/tmp
/cups-
$user/share
/banners
272 ln -s $root/data
/standard
/tmp
/cups-
$user/share
/banners
273 ln -s $root/data
/topsecret
/tmp
/cups-
$user/share
/banners
274 ln -s $root/data
/unclassified
/tmp
/cups-
$user/share
/banners
275 ln -s $root/data
/tmp
/cups-
$user/share
276 ln -s $root/ppdc
/sample.drv
/tmp
/cups-
$user/share
/drv
277 ln -s $root/conf
/mime.types
/tmp
/cups-
$user/share
/mime
278 ln -s $root/conf
/mime.convs
/tmp
/cups-
$user/share
/mime
279 ln -s $root/data
/*.h
/tmp
/cups-
$user/share
/ppdc
280 ln -s $root/data
/*.defs
/tmp
/cups-
$user/share
/ppdc
281 ln -s $root/templates
/tmp
/cups-
$user/share
284 # Mac OS X filters and configuration files...
287 if test `uname` = Darwin
; then
288 ln -s /usr
/libexec
/cups
/filter
/cgpdfto
* /tmp
/cups-
$user/bin
/filter
289 ln -s /usr
/libexec
/cups
/filter
/cgbannertopdf
/tmp
/cups-
$user/bin
/filter
290 ln -s /usr
/libexec
/cups
/filter
/cgimagetopdf
/tmp
/cups-
$user/bin
/filter
291 ln -s /usr
/libexec
/cups
/filter
/cgtexttopdf
/tmp
/cups-
$user/bin
/filter
292 ln -s /usr
/libexec
/cups
/filter
/nsimagetopdf
/tmp
/cups-
$user/bin
/filter
293 ln -s /usr
/libexec
/cups
/filter
/nstexttopdf
/tmp
/cups-
$user/bin
/filter
294 ln -s /usr
/libexec
/cups
/filter
/pictwpstops
/tmp
/cups-
$user/bin
/filter
295 ln -s /usr
/libexec
/cups
/filter
/pstoappleps
/tmp
/cups-
$user/bin
/filter
296 ln -s /usr
/libexec
/cups
/filter
/pstocupsraster
/tmp
/cups-
$user/bin
/filter
297 ln -s /usr
/libexec
/cups
/filter
/pstopdffilter
/tmp
/cups-
$user/bin
/filter
298 ln -s /usr
/libexec
/cups
/filter
/rastertourf
/tmp
/cups-
$user/bin
/filter
299 ln -s /usr
/libexec
/cups
/filter
/xhtmltopdf
/tmp
/cups-
$user/bin
/filter
301 if test -f /private
/etc
/cups
/apple.types
; then
302 ln -s /private
/etc
/cups
/apple.
* /tmp
/cups-
$user/share
/mime
303 elif test -f /usr
/share
/cups
/mime
/apple.types
; then
304 ln -s /usr
/share
/cups
/mime
/apple.
* /tmp
/cups-
$user/share
/mime
307 ln -s /usr
/lib
/cups
/filter
/bannertops
/tmp
/cups-
$user/bin
/filter
308 ln -s /usr
/lib
/cups
/filter
/imagetops
/tmp
/cups-
$user/bin
/filter
309 ln -s /usr
/lib
/cups
/filter
/imagetoraster
/tmp
/cups-
$user/bin
/filter
310 ln -s /usr
/lib
/cups
/filter
/pdftops
/tmp
/cups-
$user/bin
/filter
311 ln -s /usr
/lib
/cups
/filter
/texttops
/tmp
/cups-
$user/bin
/filter
313 ln -s /usr
/share
/cups
/mime
/legacy.convs
/tmp
/cups-
$user/share
/mime
317 # Then create the necessary config files...
320 echo "Creating cupsd.conf for test..."
322 if test $ssltype = 2; then
323 encryption
="Encryption Required"
328 cat >/tmp
/cups-
$user/cupsd.conf
<<EOF
332 Listen 127.0.0.1:$port
334 ServerRoot /tmp/cups-$user
335 StateDir /tmp/cups-$user
336 ServerBin /tmp/cups-$user/bin
337 CacheDir /tmp/cups-$user/share
338 DataDir /tmp/cups-$user/share
339 FontPath /tmp/cups-$user/share/fonts
341 DocumentRoot $root/doc
342 RequestRoot /tmp/cups-$user/spool
343 TempDir /tmp/cups-$user/spool/temp
346 AccessLog /tmp/cups-$user/log/access_log
347 ErrorLog /tmp/cups-$user/log/error_log
348 PageLog /tmp/cups-$user/log/page_log
349 AccessLogLevel actions
352 PreserveJobHistory Yes
364 # Setup lots of test queues - half with PPD files, half without...
367 echo "Creating printers.conf for test..."
370 while test $i -le $nprinters1; do
371 cat >>/tmp
/cups-
$user/printers.conf
<<EOF
374 DeviceURI file:/dev/null
375 Info Test PS printer $i
377 Location CUPS test suite
379 StateMessage Printer $1 is idle.
383 cp testps.ppd
/tmp
/cups-
$user/ppd
/test-
$i.ppd
388 while test $i -le $nprinters2; do
389 cat >>/tmp
/cups-
$user/printers.conf
<<EOF
392 DeviceURI file:/dev/null
393 Info Test raw printer $i
395 Location CUPS test suite
397 StateMessage Printer $1 is idle.
404 if test -f /tmp
/cups-
$user/printers.conf
; then
405 cp /tmp
/cups-
$user/printers.conf
/tmp
/cups-
$user/printers.conf.orig
407 touch /tmp
/cups-
$user/printers.conf.orig
414 echo "Setting up environment variables for test..."
416 if test "x$LD_LIBRARY_PATH" = x
; then
417 LD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc"
419 LD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc:$LD_LIBRARY_PATH"
422 export LD_LIBRARY_PATH
424 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"
425 if test `uname` = SunOS
-a -r /usr
/lib
/libCrun.so
.1; then
426 LD_PRELOAD
="/usr/lib/libCrun.so.1:$LD_PRELOAD"
430 if test "x$DYLD_LIBRARY_PATH" = x
; then
431 DYLD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc"
433 DYLD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc:$DYLD_LIBRARY_PATH"
436 export DYLD_LIBRARY_PATH
438 if test "x$SHLIB_PATH" = x
; then
439 SHLIB_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc"
441 SHLIB_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc:$SHLIB_PATH"
446 CUPS_DISABLE_APPLE_DEFAULT
=yes; export CUPS_DISABLE_APPLE_DEFAULT
447 CUPS_SERVER
=localhost
:8631; export CUPS_SERVER
448 CUPS_SERVERROOT
=/tmp
/cups-
$user; export CUPS_SERVERROOT
449 CUPS_STATEDIR
=/tmp
/cups-
$user; export CUPS_STATEDIR
450 CUPS_DATADIR
=/tmp
/cups-
$user/share
; export CUPS_DATADIR
451 LOCALEDIR
=/tmp
/cups-
$user/share
/locale
; export LOCALEDIR
454 # Set a new home directory to avoid getting user options mixed in...
461 # Force POSIX locale for tests...
471 # Start the server; run as foreground daemon in the background...
474 echo "Starting scheduler:"
475 echo " $valgrind ../scheduler/cupsd -c /tmp/cups-$user/cupsd.conf -f >/tmp/cups-$user/log/debug_log 2>&1 &"
478 if test `uname` = Darwin
-a "x$valgrind" = x
; then
479 DYLD_INSERT_LIBRARIES
=/usr
/lib
/libgmalloc.dylib \
480 $valgrind ..
/scheduler
/cupsd
-c /tmp
/cups-
$user/cupsd.conf
-f >/tmp
/cups-
$user/log
/debug_log
2>&1 &
482 $valgrind ..
/scheduler
/cupsd
-c /tmp
/cups-
$user/cupsd.conf
-f >/tmp
/cups-
$user/log
/debug_log
2>&1 &
487 if test "x$testtype" = x0
; then
488 # Not running tests...
489 echo "Scheduler is PID $cupsd and is listening on port 8631."
492 # Create a helper script to run programs with...
493 runcups
="/tmp/cups-$user/runcups"
495 echo "#!/bin/sh" >$runcups
496 echo "# Helper script for running CUPS test instance." >>$runcups
498 echo "# Set required environment variables..." >>$runcups
499 echo "CUPS_DATADIR=\"$CUPS_DATADIR\"; export CUPS_DATADIR" >>$runcups
500 echo "CUPS_SERVER=\"$CUPS_SERVER\"; export CUPS_SERVER" >>$runcups
501 echo "CUPS_SERVERROOT=\"$CUPS_SERVERROOT\"; export CUPS_SERVERROOT" >>$runcups
502 echo "CUPS_STATEDIR=\"$CUPS_STATEDIR\"; export CUPS_STATEDIR" >>$runcups
503 echo "DYLD_LIBRARY_PATH=\"$DYLD_LIBRARY_PATH\"; export DYLD_LIBRARY_PATH" >>$runcups
504 echo "LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH\"; export LD_LIBRARY_PATH" >>$runcups
505 echo "LD_PRELOAD=\"$LD_PRELOAD\"; export LD_PRELOAD" >>$runcups
506 echo "LOCALEDIR=\"$LOCALEDIR\"; export LOCALEDIR" >>$runcups
507 echo "SHLIB_PATH=\"$SHLIB_PATH\"; export SHLIB_PATH" >>$runcups
509 echo "# Run command..." >>$runcups
510 echo "exec \"\$@\"" >>$runcups
514 echo "The $runcups helper script can be used to test programs"
515 echo "with the server."
519 if test $argcount -eq 0; then
520 echo "Scheduler is PID $cupsd; run debugger now if you need to."
522 echo $ac_n "Press ENTER to continue... $ac_c"
525 echo "Scheduler is PID $cupsd."
529 IPP_PORT
=$port; export IPP_PORT
532 running
=`../systemv/lpstat -r 2>/dev/null`
533 if test "x$running" = "xscheduler is running"; then
537 echo "Waiting for scheduler to become ready..."
542 # Create the test report source file...
545 date=`date "+%Y-%m-%d"`
546 strfile
=/tmp
/cups-
$user/cups-str-1.6
-$date-$user.html
549 cat str-header.html
>$strfile
552 # Run the IPP tests...
556 echo "Running IPP compliance tests..."
558 echo "<H1>1 - IPP Compliance Tests</H1>" >>$strfile
559 echo "<P>This section provides the results to the IPP compliance tests" >>$strfile
560 echo "outlined in the CUPS Software Test Plan. These tests were run on" >>$strfile
561 echo `date "+%Y-%m-%d"` by
$user on
`hostname`.
>>$strfile
562 echo "<PRE>" >>$strfile
565 for file in 4*.
test; do
566 echo "Performing $file..."
569 .
/ipptool
-t ipp
://localhost
:$port/printers
$file |
tee -a $strfile
572 if test $status != 0; then
574 fail
=`expr $fail + 1`
578 echo "</PRE>" >>$strfile
581 # Run the command tests...
585 echo "Running command tests..."
587 echo "<H1>2 - Command Tests</H1>" >>$strfile
588 echo "<P>This section provides the results to the command tests" >>$strfile
589 echo "outlined in the CUPS Software Test Plan. These tests were run on" >>$strfile
590 echo $date by
$user on
`hostname`.
>>$strfile
591 echo "<PRE>" >>$strfile
593 for file in 5*.sh
; do
594 echo "Performing $file..."
596 echo "\"$file\":" >>$strfile
598 sh
$file $pjobs $pprinters |
tee -a $strfile
601 if test $status != 0; then
603 fail
=`expr $fail + 1`
607 echo "</PRE>" >>$strfile
616 # Append the log files for post-mortim...
619 echo "<H1>3 - Log Files</H1>" >>$strfile
627 echo "<H2>Summary</H2>" >>$strfile
630 count
=`ls -1 /tmp/cups-$user/spool | wc -l`
631 count
=`expr $count - 1`
632 if test $count != 0; then
633 echo "FAIL: $count job control files were not purged."
634 echo "<P>FAIL: $count job control files were not purged.</P>" >>$strfile
635 fail
=`expr $fail + 1`
637 echo "PASS: All job control files purged."
638 echo "<P>PASS: All job control files purged.</P>" >>$strfile
641 # Pages printed on Test1 (within 1 page for timing-dependent cancel issues)
642 count
=`$GREP '^Test1 ' /tmp/cups-$user/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
643 expected
=`expr $pjobs \* 2 + 34`
644 expected2
=`expr $expected + 2`
645 if test $count -lt $expected -a $count -gt $expected2; then
646 echo "FAIL: Printer 'Test1' produced $count page(s), expected $expected."
647 echo "<P>FAIL: Printer 'Test1' produced $count page(s), expected $expected.</P>" >>$strfile
648 fail
=`expr $fail + 1`
650 echo "PASS: Printer 'Test1' correctly produced $count page(s)."
651 echo "<P>PASS: Printer 'Test1' correctly produced $count page(s).</P>" >>$strfile
654 # Paged printed on Test2
655 count
=`$GREP '^Test2 ' /tmp/cups-$user/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
656 expected
=`expr $pjobs \* 2 + 3`
657 if test $count != $expected; then
658 echo "FAIL: Printer 'Test2' produced $count page(s), expected $expected."
659 echo "<P>FAIL: Printer 'Test2' produced $count page(s), expected $expected.</P>" >>$strfile
660 fail
=`expr $fail + 1`
662 echo "PASS: Printer 'Test2' correctly produced $count page(s)."
663 echo "<P>PASS: Printer 'Test2' correctly produced $count page(s).</P>" >>$strfile
667 count
=`wc -l /tmp/cups-$user/log/access_log | awk '{print $1}'`
668 expected
=`expr 37 + 18 + $pjobs \* 8 + $pprinters \* $pjobs \* 4`
669 if test $count != $expected; then
670 echo "FAIL: $count requests logged, expected $expected."
671 echo "<P>FAIL: $count requests logged, expected $expected.</P>" >>$strfile
672 fail
=`expr $fail + 1`
674 echo "PASS: $count requests logged."
675 echo "<P>PASS: $count requests logged.</P>" >>$strfile
678 # Did CUPS-Get-Default get logged?
679 if $GREP -q CUPS-Get-Default
/tmp
/cups-
$user/log
/access_log
; then
680 echo "FAIL: CUPS-Get-Default logged with 'AccessLogLevel actions'"
681 echo "<P>FAIL: CUPS-Get-Default logged with 'AccessLogLevel actions'</P>" >>$strfile
682 echo "<PRE>" >>$strfile
683 $GREP CUPS-Get-Default
/tmp
/cups-
$user/log
/access_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
684 echo "</PRE>" >>$strfile
685 fail
=`expr $fail + 1`
687 echo "PASS: CUPS-Get-Default not logged."
688 echo "<P>PASS: CUPS-Get-Default not logged.</P>" >>$strfile
691 # Emergency log messages
692 count
=`$GREP '^X ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
693 if test $count != 0; then
694 echo "FAIL: $count emergency messages, expected 0."
695 $GREP '^X ' /tmp
/cups-
$user/log
/error_log
696 echo "<P>FAIL: $count emergency messages, expected 0.</P>" >>$strfile
697 echo "<PRE>" >>$strfile
698 $GREP '^X ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
699 echo "</PRE>" >>$strfile
700 fail
=`expr $fail + 1`
702 echo "PASS: $count emergency messages."
703 echo "<P>PASS: $count emergency messages.</P>" >>$strfile
707 count
=`$GREP '^A ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
708 if test $count != 0; then
709 echo "FAIL: $count alert messages, expected 0."
710 $GREP '^A ' /tmp
/cups-
$user/log
/error_log
711 echo "<P>FAIL: $count alert messages, expected 0.</P>" >>$strfile
712 echo "<PRE>" >>$strfile
713 $GREP '^A ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
714 echo "</PRE>" >>$strfile
715 fail
=`expr $fail + 1`
717 echo "PASS: $count alert messages."
718 echo "<P>PASS: $count alert messages.</P>" >>$strfile
721 # Critical log messages
722 count
=`$GREP '^C ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
723 if test $count != 0; then
724 echo "FAIL: $count critical messages, expected 0."
725 $GREP '^C ' /tmp
/cups-
$user/log
/error_log
726 echo "<P>FAIL: $count critical messages, expected 0.</P>" >>$strfile
727 echo "<PRE>" >>$strfile
728 $GREP '^C ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
729 echo "</PRE>" >>$strfile
730 fail
=`expr $fail + 1`
732 echo "PASS: $count critical messages."
733 echo "<P>PASS: $count critical messages.</P>" >>$strfile
737 count
=`$GREP '^E ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
738 if test $count != 18; then
739 echo "FAIL: $count error messages, expected 18."
740 $GREP '^E ' /tmp
/cups-
$user/log
/error_log
741 echo "<P>FAIL: $count error messages, expected 18.</P>" >>$strfile
742 echo "<PRE>" >>$strfile
743 $GREP '^E ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
744 echo "</PRE>" >>$strfile
745 fail
=`expr $fail + 1`
747 echo "PASS: $count error messages."
748 echo "<P>PASS: $count error messages.</P>" >>$strfile
751 # Warning log messages
752 count
=`$GREP '^W ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
753 if test $count != 9; then
754 echo "FAIL: $count warning messages, expected 9."
755 $GREP '^W ' /tmp
/cups-
$user/log
/error_log
756 echo "<P>FAIL: $count warning messages, expected 9.</P>" >>$strfile
757 echo "<PRE>" >>$strfile
758 $GREP '^W ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
759 echo "</PRE>" >>$strfile
760 fail
=`expr $fail + 1`
762 echo "PASS: $count warning messages."
763 echo "<P>PASS: $count warning messages.</P>" >>$strfile
766 # Notice log messages
767 count
=`$GREP '^N ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
768 if test $count != 0; then
769 echo "FAIL: $count notice messages, expected 0."
770 $GREP '^N ' /tmp
/cups-
$user/log
/error_log
771 echo "<P>FAIL: $count notice messages, expected 0.</P>" >>$strfile
772 echo "<PRE>" >>$strfile
773 $GREP '^N ' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
774 echo "</PRE>" >>$strfile
775 fail
=`expr $fail + 1`
777 echo "PASS: $count notice messages."
778 echo "<P>PASS: $count notice messages.</P>" >>$strfile
782 count
=`$GREP '^I ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
783 if test $count = 0; then
784 echo "FAIL: $count info messages, expected more than 0."
785 echo "<P>FAIL: $count info messages, expected more than 0.</P>" >>$strfile
786 fail
=`expr $fail + 1`
788 echo "PASS: $count info messages."
789 echo "<P>PASS: $count info messages.</P>" >>$strfile
793 count
=`$GREP '^D ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
794 if test $count = 0; then
795 echo "FAIL: $count debug messages, expected more than 0."
796 echo "<P>FAIL: $count debug messages, expected more than 0.</P>" >>$strfile
797 fail
=`expr $fail + 1`
799 echo "PASS: $count debug messages."
800 echo "<P>PASS: $count debug messages.</P>" >>$strfile
803 # Debug2 log messages
804 count
=`$GREP '^d ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
805 if test $count = 0; then
806 echo "FAIL: $count debug2 messages, expected more than 0."
807 echo "<P>FAIL: $count debug2 messages, expected more than 0.</P>" >>$strfile
808 fail
=`expr $fail + 1`
810 echo "PASS: $count debug2 messages."
811 echo "<P>PASS: $count debug2 messages.</P>" >>$strfile
815 echo "<H2>access_log</H2>" >>$strfile
816 echo "<PRE>" >>$strfile
817 sed -e '1,$s/&/&/g' -e '1,$s/</</g' /tmp
/cups-
$user/log
/access_log
>>$strfile
818 echo "</PRE>" >>$strfile
820 echo "<H2>error_log</H2>" >>$strfile
821 echo "<PRE>" >>$strfile
822 $GREP -v '^d' /tmp
/cups-
$user/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
823 echo "</PRE>" >>$strfile
825 echo "<H2>page_log</H2>" >>$strfile
826 echo "<PRE>" >>$strfile
827 sed -e '1,$s/&/&/g' -e '1,$s/</</g' /tmp
/cups-
$user/log
/page_log
>>$strfile
828 echo "</PRE>" >>$strfile
831 # Format the reports and tell the user where to find them...
834 cat str-trailer.html
>>$strfile
838 if test $fail != 0; then
839 echo "$fail tests failed."
840 cp /tmp
/cups-
$user/log
/error_log error_log-
$date-$user
843 echo "All tests were successful."
846 echo "Log files can be found in /tmp/cups-$user/log."
847 echo "A HTML report was created in $strfile."
850 if test $fail != 0; then
851 echo "Copies of the error_log and `basename $strfile` files are in"
859 # End of "$Id: run-stp-tests.sh 9034 2010-03-09 07:03:06Z mike $"