MsgParseTest.cpp (2662B)
1 #include "test-suite.h" 2 #include "../Misc/MsgParsing.h" 3 4 class PluginTest 5 { 6 public: 7 void setUp() {} 8 9 void tearDown() {} 10 11 void testExtracting() { 12 std::size_t res; 13 int part, kit, vc; 14 bool isFm; 15 16 // test a full string with OscilSmp 17 res = zyn::idsFromMsg("/part1/kit2/adpars/VoicePar3/OscilSmp", &part, &kit, &vc, &isFm); 18 TS_ASSERT(res); 19 TS_ASSERT_EQUAL_INT(part, 1); 20 TS_ASSERT_EQUAL_INT(kit, 2); 21 TS_ASSERT_EQUAL_INT(vc, 3); 22 TS_ASSERT(!isFm); 23 // translate back into string 24 std::string str = zyn::buildVoiceParMsg(&part, &kit, &vc, &isFm); 25 TS_ASSERT_EQUAL_STR("/part1/kit2/adpars/VoicePar3/OscilSmp", str.c_str()); 26 27 // same with FMSmp 28 res = zyn::idsFromMsg("/part11/kit12/adpars/VoicePar13/FMSmp", &part, &kit, &vc, &isFm); 29 TS_ASSERT(res); 30 TS_ASSERT_EQUAL_INT(part, 11); 31 TS_ASSERT_EQUAL_INT(kit, 12); 32 TS_ASSERT_EQUAL_INT(vc, 13); 33 TS_ASSERT(isFm); 34 // translate back into string 35 str = zyn::buildVoiceParMsg(&part, &kit, &vc, &isFm); 36 TS_ASSERT_EQUAL_STR("/part11/kit12/adpars/VoicePar13/FMSmp", str.c_str()); 37 38 // check return values 39 TS_ASSERT(!zyn::idsFromMsg("/part", &part, &kit, nullptr)); 40 TS_ASSERT(!zyn::idsFromMsg("/part1", &part, &kit, nullptr)); 41 TS_ASSERT(!zyn::idsFromMsg("/part1/kit", &part, &kit, nullptr)); 42 TS_ASSERT(zyn::idsFromMsg("/part1/kit2", &part, &kit, nullptr)); 43 TS_ASSERT(!zyn::idsFromMsg("/part1/kit2", &part, &kit, &vc)); 44 TS_ASSERT(!zyn::idsFromMsg("/part1/kit2/adpars/", &part, &kit, &vc)); 45 TS_ASSERT(!zyn::idsFromMsg("/part1/kit2/adpars/", &part, &kit, &vc)); 46 TS_ASSERT(!zyn::idsFromMsg("/part1/kit2/adpars/VoicePar", &part, &kit, &vc)); 47 TS_ASSERT(!zyn::idsFromMsg("/part1/kit2/adpars/VoicePar/", &part, &kit, &vc)); 48 TS_ASSERT(zyn::idsFromMsg("/part1/kit2/adpars/VoicePar0/", &part, &kit, &vc)); 49 TS_ASSERT(zyn::idsFromMsg("/part1/kit2/adpars/VoicePar0/XXX", &part, &kit, &vc)); 50 TS_ASSERT(!zyn::idsFromMsg("/part1/kit2/adpars/VoicePar0/XXX", &part, &kit, &vc, &isFm)); 51 TS_ASSERT(zyn::idsFromMsg("/part1/kit2/adpars/VoicePar0/OscilSmp", &part, &kit, &vc, &isFm)); 52 TS_ASSERT(zyn::idsFromMsg("/part1/kit2/adpars/VoicePar0/FMSmp", &part, &kit, &vc, &isFm)); 53 } 54 }; 55 56 int main() 57 { 58 PluginTest test; 59 RUN_TEST(testExtracting); 60 return test_summary(); 61 }