From fd6c48a3406c69d3ec4aec43a49ab29571d8ad4b Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Wed, 20 Jan 2016 11:52:43 +0100 Subject: Update LV2/lilv unit-test. --- test/lv2.cc | 546 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 277 insertions(+), 269 deletions(-) (limited to 'test/lv2.cc') diff --git a/test/lv2.cc b/test/lv2.cc index bfd2ce5..32d896c 100644 --- a/test/lv2.cc +++ b/test/lv2.cc @@ -47,7 +47,7 @@ */ class test_lv2 : public CppUnit::TestFixture { - CPPUNIT_TEST_SUITE(test_lv2); + CPPUNIT_TEST_SUITE(test_lv2); CPPUNIT_TEST(open_and_verify); CPPUNIT_TEST(run_no_ports_connected); CPPUNIT_TEST(run_no_output_ports_connected); @@ -58,274 +58,282 @@ public: void setUp() {} void tearDown() {} - void open_and_verify() - { - int res; - - LV2TestHost h(LV2_PATH); - - res = h.open(DG_URI); - CPPUNIT_ASSERT_EQUAL(0, res); - - res = h.verify(); - CPPUNIT_ASSERT_EQUAL(0, res); - - res = h.close(); - CPPUNIT_ASSERT_EQUAL(0, res); - } - - void run_no_ports_connected() - { - int res; - - LV2TestHost h(LV2_PATH); - - res = h.open(DG_URI); - CPPUNIT_ASSERT_EQUAL(0, res); - - res = h.verify(); - CPPUNIT_ASSERT_EQUAL(0, res); - - res = h.createInstance(); - CPPUNIT_ASSERT_EQUAL(0, res); - - const char config_fmt[] = - "\n" - " %s\n" - " %s\n" - " %s\n" - " %f\n" - " %f\n" - " %s\n" - " %f\n" - " %s\n" - ""; - - const char drumkitfile[] = "kit/kit1.xml"; - const char midimapfile[] = "kit/midimap.xml"; - bool enable_velocity_modifier = true; - float velocity_modifier_falloff = 0.5; - float velocity_modifier_weight = 0.25; - bool enable_velocity_randomiser = false; - float velocity_randomiser_weight = 0.1; - bool enable_resampling = false; - - char config[sizeof(config_fmt) * 2]; - sprintf(config, config_fmt, - drumkitfile, - midimapfile, - enable_velocity_modifier?"true":"false", - velocity_modifier_falloff, - velocity_modifier_weight, - enable_velocity_randomiser?"true":"false", - velocity_randomiser_weight, - enable_resampling?"true":"false" - ); - - res = h.loadConfig(config, strlen(config)); - CPPUNIT_ASSERT_EQUAL(0, res); - - // run for 1 samples to trigger kit loading - res = h.run(1); - CPPUNIT_ASSERT_EQUAL(0, res); - sleep(1); // wait for kit to get loaded (async), - - res = h.run(100); - CPPUNIT_ASSERT_EQUAL(0, res); - - res = h.destroyInstance(); - CPPUNIT_ASSERT_EQUAL(0, res); - - res = h.close(); - CPPUNIT_ASSERT_EQUAL(0, res); - } - - void run_no_output_ports_connected() - { - int res; - - LV2TestHost h(LV2_PATH); - - res = h.open(DG_URI); - CPPUNIT_ASSERT_EQUAL(0, res); - - res = h.verify(); - CPPUNIT_ASSERT_EQUAL(0, res); - - res = h.createInstance(); - CPPUNIT_ASSERT_EQUAL(0, res); - - const char config_fmt[] = - "\n" - " %s\n" - " %s\n" - " %s\n" - " %f\n" - " %f\n" - " %s\n" - " %f\n" - " %s\n" - ""; - - const char drumkitfile[] = "kit/kit1.xml"; - const char midimapfile[] = "kit/midimap.xml"; - bool enable_velocity_modifier = true; - float velocity_modifier_falloff = 0.5; - float velocity_modifier_weight = 0.25; - bool enable_velocity_randomiser = false; - float velocity_randomiser_weight = 0.1; - bool enable_resampling = false; - - char config[sizeof(config_fmt) * 2]; - sprintf(config, config_fmt, - drumkitfile, - midimapfile, - enable_velocity_modifier?"true":"false", - velocity_modifier_falloff, - velocity_modifier_weight, - enable_velocity_randomiser?"true":"false", - velocity_randomiser_weight, - enable_resampling?"true":"false" - ); - - res = h.loadConfig(config, strlen(config)); - CPPUNIT_ASSERT_EQUAL(0, res); - - // Port buffers: - char sequence_buffer[4096]; - - LV2TestHost::Sequence seq(sequence_buffer, sizeof(sequence_buffer)); - res = h.connectPort(0, seq.data()); - CPPUNIT_ASSERT_EQUAL(0, res); - - // run for 1 samples to trigger kit loading - res = h.run(1); - CPPUNIT_ASSERT_EQUAL(0, res); - sleep(1); // wait for kit to get loaded (async), - - seq.addMidiNote(5, 1, 127); - res = h.run(100); - CPPUNIT_ASSERT_EQUAL(0, res); - - res = h.destroyInstance(); - CPPUNIT_ASSERT_EQUAL(0, res); - - res = h.close(); - CPPUNIT_ASSERT_EQUAL(0, res); - } - - void test1() - { - int res; - - LV2TestHost h(LV2_PATH); - - res = h.open(DG_URI); - CPPUNIT_ASSERT_EQUAL(0, res); - - res = h.verify(); - CPPUNIT_ASSERT_EQUAL(0, res); - - res = h.createInstance(); - CPPUNIT_ASSERT_EQUAL(0, res); - - const char config_fmt[] = - "\n" - " %s\n" - " %s\n" - " %s\n" - " %f\n" - " %f\n" - " %s\n" - " %f\n" - " %s\n" - ""; - - const char drumkitfile[] = "kit/kit1.xml"; - const char midimapfile[] = "kit/midimap.xml"; - bool enable_velocity_modifier = true; - float velocity_modifier_falloff = 0.5; - float velocity_modifier_weight = 0.25; - bool enable_velocity_randomiser = false; - float velocity_randomiser_weight = 0.1; - bool enable_resampling = false; - - char config[sizeof(config_fmt) * 2]; - sprintf(config, config_fmt, - drumkitfile, - midimapfile, - enable_velocity_modifier?"true":"false", - velocity_modifier_falloff, - velocity_modifier_weight, - enable_velocity_randomiser?"true":"false", - velocity_randomiser_weight, - enable_resampling?"true":"false" - ); - - res = h.loadConfig(config, strlen(config)); - CPPUNIT_ASSERT_EQUAL(0, res); - - // Port buffers: - char sequence_buffer[4096]; - float pcm_buffer[16][10]; - - LV2TestHost::Sequence seq(sequence_buffer, sizeof(sequence_buffer)); - res = h.connectPort(0, seq.data()); - CPPUNIT_ASSERT_EQUAL(0, res); - - for(int i = 1; i <= 16; i++) { - memset(pcm_buffer, 1, sizeof(pcm_buffer)); - res += h.connectPort(i, pcm_buffer[i-1]); - } - CPPUNIT_ASSERT_EQUAL(0, res); - - // run for 1 samples to trigger kit loading - res = h.run(1); - CPPUNIT_ASSERT_EQUAL(0, res); - sleep(1); // wait for kit to get loaded (async), - - /* - seq.addMidiNote(5, 1, 127); - for(int i = 0; i < 10; i++) { - res = h.run(10); - CPPUNIT_ASSERT_EQUAL(0, res); - - printf("Iteration:\n"); - for(int k = 0; k < 4; k++) { - printf("#%d ", k); - for(int j = 0; j < 10; j++) printf("[%f]", pcm_buffer[k][j]); - printf("\n"); - } - printf("\n"); - - seq.clear(); - } - */ - - seq.addMidiNote(5, 1, 127); - res = h.run(10); - CPPUNIT_ASSERT_EQUAL(0, res); - - union { - float f; - unsigned int u; - } comp_val; - - comp_val.u = 1040744448; - - for(int k = 0; k < 4; k++) { - for(int j = 0; j < 10; j++) { - CPPUNIT_ASSERT(pcm_buffer[k][j] == ((j==4)?comp_val.f:0)); - } - } - seq.clear(); - - res = h.destroyInstance(); - CPPUNIT_ASSERT_EQUAL(0, res); - - res = h.close(); - CPPUNIT_ASSERT_EQUAL(0, res); - } + void open_and_verify() + { + int res; + + LV2TestHost h(LV2_PATH); + + res = h.open(DG_URI); + CPPUNIT_ASSERT_EQUAL(0, res); + + res = h.verify(); + CPPUNIT_ASSERT_EQUAL(0, res); + + res = h.close(); + CPPUNIT_ASSERT_EQUAL(0, res); + } + + void run_no_ports_connected() + { + int res; + + LV2TestHost h(LV2_PATH); + + res = h.open(DG_URI); + CPPUNIT_ASSERT_EQUAL(0, res); + + res = h.verify(); + CPPUNIT_ASSERT_EQUAL(0, res); + + res = h.createInstance(); + CPPUNIT_ASSERT_EQUAL(0, res); + + const char config_fmt[] = + "\n" + " %s\n" + " %s\n" + " %s\n" + " %f\n" + " %f\n" + " %s\n" + " %f\n" + " %s\n" + ""; + + const char drumkitfile[] = "kit/kit1.xml"; + const char midimapfile[] = "kit/midimap.xml"; + bool enable_velocity_modifier = true; + float velocity_modifier_falloff = 0.5; + float velocity_modifier_weight = 0.25; + bool enable_velocity_randomiser = false; + float velocity_randomiser_weight = 0.1; + bool enable_resampling = false; + + char config[sizeof(config_fmt) * 2]; + sprintf(config, config_fmt, + drumkitfile, + midimapfile, + enable_velocity_modifier?"true":"false", + velocity_modifier_falloff, + velocity_modifier_weight, + enable_velocity_randomiser?"true":"false", + velocity_randomiser_weight, + enable_resampling?"true":"false"); + + res = h.loadConfig(config, strlen(config)); + CPPUNIT_ASSERT_EQUAL(0, res); + + // run for 1 samples to trigger kit loading + res = h.run(1); + CPPUNIT_ASSERT_EQUAL(0, res); + sleep(1); // wait for kit to get loaded (async), + + res = h.run(100); + CPPUNIT_ASSERT_EQUAL(0, res); + + res = h.destroyInstance(); + CPPUNIT_ASSERT_EQUAL(0, res); + + res = h.close(); + CPPUNIT_ASSERT_EQUAL(0, res); + } + + void run_no_output_ports_connected() + { + int res; + + LV2TestHost h(LV2_PATH); + + res = h.open(DG_URI); + CPPUNIT_ASSERT_EQUAL(0, res); + + res = h.verify(); + CPPUNIT_ASSERT_EQUAL(0, res); + + res = h.createInstance(); + CPPUNIT_ASSERT_EQUAL(0, res); + + const char config_fmt[] = + "\n" + " %s\n" + " %s\n" + " %s\n" + " %f\n" + " %f\n" + " %s\n" + " %f\n" + " %s\n" + ""; + + const char drumkitfile[] = "kit/kit1.xml"; + const char midimapfile[] = "kit/midimap.xml"; + bool enable_velocity_modifier = true; + float velocity_modifier_falloff = 0.5; + float velocity_modifier_weight = 0.25; + bool enable_velocity_randomiser = false; + float velocity_randomiser_weight = 0.1; + bool enable_resampling = false; + + char config[sizeof(config_fmt) * 2]; + sprintf(config, config_fmt, + drumkitfile, + midimapfile, + enable_velocity_modifier?"true":"false", + velocity_modifier_falloff, + velocity_modifier_weight, + enable_velocity_randomiser?"true":"false", + velocity_randomiser_weight, + enable_resampling?"true":"false"); + + res = h.loadConfig(config, strlen(config)); + CPPUNIT_ASSERT_EQUAL(0, res); + + // Port buffers: + char sequence_buffer[4096]; + + LV2TestHost::Sequence seq(sequence_buffer, sizeof(sequence_buffer)); + res = h.connectPort(0, seq.data()); + CPPUNIT_ASSERT_EQUAL(0, res); + + // run for 1 samples to trigger kit loading + res = h.run(1); + CPPUNIT_ASSERT_EQUAL(0, res); + sleep(1); // wait for kit to get loaded (async), + + seq.addMidiNote(5, 1, 127); + res = h.run(100); + CPPUNIT_ASSERT_EQUAL(0, res); + + res = h.destroyInstance(); + CPPUNIT_ASSERT_EQUAL(0, res); + + res = h.close(); + CPPUNIT_ASSERT_EQUAL(0, res); + } + + void test1() + { + int res; + + LV2TestHost h(LV2_PATH); + + res = h.open(DG_URI); + CPPUNIT_ASSERT_EQUAL(0, res); + + res = h.verify(); + CPPUNIT_ASSERT_EQUAL(0, res); + + res = h.createInstance(); + CPPUNIT_ASSERT_EQUAL(0, res); + + const char config_fmt[] = + "\n" + " %s\n" + " %s\n" + " %s\n" + " %f\n" + " %f\n" + " %s\n" + " %f\n" + " %s\n" + ""; + + const char drumkitfile[] = "kit/kit1.xml"; + const char midimapfile[] = "kit/midimap.xml"; + bool enable_velocity_modifier = true; + float velocity_modifier_falloff = 0.5; + float velocity_modifier_weight = 0.25; + bool enable_velocity_randomiser = false; + float velocity_randomiser_weight = 0.1; + bool enable_resampling = false; + + char config[sizeof(config_fmt) * 2]; + sprintf(config, config_fmt, + drumkitfile, + midimapfile, + enable_velocity_modifier?"true":"false", + velocity_modifier_falloff, + velocity_modifier_weight, + enable_velocity_randomiser?"true":"false", + velocity_randomiser_weight, + enable_resampling?"true":"false"); + + res = h.loadConfig(config, strlen(config)); + CPPUNIT_ASSERT_EQUAL(0, res); + + // Port buffers: + char sequence_buffer[4096]; + float pcm_buffer[16][10]; + + LV2TestHost::Sequence seq(sequence_buffer, sizeof(sequence_buffer)); + res = h.connectPort(0, seq.data()); + CPPUNIT_ASSERT_EQUAL(0, res); + + for(int i = 1; i <= 16; i++) { + memset(pcm_buffer, 1, sizeof(pcm_buffer)); + res += h.connectPort(i, pcm_buffer[i-1]); + } + CPPUNIT_ASSERT_EQUAL(0, res); + + // run for 1 samples to trigger kit loading + res = h.run(1); + CPPUNIT_ASSERT_EQUAL(0, res); + sleep(1); // wait for kit to get loaded (async), + + seq.addMidiNote(5, 1, 127); + for(int i = 0; i < 10; i++) { + res = h.run(10); + CPPUNIT_ASSERT_EQUAL(0, res); + + /* + printf("Iteration:\n"); + for(int k = 0; k < 4; k++) { + printf("#%d ", k); + for(int j = 0; j < 10; j++) printf("[%f]", pcm_buffer[k][j]); + printf("\n"); + } + printf("\n"); + */ + + seq.clear(); + } + + + seq.addMidiNote(5, 1, 127); + res = h.run(10); + CPPUNIT_ASSERT_EQUAL(0, res); + + /* + printf("Iteration:\n"); + for(int k = 0; k < 4; k++) { + printf("#%d ", k); + for(int j = 0; j < 10; j++) printf("[%f]", pcm_buffer[k][j]); + printf("\n"); + } + printf("\n"); + */ + + union { + float f; + unsigned int u; + } comp_val; + + comp_val.u = 1040744448; // floating point value 0.133301.... + + for(int k = 0; k < 4; k++) { + for(int j = 0; j < 10; j++) { + CPPUNIT_ASSERT_EQUAL(((j==0)?comp_val.f:0), pcm_buffer[k][j]); + } + } + seq.clear(); + + res = h.destroyInstance(); + CPPUNIT_ASSERT_EQUAL(0, res); + + res = h.close(); + CPPUNIT_ASSERT_EQUAL(0, res); + } }; // Registers the fixture into the 'registry' -- cgit v1.2.3