summaryrefslogtreecommitdiff
path: root/libs/ardour/test
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2015-11-05 14:06:03 +1000
committerTim Mayberry <mojofunk@gmail.com>2015-12-01 15:44:10 +1000
commit44f46d2b0dd0ef0265b823d0126857ec4458345b (patch)
treea53c2e407b3db86d88975df39777826965229bfb /libs/ardour/test
parent7f3118c8fe651c722b48ed3d9f47f998507237be (diff)
Fix broken load-session utility and change it to load and save a session
Rename run-session-tests.sh script to load-save-session.sh and make it operate on only a single session and add a separate load-save-session-collection.sh script Add --massif option to load-save-session.sh script Rename some poorly named variables and add some documentation to the load-save-session.sh script
Diffstat (limited to 'libs/ardour/test')
-rw-r--r--libs/ardour/test/load_save_session.cc121
-rw-r--r--libs/ardour/test/load_session.cc48
2 files changed, 121 insertions, 48 deletions
diff --git a/libs/ardour/test/load_save_session.cc b/libs/ardour/test/load_save_session.cc
new file mode 100644
index 0000000000..ab4573c883
--- /dev/null
+++ b/libs/ardour/test/load_save_session.cc
@@ -0,0 +1,121 @@
+#include "test_util.h"
+
+#include <iostream>
+#include <cstdlib>
+
+#include <glib.h>
+
+#include "pbd/failed_constructor.h"
+#include "pbd/timing.h"
+
+#include "ardour/ardour.h"
+#include "ardour/audioengine.h"
+#include "ardour/session.h"
+
+#include "test_ui.h"
+
+using namespace std;
+using namespace ARDOUR;
+
+static const char* localedir = LOCALEDIR;
+
+static const int sleep_seconds = 2;
+
+static
+void
+pause_for_effect()
+{
+ // It may be useful to pause to make it easier to see what is happening in a
+ // visual tool like massif visualizer
+
+ std::cerr << "pausing for " << sleep_seconds << " seconds" << std::endl;
+
+ g_usleep(sleep_seconds*1000000);
+}
+
+int main (int argc, char* argv[])
+{
+ if (argc != 3) {
+ cerr << "Syntax: " << argv[0] << " <dir> <snapshot-name>\n";
+ exit (EXIT_FAILURE);
+ }
+
+ std::cerr << "ARDOUR::init" << std::endl;
+
+ PBD::Timing ardour_init_timing;
+
+ ARDOUR::init (false, true, localedir);
+ ardour_init_timing.update();
+
+ TestUI* test_ui = new TestUI();
+
+ std::cerr << "ARDOUR::init time : " << ardour_init_timing.elapsed()
+ << " usecs" << std::endl;
+
+ std::cerr << "Creating Dummy backend" << std::endl;
+
+ create_and_start_dummy_backend ();
+
+ std::cerr << "Loading session: " << argv[2] << std::endl;
+
+ PBD::Timing load_session_timing;
+
+ Session* s = 0;
+
+ try {
+ s = load_session (argv[1], argv[2]);
+ } catch (failed_constructor& e) {
+ cerr << "failed_constructor: " << e.what() << "\n";
+ exit (EXIT_FAILURE);
+ } catch (AudioEngine::PortRegistrationFailure& e) {
+ cerr << "PortRegistrationFailure: " << e.what() << "\n";
+ exit (EXIT_FAILURE);
+ } catch (exception& e) {
+ cerr << "exception: " << e.what() << "\n";
+ exit (EXIT_FAILURE);
+ } catch (...) {
+ cerr << "unknown exception.\n";
+ exit (EXIT_FAILURE);
+ }
+
+ load_session_timing.update();
+
+ std::cerr << "Loading session time : " << load_session_timing.elapsed()
+ << " usecs" << std::endl;
+
+ PBD::Timing save_session_timing;
+
+ pause_for_effect ();
+
+ std::cerr << "Saving session: " << argv[2] << std::endl;
+
+ s->save_state("");
+
+ save_session_timing.update();
+
+ std::cerr << "Saving session time : " << save_session_timing.elapsed()
+ << " usecs" << std::endl;
+
+ std::cerr << "AudioEngine::remove_session" << std::endl;
+
+ AudioEngine::instance()->remove_session ();
+
+ PBD::Timing destroy_session_timing;
+
+ delete s;
+
+ destroy_session_timing.update();
+
+ std::cerr << "Destroy session time : " << destroy_session_timing.elapsed()
+ << " usecs" << std::endl;
+
+ AudioEngine::instance()->stop ();
+
+ AudioEngine::destroy ();
+
+ delete test_ui;
+
+ ARDOUR::cleanup ();
+
+ return 0;
+}
diff --git a/libs/ardour/test/load_session.cc b/libs/ardour/test/load_session.cc
deleted file mode 100644
index 41dc48ef2f..0000000000
--- a/libs/ardour/test/load_session.cc
+++ /dev/null
@@ -1,48 +0,0 @@
-#include "test_util.h"
-#include "pbd/failed_constructor.h"
-#include "ardour/ardour.h"
-#include "ardour/audioengine.h"
-#include "ardour/session.h"
-#include <iostream>
-#include <cstdlib>
-
-using namespace std;
-using namespace ARDOUR;
-
-static const char* localedir = LOCALEDIR;
-
-int main (int argc, char* argv[])
-{
- if (argc != 3) {
- cerr << "Syntax: " << argv[0] << " <dir> <snapshot-name>\n";
- exit (EXIT_FAILURE);
- }
-
- ARDOUR::init (false, true, localedir);
-
- Session* s = 0;
-
- try {
- s = load_session (argv[1], argv[2]);
- } catch (failed_constructor& e) {
- cerr << "failed_constructor: " << e.what() << "\n";
- exit (EXIT_FAILURE);
- } catch (AudioEngine::PortRegistrationFailure& e) {
- cerr << "PortRegistrationFailure: " << e.what() << "\n";
- exit (EXIT_FAILURE);
- } catch (exception& e) {
- cerr << "exception: " << e.what() << "\n";
- exit (EXIT_FAILURE);
- } catch (...) {
- cerr << "unknown exception.\n";
- exit (EXIT_FAILURE);
- }
-
- AudioEngine::instance()->remove_session ();
- delete s;
- AudioEngine::instance()->stop ();
-
- AudioEngine::destroy ();
-
- return 0;
-}