Skip to content

Latest commit

 

History

History
35 lines (25 loc) · 1.79 KB

README.md

File metadata and controls

35 lines (25 loc) · 1.79 KB

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.bi
  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.