]> git.ipfire.org Git - thirdparty/cups.git/blame - test/run-stp-tests.sh
Remove old files.
[thirdparty/cups.git] / test / run-stp-tests.sh
CommitLineData
ef416fc2 1#!/bin/sh
2#
bc44d920 3# "$Id: run-stp-tests.sh 6649 2007-07-11 21:46:42Z mike $"
ef416fc2 4#
5# Perform the complete set of IPP compliance tests specified in the
6# CUPS Software Test Plan.
7#
839a51c8 8# Copyright 2007-2008 by Apple Inc.
f899b121 9# Copyright 1997-2007 by Easy Software Products, all rights reserved.
ef416fc2 10#
11# These coded instructions, statements, and computer programs are the
bc44d920 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/".
ef416fc2 16#
17
a74454a7 18argcount=$#
19
ef416fc2 20#
21# Make the IPP test program...
22#
23
24make
25
bd7854cb 26#
27# Figure out the proper echo options...
28#
29
30if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
31 ac_n=-n
32 ac_c=
33else
34 ac_n=
35 ac_c='\c'
36fi
37
ef416fc2 38#
39# Greet the tester...
40#
41
42echo "Welcome to the CUPS Automated Test Script."
43echo ""
44echo "Before we begin, it is important that you understand that the larger"
45echo "tests require significant amounts of RAM and disk space. If you"
46echo "attempt to run one of the big tests on a system that lacks sufficient"
47echo "disk and virtual memory, the UNIX kernel might decide to kill one or"
48echo "more system processes that you've grown attached to, like the X"
49echo "server. The question you may want to ask yourself before running a"
50echo "large test is: Do you feel lucky?"
51echo ""
52echo "OK, now that we have the Dirty Harry quote out of the way, please"
53echo "choose the type of test you wish to perform:"
54echo ""
55echo "0 - No testing, keep the scheduler running for me (all systems)"
56echo "1 - Basic conformance test, no load testing (all systems)"
57echo "2 - Basic conformance test, some load testing (minimum 256MB VM, 50MB disk)"
58echo "3 - Basic conformance test, extreme load testing (minimum 1GB VM, 500MB disk)"
59echo "4 - Basic conformance test, torture load testing (minimum 2GB VM, 1GB disk)"
60echo ""
bd7854cb 61echo $ac_n "Enter the number of the test you wish to perform: [1] $ac_c"
ef416fc2 62
a74454a7 63if test $# -gt 0; then
64 testtype=$1
65 shift
66else
67 read testtype
68fi
bd7854cb 69echo ""
ef416fc2 70
71case "$testtype" in
72 0)
73 echo "Running in test mode (0)"
74 nprinters1=0
75 nprinters2=0
76 pjobs=0
77 ;;
78 2)
79 echo "Running the medium tests (2)"
80 nprinters1=10
81 nprinters2=20
82 pjobs=20
83 ;;
84 3)
85 echo "Running the extreme tests (3)"
86 nprinters1=500
87 nprinters2=1000
88 pjobs=100
89 ;;
90 4)
91 echo "Running the torture tests (4)"
92 nprinters1=10000
93 nprinters2=20000
94 pjobs=200
95 ;;
96 *)
97 echo "Running the timid tests (1)"
98 nprinters1=0
99 nprinters2=0
839a51c8 100 pjobs=10
ef416fc2 101 ;;
102esac
103
104#
105# See if we want to do SSL testing...
106#
107
108echo ""
109echo "Now you can choose whether to create a SSL/TLS encryption key and"
110echo "certificate for testing; these tests currently require the OpenSSL"
111echo "tools:"
112echo ""
113echo "0 - Do not do SSL/TLS encryption tests"
411affcf 114echo "1 - Test but do not require encryption"
115echo "2 - Test and require encryption"
ef416fc2 116echo ""
bd7854cb 117echo $ac_n "Enter the number of the SSL/TLS tests to perform: [0] $ac_c"
ef416fc2 118
a74454a7 119if test $# -gt 0; then
120 ssltype=$1
121 shift
122else
123 read ssltype
124fi
bd7854cb 125echo ""
ef416fc2 126
127case "$ssltype" in
411affcf 128 1)
129 echo "Will test but not require encryption (1)"
130 ;;
131 2)
132 echo "Will test and require encryption (2)"
ef416fc2 133 ;;
ef416fc2 134 *)
411affcf 135 echo "Not using SSL/TLS (0)"
ef416fc2 136 ssltype=0
137 ;;
138esac
139
140#
141# Information for the server/tests...
142#
143
e1d6a774 144user="$USER"
145if test -z "$user"; then
146 if test -x /usr/ucb/whoami; then
147 user=`/usr/ucb/whoami`
148 else
149 user=`whoami`
150 fi
151
152 if test -z "$user"; then
153 user="unknown"
154 fi
155fi
156
ef416fc2 157port=8631
158cwd=`pwd`
159root=`dirname $cwd`
160
161#
162# Make sure that the LPDEST and PRINTER environment variables are
163# not included in the environment that is passed to the tests. These
164# will usually cause tests to fail erroneously...
165#
166
634763e8
MS
167unset LPDEST
168unset PRINTER
ef416fc2 169
170#
171# See if we want to use valgrind...
172#
173
174echo ""
175echo "This test script can use the Valgrind software from:"
176echo ""
177echo " http://developer.kde.org/~sewardj/"
178echo ""
bd7854cb 179echo $ac_n "Enter Y to use Valgrind or N to not use Valgrind: [N] $ac_c"
ef416fc2 180
a74454a7 181if test $# -gt 0; then
182 usevalgrind=$1
183 shift
184else
185 read usevalgrind
186fi
bd7854cb 187echo ""
ef416fc2 188
189case "$usevalgrind" in
190 Y* | y*)
191 valgrind="valgrind --tool=memcheck --log-file=/tmp/cups-$user/log/valgrind --error-limit=no --leak-check=yes --trace-children=yes"
192 echo "Using Valgrind; log files can be found in /tmp/cups-$user/log..."
193 ;;
194
195 *)
196 valgrind=""
197 ;;
198esac
199
200#
201# Start by creating temporary directories for the tests...
202#
203
a74454a7 204echo "Creating directories for test..."
205
ef416fc2 206rm -rf /tmp/cups-$user
207mkdir /tmp/cups-$user
208mkdir /tmp/cups-$user/bin
209mkdir /tmp/cups-$user/bin/backend
839a51c8 210mkdir /tmp/cups-$user/bin/driver
ef416fc2 211mkdir /tmp/cups-$user/bin/filter
212mkdir /tmp/cups-$user/certs
213mkdir /tmp/cups-$user/share
214mkdir /tmp/cups-$user/share/banners
215mkdir /tmp/cups-$user/share/model
216mkdir /tmp/cups-$user/interfaces
217mkdir /tmp/cups-$user/log
218mkdir /tmp/cups-$user/ppd
219mkdir /tmp/cups-$user/spool
220mkdir /tmp/cups-$user/spool/temp
221mkdir /tmp/cups-$user/ssl
222
223ln -s $root/backend/http /tmp/cups-$user/bin/backend
224ln -s $root/backend/ipp /tmp/cups-$user/bin/backend
225ln -s $root/backend/lpd /tmp/cups-$user/bin/backend
226ln -s $root/backend/parallel /tmp/cups-$user/bin/backend
227ln -s $root/backend/serial /tmp/cups-$user/bin/backend
a74454a7 228ln -s $root/backend/snmp /tmp/cups-$user/bin/backend
ef416fc2 229ln -s $root/backend/socket /tmp/cups-$user/bin/backend
230ln -s $root/backend/usb /tmp/cups-$user/bin/backend
231ln -s $root/cgi-bin /tmp/cups-$user/bin
839a51c8 232ln -s $root/ppdc/drv /tmp/cups-$user/bin/driver
bd7854cb 233ln -s $root/monitor /tmp/cups-$user/bin
ef416fc2 234ln -s $root/notifier /tmp/cups-$user/bin
235ln -s $root/scheduler /tmp/cups-$user/bin/daemon
236ln -s $root/filter/hpgltops /tmp/cups-$user/bin/filter
ef416fc2 237ln -s $root/filter/pstops /tmp/cups-$user/bin/filter
238ln -s $root/filter/rastertoepson /tmp/cups-$user/bin/filter
239ln -s $root/filter/rastertohp /tmp/cups-$user/bin/filter
240ln -s $root/filter/texttops /tmp/cups-$user/bin/filter
ef416fc2 241
242ln -s $root/data/classified /tmp/cups-$user/share/banners
243ln -s $root/data/confidential /tmp/cups-$user/share/banners
244ln -s $root/data/secret /tmp/cups-$user/share/banners
245ln -s $root/data/standard /tmp/cups-$user/share/banners
246ln -s $root/data/topsecret /tmp/cups-$user/share/banners
247ln -s $root/data/unclassified /tmp/cups-$user/share/banners
a74454a7 248ln -s $root/data /tmp/cups-$user/share/charmaps
ef416fc2 249ln -s $root/data /tmp/cups-$user/share/charsets
250ln -s $root/data /tmp/cups-$user/share
251ln -s $root/fonts /tmp/cups-$user/share
252ln -s $root/ppd/*.ppd /tmp/cups-$user/share/model
253ln -s $root/templates /tmp/cups-$user/share
254
255if test $ssltype != 0; then
256 mkdir $root/ssl
257 cp server.* $root/ssl
258fi
259
bc44d920 260#
261# Mac OS X filters and configuration files...
262#
263
264if test `uname` = Darwin; then
265 ln -s /usr/libexec/cups/filter/cgpdfto* /tmp/cups-$user/bin/filter
266 ln -s /usr/libexec/cups/filter/nsimagetopdf /tmp/cups-$user/bin/filter
267 ln -s /usr/libexec/cups/filter/nstexttopdf /tmp/cups-$user/bin/filter
268 ln -s /usr/libexec/cups/filter/pictwpstops /tmp/cups-$user/bin/filter
269 ln -s /usr/libexec/cups/filter/pstoappleps /tmp/cups-$user/bin/filter
270 ln -s /usr/libexec/cups/filter/pstocupsraster /tmp/cups-$user/bin/filter
271 ln -s /usr/libexec/cups/filter/pstopdffilter /tmp/cups-$user/bin/filter
272
273 ln -s /private/etc/cups/apple.* /tmp/cups-$user
839a51c8
MS
274else
275 ln -s $root/filter/imagetops /tmp/cups-$user/bin/filter
276 ln -s $root/filter/imagetoraster /tmp/cups-$user/bin/filter
277 ln -s $root/filter/pdftops /tmp/cups-$user/bin/filter
bc44d920 278fi
279
ef416fc2 280#
281# Then create the necessary config files...
282#
283
a74454a7 284echo "Creating cupsd.conf for test..."
285
ef416fc2 286if test $ssltype = 2; then
287 encryption="Encryption Required"
288else
289 encryption=""
290fi
291
292cat >/tmp/cups-$user/cupsd.conf <<EOF
293Browsing Off
294FileDevice yes
295Printcap
296Listen 127.0.0.1:$port
297User $user
298ServerRoot /tmp/cups-$user
299StateDir /tmp/cups-$user
300ServerBin /tmp/cups-$user/bin
301CacheDir /tmp/cups-$user/share
302DataDir /tmp/cups-$user/share
303FontPath /tmp/cups-$user/share/fonts
304DocumentRoot $root/doc
305RequestRoot /tmp/cups-$user/spool
306TempDir /tmp/cups-$user/spool/temp
307MaxLogSize 0
308AccessLog /tmp/cups-$user/log/access_log
309ErrorLog /tmp/cups-$user/log/error_log
310PageLog /tmp/cups-$user/log/page_log
bc44d920 311LogLevel debug
ef416fc2 312PreserveJobHistory Yes
313<Policy default>
314<Limit All>
315Order Deny,Allow
316Deny from all
317Allow from 127.0.0.1
318$encryption
319</Limit>
320</Policy>
321EOF
322
323touch /tmp/cups-$user/classes.conf
324touch /tmp/cups-$user/printers.conf
325
326#
327# Setup lots of test queues - 500 with PPD files, 500 without...
328#
329
a74454a7 330echo "Creating printers.conf for test..."
331
ef416fc2 332i=1
333while test $i -le $nprinters1; do
334 cat >>/tmp/cups-$user/printers.conf <<EOF
335<Printer test-$i>
336Accepting Yes
337DeviceURI file:/dev/null
338Info Test PS printer $i
339JobSheets none none
340Location CUPS test suite
341State Idle
342StateMessage Printer $1 is idle.
343</Printer>
344EOF
345
346 cp testps.ppd /tmp/cups-$user/ppd/test-$i.ppd
347
348 i=`expr $i + 1`
349done
350
351while test $i -le $nprinters2; do
352 cat >>/tmp/cups-$user/printers.conf <<EOF
353<Printer test-$i>
354Accepting Yes
355DeviceURI file:/dev/null
356Info Test raw printer $i
357JobSheets none none
358Location CUPS test suite
359State Idle
360StateMessage Printer $1 is idle.
361</Printer>
362EOF
363
364 i=`expr $i + 1`
365done
366
367cp /tmp/cups-$user/printers.conf /tmp/cups-$user/printers.conf.orig
368
369cp $root/conf/mime.types /tmp/cups-$user/mime.types
370cp $root/conf/mime.convs /tmp/cups-$user/mime.convs
371
372#
373# Setup the paths...
374#
375
a74454a7 376echo "Setting up environment variables for test..."
377
ef416fc2 378if test "x$LD_LIBRARY_PATH" = x; then
50fe7201 379 LD_LIBRARY_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc"
ef416fc2 380else
50fe7201 381 LD_LIBRARY_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc:$LD_LIBRARY_PATH"
ef416fc2 382fi
383
384export LD_LIBRARY_PATH
385
50fe7201 386LD_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"
ef416fc2 387export LD_PRELOAD
388
389if test "x$DYLD_LIBRARY_PATH" = x; then
50fe7201 390 DYLD_LIBRARY_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc"
ef416fc2 391else
50fe7201 392 DYLD_LIBRARY_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc:$DYLD_LIBRARY_PATH"
ef416fc2 393fi
394
395export DYLD_LIBRARY_PATH
396
397if test "x$SHLIB_PATH" = x; then
50fe7201 398 SHLIB_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc"
ef416fc2 399else
50fe7201 400 SHLIB_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/driver:$root/ppdc:$SHLIB_PATH"
ef416fc2 401fi
402
403export SHLIB_PATH
404
405CUPS_SERVER=localhost; export CUPS_SERVER
406CUPS_SERVERROOT=/tmp/cups-$user; export CUPS_SERVERROOT
407CUPS_STATEDIR=/tmp/cups-$user; export CUPS_STATEDIR
408CUPS_DATADIR=/tmp/cups-$user/share; export CUPS_DATADIR
409
410#
411# Set a new home directory to avoid getting user options mixed in...
412#
413
414HOME=/tmp/cups-$user
415export HOME
416
f42414bf 417#
418# Force POSIX locale for tests...
419#
420
421LANG=C
422export LANG
423
ef416fc2 424#
425# Start the server; run as foreground daemon in the background...
426#
427
428echo "Starting scheduler:"
a74454a7 429echo " $valgrind ../scheduler/cupsd -c /tmp/cups-$user/cupsd.conf -f >/tmp/cups-$user/log/debug_log 2>&1 &"
ef416fc2 430echo ""
431
a74454a7 432$valgrind ../scheduler/cupsd -c /tmp/cups-$user/cupsd.conf -f >/tmp/cups-$user/log/debug_log 2>&1 &
ef416fc2 433cupsd=$!
434
ef416fc2 435if test "x$testtype" = x0; then
436 echo "Scheduler is PID $cupsd and is listening on port 8631."
437 echo ""
438 echo "Set the IPP_PORT environment variable to 8631 to test the software"
439 echo "interactively from the command-line."
440 exit 0
441fi
442
a74454a7 443if test $argcount -eq 0; then
444 echo "Scheduler is PID $cupsd; run debugger now if you need to."
445 echo ""
446 echo $ac_n "Press ENTER to continue... $ac_c"
447 read junk
448else
449 echo "Scheduler is PID $cupsd."
450 sleep 2
451fi
ef416fc2 452
453IPP_PORT=$port; export IPP_PORT
454
455while true; do
456 running=`../systemv/lpstat -r 2>/dev/null`
457 if test "x$running" = "xscheduler is running"; then
458 break
459 fi
460
461 echo "Waiting for scheduler to become ready..."
462 sleep 10
463done
464
465#
466# Create the test report source file...
467#
468
839a51c8 469strfile=/tmp/cups-$user/cups-str-1.4-`date +%Y-%m-%d`-$user.html
ef416fc2 470
471rm -f $strfile
472cat str-header.html >$strfile
473
474#
475# Run the IPP tests...
476#
477
a74454a7 478echo ""
ef416fc2 479echo "Running IPP compliance tests..."
480
bd7854cb 481echo "<H1>1 - IPP Compliance Tests</H1>" >>$strfile
ef416fc2 482echo "<P>This section provides the results to the IPP compliance tests" >>$strfile
483echo "outlined in the CUPS Software Test Plan. These tests were run on" >>$strfile
e1d6a774 484echo `date "+%Y-%m-%d"` by $user on `hostname`. >>$strfile
ef416fc2 485echo "<PRE>" >>$strfile
486
487fail=0
488for file in 4*.test; do
489 echo "Performing $file..."
490 echo "" >>$strfile
491
839a51c8 492 ./ipptest ipp://localhost:$port/printers $file | tee -a $strfile
ef416fc2 493 status=$?
494
495 if test $status != 0; then
496 echo Test failed.
497 fail=`expr $fail + 1`
498 fi
499done
500
501echo "</PRE>" >>$strfile
502
503#
504# Run the command tests...
505#
506
a74454a7 507echo ""
ef416fc2 508echo "Running command tests..."
509
bd7854cb 510echo "<H1>2 - Command Tests</H1>" >>$strfile
ef416fc2 511echo "<P>This section provides the results to the command tests" >>$strfile
512echo "outlined in the CUPS Software Test Plan. These tests were run on" >>$strfile
e1d6a774 513echo `date "+%Y-%m-%d"` by $user on `hostname`. >>$strfile
ef416fc2 514echo "<PRE>" >>$strfile
515
516for file in 5*.sh; do
517 echo "Performing $file..."
518 echo "" >>$strfile
519 echo "\"$file\":" >>$strfile
520
839a51c8 521 sh $file $pjobs | tee -a $strfile
ef416fc2 522 status=$?
523
524 if test $status != 0; then
525 echo Test failed.
526 fail=`expr $fail + 1`
527 fi
528done
529
530echo "</PRE>" >>$strfile
531
ef416fc2 532#
533# Stop the server...
534#
535
536kill $cupsd
537
538#
539# Append the log files for post-mortim...
540#
541
bd7854cb 542echo "<H1>3 - Log Files</H1>" >>$strfile
ef416fc2 543
839a51c8
MS
544#
545# Verify counts...
546#
547
548echo "Test Summary"
549echo ""
550echo "<H2>Summary</H2>" >>$strfile
551
552# Pages printed on Test1
553count=`grep '^Test1 ' /tmp/cups-$user/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
554expected=`expr $pjobs \* 2 + 35`
555if test $count != $expected; then
556 echo "FAIL: Printer 'Test1' produced $count page(s), expected $expected."
557 echo "<P>FAIL: Printer 'Test1' produced $count page(s), expected $expected.</P>" >>$strfile
558 fail=`expr $fail + 1`
559else
560 echo "PASS: Printer 'Test1' correctly produced $count page(s)."
561 echo "<P>PASS: Printer 'Test1' correctly produced $count page(s).</P>" >>$strfile
562fi
563
564# Paged printed on Test2
565count=`grep '^Test2 ' /tmp/cups-$user/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'`
566expected=`expr $pjobs \* 2 + 3`
567if test $count != $expected; then
568 echo "FAIL: Printer 'Test2' produced $count page(s), expected $expected."
569 echo "<P>FAIL: Printer 'Test2' produced $count page(s), expected $expected.</P>" >>$strfile
570 fail=`expr $fail + 1`
571else
572 echo "PASS: Printer 'Test2' correctly produced $count page(s)."
573 echo "<P>PASS: Printer 'Test2' correctly produced $count page(s).</P>" >>$strfile
574fi
575
576# Requested processed
577count=`wc -l /tmp/cups-$user/log/access_log | awk '{print $1}'`
578echo "PASS: $count requests processed."
579echo "<P>PASS: $count requests processed.</P>" >>$strfile
580
581# Emergency log messages
582count=`grep '^X ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
583if test $count != 0; then
584 echo "FAIL: $count emergency messages, expected 0."
585 grep '^X ' /tmp/cups-$user/log/error_log
586 echo "<P>FAIL: $count emergency messages, expected 0.</P>" >>$strfile
587 echo "<PRE>" >>$strfile
588 grep '^X ' /tmp/cups-$user/log/error_log | sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' >>$strfile
589 echo "</PRE>" >>$strfile
590 fail=`expr $fail + 1`
591else
592 echo "PASS: $count emergency messages."
593 echo "<P>PASS: $count emergency messages.</P>" >>$strfile
594fi
595
596# Alert log messages
597count=`grep '^A ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
598if test $count != 0; then
599 echo "FAIL: $count alert messages, expected 0."
600 grep '^A ' /tmp/cups-$user/log/error_log
601 echo "<P>FAIL: $count alert messages, expected 0.</P>" >>$strfile
602 echo "<PRE>" >>$strfile
603 grep '^A ' /tmp/cups-$user/log/error_log | sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' >>$strfile
604 echo "</PRE>" >>$strfile
605 fail=`expr $fail + 1`
606else
607 echo "PASS: $count alert messages."
608 echo "<P>PASS: $count alert messages.</P>" >>$strfile
609fi
610
611# Critical log messages
612count=`grep '^C ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
613if test $count != 0; then
614 echo "FAIL: $count critical messages, expected 0."
615 grep '^C ' /tmp/cups-$user/log/error_log
616 echo "<P>FAIL: $count critical messages, expected 0.</P>" >>$strfile
617 echo "<PRE>" >>$strfile
618 grep '^C ' /tmp/cups-$user/log/error_log | sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' >>$strfile
619 echo "</PRE>" >>$strfile
620 fail=`expr $fail + 1`
621else
622 echo "PASS: $count critical messages."
623 echo "<P>PASS: $count critical messages.</P>" >>$strfile
624fi
625
626# Error log messages
627count=`grep '^E ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
628if test $count != 9; then
629 echo "FAIL: $count error messages, expected 9."
630 grep '^E ' /tmp/cups-$user/log/error_log
631 echo "<P>FAIL: $count error messages, expected 9.</P>" >>$strfile
632 echo "<PRE>" >>$strfile
633 grep '^E ' /tmp/cups-$user/log/error_log | sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' >>$strfile
634 echo "</PRE>" >>$strfile
635 fail=`expr $fail + 1`
636else
637 echo "PASS: $count error messages."
638 echo "<P>PASS: $count error messages.</P>" >>$strfile
639fi
640
641# Warning log messages
642count=`grep '^W ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
643if test $count != 0; then
644 echo "FAIL: $count warning messages, expected 0."
645 grep '^W ' /tmp/cups-$user/log/error_log
646 echo "<P>FAIL: $count warning messages, expected 0.</P>" >>$strfile
647 echo "<PRE>" >>$strfile
648 grep '^W ' /tmp/cups-$user/log/error_log | sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' >>$strfile
649 echo "</PRE>" >>$strfile
650 fail=`expr $fail + 1`
651else
652 echo "PASS: $count warning messages."
653 echo "<P>PASS: $count warning messages.</P>" >>$strfile
654fi
655
656# Notice log messages
657count=`grep '^N ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
658if test $count != 0; then
659 echo "FAIL: $count notice messages, expected 0."
660 grep '^N ' /tmp/cups-$user/log/error_log
661 echo "<P>FAIL: $count notice messages, expected 0.</P>" >>$strfile
662 echo "<PRE>" >>$strfile
663 grep '^N ' /tmp/cups-$user/log/error_log | sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' >>$strfile
664 echo "</PRE>" >>$strfile
665 fail=`expr $fail + 1`
666else
667 echo "PASS: $count notice messages."
668 echo "<P>PASS: $count notice messages.</P>" >>$strfile
669fi
670
671# Info log messages
672count=`grep '^I ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
673if test $count = 0; then
674 echo "FAIL: $count info messages, expected more than 0."
675 echo "<P>FAIL: $count info messages, expected more than 0.</P>" >>$strfile
676 fail=`expr $fail + 1`
677else
678 echo "PASS: $count info messages."
679 echo "<P>PASS: $count info messages.</P>" >>$strfile
680fi
681
682# Debug log messages
683count=`grep '^D ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
684if test $count = 0; then
685 echo "FAIL: $count debug messages, expected more than 0."
686 echo "<P>FAIL: $count debug messages, expected more than 0.</P>" >>$strfile
687 fail=`expr $fail + 1`
688else
689 echo "PASS: $count debug messages."
690 echo "<P>PASS: $count debug messages.</P>" >>$strfile
691fi
692
693# Debug2 log messages
694count=`grep '^d ' /tmp/cups-$user/log/error_log | wc -l | awk '{print $1}'`
695if test $count != 0; then
696 echo "FAIL: $count debug2 messages, expected 0."
697 echo "<P>FAIL: $count debug2 messages, expected 0.</P>" >>$strfile
698 fail=`expr $fail + 1`
699else
700 echo "PASS: $count debug2 messages."
701 echo "<P>PASS: $count debug2 messages.</P>" >>$strfile
702fi
703
704# Log files...
ef416fc2 705echo "<H2>access_log</H2>" >>$strfile
706echo "<PRE>" >>$strfile
839a51c8 707sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' /tmp/cups-$user/log/access_log >>$strfile
ef416fc2 708echo "</PRE>" >>$strfile
709
710echo "<H2>error_log</H2>" >>$strfile
711echo "<PRE>" >>$strfile
839a51c8 712sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' /tmp/cups-$user/log/error_log >>$strfile
ef416fc2 713echo "</PRE>" >>$strfile
714
715echo "<H2>page_log</H2>" >>$strfile
716echo "<PRE>" >>$strfile
839a51c8 717sed -e '1,$s/&/&amp;/g' -e '1,$s/</&lt;/g' /tmp/cups-$user/log/page_log >>$strfile
ef416fc2 718echo "</PRE>" >>$strfile
719
ef416fc2 720#
721# Format the reports and tell the user where to find them...
722#
723
ef416fc2 724cat str-trailer.html >>$strfile
725
ef416fc2 726echo ""
727
728if test $fail != 0; then
729 echo "$fail tests failed."
730else
731 echo "All tests were successful."
732fi
733
a74454a7 734echo "Log files can be found in /tmp/cups-$user/log."
839a51c8 735echo "A HTML report was created in $strfile."
ef416fc2 736echo ""
737
db0bd74a
MS
738if test $fail != 0; then
739 exit 1
740fi
741
ef416fc2 742#
bc44d920 743# End of "$Id: run-stp-tests.sh 6649 2007-07-11 21:46:42Z mike $"
ef416fc2 744#