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