1169854Sdds#!/bin/sh
2169854Sdds#
3169854Sdds# $FreeBSD$
4169854Sdds#
5169854Sdds
6169854SddsACCT=acct
7169854SddsRESULTS=acct.`uname -m`.tar.gz
8169854SddsTMPDIR=$$.tmp
9263226SjmmvTZ=UTC; export TZ
10169854Sdds
11169854Sddsrun()
12169854Sdds{
13169854Sdds	/usr/bin/time -l -o $1.time "$@"
14169854Sdds}
15169854Sdds
16201482Sobrienif [ `whoami` != "root" ]; then
17201482Sobrien	echo "You need to be root to run this test."
18201482Sobrien	exit 1
19201482Sobrienfi
20201482Sobrien
21169854Sddsecho Redirecting accounting.
22169854Sdds
23169854Sddsmkdir $TMPDIR
24169854Sddscd $TMPDIR
25169854Sdds
26169854Sdds:>$ACCT
27169854Sddsaccton $ACCT
28169854Sdds
29169854Sddsecho Running commands. This should not take more than 30s.
30169854Sdds
31169854Sdds# User time
32169854Sddsrun awk 'BEGIN {for (i = 0; i < 1000000; i++) cos(.3)}' /dev/null
33169854Sddsrun egrep '(.)(.)(.)(.)(.)(.)(.)(.)(.)\9\8\7\6\5\4\3\2\1' /usr/share/dict/words
34169854Sdds
35169854Sdds# System time
36169854Sddsrun find /usr/src -name xyzzy
37169854Sdds
38169854Sdds# Elapsed time
39169854Sddsrun sleep 3
40169854Sdds
41169854Sdds# IO
42169854Sddsrun dd if=/dev/zero bs=512 count=4096 of=zero 2>/dev/null
43169854Sdds
44169854Sdds# Memory
45169854Sddsrun diff /usr/share/dict/words /dev/null >/dev/null
46169854Sdds
47169854Sdds# AC_COMM_LEN - 1
48169854Sddsln /usr/bin/true 123456789012345
49169854Sddsrun ./123456789012345
50169854Sdds
51169854Sdds# AC_COMM_LEN
52169854Sddsln /usr/bin/true 1234567890123456
53169854Sddsrun ./1234567890123456
54169854Sdds
55169854Sdds# AC_COMM_LEN + 1
56169854Sddsln /usr/bin/true 12345678901234567
57169854Sddsrun ./12345678901234567
58169854Sdds
59169854Sdds# Flags: core, fork, signal
60169854Sddsecho 'main(){volatile int s; fork(); s = *(int *)0;}' >core.c
61169854Sddscc -o core core.c
62169854Sddsecho Generating segmentation fault.
63169854Sdds./core
64169854Sdds
65169854Sddsecho Turning off redirected accounting.
66169854Sdds
67169854Sddsaccton
68169854Sdds
69169854Sddsecho Packing the results.
70169854Sdds
71169854Sddssa -u $ACCT >sa.u
72169854Sddslastcomm -cesuS -f $ACCT >lastcomm.cesuS
73169854Sddstar -cf - acct sa.u lastcomm.cesuS *.time |
74169854Sddsgzip -c |
75169854Sddsuuencode $RESULTS >../$RESULTS.uue
76169854Sdds
77169854Sddsecho Cleaning up.
78169854Sddscd ..
79169854Sddsrm -rf $TMPDIR
80169854Sdds
81169854Sddsecho "Done!  Please send your reply, enclosing the file $RESULTS.uue"
82169854Sddsecho If your system runs with accounting enabled you probably need to run:
83169854Sddsecho accton /var/account/acct
84