From a138b93182638e1748e91c3d46f4995abe04ec11 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Fri, 15 May 2020 09:15:58 +0200 Subject: [PATCH] Test against a regression with accepted filenames --- tests/ParsingT.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/ParsingT.cpp b/tests/ParsingT.cpp index 2c4127d5..3249ac31 100644 --- a/tests/ParsingT.cpp +++ b/tests/ParsingT.cpp @@ -621,3 +621,34 @@ R"(#define $B foo-$A-baz REQUIRE(mock.fullBlockHeaders == expectedHeaders); REQUIRE(mock.fullBlockMembers == expectedMembers); } + +TEST_CASE("[Parsing] Opcode value special character") +{ + sfz::Parser parser; + ParsingMocker mock; + parser.setListener(&mock); + parser.parseString("/opcodeValueSpecialCharacter.sfz", +R"( +sample=Alto-Flute-sus-C#4-PB-loop.wav)"); + + std::vector> expectedMembers = { + {{"sample", "Alto-Flute-sus-C#4-PB-loop.wav"}}, + }; + std::vector expectedHeaders = { + "region" + }; + std::vector expectedOpcodes; + + for (auto& members: expectedMembers) + for (auto& opcode: members) + expectedOpcodes.push_back(opcode); + + REQUIRE(mock.beginnings == 1); + REQUIRE(mock.endings == 1); + REQUIRE(mock.errors.empty()); + REQUIRE(mock.warnings.empty()); + REQUIRE(mock.opcodes == expectedOpcodes); + REQUIRE(mock.headers == expectedHeaders); + REQUIRE(mock.fullBlockHeaders == expectedHeaders); + REQUIRE(mock.fullBlockMembers == expectedMembers); +}