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
204 # Make sure that the LPDEST and PRINTER environment variables are
205 # not included in the environment that is passed to the tests. These
206 # will usually cause tests to fail erroneously...
213 # See if we want to use valgrind...
217 echo "This test script can use the Valgrind software from:"
219 echo " http://developer.kde.org/~sewardj/"
221 echo $ac_n "Enter Y to use Valgrind or N to not use Valgrind: [N] $ac_c"
223 if test $# -gt 0; then
231 case "$usevalgrind" in
233 VALGRIND
="valgrind --tool=memcheck --log-file=$BASE/log/valgrind.%p --error-limit=no --leak-check=yes --trace-children=yes --read-var-info=yes"
234 if test `uname` = Darwin
; then
235 VALGRIND
="$VALGRIND --dsymutil=yes"
238 echo "Using Valgrind; log files can be found in $BASE/log..."
248 # See if we want to do debug logging of the libraries...
252 echo "If CUPS was built with the --enable-debug-printfs configure option, you"
253 echo "can enable debug logging of the libraries."
255 echo $ac_n "Enter Y or a number from 0 to 9 to enable debug logging or N to not: [N] $ac_c"
257 if test $# -gt 0; then
265 case "$usedebugprintfs" in
267 echo "Enabling debug printfs (level 5); log files can be found in $BASE/log..."
268 CUPS_DEBUG_LOG
="$BASE/log/debug_printfs.%d"; export CUPS_DEBUG_LOG
269 CUPS_DEBUG_LEVEL
=5; export CUPS_DEBUG_LEVEL
270 CUPS_DEBUG_FILTER
='^(http|_http|ipp|_ipp|cups.*Request|cupsGetResponse|cupsSend).*$'; export CUPS_DEBUG_FILTER
273 0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9)
274 echo "Enabling debug printfs (level $usedebugprintfs); log files can be found in $BASE/log..."
275 CUPS_DEBUG_LOG
="$BASE/log/debug_printfs.%d"; export CUPS_DEBUG_LOG
276 CUPS_DEBUG_LEVEL
="$usedebugprintfs"; export CUPS_DEBUG_LEVEL
277 CUPS_DEBUG_FILTER
='^(http|_http|ipp|_ipp|cups.*Request|cupsGetResponse|cupsSend).*$'; export CUPS_DEBUG_FILTER
285 # Start by creating temporary directories for the tests...
288 echo "Creating directories for test..."
293 mkdir
$BASE/bin
/backend
294 mkdir
$BASE/bin
/driver
295 mkdir
$BASE/bin
/filter
298 mkdir
$BASE/share
/banners
299 mkdir
$BASE/share
/drv
300 mkdir
$BASE/share
/locale
301 for file in ..
/locale
/cups_
*.po
; do
302 loc
=`basename $file .po | cut -c 6-`
303 mkdir
$BASE/share
/locale
/$loc
304 ln -s $root/locale
/cups_
$loc.po
$BASE/share
/locale
/$loc
305 ln -s $root/locale
/ppdc_
$loc.po
$BASE/share
/locale
/$loc
307 mkdir
$BASE/share
/mime
308 mkdir
$BASE/share
/model
309 mkdir
$BASE/share
/ppdc
310 mkdir
$BASE/interfaces
314 mkdir
$BASE/spool
/temp
317 ln -s $root/backend
/dnssd
$BASE/bin
/backend
318 ln -s $root/backend
/http
$BASE/bin
/backend
319 ln -s $root/backend
/ipp
$BASE/bin
/backend
320 ln -s $root/backend
/lpd
$BASE/bin
/backend
321 ln -s $root/backend
/mdns
$BASE/bin
/backend
322 ln -s $root/backend
/pseudo
$BASE/bin
/backend
323 ln -s $root/backend
/snmp
$BASE/bin
/backend
324 ln -s $root/backend
/socket
$BASE/bin
/backend
325 ln -s $root/backend
/usb
$BASE/bin
/backend
326 ln -s $root/cgi-bin
$BASE/bin
327 ln -s $root/monitor
$BASE/bin
328 ln -s $root/notifier
$BASE/bin
329 ln -s $root/scheduler
$BASE/bin
/daemon
330 ln -s $root/filter
/commandtops
$BASE/bin
/filter
331 ln -s $root/filter
/gziptoany
$BASE/bin
/filter
332 ln -s $root/filter
/pstops
$BASE/bin
/filter
333 ln -s $root/filter
/rastertoepson
$BASE/bin
/filter
334 ln -s $root/filter
/rastertohp
$BASE/bin
/filter
335 ln -s $root/filter
/rastertolabel
$BASE/bin
/filter
336 ln -s $root/filter
/rastertopwg
$BASE/bin
/filter
338 ln -s $root/data
/classified
$BASE/share
/banners
339 ln -s $root/data
/confidential
$BASE/share
/banners
340 ln -s $root/data
/secret
$BASE/share
/banners
341 ln -s $root/data
/standard
$BASE/share
/banners
342 ln -s $root/data
/topsecret
$BASE/share
/banners
343 ln -s $root/data
/unclassified
$BASE/share
/banners
344 ln -s $root/data
$BASE/share
345 ln -s $root/ppdc
/sample.drv
$BASE/share
/drv
346 ln -s $root/conf
/mime.types
$BASE/share
/mime
347 ln -s $root/conf
/mime.convs
$BASE/share
/mime
348 ln -s $root/data
/*.h
$BASE/share
/ppdc
349 ln -s $root/data
/*.defs
$BASE/share
/ppdc
350 ln -s $root/templates
$BASE/share
353 # Local filters and configuration files...
357 # instfilter src dst format
359 # See if the filter exists in a standard location; if so, make a
360 # symlink, otherwise create a dummy script for the specified format.
366 for dir
in /usr
/libexec
/cups
/filter
/usr
/lib
/cups
/filter
; do
367 if test -x "$dir/$src"; then
368 ln -s "$dir/$src" "$BASE/bin/filter/$dst"
373 # Source filter not present, create a dummy filter
376 ln -s gziptoany
"$BASE/bin/filter/$dst"
379 cat >"$BASE/bin/filter/$dst" <<EOF
382 *media=a4* | *media=iso_a4* | *PageSize=A4*)
383 cat "$root/test/onepage-a4.pdf"
386 cat "$root/test/onepage-letter.pdf"
390 chmod +x
"$BASE/bin/filter/$dst"
393 cat >"$BASE/bin/filter/$dst" <<EOF
396 *media=a4* | *media=iso_a4* | *PageSize=A4*)
397 cat "$root/test/onepage-a4.ps"
400 cat "$root/test/onepage-letter.ps"
404 chmod +x
"$BASE/bin/filter/$dst"
407 cat >"$BASE/bin/filter/$dst" <<EOF
410 *media=a4* | *media=iso_a4* | *PageSize=A4*)
411 gunzip -c "$root/test/onepage-a4-300-black-1.pwg.gz"
414 gunzip -c "$root/test/onepage-letter-300-black-1.pwg.gz"
418 chmod +x
"$BASE/bin/filter/$dst"
423 ln -s $root/test
/test.convs
$BASE/share
/mime
425 if test `uname` = Darwin
; then
426 instfilter cgbannertopdf bannertopdf pdf
427 instfilter cgimagetopdf imagetopdf pdf
428 instfilter cgpdftopdf pdftopdf passthru
429 instfilter cgpdftops pdftops ps
430 instfilter cgpdftoraster pdftoraster raster
431 instfilter cgtexttopdf texttopdf pdf
432 instfilter pstocupsraster pstoraster raster
433 instfilter pstopdffilter pstopdf pdf
435 instfilter bannertopdf bannertopdf pdf
436 instfilter bannertops bannertops ps
437 instfilter imagetopdf imagetopdf pdf
438 instfilter pdftopdf pdftopdf passthru
439 instfilter pdftops pdftops ps
440 instfilter pdftoraster pdftoraster raster
441 instfilter pstoraster pstoraster raster
442 instfilter texttopdf texttopdf pdf
444 if test -d /usr
/share
/cups
/charsets
; then
445 ln -s /usr
/share
/cups
/charsets
$BASE/share
450 # Then create the necessary config files...
453 echo "Creating cupsd.conf for test..."
455 if test $ssltype = 2; then
456 encryption
="Encryption Required"
461 cat >$BASE/cupsd.conf
<<EOF
462 StrictConformance Yes
464 Listen localhost:$port
467 PassEnv DYLD_INSERT_LIBRARIES
470 AccessLogLevel actions
473 PreserveJobHistory Yes
483 if test $testtype = 0; then
484 echo WebInterface
yes >>$BASE/cupsd.conf
487 cat >$BASE/cups-files.conf
<<EOF
496 FontPath $BASE/share/fonts
497 DocumentRoot $root/doc
498 RequestRoot $BASE/spool
499 TempDir $BASE/spool/temp
500 AccessLog $BASE/log/access_log
501 ErrorLog $BASE/log/error_log
502 PageLog $BASE/log/page_log
505 if test $ssltype != 0 -a `uname` = Darwin
; then
506 echo "ServerKeychain $HOME/Library/Keychains/login.keychain" >> $BASE/cups-files.conf
510 # Setup lots of test queues - half with PPD files, half without...
513 echo "Creating printers.conf for test..."
516 while test $i -le $nprinters1; do
517 cat >>$BASE/printers.conf
<<EOF
520 DeviceURI file:/dev/null
521 Info Test PS printer $i
523 Location CUPS test suite
525 StateMessage Printer $1 is idle.
529 cp testps.ppd
$BASE/ppd
/test-
$i.ppd
534 while test $i -le $nprinters2; do
535 cat >>$BASE/printers.conf
<<EOF
538 DeviceURI file:/dev/null
539 Info Test raw printer $i
541 Location CUPS test suite
543 StateMessage Printer $1 is idle.
550 if test -f $BASE/printers.conf
; then
551 cp $BASE/printers.conf
$BASE/printers.conf.orig
553 touch $BASE/printers.conf.orig
560 echo "Setting up environment variables for test..."
562 if test "x$LD_LIBRARY_PATH" = x
; then
563 LD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc"
565 LD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc:$LD_LIBRARY_PATH"
568 export LD_LIBRARY_PATH
570 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"
571 if test `uname` = SunOS
-a -r /usr
/lib
/libCrun.so
.1; then
572 LD_PRELOAD
="/usr/lib/libCrun.so.1:$LD_PRELOAD"
576 if test "x$DYLD_LIBRARY_PATH" = x
; then
577 DYLD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc"
579 DYLD_LIBRARY_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc:$DYLD_LIBRARY_PATH"
582 export DYLD_LIBRARY_PATH
584 if test "x$SHLIB_PATH" = x
; then
585 SHLIB_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc"
587 SHLIB_PATH
="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc:$SHLIB_PATH"
592 CUPS_DISABLE_APPLE_DEFAULT
=yes; export CUPS_DISABLE_APPLE_DEFAULT
593 CUPS_SERVER
=localhost
:8631; export CUPS_SERVER
594 CUPS_SERVERROOT
=$BASE; export CUPS_SERVERROOT
595 CUPS_STATEDIR
=$BASE; export CUPS_STATEDIR
596 CUPS_DATADIR
=$BASE/share
; export CUPS_DATADIR
597 LOCALEDIR
=$BASE/share
/locale
; export LOCALEDIR
600 # Set a new home directory to avoid getting user options mixed in...
607 # Force POSIX locale for tests...
617 # Start the server; run as foreground daemon in the background...
620 echo "Starting scheduler:"
621 echo " $VALGRIND ../scheduler/cupsd -c $BASE/cupsd.conf -f >$BASE/log/debug_log 2>&1 &"
624 if test `uname` = Darwin
-a "x$VALGRIND" = x
; then
625 DYLD_INSERT_LIBRARIES
=/usr
/lib
/libgmalloc.dylib
626 ..
/scheduler
/cupsd
-c $BASE/cupsd.conf
-f >$BASE/log
/debug_log
2>&1 &
628 $VALGRIND ..
/scheduler
/cupsd
-c $BASE/cupsd.conf
-f >$BASE/log
/debug_log
2>&1 &
633 if test "x$testtype" = x0
; then
634 # Not running tests...
635 echo "Scheduler is PID $cupsd and is listening on port 8631."
638 # Create a helper script to run programs with...
639 runcups
="$BASE/runcups"
641 echo "#!/bin/sh" >$runcups
642 echo "# Helper script for running CUPS test instance." >>$runcups
644 echo "# Set required environment variables..." >>$runcups
645 echo "CUPS_DATADIR=\"$CUPS_DATADIR\"; export CUPS_DATADIR" >>$runcups
646 echo "CUPS_SERVER=\"$CUPS_SERVER\"; export CUPS_SERVER" >>$runcups
647 echo "CUPS_SERVERROOT=\"$CUPS_SERVERROOT\"; export CUPS_SERVERROOT" >>$runcups
648 echo "CUPS_STATEDIR=\"$CUPS_STATEDIR\"; export CUPS_STATEDIR" >>$runcups
649 echo "DYLD_LIBRARY_PATH=\"$DYLD_LIBRARY_PATH\"; export DYLD_LIBRARY_PATH" >>$runcups
650 echo "LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH\"; export LD_LIBRARY_PATH" >>$runcups
651 echo "LD_PRELOAD=\"$LD_PRELOAD\"; export LD_PRELOAD" >>$runcups
652 echo "LOCALEDIR=\"$LOCALEDIR\"; export LOCALEDIR" >>$runcups
653 echo "SHLIB_PATH=\"$SHLIB_PATH\"; export SHLIB_PATH" >>$runcups
654 if test "x$CUPS_DEBUG_LEVEL" != x
; then
655 echo "CUPS_DEBUG_FILTER='$CUPS_DEBUG_FILTER'; export CUPS_DEBUG_FILTER" >>$runcups
656 echo "CUPS_DEBUG_LEVEL=$CUPS_DEBUG_LEVEL; export CUPS_DEBUG_LEVEL" >>$runcups
657 echo "CUPS_DEBUG_LOG='$CUPS_DEBUG_LOG'; export CUPS_DEBUG_LOG" >>$runcups
660 echo "# Run command..." >>$runcups
661 echo "exec \"\$@\"" >>$runcups
665 echo "The $runcups helper script can be used to test programs"
666 echo "with the server."
670 if test $argcount -eq 0; then
671 echo "Scheduler is PID $cupsd; run debugger now if you need to."
673 echo $ac_n "Press ENTER to continue... $ac_c"
676 echo "Scheduler is PID $cupsd."
680 IPP_PORT
=$port; export IPP_PORT
683 running
=`../systemv/lpstat -r 2>/dev/null`
684 if test "x$running" = "xscheduler is running"; then
688 echo "Waiting for scheduler to become ready..."
693 # Create the test report source file...
696 date=`date "+%Y-%m-%d"`
697 strfile
=$BASE/cups-str-2.0
-$date-$user.html
700 cat str-header.html
>$strfile
703 # Run the IPP tests...
707 echo "Running IPP compliance tests..."
709 echo "<H1>1 - IPP Compliance Tests</H1>" >>$strfile
710 echo "<P>This section provides the results to the IPP compliance tests" >>$strfile
711 echo "outlined in the CUPS Software Test Plan. These tests were run on" >>$strfile
712 echo `date "+%Y-%m-%d"` by
$user on
`hostname`.
>>$strfile
713 echo "<PRE>" >>$strfile
716 for file in 4*.
test ipp-2.1.
test; do
717 echo $ac_n "Performing $file: $ac_c"
720 if test $file = ipp-2.1.
test; then
721 uri
="ipp://localhost:$port/printers/Test1"
722 options
="-V 2.1 -d NOPRINT=1 -f testfile.ps"
724 uri
="ipp://localhost:$port/printers"
727 $VALGRIND .
/ipptool
-tI $options $uri $file >> $strfile
730 if test $status != 0; then
732 fail
=`expr $fail + 1`
738 echo "</PRE>" >>$strfile
741 # Run the command tests...
745 echo "Running command tests..."
747 echo "<H1>2 - Command Tests</H1>" >>$strfile
748 echo "<P>This section provides the results to the command tests" >>$strfile
749 echo "outlined in the CUPS Software Test Plan. These tests were run on" >>$strfile
750 echo $date by
$user on
`hostname`.
>>$strfile
751 echo "<PRE>" >>$strfile
753 for file in 5*.sh
; do
754 echo $ac_n "Performing $file: $ac_c"
756 echo "\"$file\":" >>$strfile
758 sh
$file $pjobs $pprinters >> $strfile
761 if test $status != 0; then
763 fail
=`expr $fail + 1`
770 # Restart the server...
773 echo $ac_n "Performing restart test: $ac_c"
775 echo "\"5.10-restart\":" >>$strfile
780 running
=`../systemv/lpstat -r 2>/dev/null`
781 if test "x$running" = "xscheduler is running"; then
788 description
="`lpstat -l -p Test1 | grep Description | sed -e '1,$s/^[^:]*: //g'`"
789 if test "x$description" != "xTest Printer 1"; then
790 echo "Failed, printer-info for Test1 is '$description', expected 'Test Printer 1'." >>$strfile
791 echo "FAIL (got '$description', expected 'Test Printer 1')"
792 fail
=`expr $fail + 1`
794 echo "Passed." >>$strfile
798 echo "</PRE>" >>$strfile
807 # Append the log files for post-mortim...
810 echo "<H1>3 - Log Files</H1>" >>$strfile
818 echo "<H2>Summary</H2>" >>$strfile
821 count
=`ls -1 $BASE/spool | wc -l`
822 count
=`expr $count - 1`
823 if test $count != 0; then
824 echo "FAIL: $count job control files were not purged."
825 echo "<P>FAIL: $count job control files were not purged.</P>" >>$strfile
826 fail
=`expr $fail + 1`
828 echo "PASS: All job control files purged."
829 echo "<P>PASS: All job control files purged.</P>" >>$strfile
832 # Pages printed on Test1 (within 1 page for timing-dependent cancel issues)
833 count
=`$GREP '^Test1 ' $BASE/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
834 expected
=`expr $pjobs \* 2 + 34`
835 expected2
=`expr $expected + 2`
836 if test $count -lt $expected -a $count -gt $expected2; then
837 echo "FAIL: Printer 'Test1' produced $count page(s), expected $expected."
838 echo "<P>FAIL: Printer 'Test1' produced $count page(s), expected $expected.</P>" >>$strfile
839 fail
=`expr $fail + 1`
841 echo "PASS: Printer 'Test1' correctly produced $count page(s)."
842 echo "<P>PASS: Printer 'Test1' correctly produced $count page(s).</P>" >>$strfile
845 # Paged printed on Test2
846 count
=`$GREP '^Test2 ' $BASE/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
847 expected
=`expr $pjobs \* 2 + 3`
848 if test $count != $expected; then
849 echo "FAIL: Printer 'Test2' produced $count page(s), expected $expected."
850 echo "<P>FAIL: Printer 'Test2' produced $count page(s), expected $expected.</P>" >>$strfile
851 fail
=`expr $fail + 1`
853 echo "PASS: Printer 'Test2' correctly produced $count page(s)."
854 echo "<P>PASS: Printer 'Test2' correctly produced $count page(s).</P>" >>$strfile
857 # Paged printed on Test3
858 count
=`$GREP '^Test3 ' $BASE/log/page_log | grep -v total | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
860 if test $count != $expected; then
861 echo "FAIL: Printer 'Test3' produced $count page(s), expected $expected."
862 echo "<P>FAIL: Printer 'Test3' produced $count page(s), expected $expected.</P>" >>$strfile
863 fail
=`expr $fail + 1`
865 echo "PASS: Printer 'Test3' correctly produced $count page(s)."
866 echo "<P>PASS: Printer 'Test3' correctly produced $count page(s).</P>" >>$strfile
870 count
=`wc -l $BASE/log/access_log | awk '{print $1}'`
871 expected
=`expr 37 + 18 + 28 + $pjobs \* 8 + $pprinters \* $pjobs \* 4`
872 if test $count != $expected; then
873 echo "FAIL: $count requests logged, expected $expected."
874 echo "<P>FAIL: $count requests logged, expected $expected.</P>" >>$strfile
875 fail
=`expr $fail + 1`
877 echo "PASS: $count requests logged."
878 echo "<P>PASS: $count requests logged.</P>" >>$strfile
881 # Did CUPS-Get-Default get logged?
882 if $GREP -q CUPS-Get-Default
$BASE/log
/access_log
; then
883 echo "FAIL: CUPS-Get-Default logged with 'AccessLogLevel actions'"
884 echo "<P>FAIL: CUPS-Get-Default logged with 'AccessLogLevel actions'</P>" >>$strfile
885 echo "<PRE>" >>$strfile
886 $GREP CUPS-Get-Default
$BASE/log
/access_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
887 echo "</PRE>" >>$strfile
888 fail
=`expr $fail + 1`
890 echo "PASS: CUPS-Get-Default not logged."
891 echo "<P>PASS: CUPS-Get-Default not logged.</P>" >>$strfile
894 # Emergency log messages
895 count
=`$GREP '^X ' $BASE/log/error_log | wc -l | awk '{print $1}'`
896 if test $count != 0; then
897 echo "FAIL: $count emergency messages, expected 0."
898 $GREP '^X ' $BASE/log
/error_log
899 echo "<P>FAIL: $count emergency messages, expected 0.</P>" >>$strfile
900 echo "<PRE>" >>$strfile
901 $GREP '^X ' $BASE/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
902 echo "</PRE>" >>$strfile
903 fail
=`expr $fail + 1`
905 echo "PASS: $count emergency messages."
906 echo "<P>PASS: $count emergency messages.</P>" >>$strfile
910 count
=`$GREP '^A ' $BASE/log/error_log | wc -l | awk '{print $1}'`
911 if test $count != 0; then
912 echo "FAIL: $count alert messages, expected 0."
913 $GREP '^A ' $BASE/log
/error_log
914 echo "<P>FAIL: $count alert messages, expected 0.</P>" >>$strfile
915 echo "<PRE>" >>$strfile
916 $GREP '^A ' $BASE/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
917 echo "</PRE>" >>$strfile
918 fail
=`expr $fail + 1`
920 echo "PASS: $count alert messages."
921 echo "<P>PASS: $count alert messages.</P>" >>$strfile
924 # Critical log messages
925 count
=`$GREP '^C ' $BASE/log/error_log | wc -l | awk '{print $1}'`
926 if test $count != 0; then
927 echo "FAIL: $count critical messages, expected 0."
928 $GREP '^C ' $BASE/log
/error_log
929 echo "<P>FAIL: $count critical messages, expected 0.</P>" >>$strfile
930 echo "<PRE>" >>$strfile
931 $GREP '^C ' $BASE/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
932 echo "</PRE>" >>$strfile
933 fail
=`expr $fail + 1`
935 echo "PASS: $count critical messages."
936 echo "<P>PASS: $count critical messages.</P>" >>$strfile
940 count
=`$GREP '^E ' $BASE/log/error_log | wc -l | awk '{print $1}'`
941 if test $count != 33; then
942 echo "FAIL: $count error messages, expected 33."
943 $GREP '^E ' $BASE/log
/error_log
944 echo "<P>FAIL: $count error messages, expected 33.</P>" >>$strfile
945 echo "<PRE>" >>$strfile
946 $GREP '^E ' $BASE/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
947 echo "</PRE>" >>$strfile
948 fail
=`expr $fail + 1`
950 echo "PASS: $count error messages."
951 echo "<P>PASS: $count error messages.</P>" >>$strfile
954 # Warning log messages
955 count
=`$GREP '^W ' $BASE/log/error_log | $GREP -v CreateProfile | wc -l | awk '{print $1}'`
956 if test $count != 18; then
957 echo "FAIL: $count warning messages, expected 18."
958 $GREP '^W ' $BASE/log
/error_log
959 echo "<P>FAIL: $count warning messages, expected 18.</P>" >>$strfile
960 echo "<PRE>" >>$strfile
961 $GREP '^W ' $BASE/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
962 echo "</PRE>" >>$strfile
963 fail
=`expr $fail + 1`
965 echo "PASS: $count warning messages."
966 echo "<P>PASS: $count warning messages.</P>" >>$strfile
969 # Notice log messages
970 count
=`$GREP '^N ' $BASE/log/error_log | wc -l | awk '{print $1}'`
971 if test $count != 0; then
972 echo "FAIL: $count notice messages, expected 0."
973 $GREP '^N ' $BASE/log
/error_log
974 echo "<P>FAIL: $count notice messages, expected 0.</P>" >>$strfile
975 echo "<PRE>" >>$strfile
976 $GREP '^N ' $BASE/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
977 echo "</PRE>" >>$strfile
978 fail
=`expr $fail + 1`
980 echo "PASS: $count notice messages."
981 echo "<P>PASS: $count notice messages.</P>" >>$strfile
985 count
=`$GREP '^I ' $BASE/log/error_log | wc -l | awk '{print $1}'`
986 if test $count = 0; then
987 echo "FAIL: $count info messages, expected more than 0."
988 echo "<P>FAIL: $count info messages, expected more than 0.</P>" >>$strfile
989 fail
=`expr $fail + 1`
991 echo "PASS: $count info messages."
992 echo "<P>PASS: $count info messages.</P>" >>$strfile
996 count
=`$GREP '^D ' $BASE/log/error_log | wc -l | awk '{print $1}'`
997 if test $count = 0; then
998 echo "FAIL: $count debug messages, expected more than 0."
999 echo "<P>FAIL: $count debug messages, expected more than 0.</P>" >>$strfile
1000 fail
=`expr $fail + 1`
1002 echo "PASS: $count debug messages."
1003 echo "<P>PASS: $count debug messages.</P>" >>$strfile
1006 # Debug2 log messages
1007 count
=`$GREP '^d ' $BASE/log/error_log | wc -l | awk '{print $1}'`
1008 if test $count = 0; then
1009 echo "FAIL: $count debug2 messages, expected more than 0."
1010 echo "<P>FAIL: $count debug2 messages, expected more than 0.</P>" >>$strfile
1011 fail
=`expr $fail + 1`
1013 echo "PASS: $count debug2 messages."
1014 echo "<P>PASS: $count debug2 messages.</P>" >>$strfile
1018 echo "<H2>access_log</H2>" >>$strfile
1019 echo "<PRE>" >>$strfile
1020 sed -e '1,$s/&/&/g' -e '1,$s/</</g' $BASE/log
/access_log
>>$strfile
1021 echo "</PRE>" >>$strfile
1023 echo "<H2>error_log</H2>" >>$strfile
1024 echo "<PRE>" >>$strfile
1025 $GREP -v '^d' $BASE/log
/error_log |
sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
1026 echo "</PRE>" >>$strfile
1028 echo "<H2>page_log</H2>" >>$strfile
1029 echo "<PRE>" >>$strfile
1030 sed -e '1,$s/&/&/g' -e '1,$s/</</g' $BASE/log
/page_log
>>$strfile
1031 echo "</PRE>" >>$strfile
1034 # Format the reports and tell the user where to find them...
1037 cat str-trailer.html
>>$strfile
1041 if test $fail != 0; then
1042 echo "$fail tests failed."
1043 cp $BASE/log
/error_log error_log-
$date-$user
1046 echo "All tests were successful."
1049 echo "Log files can be found in $BASE/log."
1050 echo "A HTML report was created in $strfile."
1053 if test $fail != 0; then
1054 echo "Copies of the error_log and `basename $strfile` files are in"