Tempo ramps - make ramp test more challenging.
[ardour.git] / libs / ardour / test / audio_engine_test.cc
1 #include <iostream>
2
3 #include <glibmm/timer.h>
4
5 #include "ardour/audioengine.h"
6 #include "ardour/audio_backend.h"
7 #include "ardour/search_paths.h"
8
9 #include "audio_engine_test.h"
10 #include "test_util.h"
11
12 CPPUNIT_TEST_SUITE_REGISTRATION (AudioEngineTest);
13
14 using namespace std;
15 using namespace ARDOUR;
16 using namespace PBD;
17
18 void
19 print_audio_backend_info (AudioBackendInfo const* abi)
20 {
21         cerr << "Audio Backend, name:" << abi->name << endl;
22 }
23
24 void
25 AudioEngineTest::test_backends ()
26 {
27         AudioEngine* engine = AudioEngine::create ();
28
29         CPPUNIT_ASSERT (engine);
30
31         std::vector<AudioBackendInfo const *> backends = engine->available_backends ();
32
33         CPPUNIT_ASSERT (backends.size () != 0);
34
35         for (std::vector<AudioBackendInfo const *>::const_iterator i = backends.begin();
36                 i != backends.end(); ++i) {
37                 print_audio_backend_info(*i);
38         }
39
40         AudioEngine::destroy ();
41 }
42
43 void
44 AudioEngineTest::test_start ()
45 {
46         AudioEngine* engine = AudioEngine::create ();
47
48         CPPUNIT_ASSERT (AudioEngine::instance ());
49
50         boost::shared_ptr<AudioBackend> backend = engine->set_backend ("None (Dummy)", "Unit-Test", "");
51
52         CPPUNIT_ASSERT (backend);
53
54         init_post_engine ();
55
56         CPPUNIT_ASSERT (engine->start () == 0);
57
58         Glib::usleep(2000);
59
60         CPPUNIT_ASSERT (engine->stop () == 0);
61
62         AudioEngine::destroy ();
63 }