9.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 Identifying code regressions.

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.

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