NAME='Stress'
AUTHOR='Yi Yang <yang.y.yi@gmail.com>'
TEST_TYPE='client'
TIME='MEDIUM'
TEST_CATEGORY='Functional'
TEST_CLASS='Software'
DOC='''\
stress is not a benchmark, but is rather a tool designed to put given subsytems
under a specified load. Instances in which this is useful include those in
which a system administrator wishes to perform tuning activities, a kernel or
libc programmer wishes to evaluate denial of service possibilities, etc.

Stress command line options:

     -?, --help         show this help statement
         --version      show version statement
     -v, --verbose      be verbose
     -q, --quiet        be quiet
     -n, --dry-run      show what would have been done
     -t, --timeout N    timeout after N seconds
         --backoff N    wait factor of N microseconds before work starts
     -c, --cpu N        spawn N workers spinning on sqrt()
     -i, --io N         spawn N workers spinning on sync()
     -m, --vm N         spawn N workers spinning on malloc()/free()
         --vm-bytes B   malloc B bytes per vm worker (default is 256MB)
         --vm-stride B  touch a byte every B bytes (default is 4096)
         --vm-hang N    sleep N secs before free (default is none, 0 is inf)
         --vm-keep      redirty memory instead of freeing and reallocating
     -d, --hdd N        spawn N workers spinning on write()/unlink()
         --hdd-bytes B  write B bytes per hdd worker (default is 1GB)
         --hdd-noclean  do not unlink files created by hdd workers
    Example: %s --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s
    Note: Numbers may be suffixed with s,m,h,d,y (time) or B,K,M,G (size).

Autotest module options:
    args = Arguments passed to the stress test. If omitted, an heuristic
           will be used to calculate sensible defaults
    stress_length = Time length on which stress will run, in seconds.
                    By default is 60s.
'''
job.run_test('stress')