Skip to content
forked from tsoding/rere.py

Universal Behavior Testing Tool in Python.

License

Notifications You must be signed in to change notification settings

lzace817/rere.py

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rere.py (Record Replay)

Universal Behavior Testing Tool in Python. The script is completely self-contained and expected to be simply copy-pasted to your project and modified as needed.

Quick Start

  1. Create a file with a shell command line per line. Let's call it test.list.
  2. Record the expected behavior of each shell command:
$ ./rere.py record test.list

The above command should create test.list.bi snapshot file with stdout, stderr, and returncode captured as the expected behavior. The file uses bi format, for more infor see Snapshot Schema.

  1. Replay the command lines checking their behavior against the recorded one:
$ ./rere.py replay test.list
  1. test.list.bi is expected to be committed into the project repo.

Snapshot Schema

The snapshot file uses bi format. Its schema goes as following (the order of fields matters):

  1. First comes an Integer field count which denotes the amount of tests.
  2. Then come the tests. Each test is a sequence of fields:
    1. Blob field shell which contains the shell command to test,
    2. Integer field returncode which contains the expected exit code of the shell command,
    3. Blob field stdout which contains the bytes of the expected standard output,
    4. Blob field stderr which contains the bytes of the expected standard error output.

See test.list.bi for an example.

About

Universal Behavior Testing Tool in Python.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 82.4%
  • FreeBASIC 17.6%