btrfs-progs: docs: add preliminary do's & dont's for tests

Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
David Sterba 2017-03-13 17:43:05 +01:00
parent ea3d522cc6
commit 3727d89b41
1 changed files with 34 additions and 0 deletions

View File

@ -182,3 +182,37 @@ description of the problem or the stack trace.
If you have a fix for the problem, please submit it prior to the test image, so
the fuzz tests always succeed when run on random checked out. This helps
bisectability.
# Coding style, best practices
## do
* quote all variables by default, any path, even the TOP could need that, and
we use it everywhere
* there are exceptions:
* `$SUDO_HELPER` as it might be intentionally unset
* the variable is obviously set to a value that does not require it
* use `#!/bin/bash` explicitly
* check for all external dependencies (`check_prereq_global`)
* check for internal dependencies (`check_prereq`), though the basic set is
always built when the tests are started through make
* use functions instead of repeating code
* generic helpers could be factored to the `common` script
* cleanup after successful test
* use common helpers and variables
## do not
* pull external dependencies if we can find a way to replace them: example is
`xfs_io` that's conveniently used in fstests but we'd require `xfsprogs`,
so use `dd` instead
* throw away (redirect to */dev/null*) output of commands unless it's justified
(ie. really too much text, unnecessary slowdown) -- the test output log is
regenerated all the time and we need to be able to analyze test failures or
just observe how the tests progress
* cleanup after failed test -- the testsuite stops on first failure and the
developer can eg. access the environment that the test created and do further
debugging
* this might change in the future so the tests cover as much as possible, but
this would require to enhance all tests with a cleanup phase