autoclave

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

  • 所有者: silentbicycle/autoclave
  • 平台:
  • 許可證:
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

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

主要指標

概覽
名稱與所有者silentbicycle/autoclave
主編程語言C
編程語言Makefile (語言數: 2)
平台
許可證
所有者活动
創建於2015-01-18 18:10:27
推送於2018-10-09 00:29:42
最后一次提交2018-10-08 20:28:02
發布數4
最新版本名稱v0.2.1 (發布於 2018-10-08 20:28:28)
第一版名稱v0.1.0 (發布於 2015-01-18 13:08:49)
用户参与
星數193
關注者數9
派生數8
提交數61
已啟用問題?
問題數13
打開的問題數4
拉請求數1
打開的拉請求數0
關閉的拉請求數0
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?