Lines Matching +full:protect +full:- +full:exec
1 #!/usr/bin/perl -w
27 # tester - run logadm tests
34 # tester [-f] <bindir>
37 # tester [-f] <bindir> globtest1 luttest1
40 # tester [-f] -s globtest1 <bindir>
48 # -f means "fast" -- without it, watchmalloc(3MALLOC) is setup for
102 $usage_summary = '[-s test-name] [-d dir] bindir [test-name...]';
118 warn " -$_ $usage{$_}\n";
130 usage("$bindir does not exist") unless -d $bindir;
131 usage("cannot list more than one test with -s option") if $opt_s && @ARGV;
142 if (!-d $dir) {
193 print STDERR " or use: $myname -s $testname $bindir\n";
197 eval "runner('checktest', '-x', '> checktest.out 2>&1')";
202 print STDERR " or use: $myname -s $testname $bindir\n";
209 system("/bin/rm -rf $dir/*");
224 # the shell scripts generated by this program always "exec" the binary
250 # set_file(filename [, contents]) -- create a file, optionally with contents
267 # common setup step -- create a testfile.conf
277 # The -w option to logadm(8) is the preferred way to write to this file,
278 # but if you do edit it by hand, use "logadm -V" to check it for errors.
289 /var/adm/messages -C 4 -P 'Thu Nov 1 16:56:42 2001' -a 'kill -HUP `cat /var/run/*syslog*pid`'
290 /var/cron/log -s 512k -t /var/cron/olog
291 /var/lp/logs/lpsched -C 2 -N -t '$file.$N'
295 /var/adm/pacct -C 0 -a '/usr/lib/acct/accton pacct' -g adm -m 664 -o adm -p never
296 apache -C 24 -a '/usr/apache/bin/apachectl graceful' -p 1m -t '/var/apache/old-logs/$basename.%Y-%m…
297 /var/log/syslog -C 8 -P 'Thu Nov 1 09:16:38 2001' -a 'kill -HUP `cat /var/run/*syslog*pid`'
298 /var/apache/logs/access_log -P 'Thu Nov 1 08:27:56 2001'
299 /var/apache/logs/error_log -P 'Thu Nov 1 08:27:56 2001'
300 /var/apache/logs/suexec_log -P 'Thu Nov 1 08:27:56 2001'
301 /var/apache/logs/mod_jserv.log -P 'Thu Nov 1 08:27:56 2001'
302 /var/apache/logs/jserv.log -P 'Thu Nov 1 08:27:56 2001'
309 # conftest1 -- minimal basic test of the conf.c code
316 [ -s std.err ] && { cat std.err; exit 1; }
318 exec /bin/diff testfile.conf sed.out
324 exec $bindir/conftest testfile.conf >std.out 2>std.err
330 # conftest2 -- error path through conf.c
341 exec /bin/diff std.err.expect std.err
354 # globtest1 -- minimal basic test of the glob.c code
486 <dir[13]/[e-z]*>:
508 <dir?/dir[AC]/fileBname[2-9]>:
518 <file[A-Z]n.*e([0-9]+)$0>:
551 [ -s std.err ] && { cat std.err; exit 1; }
552 exec /bin/diff std.out.expect std.out
555 …{A,B,C}name\' \'dir1/dirA/file*\' \'dir[13]/[e-z]*\' \'dir?/dir[AC]/fileBname[2-9]\' -r \'file[A-Z…
560 exec $bindir/globtest $testglobs >std.out 2>std.err
566 # globtest2 -- error path through glob.c
575 exec /bin/diff std.err.expect std.err
588 # kwtest1 -- minimal basic test of the kw.c code
593 $isa = `/bin/uname -p`; chomp $isa;
594 $platform = `/bin/uname -i`; chomp $platform;
595 $nodename = `/bin/uname -n`; chomp $nodename;
596 $machine = `/bin/uname -m`; chomp $machine;
597 $release = `/bin/uname -r`; chomp $release;
599 if (-f "/bin/zonename") {
605 expand<$file.$n> n -1 hasn 1 result </var/log/syslog\.([0-9]+)$0>
608 expand<moose%d.$n> n -1 hasn 1 result <moose[0-9]+\.([0-9]+)$0>
611 expand</var/logs-%Y/moose-$isa$#porklips%d.$n> n -1 hasn 1 result </var/logs-[0-9]+/moose-ISAporkli…
612 expand</var/logs-%Y/moose-$isa$#porklips%d.$n> n 0 hasn 1 result </var/logs-%Y/moose-ISAporklips%d.…
613 expand</var/logs-%Y/moose-$isa$#porklips%d.$n> n 1 hasn 1 result </var/logs-%Y/moose-ISAporklips%d.…
641 [ -s std.err ] && { cat std.err; exit 1; }
642 /bin/sed -e '/^ *secs [0-9][0-9]*$/d'\
643 -e "s/%d/`/bin/env TZ=UTC /bin/date +%d`/g"\
644 -e "s/%Y/`/bin/env TZ=UTC /bin/date +%Y`/g"\
646 exec /bin/diff sed.out.expect sed.out
649 …$kwtest='kwtest /var/log/syslog \'$file.$n\' \'moose%d.$n\' \'/var/logs-%Y/moose-$isa$#porklips%d.…
654 exec $bindir/$kwtest >std.out 2>std.err
660 # kwtest2 -- NULL environment variables test of the kw.c code
665 $isa = `/bin/uname -p`; chomp $isa;
666 $platform = `/bin/uname -i`; chomp $platform;
667 $nodename = `/bin/uname -n`; chomp $nodename;
668 $machine = `/bin/uname -m`; chomp $machine;
669 $release = `/bin/uname -r`; chomp $release;
671 if (-f "/bin/zonename") {
677 expand<$file.$n> n -1 hasn 1 result </var/log/syslog\.([0-9]+)$0>
680 expand<moose%d.$n> n -1 hasn 1 result <moose[0-9]+\.([0-9]+)$0>
683 expand</var/logs-%Y/moose-$isa$#porklips%d.$n> n -1 hasn 1 result </var/logs-[0-9]+/moose-ISAporkli…
684 expand</var/logs-%Y/moose-$isa$#porklips%d.$n> n 0 hasn 1 result </var/logs-%Y/moose-ISAporklips%d.…
685 expand</var/logs-%Y/moose-$isa$#porklips%d.$n> n 1 hasn 1 result </var/logs-%Y/moose-ISAporklips%d.…
712 [ -s std.err ] && { cat std.err; exit 1; }
713 /bin/sed -e '/^ *secs [0-9][0-9]*$/d'\
714 -e "s/%d/`/bin/env TZ=UTC /bin/date +%d`/g"\
715 -e "s/%Y/`/bin/env TZ=UTC /bin/date +%Y`/g"\
717 exec /bin/diff sed.out.expect sed.out
720 …$kwtest='kwtest /var/log/syslog \'$file.$n\' \'moose%d.$n\' \'/var/logs-%Y/moose-$isa$#porklips%d.…
732 exec $bindir/$kwtest >std.out 2>std.err
738 # luttest1 -- minimal basic test of the lut.c code
758 [ -s std.err ] && { cat std.err; exit 1; }
759 exec /bin/diff std.out.expect std.out
765 exec $bindir/luttest one=two three=four fix six seven=eight >std.out 2>std.err
771 # optstest1 -- minimal basic test of the opts.c code
775 $options="-a -b moose -c 1h -d 'Fri Nov 2 13:19:55 2001' -e 1k -f 2 one two three";
781 [ -s std.err ] && { cat std.err; exit 1; }
782 exec /bin/diff std.out.expect std.out
788 exec $bindir/optstest $options >std.out 2>std.err
794 # optstest2 -- error path through opts.c code
798 $options="-a -b -c 1h -d 'Fri Nov 2 13:19:55 2001' -e 1k -f 2 one two three";
805 [ -s std.out ] && exit 1
806 exec /bin/diff std.err.expect std.err
819 # logadmV1 -- test of "logadm -V"
826 /var/adm/messages -C 4 -P 'Thu Nov 1 16:56:42 2001' -a 'kill -HUP `cat /var/run/*syslog*pid`'
827 /var/cron/log -s 512k -t /var/cron/olog
828 /var/lp/logs/lpsched -C 2 -N -t '$file.$N'
829 /var/adm/pacct -C 0 -a '/usr/lib/acct/accton pacct' -g adm -m 664 -o adm -p never
830 apache -C 24 -a '/usr/apache/bin/apachectl graceful' -p 1m -t '/var/apache/old-logs/$basename.%Y-%m…
831 /var/log/syslog -C 8 -P 'Thu Nov 1 09:16:38 2001' -a 'kill -HUP `cat /var/run/*syslog*pid`'
832 /var/apache/logs/access_log -P 'Thu Nov 1 08:27:56 2001'
833 /var/apache/logs/error_log -P 'Thu Nov 1 08:27:56 2001'
834 /var/apache/logs/suexec_log -P 'Thu Nov 1 08:27:56 2001'
835 /var/apache/logs/mod_jserv.log -P 'Thu Nov 1 08:27:56 2001'
836 /var/apache/logs/jserv.log -P 'Thu Nov 1 08:27:56 2001'
840 [ -s std.err ] && { cat std.err; exit 1; }
841 exec /bin/diff std.out.expect std.out
847 exec $bindir/logadm -f testfile.conf -F testfile.conf -V >std.out 2>std.err
853 # logadmV2 -- test of "logadm -V <entry>"
860 /var/cron/log -s 512k -t /var/cron/olog
861 /var/adm/pacct -C 0 -a '/usr/lib/acct/accton pacct' -g adm -m 664 -o adm -p never
865 [ -s std.err ] && { cat std.err; exit 1; }
866 exec /bin/diff std.out.expect std.out
872 exec $bindir/logadm -f testfile.conf -F testfile.conf -V /var/cron/log /var/adm/pacct >std.out 2>st…
878 # logadmr -- test of "logadm -r <entry>"
887 < /var/cron/log -s 512k -t /var/cron/olog
889 < /var/adm/pacct -C 0 -a '/usr/lib/acct/accton pacct' -g adm -m 664 -o adm -p never
893 [ -s std.err ] && { cat std.err; exit 1; }
895 exec /bin/diff diff.out.expect diff.out
901 exec $bindir/logadm -f testfile.conf -F testfile.conf -r /var/cron/log /var/adm/pacct >std.out 2>st…
907 # logadmw -- test of "logadm -w <entry>"
916 > moose -C 20 -a moose_after_cmd -g pig -m 664 -o cow -p never /moose/file
920 [ -s std.err ] && { cat std.err; exit 1; }
922 exec /bin/diff diff.out.expect diff.out
928 exec $bindir/logadm -f testfile.conf -F testfile.conf -w moose -C 20 -a moose_after_cmd -g pig -m 6…
934 # logadm1 -- minimal basic test of logadm rotation
945 [ -s std.err ] && { cat std.err; exit 1; }
946 [ -s std.out ] && exit 1
947 [ -s logfile ] && exit 1
948 [ -f logfile.0 ] || exit 1
950 [ "`/bin/ls -i logfile.0 | /bin/awk '{ print \$1; }'`" = "$stino" ] || exit 1
951 [ -f logfile.1 ] || exit 1
959 exec $bindir/logadm -f /dev/null -p now logfile >std.out 2>std.err
965 # logadm1c -- same as logadm1 but with -c option
976 [ -s std.err ] && { cat std.err; exit 1; }
977 [ -s std.out ] && exit 1
978 [ -s logfile ] && exit 1
979 [ -f logfile.0 ] || exit 1
981 [ "`/bin/ls -i logfile.0 | /bin/awk '{ print \$1; }'`" = "$stino" ] && exit 1
982 [ -f logfile.1 ] || exit 1
990 exec $bindir/logadm -f /dev/null -p now -c logfile >std.out 2>std.err
996 # logadm2 -- minimal basic test of logadm expiration
1005 [ -s std.err ] && { cat std.err; exit 1; }
1006 [ -s std.out ] && exit 1
1007 [ -s logfile ] && exit 1
1008 [ -f logfile.0 ] || exit 1
1010 [ -f logfile.1 ] || exit 1
1012 [ -f logfile.2 ] && exit 1
1019 exec $bindir/logadm -f /dev/null -p now logfile -C2 >std.out 2>std.err
1025 # logadm3 -- minimal basic test of logadm pre/post-commands
1034 [ -s std.err ] && { cat std.err; exit 1; }
1035 [ -s std.out ] && exit 1
1036 [ -s logfile ] && exit 1
1037 [ -f logfile.0 ] || exit 1
1039 [ -f logfile.1 ] || exit 1
1041 [ -f logfile.2 ] && exit 1
1042 [ -f pre.out ] || exit 1
1043 [ "xpre-command-stuff" = "x`/bin/cat pre.out`" ] || exit 1
1044 [ -f post.out ] || exit 1
1045 [ "xpost-command-stuff" = "x`/bin/cat post.out`" ] || exit 1
1052 exec $bindir/logadm -f /dev/null -p now logfile -C2 -b 'echo pre-command-stuff > pre.out' -a 'echo …
1058 # logadm4 -- test of -t template
1065 [ -s std.err ] && { cat std.err; exit 1; }
1066 [ -s std.out ] && exit 1
1067 [ -s logfile ] && exit 1
1070 [ -f logfile.$d ] || exit 1
1078 exec $bindir/logadm -f /dev/null -p now logfile -t '\$file.\%d' >std.out 2>std.err
1084 # logadm5 -- test of -R cmd and -E cmd
1097 [ -s std.err ] && { cat std.err; exit 1; }
1098 [ -s std.out ] && exit 1
1099 [ -s logfile ] && exit 1
1100 [ -f logfile.0 ] || exit 1
1102 [ -f logfile.1 ] || exit 1
1104 exec /bin/diff cmd.out.expect cmd.out
1110 exec $bindir/logadm -f /dev/null -p now logfile -C1 -R 'echo just rotated: `/bin/cat \$file` >>cmd.…
1116 # logadm6 -- test of -m, -o, -g
1128 [ -s std.err ] || exit 1;
1129 [ -s std.out ] && exit 1
1130 [ -s logfile ] && exit 1
1131 [ -f logfile.0 ] || exit 1
1133 [ "`/bin/ls -l logfile | /bin/awk '{ print $1; }'`" = "-r----x--x" ] || exit 1
1134 exec /bin/diff std.err.expect std.err
1140 exec $bindir/logadm -f /dev/null -p now logfile -m 411 -o _nonexistentuser_ -g _nonexistentgroup_ >…
1146 # logadm7 -- test running through a conffile
1171 # this comment # has at least another #-sign in it #...
1174 # The -w option to logadm(8) is the preferred way to write to this file,
1175 # but if you do edit it by hand, use "logadm -V" to check it for errors.
1176 # but if you do edit it by hand, use "logadm -V" to check it for errors.
1187 dir1/syslog -C 8 -a 'echo kill -HUP `cat /var/run/*syslog*pid` >> cmd.out'
1188 dir2/messages -C 4 -a 'echo kill -HUP `cat /var/run/*syslog*pid` >> cmd.out'
1192 /var/adm/pacct -C 0 -a '/usr/lib/acct/accton pacct' -g adm -m 664 -o adm -p never
1200 kill -HUP $pid
1201 second kill -HUP $pid
1212 [ -s std.err ] && { cat std.err; exit 1; }
1213 [ -s std.out ] && exit 1
1214 [ -s logadm.timestamps ] || exit 1
1215 [ -s std.err2 ] && exit 1
1216 [ -s std.out2 ] && exit 1
1217 [ -s std.err3 ] && exit 1
1218 [ -s std.out3 ] && exit 1
1219 [ -s std.err4 ] && exit 1
1220 [ -s std.out4 ] && exit 1
1221 [ -f dir1/syslog ] || exit 1
1223 [ -f dir1/syslog.0 ] || exit 1
1225 [ -f dir1/syslog.1 ] || exit 1
1227 [ -f dir1/syslog.2 ] || exit 1
1229 [ -f dir1/syslog.3 ] || exit 1
1231 [ -f dir1/syslog.4 ] || exit 1
1233 [ -f dir1/syslog.5 ] || exit 1
1235 [ -f dir1/syslog.6 ] || exit 1
1237 [ -f dir1/syslog.7 ] || exit 1
1239 [ -f dir1/syslog.8 ] && exit 1
1241 [ -s dir2/messages ] && exit 1
1242 [ -f dir2/messages.0 ] || exit 1
1244 [ -f dir2/messages.1 ] || exit 1
1246 [ -f dir2/messages.2 ] || exit 1
1248 [ -f dir2/messages.3 ] || exit 1
1250 [ -f dir2/messages.4 ] && exit 1
1251 /bin/sed "s/ -P '[^']*' *//" < logadm.timestamps > sed.out
1253 exec /bin/diff logadm.conf.orig logadm.conf
1258 # third one won't because of -P timestamps stored in conffile
1259 # fourth one will do messages because of -p now on command line
1263 $bindir/logadm -f logadm.conf -F logadm.timestamps >std.out 2>std.err || exit 1
1264 $bindir/logadm -f logadm.conf -F logadm.timestamps dir1/syslog dir2/messages >std.out2 2>std.err2 |…
1267 $bindir/logadm -f logadm.conf -F logadm.timestamps >std.out3 2>std.err3 || exit 1
1268 exec $bindir/logadm -f logadm.conf -F logadm.timestamps dir2/messages -p now -a 'echo second kill -…
1274 # logadm8 -- test of -z
1284 die "gzip dir1/syslog.2 didn't work\n" unless -f 'dir1/syslog.2.gz';
1287 die "gzip dir1/syslog.3 didn't work\n" unless -f 'dir1/syslog.3.gz';
1290 die "gzip dir1/syslog.4 didn't work\n" unless -f 'dir1/syslog.4.gz';
1293 die "gzip dir1/syslog.5 didn't work\n" unless -f 'dir1/syslog.5.gz';
1296 die "gzip dir1/syslog.6 didn't work\n" unless -f 'dir1/syslog.6.gz';
1299 die "gzip dir1/syslog.7 didn't work\n" unless -f 'dir1/syslog.7.gz';
1302 [ -s std.err ] && { cat std.err; exit 1; }
1303 [ -s std.out ] && exit 1
1304 [ -f dir1/syslog ] || exit 1
1305 [ -s dir1/syslog ] && exit 1
1306 [ -f dir1/syslog.0 ] || exit 1
1308 [ -f dir1/syslog.1 ] || exit 1
1310 [ -f dir1/syslog.2.gz ] || exit 1
1312 [ -f dir1/syslog.3.gz ] || exit 1
1314 [ -f dir1/syslog.4.gz ] || exit 1
1316 [ -f dir1/syslog.5.gz ] || exit 1
1318 [ -f dir1/syslog.6.gz ] || exit 1
1320 [ -f dir1/syslog.7.gz ] || exit 1
1322 [ -f dir1/syslog.8 ] && exit 1
1323 [ -f dir1/syslog.8.gz ] && exit 1
1330 exec $bindir/logadm -f /dev/null dir1/syslog -z 2 -C 8 >std.out 2>std.err
1336 # logadm9 -- test of age check
1364 $closetoweeksecs = $now - (60 * 60 * 24 * 7 - 30);
1367 $lessthanweeksecs = $now - (60 * 60 * 24 * 7 - 60 * 60 * 6);
1373 dir1/syslog -C 8 -P '$closetoweek'
1374 dir2/log -C 4
1376 dir1/notes -C 2 -P '$lessthanweek'
1377 dir2/messages -C 4
1380 dir2/log -P '$closetoweek'
1381 dir2/messages -P '$lessthanweek'
1394 [ -s std.err ] && { cat std.err; exit 1; }
1395 [ -s std.out ] && exit 1
1396 [ -f dir1/syslog ] || exit 1
1397 [ -s dir1/syslog ] && exit 1
1398 [ -f dir1/syslog.0 ] || exit 1
1400 [ -f dir1/syslog.1 ] || exit 1
1402 [ -f dir1/syslog.2 ] || exit 1
1404 [ -f dir1/syslog.3 ] || exit 1
1406 [ -f dir1/syslog.4 ] || exit 1
1408 [ -f dir1/syslog.5 ] || exit 1
1410 [ -f dir1/syslog.6 ] || exit 1
1412 [ -f dir1/syslog.7 ] || exit 1
1414 [ -f dir1/syslog.8 ] && exit 1
1416 [ -s dir1/notes ] || exit 1
1418 [ -f dir1/notes.0 ] && exit 1
1420 [ -f dir2/messages ] || exit 1
1422 [ -f dir2/messages.0 ] || exit 1
1424 [ -f dir2/messages.1 ] || exit 1
1426 [ -f dir2/messages.2 ] || exit 1
1428 [ -f dir2/messages.3 ] || exit 1
1430 [ -f dir2/messages.4 ] && exit 1
1432 [ -f dir2/log ] || exit 1
1433 [ -s dir2/log ] && exit 1
1434 [ -f dir2/log.0 ] || exit 1
1436 [ -f dir2/log.1 ] && exit 1
1438 /bin/sed "s/ -P '[^']*' *//" < logadm.timestamps > sed.out
1440 /bin/sed -n "s/ -P '[^']*' */<&>/p" < logadm.conf > sed.out
1441 [ -s sed.out ] && exit 1
1448 exec $bindir/logadm -f logadm.conf -F logadm.timestamps >std.out 2>std.err
1454 # logadm9d -- test of age check like logadm9, but age is a couple days
1478 $closetodaysecs = $now - (60 * 60 * 24 - 30);
1481 $lessthandaysecs = $now - (60 * 60 * 24 - 60 * 60 * 6);
1487 dir1/syslog -p 1d -C 8 -P '$closetoday'
1489 dir2/messages -p 1d -C 4 -P '$lessthanday'
1493 [ -s std.err ] && { cat std.err; exit 1; }
1494 [ -s std.out ] && exit 1
1495 [ -f dir1/syslog ] || exit 1
1496 [ -s dir1/syslog ] && exit 1
1497 [ -f dir1/syslog.0 ] || exit 1
1499 [ -f dir1/syslog.1 ] || exit 1
1501 [ -f dir1/syslog.2 ] || exit 1
1503 [ -f dir1/syslog.3 ] || exit 1
1505 [ -f dir1/syslog.4 ] || exit 1
1507 [ -f dir1/syslog.5 ] || exit 1
1509 [ -f dir1/syslog.6 ] || exit 1
1511 [ -f dir1/syslog.7 ] || exit 1
1513 [ -f dir1/syslog.8 ] && exit 1
1515 [ -f dir2/messages ] || exit 1
1517 [ -f dir2/messages.0 ] || exit 1
1519 [ -f dir2/messages.1 ] || exit 1
1521 [ -f dir2/messages.2 ] || exit 1
1523 [ -f dir2/messages.3 ] || exit 1
1525 [ -f dir2/messages.4 ] && exit 1
1532 exec $bindir/logadm -f logadm.conf -F logadm.timestamps >std.out 2>std.err
1538 # logadm10 -- test of size-based rotation check
1560 dir1/syslog -C 8 -s 30b
1561 dir2/messages -C 4 -s 30b
1565 [ -s std.err ] && { cat std.err; exit 1; }
1566 [ -s std.out ] && exit 1
1567 [ -f dir1/syslog ] || exit 1
1568 [ -s dir1/syslog ] && exit 1
1569 [ -f dir1/syslog.0 ] || exit 1
1571 [ -f dir1/syslog.1 ] || exit 1
1573 [ -f dir1/syslog.2 ] || exit 1
1575 [ -f dir1/syslog.3 ] || exit 1
1577 [ -f dir1/syslog.4 ] || exit 1
1579 [ -f dir1/syslog.5 ] || exit 1
1581 [ -f dir1/syslog.6 ] || exit 1
1583 [ -f dir1/syslog.7 ] || exit 1
1585 [ -f dir1/syslog.8 ] && exit 1
1587 [ -f dir2/messages ] || exit 1
1589 [ -f dir2/messages.0 ] || exit 1
1591 [ -f dir2/messages.1 ] || exit 1
1593 [ -f dir2/messages.2 ] || exit 1
1595 [ -f dir2/messages.3 ] || exit 1
1597 [ -f dir2/messages.4 ] && exit 1
1604 exec $bindir/logadm -f logadm.conf -F logadm.timestamps >std.out 2>std.err
1610 # logadm11 -- test of size-based expiration check
1632 dir1/syslog -C 8 -s 30b -S 75b
1633 dir2/messages -C 4 -s 30b -S 75b
1637 [ -s std.err ] && { cat std.err; exit 1; }
1638 [ -s std.out ] && exit 1
1639 [ -f dir1/syslog ] || exit 1
1641 [ -f dir1/syslog.0 ] || exit 1
1643 [ -f dir1/syslog.1 ] || exit 1
1645 [ -f dir1/syslog.2 ] || exit 1
1647 [ -f dir1/syslog.3 ] && exit 1
1648 [ -f dir1/syslog.4 ] && exit 1
1649 [ -f dir1/syslog.5 ] && exit 1
1650 [ -f dir1/syslog.6 ] && exit 1
1651 [ -f dir1/syslog.7 ] && exit 1
1652 [ -f dir1/syslog.8 ] && exit 1
1654 [ -f dir2/messages ] || exit 1
1656 [ -f dir2/messages.0 ] || exit 1
1658 [ -f dir2/messages.1 ] || exit 1
1660 [ -f dir2/messages.2 ] || exit 1
1662 [ -f dir2/messages.3 ] && exit 1
1663 [ -f dir2/messages.4 ] && exit 1
1670 exec $bindir/logadm -f logadm.conf -F logadm.timestamps >std.out 2>std.err
1676 # logadm12 -- ENOENT error path
1685 [ -s std.out ] && exit 1
1686 exec /bin/diff std.err.expect std.err
1692 exec $bindir/logadm -f /dev/null logfile >std.out 2>std.err
1698 # logadm13 -- ENOENT error path with -N flag
1703 [ -s std.err ] && { cat std.err; exit 1; }
1704 [ -s std.out ] && exit 1
1711 exec $bindir/logadm -N -f /dev/null logfile >std.out 2>std.err
1717 # logadm14 -- test of -n and -v flags
1743 # The -w option to logadm(8) is the preferred way to write to this file,
1744 # but if you do edit it by hand, use "logadm -V" to check it for errors.
1745 # but if you do edit it by hand, use "logadm -V" to check it for errors.
1756 dir1/syslog -C 8 -a 'echo kill -HUP `cat /var/run/*syslog*pid` >> cmd.out'
1757 dir2/messages -C 4 -a 'echo kill -HUP `cat /var/run/*syslog*pid` >> cmd.out'
1761 /var/adm/pacct -C 0 -a '/usr/lib/acct/accton pacct' -g adm -m 664 -o adm -p never
1769 # using default rotate rules: -s1b -p1w
1771 mkdir -p dir1 # verify directory exists
1772 mv -f dir1/syslog.7 dir1/syslog.8 # rotate log file
1773 mkdir -p dir1 # verify directory exists
1774 mv -f dir1/syslog.6 dir1/syslog.7 # rotate log file
1775 mkdir -p dir1 # verify directory exists
1776 mv -f dir1/syslog.5 dir1/syslog.6 # rotate log file
1777 mkdir -p dir1 # verify directory exists
1778 mv -f dir1/syslog.4 dir1/syslog.5 # rotate log file
1779 mkdir -p dir1 # verify directory exists
1780 mv -f dir1/syslog.3 dir1/syslog.4 # rotate log file
1781 mkdir -p dir1 # verify directory exists
1782 mv -f dir1/syslog.2 dir1/syslog.3 # rotate log file
1783 mkdir -p dir1 # verify directory exists
1784 mv -f dir1/syslog.1 dir1/syslog.2 # rotate log file
1785 mkdir -p dir1 # verify directory exists
1786 mv -f dir1/syslog.0 dir1/syslog.1 # rotate log file
1787 mkdir -p dir1 # verify directory exists
1788 mv -f dir1/syslog dir1/syslog.0 # rotate log file
1795 # using default rotate rules: -s1b -p1w
1797 mkdir -p dir2 # verify directory exists
1798 mv -f dir2/messages.3 dir2/messages.4 # rotate log file
1799 mkdir -p dir2 # verify directory exists
1800 mv -f dir2/messages.2 dir2/messages.3 # rotate log file
1801 mkdir -p dir2 # verify directory exists
1802 mv -f dir2/messages.1 dir2/messages.2 # rotate log file
1803 mkdir -p dir2 # verify directory exists
1804 mv -f dir2/messages.0 dir2/messages.1 # rotate log file
1805 mkdir -p dir2 # verify directory exists
1806 mv -f dir2/messages dir2/messages.0 # rotate log file
1814 sh -c echo kill -HUP `cat /var/run/*syslog*pid` >> cmd.out # -a cmd
1819 [ -s std.err ] && { cat std.err; exit 1; }
1820 [ -f std.out ] || exit 1
1821 [ -f dir1/syslog ] || exit 1
1823 [ -f dir1/syslog.0 ] || exit 1
1825 [ -f dir1/syslog.1 ] || exit 1
1827 [ -f dir1/syslog.2 ] || exit 1
1829 [ -f dir1/syslog.3 ] || exit 1
1831 [ -f dir1/syslog.4 ] || exit 1
1833 [ -f dir1/syslog.5 ] || exit 1
1835 [ -f dir1/syslog.6 ] || exit 1
1837 [ -f dir1/syslog.7 ] || exit 1
1839 [ -f dir1/syslog.8 ] && exit 1
1841 [ -f dir2/messages ] || exit 1
1843 [ -f dir2/messages.0 ] || exit 1
1845 [ -f dir2/messages.1 ] || exit 1
1847 [ -f dir2/messages.2 ] || exit 1
1849 [ -f dir2/messages.3 ] || exit 1
1851 [ -f dir2/messages.4 ] && exit 1
1852 /bin/grep -v 'recording rotation date' std.out > grep.out
1853 exec /bin/diff grep.out.expect grep.out
1859 exec $bindir/logadm -nv -f logadm.conf -F logadm.timestamps >std.out 2>std.err
1865 # logadm15 -- test of -T
1882 [ -s std.err ] && { cat std.err; exit 1; }
1883 [ -s std.out ] && exit 1
1884 [ -f logfile ] || exit 1
1886 [ -f logfile.0 ] || exit 1
1888 [ -f logfile.1 ] || exit 1
1890 [ -f logfile.2 ] || exit 1
1892 [ -f logfile.3 ] && exit 1
1893 [ -f logfile.4 ] || exit 1
1895 [ -f logfile.5 ] && exit 1
1896 [ -f logfile.6 ] || exit 1
1898 [ -f logfile.7 ] && exit 1
1899 [ -f logfile.8 ] || exit 1
1901 [ -f logfile.9 ] && exit 1
1902 [ -f logfile.10 ] && exit 1
1909 exec $bindir/logadm -f /dev/null logfile -C1 -T '*.[13579]'>std.out 2>std.err
1915 # logadm16 -- test of -h
1921 (processes all entries in /etc/logadm.conf or conffile given by -f)
1926 -e mailaddr mail errors to given address
1927 -F timestamps use timestamps instead of /var/logadm/timestamps
1928 -f conffile use conffile instead of /etc/logadm.conf
1929 -h display help
1930 -N not an error if log file nonexistent
1931 -n show actions, don't perform them
1932 -r remove logname entry from conffile
1933 -V ensure conffile entries exist, correct
1934 -v print info about actions happening
1935 -w entryname write entry to config file
1938 (default is: -s1b -p1w if no -s or -p)
1939 -p period only rotate if period passed since last rotate
1940 -P timestamp used to store rotation date in conffile
1941 -s size only rotate if given size or greater
1944 (default is: -t '$file.$n', owner/group/mode taken from log file)
1945 -a cmd execute cmd after taking actions
1946 -b cmd execute cmd before taking actions
1947 -c copy & truncate logfile, don't rename
1948 -g group new empty log file group
1949 -l rotate log file with local time rather than UTC
1950 -m mode new empty log file mode
1951 -M cmd execute cmd to rotate the log file
1952 -o owner new empty log file owner
1953 -R cmd run cmd on file after rotate
1954 -t template template for naming old logs
1955 -z count gzip old logs except most recent count
1958 (default is: -C10 if no -A, -C, or -S)
1959 -A age expire logs older than age
1960 -C count expire old logs until count remain
1961 -E cmd run cmd on file to expire
1962 -S size expire until space used is below size
1963 -T pattern pattern for finding old logs
1967 [ -s std.out ] && exit 1
1968 exec /bin/diff std.err.expect std.err
1974 exec $bindir/logadm -h >std.out 2>std.err
1980 # logadm17 -- test that mkdir -p happens as necessary
1987 [ -s std.err ] && { cat std.err; exit 1; }
1988 [ -s std.out ] && exit 1
1989 [ -f dir1/dir2/logfile ] || exit 1
1990 [ -f logfile ] || exit 1
1998 exec $bindir/logadm -f /dev/null -t 'dir1/dir2/\$basename' logfile -p now >std.out 2>std.err
2004 # logadm18 -- test of -M option
2020 dir1/syslog -C 8 -s 1b -M '/bin/tr [a-z] [A-Z] < \$file > \$nfile; /bin/rm -f \$file'
2024 [ -s std.err ] && { cat std.err; exit 1; }
2025 [ -s std.out ] && exit 1
2026 [ -f dir1/syslog ] || exit 1
2027 [ -s dir1/syslog ] && exit 1
2028 [ -f dir1/syslog.0 ] || exit 1
2030 [ -f dir1/syslog.1 ] || exit 1
2032 [ -f dir1/syslog.2 ] || exit 1
2034 [ -f dir1/syslog.3 ] || exit 1
2036 [ -f dir1/syslog.4 ] || exit 1
2038 [ -f dir1/syslog.5 ] || exit 1
2040 [ -f dir1/syslog.6 ] || exit 1
2042 [ -f dir1/syslog.7 ] || exit 1
2044 [ -f dir1/syslog.8 ] && exit 1
2052 exec $bindir/logadm -f logadm.conf -F logadm.timestamps >std.out 2>std.err
2058 # logadm19 -- test of -l
2065 [ -s std.err ] && { cat std.err; exit 1; }
2066 [ -s std.out ] && exit 1
2067 [ -s logfile ] && exit 1
2070 [ -f logfile.$d ] || exit 1
2078 exec $bindir/logadm -f /dev/null -l -p now logfile -t '\$file.\%d\%H\%M' >std.out 2>std.err
2084 # logadm20 -- test of unquotables/error handling
2089 # non-trivial entry
2090 /var/log/syslog -C 8 -a 'kill -HUP `cat /var/run/*syslog*pid`'
2094 logadm: Error: Can't protect quotes in </bin/echo "She can't take anymore, Cap'n!">
2097 Use "logadm -h" for help.
2102 [ -s std.err ] || exit 1
2103 [ -s std.out ] && exit 1
2104 [ -f logadm.conf????? ] && exit 1
2105 [ -f logadm.timestamps????? ] && exit 1
2106 exec /bin/diff std.err.expect std.err
2112 $bindir/logadm -f logadm.conf -F logadm.timestamps -w /a/b/c -p 1w -l -b "/bin/echo \\"She can't ta…
2119 # logadm21 -- test of busted configuration file
2127 [ -s std.err ] || exit 1
2134 $bindir/logadm -f logadm.conf -F /dev/null 2>std.err
2141 # logadm22 - test for keeping timestamps in timestamps file on -w
2147 wildcard_test -A 3d dir1/*.log
2148 regular_test -A 3d dir2/test.log
2152 wildcard_test -A 3d dir1/*.log
2153 regular_test -A 3d dir2/test.log
2154 dir3/test.log -A 3d
2160 dir1/foo.log -P 'Thu Nov 1 16:56:42 2001'
2161 dir2/test.log -P 'Thu Nov 1 16:56:42 2001'
2166 [ -s std.err ] && { cat std.err; exit 1; }
2174 $bindir/logadm -f logadm.conf -F logadm.timestamps -w dir3/test.log -A 3d 2>std.err
2182 # logadm23 - test for keeping timestamps in timestamps file on -r
2188 wildcard_test -A 3d dir1/*.log
2189 regular_test -A 3d dir2/test.log
2193 wildcard_test -A 3d dir1/*.log
2199 dir1/foo.log -P 'Thu Nov 1 16:56:42 2001'
2200 dir2/test.log -P 'Thu Nov 1 16:56:42 2001'
2205 [ -s std.err ] && { cat std.err; exit 1; }
2213 $bindir/logadm -f logadm.conf -F logadm.timestamps -r regular_test 2>std.err
2221 # stderr1 -- ensure verbose stderr does not deadlock
2228 …1 logadm: Warning: command failed: /bin/sh -c exec 1>&2; for i in {1..250000}; do echo pre-command…
2229 250000 pre-command-stuff
2230 …1 logadm: Warning: command failed: /bin/sh -c exec 1>&2; for i in {1..250000}; do echo post-comman…
2231 250000 post-command-stuff
2235 [ -s std.out ] && exit 1
2236 /bin/diff -u std.err.uniq.expect std.err.uniq || exit 1
2246 exec $bindir/logadm -f /dev/null -p now logfile \\
2247 -b 'exec 1>&2; for i in {1..250000}; do echo pre-command-stuff; done' \\
2248 -a 'exec 1>&2; for i in {1..250000}; do echo post-command-stuff; done' \\
2249 2>&1 >std.out | uniq -c >std.err.uniq