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
* 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