| [Top][Contents] |
Other regression tests
| [ << Top ] | [Top][Contents] | [ >> ] |
| [ < Top ] | [ Up: Top ] | [ > ] |
Introduction
This document presents regression tests for LilyPond development that don’t have visually significant output; it mainly exists for completeness and to make the test documentation better available.
In the web version of this document, you can click on the figure for each example to see the corresponding input file.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < ] | [ Up: Top ] | [ alternative-trailing-var-simultaneous.ly > ] |
Regression test cases
| [ << ] | [Top][Contents] | [ >> ] |
| [ < ] | [ alternative-var-simultaneous.ly > ] |
alternative-trailing-var-simultaneous.ly
It is an error to use \alternative \var following the body
of a repeat when var holds any type of music other than sequential music
(in this case, simultaneous music).
| [ << ] | [Top][Contents] | [ >> ] |
| [ < alternative-trailing-var-simultaneous.ly ] | [ base-moment.ly > ] |
alternative-var-simultaneous.ly
It is an error to use \alternative \var when var
holds any type of music other than sequential music (in this case, simultaneous
music).
| [ << ] | [Top][Contents] | [ >> ] |
| [ < alternative-var-simultaneous.ly ] | [ beam-exceptions-alternating.ly > ] |
base-moment.ly
The deprecated context property baseMoment accesses the
value of beatBase.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < base-moment.ly ] | [ beam-exceptions.ly > ] |
beam-exceptions-alternating.ly
This is a set of tests of the beam-exceptions Scheme
function for strictly alternating time signatures. Problems are reported in the
standard error stream.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < beam-exceptions-alternating.ly ] | [ beat-base-alternating.ly > ] |
beam-exceptions.ly
This is a set of tests of the beam-exceptions Scheme
function for single-fraction time signatures. Problems are reported in the
standard error stream.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < beam-exceptions.ly ] | [ beat-base.ly > ] |
beat-base-alternating.ly
This is a set of tests of the beat-base Scheme function for
strictly alternating time signatures. Problems are reported in the standard
error stream.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < beat-base-alternating.ly ] | [ beat-structure-alternating.ly > ] |
beat-base.ly
This is a set of tests of the beat-base Scheme function for
single-fraction time signatures. Problems are reported in the standard error
stream.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < beat-base.ly ] | [ beat-structure-senza-misura.ly > ] |
beat-structure-alternating.ly
This is a set of tests of the beat-structure Scheme function
for strictly alternating signatures. Problems are reported in the standard
error stream.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < beat-structure-alternating.ly ] | [ beat-structure.ly > ] |
beat-structure-senza-misura.ly
This is a set of tests of the beat-structure Scheme
function. This set includes cases where the time signature is #f
(for senza misura). Problems are reported in the standard error stream.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < beat-structure-senza-misura.ly ] | [ binary-search.ly > ] |
beat-structure.ly
This is a set of tests of the beat-structure Scheme function
for single-fraction time signatures. Problems are reported in the standard
error stream.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < beat-structure.ly ] | [ bookmark-encoding.ly > ] |
binary-search.ly
The binary-search function works as documented.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < binary-search.ly ] | [ calc-measure-length.ly > ] |
bookmark-encoding.ly
PDF bookmarks can contain UTF-8 characters. They are correctly rendered in PDF viewers.
Note: due to the way the regression test infrastructure currently works, any breakage in this test will not be noticed automatically.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < bookmark-encoding.ly ] | [ completion-unit-as-moment.ly > ] |
calc-measure-length.ly
This is a set of tests of the calc-measure-length Scheme
function. Problems are reported in the standard error stream.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < calc-measure-length.ly ] | [ context-property-check.ly > ] |
completion-unit-as-moment.ly
The deprecated context property completionUnitAsMoment
accesses the value of completionUnit.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < completion-unit-as-moment.ly ] | [ display-lily-tests.ly > ] |
context-property-check.ly
This test covers \contextPropertyCheck. It should run with
expected warnings. The visual output is not important.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < context-property-check.ly ] | [ embed-source-code-include-multiple-times.ly > ] |
display-lily-tests.ly
This is a test of the display-lily-music unit. Problems are reported on the stderr of this run.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < display-lily-tests.ly ] | [ embed-source-code-order.ly > ] |
embed-source-code-include-multiple-times.ly
With the -dembed-source-code option, a file included multiple times is only embedded once.
Note: with the current regression testing infrastructure,
any breakage of this test will not be noticed in
make check.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < embed-source-code-include-multiple-times.ly ] | [ embed-source-code.ly > ] |
embed-source-code-order.ly
When using the -dembed-source-code option, embedded files are displayed in alphabetical order.
Note: with the current regression testing infrastructure,
any breakage of this test will not be noticed in
make check.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < embed-source-code-order.ly ] | [ engraver-order.ly > ] |
embed-source-code.ly
-dembed-source-code embeds source files
in PDFs, including include files, images and verbatim files.
Note: with the current regression testing infrastructure,
any breakage of this test will not be noticed in
make check.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < embed-source-code.ly ] | [ get-deprecated-property-special-warning.ly > ] |
engraver-order.ly
Engravers are run in the same order as they are specified (although it is generally preferred that the order does not matter).
This tests contains several scores, which output “Engraver 1 ran” and “Engraver 2 ran” in the log file. The order between these two lines in each score is what matters.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < engraver-order.ly ] | [ grace-start-and-length.ly > ] |
get-deprecated-property-special-warning.ly
Getting a deprecated property may issue a special warning.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < get-deprecated-property-special-warning.ly ] | [ grid-interval-as-moment.ly > ] |
grace-start-and-length.ly
This tests the calculation of music start and length for various kinds of grace music. Problems are reported on stderr.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < grace-start-and-length.ly ] | [ grob-array-list.ly > ] |
grid-interval-as-moment.ly
The deprecated context property gridIntervalAsMoment
accesses the value of gridInterval.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < grid-interval-as-moment.ly ] | [ lilypond-version-outdated.ly > ] |
grob-array-list.ly
Conversions are possible between grob arrays and grob lists.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < grob-array-list.ly ] | [ markup-to-string.ly > ] |
lilypond-version-outdated.ly
Test for versions considered outdated or not
(used when suggesting convert-ly).
| [ << ] | [Top][Contents] | [ >> ] |
| [ < lilypond-version-outdated.ly ] | [ markup-with-relative-dir.ly > ] |
markup-to-string.ly
markup->string takes a markup and tries
to convert it into an approximate string representation.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < markup-to-string.ly ] | [ measure-length-as-moment.ly > ] |
markup-with-relative-dir.ly
The function \withRelativeDir helps
\markup find input files relative to the input file, without
using lilypond’s command line option -I.
To actually test this, lilypond should be called from
another directory, for example
lilypond other/markup-with-relative-dir.ly
Note: with the current regression testing infrastructure it is not possible to check whether the command actually does its job.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < markup-with-relative-dir.ly ] | [ minimum-repeat-length-for-page-turn.ly > ] |
measure-length-as-moment.ly
The deprecated context property
measureLengthAsMoment accesses the value of
measureLength.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < measure-length-as-moment.ly ] | [ number-to-duration.ly > ] |
minimum-repeat-length-for-page-turn.ly
The deprecated context property
minimumRepeatLengthForPageTurn accesses the value of
pageTurnMinimumRepeatLength.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < minimum-repeat-length-for-page-turn.ly ] | [ override-non-existent-property.ly > ] |
number-to-duration.ly
This tests the internal function ly:number->duration.
Problems are reported on stderr.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < number-to-duration.ly ] | [ override-property-wrong-type.ly > ] |
override-non-existent-property.ly
\override warns and rejects the assignment
if the property does not exist.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < override-non-existent-property.ly ] | [ page-turn-minimum-rest-length.ly > ] |
override-property-wrong-type.ly
\override warns and rejects the assignment
if the value does not match the property’s type predicate.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < override-property-wrong-type.ly ] | [ proportional-notation-duration-as-moment.ly > ] |
page-turn-minimum-rest-length.ly
The deprecated context property minimumPageTurnLength
accesses the value of pageTurnMinimumRestLength.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < page-turn-minimum-rest-length.ly ] | [ regex.ly > ] |
proportional-notation-duration-as-moment.ly
The deprecated context property
proportionalNotationDurationAsMoment accesses the value of
proportionalNotationDuration.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < proportional-notation-duration-as-moment.ly ] | [ repeat-start-and-length-no-alternatives.ly > ] |
regex.ly
Test the behavior of regular expression functions.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < regex.ly ] | [ repeat-start-and-length-with-alternatives.ly > ] |
repeat-start-and-length-no-alternatives.ly
This tests the calculation of music start and length for various kinds of repeated music without alternatives. Problems are reported on stderr.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < repeat-start-and-length-no-alternatives.ly ] | [ rhythmic-location-dead-grob.ly > ] |
repeat-start-and-length-with-alternatives.ly
This tests the calculation of music start and length for various kinds of repeated music with alternatives. Problems are reported on stderr.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < repeat-start-and-length-with-alternatives.ly ] | [ scheme-error-locations-include-files.ly > ] |
rhythmic-location-dead-grob.ly
grob::when and grob::rhythmic-location also work on
dead grobs.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < rhythmic-location-dead-grob.ly ] | [ scheme-error-locations-included-string.ly > ] |
scheme-error-locations-include-files.ly
In -dcompile-scheme-code mode, source locations
are printed for Scheme errors, even if the faulty Scheme code
is in an include file.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < scheme-error-locations-include-files.ly ] | [ scheme-error-locations.ly > ] |
scheme-error-locations-included-string.ly
-dcompile-scheme-code also works with
expressions included by ly:parser-include-string
and ly:parser-parse-string. This test should print
two Scheme errors. (However, providing error messages that
point to the precise form that fails is not currently
implemented for included strings of code.)
| [ << ] | [Top][Contents] | [ >> ] |
| [ < scheme-error-locations-included-string.ly ] | [ set-deprecated-property-special-warning.ly > ] |
scheme-error-locations.ly
When using the -dcompile-scheme-code option,
Scheme errors point at the precise form where the error occurs
(this is limited by the precision of the information Guile provides).
| [ << ] | [Top][Contents] | [ >> ] |
| [ < scheme-error-locations.ly ] | [ set-deprecated-property-wrong-type.ly > ] |
set-deprecated-property-special-warning.ly
Setting a deprecated property may issue a special warning.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < set-deprecated-property-special-warning.ly ] | [ set-non-existent-property-scheme.ly > ] |
set-deprecated-property-wrong-type.ly
\set warns and refuses to assign a value that does not
match a deprecated property’s type predicate.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < set-deprecated-property-wrong-type.ly ] | [ set-non-existent-property.ly > ] |
set-non-existent-property-scheme.ly
ly:context-set-property! warns if the property does not
exist.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < set-non-existent-property-scheme.ly ] | [ set-property-wrong-type.ly > ] |
set-non-existent-property.ly
\set warns and rejects the assignment
if the property does not exist.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < set-non-existent-property.ly ] | [ start-and-length.ly > ] |
set-property-wrong-type.ly
\set warns and rejects the assignment
if the value does not match the property’s type predicate.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < set-property-wrong-type.ly ] | [ suggest-convert-ly.ly > ] |
start-and-length.ly
This tests the calculation of music start and length for various kinds of music. Problems are reported on stderr.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < start-and-length.ly ] | [ syntax-function-curried.ly > ] |
suggest-convert-ly.ly
When the file’s version statement is outdated
and compilation fails, a message is printed to encourage use
of convert-ly.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < suggest-convert-ly.ly ] | [ syntax-function-docstring.ly > ] |
syntax-function-curried.ly
Syntax functions can use curried definitions.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < syntax-function-curried.ly ] | [ syntax-function-rest.ly > ] |
syntax-function-docstring.ly
Syntax functions’ docstrings are preserved (mainly for the sake of doc autogeneration).
| [ << ] | [Top][Contents] | [ >> ] |
| [ < syntax-function-docstring.ly ] | [ tempo-wholes-per-minute-as-moment.ly > ] |
syntax-function-rest.ly
Syntax functions can use rest arguments.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < syntax-function-rest.ly ] | [ time-signature-fraction.ly > ] |
tempo-wholes-per-minute-as-moment.ly
The deprecated context property tempoWholesPerMinuteAsMoment
accesses the value of tempoWholesPerMinute.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < tempo-wholes-per-minute-as-moment.ly ] | [ time-signature-to-fraction.ly > ] |
time-signature-fraction.ly
The deprecated context property timeSignatureFraction
accesses the value of timeSignature.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < time-signature-fraction.ly ] | [ translator-duplicate.ly > ] |
time-signature-to-fraction.ly
This is a set of tests of the time-signature->fraction
Scheme function. Problems are reported in the standard error stream.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < time-signature-to-fraction.ly ] | [ tsig-abbr-expand.ly > ] |
translator-duplicate.ly
Only one instance of a translator can exist in a context. Duplicates are eliminated.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < translator-duplicate.ly ] | [ tuplet-spanner-duration-as-moment.ly > ] |
tsig-abbr-expand.ly
This tests the internal function tsig-abbr-expand. Problems are reported on stderr.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < tsig-abbr-expand.ly ] | [ unset-non-existent-property-scheme.ly > ] |
tuplet-spanner-duration-as-moment.ly
The deprecated context property
tupletSpannerDurationAsMoment accesses the value of
tupletSpannerDuration.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < tuplet-spanner-duration-as-moment.ly ] | [ unset-non-existent-property.ly > ] |
unset-non-existent-property-scheme.ly
ly:context-unset-property warns if the property does not
exist.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < unset-non-existent-property-scheme.ly ] | [ unspecified-from-callback.ly > ] |
unset-non-existent-property.ly
\unset warns if the property does not exist.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < unset-non-existent-property.ly ] | [ version-incomplete-bad.ly > ] |
unspecified-from-callback.ly
Callbacks returning *unspecified* are only
run once, as all callbacks.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < unspecified-from-callback.ly ] | [ version-incomplete-good.ly > ] |
version-incomplete-bad.ly
An incomplete version statement, with the third number omitted, is rejected if the second number is odd.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < version-incomplete-bad.ly ] | [ version-invalid.ly > ] |
version-incomplete-good.ly
An incomplete version statement, with the third number omitted,
is accepted if the second number is even. This also tests the message
suggesting convert-ly in such cases.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < version-incomplete-good.ly ] | [ version-outdated-error.ly > ] |
version-invalid.ly
An invalid \version statement should result in an error
and a nonzero return code.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < version-invalid.ly ] | [ void-function-empty.ly > ] |
version-outdated-error.ly
A \version statement newer than the running
version of LilyPond should result in an error and a nonzero return
code.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < version-outdated-error.ly ] | [ volta-spanner-duration-as-moment.ly > ] |
void-function-empty.ly
A void function’s body can be empty.
| [ << ] | [Top][Contents] | [ >> ] |
| [ < void-function-empty.ly ] | [ > ] |
volta-spanner-duration-as-moment.ly
The deprecated context property voltaSpannerDurationAsMoment
accesses the value of internal property voltaBracketMusicalLength.