3 # "$Id: run-stp-tests.sh 12065 2014-07-30 17:56:35Z msweet $"
5 # Perform the complete set of IPP compliance tests specified in the
6 # CUPS Software Test Plan.
8 # Copyright 2007-2014 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 # Don't allow "make check" or "make test" to be run by root...
24 if test "x`id -u`" = x0
; then
25 echo Please run this as a normal user. Not supported when run as root.
30 # Force the permissions of the files we create...
36 # Make the IPP test program...
42 # Solaris has a non-POSIX grep in /bin...
45 if test -x /usr
/xpg
4/bin
/grep; then
46 GREP
=/usr
/xpg
4/bin
/grep
52 # Figure out the proper echo options...
55 if (echo "testing\c"; echo 1,2,3) |
$GREP c
>/dev
/null
; then
67 echo "Welcome to the CUPS Automated Test Script."
69 echo "Before we begin, it is important that you understand that the larger"
70 echo "tests require significant amounts of RAM and disk space. If you"
71 echo "attempt to run one of the big tests on a system that lacks sufficient"
72 echo "disk and virtual memory, the UNIX kernel might decide to kill one or"
73 echo "more system processes that you've grown attached to, like the X"
74 echo "server. The question you may want to ask yourself before running a"
75 echo "large test is: Do you feel lucky?"
77 echo "OK, now that we have the Dirty Harry quote out of the way, please"
78 echo "choose the type of test you wish to perform:"
80 echo "0 - No testing, keep the scheduler running for me (all systems)"
81 echo "1 - Basic conformance test, no load testing (all systems)"
82 echo "2 - Basic conformance test, some load testing (minimum 256MB VM, 50MB disk)"
83 echo "3 - Basic conformance test, extreme load testing (minimum 1GB VM, 500MB disk)"
84 echo "4 - Basic conformance test, torture load testing (minimum 2GB VM, 1GB disk)"
86 echo $ac_n "Enter the number of the test you wish to perform: [1] $ac_c"
88 if test $# -gt 0; then
98 echo "Running in test mode (0)"
106 echo "Running the medium tests (2)"
114 echo "Running the extreme tests (3)"
122 echo "Running the torture tests (4)"
130 echo "Running the timid tests (1)"
140 # See if we want to do SSL testing...
144 echo "Now you can choose whether to create a SSL/TLS encryption key and"
145 echo "certificate for testing; these tests currently require the OpenSSL"
148 echo "0 - Do not do SSL/TLS encryption tests"
149 echo "1 - Test but do not require encryption"
150 echo "2 - Test and require encryption"
152 echo $ac_n "Enter the number of the SSL/TLS tests to perform: [0] $ac_c"
154 if test $# -gt 0; then
164 echo "Will test but not require encryption (1)"
167 echo "Will test and require encryption (2)"
170 echo "Not using SSL/TLS (0)"
176 # Information for the server/tests...
180 if test -z "$user"; then
181 if test -x /usr
/ucb
/whoami
; then
182 user
=`/usr/ucb/whoami`
187 if test -z "$user"; then
195 CUPS_TESTROOT
="$root"; export CUPS_TESTROOT
197 if test -d /private
/tmp
; then
198 BASE
=/private
/tmp
/cups-
$user
205 # Make sure that the LPDEST and PRINTER environment variables are
206 # not included in the environment that is passed to the tests. These
207 # will usually cause tests to fail erroneously...
214 # See if we want to use valgrind...
218 echo "This test script can use the Valgrind software from:"
220 echo " http://developer.kde.org/~sewardj/"
222 echo $ac_n "Enter Y to use Valgrind or N to not use Valgrind: [N] $ac_c"
224 if test $# -gt 0; then
232 case "$usevalgrind" in
234 VALGRIND
="valgrind --tool=memcheck --log-file=$BASE/log/valgrind.%p --error-limit=no --leak-check=yes --trace-children=yes --read-var-info=yes"
235 if test `uname` = Darwin
; then
236 VALGRIND
="$VALGRIND --dsymutil=yes"
239 echo "Using Valgrind; log files can be found in $BASE/log..."
249 # See if we want to do debug logging of the libraries...
253 echo "If CUPS was built with the --enable-debug-printfs configure option, you"
254 echo "can enable debug logging of the libraries."
256 echo $ac_n "Enter Y or a number from 0 to 9 to enable debug logging or N to not: [N] $ac_c"
258 if test $# -gt 0; then
266 case "$usedebugprintfs" in
268 echo "Enabling debug printfs (level 5); log files can be found in $BASE/log..."
269 CUPS_DEBUG_LOG
="$BASE/log/debug_printfs.%d"; export CUPS_DEBUG_LOG
270 CUPS_DEBUG_LEVEL
=5; export CUPS_DEBUG_LEVEL
271 CUPS_DEBUG_FILTER
='^(http|_http|ipp|_ipp|cups.*Request|cupsGetResponse|cupsSend).*$'; export CUPS_DEBUG_FILTER
274 0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9)
275 echo "Enabling debug printfs (level $usedebugprintfs); log files can be found in $BASE/log..."
276 CUPS_DEBUG_LOG
="$BASE/log/debug_printfs.%d"; export CUPS_DEBUG_LOG
277 CUPS_DEBUG_LEVEL
="$usedebugprintfs"; export CUPS_DEBUG_LEVEL
278 CUPS_DEBUG_FILTER
='^(http|_http|ipp|_ipp|cups.*Request|cupsGetResponse|cupsSend).*$'; export CUPS_DEBUG_FILTER
286 # Start by creating temporary directories for the tests...
289 echo "Creating directories for test..."
294 mkdir
$BASE/bin
/backend
295 mkdir
$BASE/bin
/driver
296 mkdir
$BASE/bin
/filter
299 mkdir
$BASE/share
/banners
300 mkdir
$BASE/share
/drv
301 mkdir
$BASE/share
/locale
302 for file in ..
/locale
/cups_
*.po
; do
303 loc
=`basename $file .po | cut -c 6-`
304 mkdir
$BASE/share
/locale
/$loc
305 ln -s $root/locale
/cups_
$loc.po
$BASE/share
/locale
/$loc
306 ln -s $root/locale
/ppdc_
$loc.po
$BASE/share
/locale
/$loc
308 mkdir
$BASE/share
/mime
309 mkdir
$BASE/share
/model
310 mkdir
$BASE/share
/ppdc
311 mkdir
$BASE/interfaces
315 mkdir
$BASE/spool
/temp
318 ln -s $root/backend
/dnssd
$BASE/bin
/backend
319 ln -s $root/backend
/http
$BASE/bin
/backend
320 ln -s $root/backend
/ipp
$BASE/bin
/backend
321 ln -s $root/backend
/lpd
$BASE/bin
/backend
322 ln -s $root/backend
/mdns
$BASE/bin
/backend
323 ln -s $root/backend
/pseudo
$BASE/bin
/backend
324 ln -s $root/backend
/snmp
$BASE/bin
/backend
325 ln -s $root/backend
/socket
$BASE/bin
/backend
326 ln -s $root/backend
/usb
$BASE/bin
/backend
327 ln -s $root/cgi-bin
$BASE/bin
328 ln -s $root/monitor
$BASE/bin
329 ln -s $root/notifier
$BASE/bin
330 ln -s $root/scheduler
$BASE/bin
/daemon
331 ln -s $root/filter
/commandtops
$BASE/bin
/filter
332 ln -s $root/filter
/gziptoany
$BASE/bin
/filter
333 ln -s $root/filter
/pstops
$BASE/bin
/filter
334 ln -s $root/filter
/rastertoepson
$BASE/bin
/filter
335 ln -s $root/filter
/rastertohp
$BASE/bin
/filter
336 ln -s $root/filter
/rastertolabel
$BASE/bin
/filter
337 ln -s $root/filter
/rastertopwg
$BASE/bin
/filter
339 ln -s $root/data
/classified
$BASE/share
/banners
340 ln -s $root/data
/confidential
$BASE/share
/banners
341 ln -s $root/data
/secret
$BASE/share
/banners
342 ln -s $root/data
/standard
$BASE/share
/banners
343 ln -s $root/data
/topsecret
$BASE/share
/banners
344 ln -s $root/data
/unclassified
$BASE/share
/banners
345 ln -s $root/data
$BASE/share
346 ln -s $root/ppdc
/sample.drv
$BASE/share
/drv
347 ln -s $root/conf
/mime.types
$BASE/share
/mime
348 ln -s $root/conf
/mime.convs
$BASE/share
/mime
349 ln -s $root/data
/*.h
$BASE/share
/ppdc
350 ln -s $root/data
/*.defs
$BASE/share
/ppdc
351 ln -s $root/templates
$BASE/share
354 # Local filters and configuration files...
358 # instfilter src dst format
360 # See if the filter exists in a standard location; if so, make a
361 # symlink, otherwise create a dummy script for the specified format.
367 for dir
in /usr
/libexec
/cups
/filter
/usr
/lib
/cups
/filter
; do
368 if test -x "$dir/$src"; then
369 ln -s "$dir/$src" "$BASE/bin/filter/$dst"
374 # Source filter not present, create a dummy filter
377 ln -s gziptoany
"$BASE/bin/filter/$dst"
380 cat >"$BASE/bin/filter/$dst" <<EOF
383 *media=a4* | *media=iso_a4* | *PageSize=A4*)
384 cat "$root/test/onepage-a4.pdf"
387 cat "$root/test/onepage-letter.pdf"
391 chmod +x
"$BASE/bin/filter/$dst"
394 cat >"$BASE/bin/filter/$dst" <<EOF
397 *media=a4* | *media=iso_a4* | *PageSize=A4*)
398 cat "$root/test/onepage-a4.ps"
401 cat "$root/test/onepage-letter.ps"
405 chmod +x
"$BASE/bin/filter/$dst"
408 cat >"$BASE/bin/filter/$dst" <<EOF
411 *media=a4* | *media=iso_a4* | *PageSize=A4*)
412 gunzip -c "$root/test/onepage-a4-300-black-1.pwg.gz"
415 gunzip -c "$root/test/onepage-letter-300-black-1.pwg.gz"
419 chmod +x
"$BASE/bin/filter/$dst"
424 ln -s $root/test
/test.convs
$BASE/share
/mime
426 if test `uname` = Darwin
; then
427 instfilter cgbannertopdf bannertopdf pdf
428 instfilter cgimagetopdf imagetopdf pdf
429 instfilter cgpdftopdf pdftopdf passthru
430 instfilter cgpdftops pdftops ps
431 instfilter cgpdftoraster pdftoraster raster
432 instfilter cgtexttopdf texttopdf pdf
433 instfilter pstocupsraster pstoraster raster
434 instfilter pstopdffilter pstopdf pdf
436 instfilter bannertopdf bannertopdf pdf
437 instfilter bannertops bannertops ps
438 instfilter imagetopdf imagetopdf pdf
439 instfilter pdftopdf pdftopdf passthru
440 instfilter pdftops pdftops ps
441 instfilter pdftoraster pdftoraster raster
442 instfilter pstoraster pstoraster raster
443 instfilter texttopdf texttopdf pdf
445 if test -d /usr
/share
/cups
/charsets
; then
446 ln -s /usr
/share
/cups
/charsets
$BASE/share
451 # Then create the necessary config files...
454 echo "Creating cupsd.conf for test..."
456 if test $ssltype = 2; then
457 encryption
="Encryption Required"
462 cat >$BASE/cupsd.conf
<<EOF
463 StrictConformance Yes
465 Listen localhost:$port
468 PassEnv DYLD_INSERT_LIBRARIES
471 AccessLogLevel actions
474 PreserveJobHistory Yes
484 if test $testtype = 0; then
485 echo WebInterface
yes >>$BASE/cupsd.conf
488 cat >$BASE/cups-files.conf
<<EOF
497 FontPath $BASE/share/fonts
498 DocumentRoot $root/doc
499 RequestRoot $BASE/spool
500 TempDir $BASE/spool/temp
501 AccessLog $BASE/log/access_log
502 ErrorLog $BASE/log/error_log
503 PageLog $BASE/log/page_log
506 if test $ssltype != 0 -a `uname` = Darwin
; then
507 echo "ServerKeychain $HOME/Library/Keychains/login.keychain" >> $BASE/cups-files.conf
511 # Setup lots of test queues - half with PPD files, half without...
514 echo "Creating printers.conf for test..."
517 while test $i -le $nprinters1; do
518 cat >>$BASE/printers.conf
<<EOF
521 DeviceURI file:/dev/null
522 Info Test PS printer $i
524 Location CUPS test suite
526 StateMessage Printer $1 is idle.
530 cp testps.ppd
$BASE/ppd
/test-
$i.ppd
535 while test $i -le $nprinters2; do
536 cat >>$BASE/printers.conf
<<EOF
539 DeviceURI file:/dev/null
540 Info Test raw printer $i
542 Location CUPS test suite
544 StateMessage Printer $1 is idle.
551 if test -f $BASE/printers.conf
; then
552 cp $BASE/printers.conf
$BASE/printers.conf.orig
554 touch $BASE/printers.conf.orig
561 echo "Setting up environment variables for test..."
563 if test "x$LD_LIBRARY_PATH" = x
; then
564 LD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc"
566 LD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc:$LD_LIBRARY_PATH"
569 export LD_LIBRARY_PATH
571 LD_PRELOAD
="$root/cups/libcups.so.2:$root/filter/libcupsimage.so.2:$root/cgi-bin/libcupscgi.so.1:$root/scheduler/libcupsmime.so.1:$root/ppdc/libcupsppdc.so.1"
572 if test `uname` = SunOS
-a -r /usr
/lib
/libCrun.so
.1; then
573 LD_PRELOAD
="/usr/lib/libCrun.so.1:$LD_PRELOAD"
577 if test "x$DYLD_LIBRARY_PATH" = x
; then
578 DYLD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc"
580 DYLD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc:$DYLD_LIBRARY_PATH"
583 export DYLD_LIBRARY_PATH
585 if test "x$SHLIB_PATH" = x
; then
586 SHLIB_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc"
588 SHLIB_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc:$SHLIB_PATH"
593 CUPS_DISABLE_APPLE_DEFAULT
=yes; export CUPS_DISABLE_APPLE_DEFAULT
594 CUPS_SERVER
=localhost
:8631; export CUPS_SERVER
595 CUPS_SERVERROOT
=$BASE; export CUPS_SERVERROOT
596 CUPS_STATEDIR
=$BASE; export CUPS_STATEDIR
597 CUPS_DATADIR
=$BASE/share
; export CUPS_DATADIR
598 LOCALEDIR
=$BASE/share
/locale
; export LOCALEDIR
601 # Set a new home directory to avoid getting user options mixed in...
608 # Force POSIX locale for tests...
618 # Start the server; run as foreground daemon in the background...
621 echo "Starting scheduler:"
622 echo " $VALGRIND ../scheduler/cupsd -c $BASE/cupsd.conf -f >$BASE/log/debug_log 2>&1 &"
625 if test `uname` = Darwin
-a "x$VALGRIND" = x
; then
626 DYLD_INSERT_LIBRARIES
=/usr
/lib
/libgmalloc.dylib
627 ..
/scheduler
/cupsd
-c $BASE/cupsd.conf
-f >$BASE/log
/debug_log
2>&1 &
629 $VALGRIND ..
/scheduler
/cupsd
-c $BASE/cupsd.conf
-f >$BASE/log
/debug_log
2>&1 &
634 if test "x$testtype" = x0
; then
635 # Not running tests...
636 echo "Scheduler is PID $cupsd and is listening on port 8631."
639 # Create a helper script to run programs with...
640 runcups
="$BASE/runcups"
642 echo "#!/bin/sh" >$runcups
643 echo "# Helper script for running CUPS test instance." >>$runcups
645 echo "# Set required environment variables..." >>$runcups
646 echo "CUPS_DATADIR=\"$CUPS_DATADIR\"; export CUPS_DATADIR" >>$runcups
647 echo "CUPS_SERVER=\"$CUPS_SERVER\"; export CUPS_SERVER" >>$runcups
648 echo "CUPS_SERVERROOT=\"$CUPS_SERVERROOT\"; export CUPS_SERVERROOT" >>$runcups
649 echo "CUPS_STATEDIR=\"$CUPS_STATEDIR\"; export CUPS_STATEDIR" >>$runcups
650 echo "DYLD_LIBRARY_PATH=\"$DYLD_LIBRARY_PATH\"; export DYLD_LIBRARY_PATH" >>$runcups
651 echo "LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH\"; export LD_LIBRARY_PATH" >>$runcups
652 echo "LD_PRELOAD=\"$LD_PRELOAD\"; export LD_PRELOAD" >>$runcups
653 echo "LOCALEDIR=\"$LOCALEDIR\"; export LOCALEDIR" >>$runcups
654 echo "SHLIB_PATH=\"$SHLIB_PATH\"; export SHLIB_PATH" >>$runcups
655 if test "x$CUPS_DEBUG_LEVEL" != x
; then
656 echo "CUPS_DEBUG_FILTER='$CUPS_DEBUG_FILTER'; export CUPS_DEBUG_FILTER" >>$runcups
657 echo "CUPS_DEBUG_LEVEL=$CUPS_DEBUG_LEVEL; export CUPS_DEBUG_LEVEL" >>$runcups
658 echo "CUPS_DEBUG_LOG='$CUPS_DEBUG_LOG'; export CUPS_DEBUG_LOG" >>$runcups
661 echo "# Run command..." >>$runcups
662 echo "exec \"\$@\"" >>$runcups
666 echo "The $runcups helper script can be used to test programs"
667 echo "with the server."
671 if test $argcount -eq 0; then
672 echo "Scheduler is PID $cupsd; run debugger now if you need to."
674 echo $ac_n "Press ENTER to continue... $ac_c"
677 echo "Scheduler is PID $cupsd."
681 IPP_PORT
=$port; export IPP_PORT
684 running
=`../systemv/lpstat -r 2>/dev/null`
685 if test "x$running" = "xscheduler is running"; then
689 echo "Waiting for scheduler to become ready..."
694 # Create the test report source file...
697 date=`date "+%Y-%m-%d"`
698 strfile
=$BASE/cups-str-2.0
-$date-$user.html
701 cat str-header.html
>$strfile
704 # Run the IPP tests...
708 echo "Running IPP compliance tests..."
710 echo "<H1>1 - IPP Compliance Tests</H1>" >>$strfile
711 echo "<P>This section provides the results to the IPP compliance tests" >>$strfile
712 echo "outlined in the CUPS Software Test Plan. These tests were run on" >>$strfile
713 echo `date "+%Y-%m-%d"` by
$user on
`hostname`.
>>$strfile
714 echo "<PRE>" >>$strfile
717 for file in 4*.
test ipp-2.1.
test; do
718 echo $ac_n "Performing $file: $ac_c"
721 if test $file = ipp-2.1.
test; then
722 uri
="ipp://localhost:$port/printers/Test1"
723 options
="-V 2.1 -d NOPRINT=1 -f testfile.ps"
725 uri
="ipp://localhost:$port/printers"
728 $VALGRIND .
/ipptool
-tI $options $uri $file >> $strfile
731 if test $status != 0; then
733 fail
=`expr $fail + 1`
739 echo "</PRE>" >>$strfile
742 # Run the command tests...
746 echo "Running command tests..."
748 echo "<H1>2 - Command Tests</H1>" >>$strfile
749 echo "<P>This section provides the results to the command tests" >>$strfile
750 echo "outlined in the CUPS Software Test Plan. These tests were run on" >>$strfile
751 echo $date by
$user on
`hostname`.
>>$strfile
752 echo "<PRE>" >>$strfile
754 for file in 5*.sh
; do
755 echo $ac_n "Performing $file: $ac_c"
757 echo "\"$file\":" >>$strfile
759 sh
$file $pjobs $pprinters >> $strfile
762 if test $status != 0; then
764 fail
=`expr $fail + 1`
771 # Restart the server...
774 echo $ac_n "Performing restart test: $ac_c"
776 echo "\"5.10-restart\":" >>$strfile
781 running
=`../systemv/lpstat -r 2>/dev/null`
782 if test "x$running" = "xscheduler is running"; then
789 description
="`lpstat -l -p Test1 | grep Description | sed -e '1,$s/^[^:]*: //g'`"
790 if test "x$description" != "xTest Printer 1"; then
791 echo "Failed, printer-info for Test1 is '$description', expected 'Test Printer 1'." >>$strfile
792 echo "FAIL (got '$description', expected 'Test Printer 1')"
793 fail
=`expr $fail + 1`
795 echo "Passed." >>$strfile
799 echo "</PRE>" >>$strfile
808 # Append the log files for post-mortim...
811 echo "<H1>3 - Log Files</H1>" >>$strfile
819 echo "<H2>Summary</H2>" >>$strfile
822 count
=`ls -1 $BASE/spool | wc -l`
823 count
=`expr $count - 1`
824 if test $count != 0; then
825 echo "FAIL: $count job control files were not purged."
826 echo "<P>FAIL: $count job control files were not purged.</P>" >>$strfile
827 fail
=`expr $fail + 1`
829 echo "PASS: All job control files purged."
830 echo "<P>PASS: All job control files purged.</P>" >>$strfile
833 # Pages printed on Test1 (within 1 page for timing-dependent cancel issues)
834 count
=`$GREP '^Test1 ' $BASE/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
835 expected
=`expr $pjobs \* 2 + 34`
836 expected2
=`expr $expected + 2`
837 if test $count -lt $expected -a $count -gt $expected2; then
838 echo "FAIL: Printer 'Test1' produced $count page(s), expected $expected."
839 echo "<P>FAIL: Printer 'Test1' produced $count page(s), expected $expected.</P>" >>$strfile
840 fail
=`expr $fail + 1`
842 echo "PASS: Printer 'Test1' correctly produced $count page(s)."
843 echo "<P>PASS: Printer 'Test1' correctly produced $count page(s).</P>" >>$strfile
846 # Paged printed on Test2
847 count
=`$GREP '^Test2 ' $BASE/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
848 expected
=`expr $pjobs \* 2 + 3`
849 if test $count != $expected; then
850 echo "FAIL: Printer 'Test2' produced $count page(s), expected $expected."
851 echo "<P>FAIL: Printer 'Test2' produced $count page(s), expected $expected.</P>" >>$strfile
852 fail
=`expr $fail + 1`
854 echo "PASS: Printer 'Test2' correctly produced $count page(s)."
855 echo "<P>PASS: Printer 'Test2' correctly produced $count page(s).</P>" >>$strfile
858 # Paged printed on Test3
859 count
=`$GREP '^Test3 ' $BASE/log/page_log | grep -v total | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
861 if test $count != $expected; then
862 echo "FAIL: Printer 'Test3' produced $count page(s), expected $expected."
863 echo "<P>FAIL: Printer 'Test3' produced $count page(s), expected $expected.</P>" >>$strfile
864 fail
=`expr $fail + 1`
866 echo "PASS: Printer 'Test3' correctly produced $count page(s)."
867 echo "<P>PASS: Printer 'Test3' correctly produced $count page(s).</P>" >>$strfile
871 count
=`wc -l $BASE/log/access_log | awk '{print $1}'`
872 expected
=`expr 37 + 18 + 28 + $pjobs \* 8 + $pprinters \* $pjobs \* 4`
873 if test $count != $expected; then
874 echo "FAIL: $count requests logged, expected $expected."
875 echo "<P>FAIL: $count requests logged, expected $expected.</P>" >>$strfile
876 fail
=`expr $fail + 1`
878 echo "PASS: $count requests logged."
879 echo "<P>PASS: $count requests logged.</P>" >>$strfile
882 # Did CUPS-Get-Default get logged?
883 if $GREP -q CUPS-Get-Default
$BASE/log
/access_log
; then
884 echo "FAIL: CUPS-Get-Default logged with 'AccessLogLevel actions'"
885 echo "<P>FAIL: CUPS-Get-Default logged with 'AccessLogLevel actions'</P>" >>$strfile
886 echo "<PRE>" >>$strfile
887 $GREP CUPS-Get-Default
$BASE/log
/access_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
888 echo "</PRE>" >>$strfile
889 fail
=`expr $fail + 1`
891 echo "PASS: CUPS-Get-Default not logged."
892 echo "<P>PASS: CUPS-Get-Default not logged.</P>" >>$strfile
895 # Emergency log messages
896 count
=`$GREP '^X ' $BASE/log/error_log | wc -l | awk '{print $1}'`
897 if test $count != 0; then
898 echo "FAIL: $count emergency messages, expected 0."
899 $GREP '^X ' $BASE/log
/error_log
900 echo "<P>FAIL: $count emergency messages, expected 0.</P>" >>$strfile
901 echo "<PRE>" >>$strfile
902 $GREP '^X ' $BASE/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
903 echo "</PRE>" >>$strfile
904 fail
=`expr $fail + 1`
906 echo "PASS: $count emergency messages."
907 echo "<P>PASS: $count emergency messages.</P>" >>$strfile
911 count
=`$GREP '^A ' $BASE/log/error_log | wc -l | awk '{print $1}'`
912 if test $count != 0; then
913 echo "FAIL: $count alert messages, expected 0."
914 $GREP '^A ' $BASE/log
/error_log
915 echo "<P>FAIL: $count alert messages, expected 0.</P>" >>$strfile
916 echo "<PRE>" >>$strfile
917 $GREP '^A ' $BASE/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
918 echo "</PRE>" >>$strfile
919 fail
=`expr $fail + 1`
921 echo "PASS: $count alert messages."
922 echo "<P>PASS: $count alert messages.</P>" >>$strfile
925 # Critical log messages
926 count
=`$GREP '^C ' $BASE/log/error_log | wc -l | awk '{print $1}'`
927 if test $count != 0; then
928 echo "FAIL: $count critical messages, expected 0."
929 $GREP '^C ' $BASE/log
/error_log
930 echo "<P>FAIL: $count critical messages, expected 0.</P>" >>$strfile
931 echo "<PRE>" >>$strfile
932 $GREP '^C ' $BASE/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
933 echo "</PRE>" >>$strfile
934 fail
=`expr $fail + 1`
936 echo "PASS: $count critical messages."
937 echo "<P>PASS: $count critical messages.</P>" >>$strfile
941 count
=`$GREP '^E ' $BASE/log/error_log | wc -l | awk '{print $1}'`
942 if test $count != 33; then
943 echo "FAIL: $count error messages, expected 33."
944 $GREP '^E ' $BASE/log
/error_log
945 echo "<P>FAIL: $count error messages, expected 33.</P>" >>$strfile
946 echo "<PRE>" >>$strfile
947 $GREP '^E ' $BASE/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
948 echo "</PRE>" >>$strfile
949 fail
=`expr $fail + 1`
951 echo "PASS: $count error messages."
952 echo "<P>PASS: $count error messages.</P>" >>$strfile
955 # Warning log messages
956 count
=`$GREP '^W ' $BASE/log/error_log | $GREP -v CreateProfile | wc -l | awk '{print $1}'`
957 if test $count != 18; then
958 echo "FAIL: $count warning messages, expected 18."
959 $GREP '^W ' $BASE/log
/error_log
960 echo "<P>FAIL: $count warning messages, expected 18.</P>" >>$strfile
961 echo "<PRE>" >>$strfile
962 $GREP '^W ' $BASE/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
963 echo "</PRE>" >>$strfile
964 fail
=`expr $fail + 1`
966 echo "PASS: $count warning messages."
967 echo "<P>PASS: $count warning messages.</P>" >>$strfile
970 # Notice log messages
971 count
=`$GREP '^N ' $BASE/log/error_log | wc -l | awk '{print $1}'`
972 if test $count != 0; then
973 echo "FAIL: $count notice messages, expected 0."
974 $GREP '^N ' $BASE/log
/error_log
975 echo "<P>FAIL: $count notice messages, expected 0.</P>" >>$strfile
976 echo "<PRE>" >>$strfile
977 $GREP '^N ' $BASE/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
978 echo "</PRE>" >>$strfile
979 fail
=`expr $fail + 1`
981 echo "PASS: $count notice messages."
982 echo "<P>PASS: $count notice messages.</P>" >>$strfile
986 count
=`$GREP '^I ' $BASE/log/error_log | wc -l | awk '{print $1}'`
987 if test $count = 0; then
988 echo "FAIL: $count info messages, expected more than 0."
989 echo "<P>FAIL: $count info messages, expected more than 0.</P>" >>$strfile
990 fail
=`expr $fail + 1`
992 echo "PASS: $count info messages."
993 echo "<P>PASS: $count info messages.</P>" >>$strfile
997 count
=`$GREP '^D ' $BASE/log/error_log | wc -l | awk '{print $1}'`
998 if test $count = 0; then
999 echo "FAIL: $count debug messages, expected more than 0."
1000 echo "<P>FAIL: $count debug messages, expected more than 0.</P>" >>$strfile
1001 fail
=`expr $fail + 1`
1003 echo "PASS: $count debug messages."
1004 echo "<P>PASS: $count debug messages.</P>" >>$strfile
1007 # Debug2 log messages
1008 count
=`$GREP '^d ' $BASE/log/error_log | wc -l | awk '{print $1}'`
1009 if test $count = 0; then
1010 echo "FAIL: $count debug2 messages, expected more than 0."
1011 echo "<P>FAIL: $count debug2 messages, expected more than 0.</P>" >>$strfile
1012 fail
=`expr $fail + 1`
1014 echo "PASS: $count debug2 messages."
1015 echo "<P>PASS: $count debug2 messages.</P>" >>$strfile
1019 echo "<H2>access_log</H2>" >>$strfile
1020 echo "<PRE>" >>$strfile
1021 sed -e '1,$s/&/&/g' -e '1,$s/</</g' $BASE/log
/access_log
>>$strfile
1022 echo "</PRE>" >>$strfile
1024 echo "<H2>error_log</H2>" >>$strfile
1025 echo "<PRE>" >>$strfile
1026 $GREP -v '^d' $BASE/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
1027 echo "</PRE>" >>$strfile
1029 echo "<H2>page_log</H2>" >>$strfile
1030 echo "<PRE>" >>$strfile
1031 sed -e '1,$s/&/&/g' -e '1,$s/</</g' $BASE/log
/page_log
>>$strfile
1032 echo "</PRE>" >>$strfile
1035 # Format the reports and tell the user where to find them...
1038 cat str-trailer.html
>>$strfile
1042 if test $fail != 0; then
1043 echo "$fail tests failed."
1044 cp $BASE/log
/error_log error_log-
$date-$user
1047 echo "All tests were successful."
1050 echo "Log files can be found in $BASE/log."
1051 echo "A HTML report was created in $strfile."
1054 if test $fail != 0; then
1055 echo "Copies of the error_log and `basename $strfile` files are in"
1063 # End of "$Id: run-stp-tests.sh 12065 2014-07-30 17:56:35Z msweet $"