LilyPond Contributor's Guide: 10.8.8 Verify regression tests

### 10.8.8 Verify regression tests

In order to avoid breaking LilyPond, it is important to verify that the regression tests succeed, and that no unwanted changes are introduced into the output. This process is described in Regtest comparison.

### Typical developer’s edit/compile/test cycle

TODO: is `[-jX CPU_COUNT=X]` useful for `test-baseline`, `check`, `clean`, `test-redo`? Neil Puttock says it is useful for everything but `clean`, which is disk-limited. Need to check formally.

- Initial test:

  >     make [-jX]
  >     make test-baseline
  >     make [-jX CPU_COUNT=X] check

- Edit/compile/test cycle:

  >     ## edit source files, then...

  >     make clean                    ## only if needed (see below)
  >     make [-jX]                    ## only if needed (see below)
  >     make test-redo                ## redo files differing from baseline
  >     make [-jX CPU_COUNT=X] check  ## CPU_COUNT here?

- Reset:

  >     make test-clean

If you modify any source files that have to be compiled (such as ‘`.cc`’ or ‘`.hh`’ files in ‘`flower/`’ or ‘`lily/`’), then you must run `make` before `make test-redo`, so `make` can compile the modified files and relink all the object files. If you only modify files which are interpreted, like those in the ‘`scm/`’ and ‘`ly/`’ directories, then `make` is not needed before `make test-redo`.

TODO: Fix the following paragraph. You can do `rm mf/out/*` instead of make clean, and you can probably do `make -C mf/ clean` as well, but I haven’t checked it – cds

Also, if you modify any font definitions in the ‘`mf/`’ directory then you must run `make clean` and `make` before running `make test-redo`. This will recompile everything, whether modified or not, and takes a lot longer.

Running `make check` will leave an HTML page ‘`out/test-results/index.html`’. This page shows all the important differences that your change introduced, whether in the layout, MIDI, performance or error reporting.

#### LilyPond — Contributor’s Guide