Detect libsmf error and throw exceptions.
[ardour.git] / libs / evoral / test / SMFTest.hpp
1 #include <cppunit/TestFixture.h>
2 #include <cppunit/extensions/HelperMacros.h>
3
4 #include <evoral/LibSMF.hpp>
5
6 #include "SequenceTest.hpp"
7
8 #include <sigc++/sigc++.h>
9
10 #include <cassert>
11
12 using namespace Evoral;
13
14 template<typename Time>
15 class TestSMF : public LibSMF<Time> {
16 public:
17         int open(const std::string& path) THROW_FILE_ERROR {
18                 return LibSMF<Time>::open(path);
19         }
20         
21         int read_event(uint32_t* delta_t, uint32_t* size, uint8_t** buf) const {
22                 return LibSMF<Time>::read_event(delta_t, size, buf);
23         }
24 };
25
26 class SMFTest : public CppUnit::TestFixture
27 {
28     CPPUNIT_TEST_SUITE (SMFTest);
29     CPPUNIT_TEST (takeFiveTest);
30     CPPUNIT_TEST_SUITE_END ();
31
32     public:
33     
34         typedef double Time;
35         
36         void setUp (void) { 
37            type_map = new DummyTypeMap();
38            assert(type_map);
39            seq = new MySequence<Time>(*type_map, 0);
40            assert(seq);
41         }
42         
43         void tearDown (void) {
44                 delete seq;
45                 delete type_map;
46         }
47
48         void takeFiveTest (void);
49
50     private:
51         DummyTypeMap*       type_map;
52         MySequence<Time>*   seq;
53 };