#DESCRIPTION:Utility to crash your machine
# Before running these: BACKUP YOUR SYSTEM!  you've been warned!
f00f f00f
# This is a simple test for handling of the pentium f00f bug.
# It is an example of a catistrophic test case.  If the system
# doesn't correctly handle this test, it will likely lockup.
crash01 crash01
# Generate random code and execute it. Read f00f comment,
# this test lockup SunOS,WindowsNT,etc. in seconds..
crash02 crash02 -v 2
# Generate random syscalls and execute them, less probability
# to hose your system, but still.
mem01 mem01 -r
# Memory eater. Loves to be run in parallel with other programs.
# May panic on buggy systems if the OOM killer was not fast enough :-)
fork12 fork12
# Fork as many children as possible.  On systems with lots of memory
# and kernels prior to 2.4.19, this can hang the system by using up all pids
