summaryrefslogtreecommitdiff
path: root/test/testmain.cc
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2021-10-31 16:02:19 +0100
committerBent Bisballe Nyeng <deva@aasimon.org>2021-10-31 16:02:19 +0100
commit463f0740e1731c15917ffdb3e2f4b3f4c83aa024 (patch)
treeec733f3744009834901d61b0fc52aafd354df5d7 /test/testmain.cc
parent406e1b1eeb2a760c0b89ff141a183c78d113a5e4 (diff)
Change to testdir before executing tests and add global paths variables for easier path testing inside the unit-tests.
Diffstat (limited to 'test/testmain.cc')
-rw-r--r--test/testmain.cc36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/testmain.cc b/test/testmain.cc
new file mode 100644
index 0000000..db8e22c
--- /dev/null
+++ b/test/testmain.cc
@@ -0,0 +1,36 @@
+// -*- c++ -*-
+// Distributed under the BSD 2-Clause License.
+// See accompanying file LICENSE for details.
+#define uUNIT_MAIN
+#include "uunit.h"
+
+#include <fstream>
+#include <string>
+#include <filesystem>
+
+namespace paths
+{
+std::string argv_0;
+std::filesystem::path top_srcdir;
+std::filesystem::path top_builddir;
+std::filesystem::path testdir;
+}
+
+int main(int argc, char* argv[])
+{
+ (void)argc;
+
+ paths::argv_0 = argv[0];
+
+ auto cur = std::filesystem::current_path();
+ paths::testdir = std::filesystem::path(paths::argv_0).parent_path();
+ // assuming <builddir>/test
+ paths::top_builddir = paths::testdir.parent_path();
+ paths::top_srcdir = std::filesystem::relative(cur, paths::testdir);
+
+ std::filesystem::current_path(paths::testdir);
+
+ std::ofstream xmlfile;
+ xmlfile.open("result_" OUTPUT ".xml");
+ return uUnit::runTests(xmlfile);
+}