lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Unit testing


From: Carl Sorensen
Subject: Re: Unit testing
Date: Tue, 1 Nov 2016 01:03:05 +0000
User-agent: Microsoft-MacOutlook/14.6.9.160926


On 10/29/16 6:57 PM, "Chris Yate" <address@hidden> wrote:
>I think the problem is, how would you define an assertion, and what are
>you intending to test (i.e. what's the Subject Under Test?). I think
>something like Lilypond might require some quite elaborate test fixtures
>/ fakes.
>
>There are probably C++ functions you could test with a C++ assert based
>test framework - Catch for example - or something simpler.  Obviously
>anything doing a bit of maths is easy to test; the interesting functions
>tend to manipulate "Grob" objects; would the
> tests be examining their properties after the function call?
>
>But what about Scheme code?...


The only thing that I can think of for unit testing is to do the following:

1) For each file, define a set of regression tests that the file affects.
The set of regression tests should exercise all known functionality of the
files.

2) Get a known good, "gold-standard" definition of each of those
regression tests.

3) Assert that when each of the regression tests is run, the output should
pixel-to-pixel identical to the gold standard.

4) If the assertion in 3 is met for all reg-tests identified in step 1,
the file passes.

Note that we have a mechanism similar to this in place right now, with
make test-baseline and make check.  I suspect it could be cleaned up with
some work to provide the desired unit test functionality.

HTH,

Carl

P.S. We could do the same for midi output, as well




reply via email to

[Prev in Thread] Current Thread [Next in Thread]