theoretically: "Add new_test_output_dir to common libardour test" but actually featur...
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 11 Jul 2013 15:07:13 +0000 (11:07 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 11 Jul 2013 15:07:13 +0000 (11:07 -0400)
libs/ardour/test/test_common.cc [new file with mode: 0644]
libs/ardour/test/test_common.h [new file with mode: 0644]

diff --git a/libs/ardour/test/test_common.cc b/libs/ardour/test/test_common.cc
new file mode 100644 (file)
index 0000000..8364d91
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+    Copyright (C) 2011 Tim Mayberry
+
+    This program is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the Free
+    Software Foundation; either version 2 of the License, or (at your option)
+    any later version.
+
+    This program is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include <sstream>
+
+#include <glibmm/fileutils.h>
+#include <glibmm/miscutils.h>
+
+#include "test_common.h"
+
+using namespace std;
+
+PBD::SearchPath
+test_search_path ()
+{
+#ifdef WIN32
+       std::string wsp(g_win32_get_package_installation_directory_of_module(NULL));
+       return Glib::build_filename (wsp, "ardour_testdata");
+#else
+       return Glib::getenv("ARDOUR_TEST_PATH");
+#endif
+}
+
+std::string
+new_test_output_dir ()
+{
+       std::string tmp_dir = Glib::build_filename (g_get_tmp_dir(), "ardour_test");
+       std::string dir_name;
+       std::string new_test_dir;
+       do {
+               ostringstream oss;
+               oss << g_random_int ();
+               dir_name = oss.str();
+               new_test_dir = Glib::build_filename (tmp_dir, dir_name);
+               if (Glib::file_test (new_test_dir, Glib::FILE_TEST_EXISTS)) continue;
+       } while (g_mkdir_with_parents (new_test_dir.c_str(), 0755) != 0);
+       return new_test_dir;
+}
diff --git a/libs/ardour/test/test_common.h b/libs/ardour/test/test_common.h
new file mode 100644 (file)
index 0000000..9e15458
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+    Copyright (C) 2011 Tim Mayberry
+
+    This program is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the Free
+    Software Foundation; either version 2 of the License, or (at your option)
+    any later version.
+
+    This program is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#ifndef ARDOUR_TEST_COMMON_H
+#define ARDOUR_TEST_COMMON_H
+
+#include "pbd/search_path.h"
+
+PBD::SearchPath test_search_path ();
+
+std::string new_test_output_dir ();
+
+#endif