|author||David Sterba <firstname.lastname@example.org>||2018-03-23 15:29:41 +0100|
|committer||David Sterba <email@example.com>||2018-03-30 22:15:55 +0200|
btrfs-progs: tests: update README, images, coding style
Signed-off-by: David Sterba <firstname.lastname@example.org>
1 files changed, 23 insertions, 1 deletions
diff --git a/tests/README.md b/tests/README.md
index d4b80da1..d14d727c 100644
@@ -189,6 +189,27 @@ $ TEST=012\* ./misc-tests.sh # from tests/
7. A commit that fixes a bug should be applied before the test that verifies
the fix. This is to keep the git history bisectable.
+### Test images
+Most tests should be able to create the test images from scratch, using regular
+commands and file operation. The commands also document the testcase and use
+the teste code and kernel of the environment.
+In other cases, a pre-created image may be the right way if the above does not
+work (eg. comparing output, requesting an exact layout or some intermediate
+state that would be hard to achieve otherwise).
+* images that don't need data and valid checksums can be created by
+ `btrfs-image`, the image can be compressed by the tool itself (file extension
+ `.img`) or compressed externally (recognized is `.img.xz`)
+* raw images that are binary dump of an existing image, created eg. from a
+ sparse file (`.raw` or `.raw.xz`)
+Use `xz --best` and try to get the smallest size as the file is stored in git.
### Crafted/fuzzed images
Images that are created by fuzzing or specially crafted to trigger some error
@@ -232,9 +253,10 @@ The tests assume write acesss to their directories.
* quote all variables by default, any path, even the TOP could need that, and
we use it everywhere
+ * even if the variable is safe, use quotes for consistency and to ease
+ reading the code
* 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