autoclave

repeatedly run programs until they break, and be ready to attach a debugger

  • Owner: silentbicycle/autoclave
  • Platform:
  • License::
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

autoclave: a pressure cooker for programs

Summary

autoclave repeatedly executes a command line until its process exits
with a non-zero status, is stopped/terminated by a signal, a
user-specified timeout (-t) runs out, or a user-specified number of runs
(-r) have passed without any failures.

It can log the contents of stdout (-l) and/or stderr (-e), and can
rotate the log files so a fixed number of logs are kept (-c).

On failure, a handler program (-x) can be called with information about
the child process. That way, a debugger can be opened if the stressed
program times out or dumps core. For particularly long-running stress
tests, the handler may also be a great place to send a notification.

For more detailed usage info, see the examples below the man page,
and this blog post.

Examples

Repeatedly run buggy_program until it crashes:

$ autoclave buggy_program

Same, but print run and failure counts:

$ autoclave -v buggy_program

Same, but if it succeeds 10 times, return EXIT_SUCCESS:

$ autoclave -v -r 10 buggy_program

Same, but ensure there is at least 500 mesc between runs,
sleeping if necessary:

$ autoclave -v -r 10 -m 500 buggy_program

Run without any delay:

$ autoclave -v -r 10 -m 0 buggy_program

Repeatedly run buggy_program, logging stdout to
buggy_program.1.stdout.log, buggy_program.2.stdout.log, and so on:

$ autoclave -l buggy_program

Same, but log to /tmp/buggy.ID.stdout.log instead:

$ autoclave -l -o /tmp/buggy buggy_program

Log, but only keep the 5 most recent log files:

$ autoclave -l -c 5 buggy_program

Same, but log stderr as well as stdout (keeping 10 files):

$ autoclave -l -e -c 5 buggy_program

A shortcut for autoclave -l -e -v ('s' for 'supervise'):

$ autoclave -s buggy_program

Repeatedly run buggy_program until it has failed 10 times:

$ autoclave -f 10 buggy_program

Run a program that occasionally deadlocks, halting it and counting it as a
failure if it takes more than 10 seconds to complete:

$ autoclave -t 10  examples/deadlock_example

Same, but run the script examples/gdb_it when it times out, so gdb can
attach to the stopped process and investigate what is deadlocking.
(Note: the process is not halted after the -x command returns.)

$ autoclave -t 10 -x examples/gdb_it examples/deadlock_example

Run examples/crash_example, calling examples/gdb_it if it fails:

$ autoclave -x examples/gdb_it examples/crash_example

Main metrics

Overview
Name With Ownersilentbicycle/autoclave
Primary LanguageC
Program languageMakefile (Language Count: 2)
Platform
License:
所有者活动
Created At2015-01-18 18:10:27
Pushed At2018-10-09 00:29:42
Last Commit At2018-10-08 20:28:02
Release Count4
Last Release Namev0.2.1 (Posted on 2018-10-08 20:28:28)
First Release Namev0.1.0 (Posted on 2015-01-18 13:08:49)
用户参与
Stargazers Count193
Watchers Count9
Fork Count8
Commits Count61
Has Issues Enabled
Issues Count13
Issue Open Count4
Pull Requests Count1
Pull Requests Open Count0
Pull Requests Close Count0
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private