diff --git a/tests/FilesT.cpp b/tests/FilesT.cpp index a68f3b26..7462a3f6 100644 --- a/tests/FilesT.cpp +++ b/tests/FilesT.cpp @@ -300,4 +300,19 @@ TEST_CASE("[Files] sw_default and playing with switches") REQUIRE( synth.getRegionView(1)->isSwitchedOn() ); REQUIRE( !synth.getRegionView(2)->isSwitchedOn() ); REQUIRE( synth.getRegionView(3)->isSwitchedOn() ); +} + + +TEST_CASE("[Files] wrong (overlapping) replacement for defines") +{ + sfz::Synth synth; + synth.loadSfzFile(std::filesystem::current_path() / "tests/TestFiles/SpecificBugs/wrong-replacements.sfz"); + REQUIRE( synth.getNumRegions() == 3 ); + REQUIRE( synth.getRegionView(0)->keyRange.getStart() == 52 ); + REQUIRE( synth.getRegionView(0)->keyRange.getEnd() == 52 ); + REQUIRE( synth.getRegionView(1)->keyRange.getStart() == 57 ); + REQUIRE( synth.getRegionView(1)->keyRange.getEnd() == 57 ); + REQUIRE( synth.getRegionView(2)->amplitudeCC ); + REQUIRE( synth.getRegionView(2)->amplitudeCC->first == 10 ); + REQUIRE( synth.getRegionView(2)->amplitudeCC->second == 34.0f ); } \ No newline at end of file diff --git a/tests/TestFiles/SpecificBugs/wrong-replacements.sfz b/tests/TestFiles/SpecificBugs/wrong-replacements.sfz new file mode 100644 index 00000000..5bc0cb80 --- /dev/null +++ b/tests/TestFiles/SpecificBugs/wrong-replacements.sfz @@ -0,0 +1,7 @@ +#define $KeyCrash2Edge 52 // Crash Cymbal 2 (Edge) +#define $KeyCrash2 57 // Crash Cymbal 2 (Bow) +#define $Param 10 // Opcode parameter replacement + + key=$KeyCrash2Edge sample=../mono_sample.wav + key=$KeyCrash2 sample=../mono_sample.wav + amplitude_oncc$Param=34 sample=../mono_sample.wav \ No newline at end of file