1#!/bin/sh 2# 3# 4 5ACCT=acct 6RESULTS=acct.`uname -m`.tar.gz 7TMPDIR=$$.tmp 8TZ=UTC; export TZ 9 10run() 11{ 12 /usr/bin/time -l -o $1.time "$@" 13} 14 15if [ `whoami` != "root" ]; then 16 echo "You need to be root to run this test." 17 exit 1 18fi 19 20echo Redirecting accounting. 21 22mkdir $TMPDIR 23cd $TMPDIR 24 25:>$ACCT 26accton $ACCT 27 28echo Running commands. This should not take more than 30s. 29 30# User time 31run awk 'BEGIN {for (i = 0; i < 1000000; i++) cos(.3)}' /dev/null 32run egrep '(.)(.)(.)(.)(.)(.)(.)(.)(.)\9\8\7\6\5\4\3\2\1' /usr/share/dict/words 33 34# System time 35run find /usr/src -name xyzzy 36 37# Elapsed time 38run sleep 3 39 40# IO 41run dd if=/dev/zero bs=512 count=4096 of=zero 2>/dev/null 42 43# Memory 44run diff /usr/share/dict/words /dev/null >/dev/null 45 46# AC_COMM_LEN - 1 47ln /usr/bin/true 123456789012345 48run ./123456789012345 49 50# AC_COMM_LEN 51ln /usr/bin/true 1234567890123456 52run ./1234567890123456 53 54# AC_COMM_LEN + 1 55ln /usr/bin/true 12345678901234567 56run ./12345678901234567 57 58# Flags: core, fork, signal 59echo 'main(){volatile int s; fork(); s = *(int *)0;}' >core.c 60cc -o core core.c 61echo Generating segmentation fault. 62./core 63 64echo Turning off redirected accounting. 65 66accton 67 68echo Packing the results. 69 70sa -u $ACCT >sa.u 71lastcomm -cesuS -f $ACCT >lastcomm.cesuS 72tar -cf - acct sa.u lastcomm.cesuS *.time | 73gzip -c | 74uuencode $RESULTS >../$RESULTS.uue 75 76echo Cleaning up. 77cd .. 78rm -rf $TMPDIR 79 80echo "Done! Please send your reply, enclosing the file $RESULTS.uue" 81echo If your system runs with accounting enabled you probably need to run: 82echo accton /var/account/acct 83