Improve coverage of evoral tests

This commit is contained in:
David Robillard 2016-12-04 15:40:21 -05:00
parent 9dbc524060
commit 1438191938
2 changed files with 35 additions and 0 deletions

View file

@ -39,9 +39,14 @@ SMFTest::takeFiveTest ()
TestSMF smf;
string testdata_path;
CPPUNIT_ASSERT (find_file (test_search_path (), "TakeFive.mid", testdata_path));
CPPUNIT_ASSERT (SMF::test(testdata_path));
smf.open(testdata_path);
CPPUNIT_ASSERT(!smf.is_empty());
CPPUNIT_ASSERT_EQUAL((uint16_t)1, smf.num_tracks());
CPPUNIT_ASSERT_EQUAL(0, smf.seek_to_track(1));
seq->start_write();
smf.seek_to_start();
@ -68,3 +73,31 @@ SMFTest::takeFiveTest ()
Evoral::Beats::ticks_at_rate(time, smf.ppqn()));
CPPUNIT_ASSERT(!seq->empty());
}
void
SMFTest::writeTest ()
{
TestSMF smf;
string testdata_path;
CPPUNIT_ASSERT (find_file (test_search_path (), "TakeFive.mid", testdata_path));
smf.open(testdata_path);
CPPUNIT_ASSERT(!smf.is_empty());
TestSMF out;
const string output_dir_path = PBD::tmp_writable_directory (PACKAGE, "writeTest");
const string new_file_path = Glib::build_filename (output_dir_path, "TakeFiveCopy.mid");
CPPUNIT_ASSERT_EQUAL (0, out.create(new_file_path, 1, 1920));
out.begin_write();
uint32_t delta_t = 0;
uint32_t size = 0;
uint8_t* buf = NULL;
while (smf.read_event(&delta_t, &size, &buf) >= 0) {
out.append_event_delta(delta_t, size, buf, 0);
}
out.end_write(new_file_path);
// TODO: Check files are actually equivalent
}

View file

@ -54,6 +54,7 @@ class SMFTest : public CppUnit::TestFixture
CPPUNIT_TEST_SUITE(SMFTest);
CPPUNIT_TEST(createNewFileTest);
CPPUNIT_TEST(takeFiveTest);
CPPUNIT_TEST(writeTest);
CPPUNIT_TEST_SUITE_END();
public:
@ -73,6 +74,7 @@ public:
void createNewFileTest();
void takeFiveTest();
void writeTest();
private:
DummyTypeMap* type_map;