diff options
author | Jonathan Nieder <jrnieder@gmail.com> | 2010-05-02 03:53:41 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-05-04 15:27:52 -0700 |
commit | 3bf7886705b4ea7189f046fa5258fdf6edcdbe23 (patch) | |
tree | 334c237a7ac7a8ed0ec8d70ab076c4a5422785bc /diffcore.h | |
parent | 6b6f5d4664c9088636418653a61f600b5e3a9ea4 (diff) | |
download | git-3bf7886705b4ea7189f046fa5258fdf6edcdbe23.tar.gz |
test-lib: Let tests specify commands to be run at end of test
Certain actions can imply that if the test fails early, recovery from
within other tests is too much to expect:
- creating unwritable directories, like the EACCESS test in t0001-init
- setting unusual configuration, like user.signingkey in t7004-tag
- crashing and leaving the index lock held, like t3600-rm once did
Some test scripts work around this by running cleanup actions outside
the supervision of the test harness, with the unfortunate consequence
that those commands are not appropriately echoed and their output not
suppressed. Others explicitly save exit status, clean up, and then
reset the exit status within the tests, which has excellent behavior
but makes the tests hard to read. Still others ignore the problem.
Allow tests a fourth option: by calling this function, tests can
stack up commands they would like to be run to clean up.
Commands passed to test_when_finished during a test are
unconditionally run in the test environment immediately before the
test is completed, in last-in-first-out order. If some cleanup
command fails, then the other cleanup commands are still run before
the failure is reported and the test script allowed to continue.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'diffcore.h')
0 files changed, 0 insertions, 0 deletions