lilypond-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] Make some local functions public (was: Re: lily-library.scm


From: Carl D. Sorensen
Subject: Re: [PATCH] Make some local functions public (was: Re: lily-library.scm question)
Date: Wed, 24 Jun 2009 10:40:34 -0600



On 6/23/09 11:48 PM, "Mark Polesky" <address@hidden> wrote:

> 
> 
> Han-Wen Nienhuys wrote:
>> I mean to have an automated set of tests, that checks for example that
>> 
>> (eq? (split-at-predicate odd?   '(2 3 6 8 9 0))
>>        '((2) (6 8) (0)))
>> 
>> holds.  It would be .ly file that runs Scheme function on a set of
>> inputs, and compares them to a set of outputs to make sure that they
>> match.
> 
> Oh, I see, kind of like regression tests for scheme functions? But
> there are a *lot* of scheme functions in the source... any priorities?
> I'm thinking lily-library.scm and c++.scm. What files/functions were
> you thinking about? That might be within my means as a Little Schemer.

It would seem to me that non-public scheme functions that belong to a
particular function (e.g. fret-diagrams) should be tested by the regression
test for fret-diagrams.

Similarly, the public part of fret-diagrams that is specific to fret
diagrams, should also be tested by the regression test for fret-diagrams.

However, public scheme functions that are used by multiple routines (like
those in lily-library.scm) may not be appropriately tested by any one of the
routines that calls the function.  Therefore, they should have the
appropriate test framework to ensure that they work properly.

OTOH, files like those in output-lib.scm are tested by the LilyPond
regression tests, because they produce direct LilyPond output.

So my summary of recommendations is:

1) Focus on public functions that
2) Are placed in a library file and
3) Are likely to be called from multiple places and
4) Don't lead directly to LilyPond output.


HTH,

Carl





reply via email to

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