summaryrefslogtreecommitdiff
path: root/test/src
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2016-06-03 18:05:04 +0200
committerKonstantin Käfer <mail@kkaefer.com>2016-08-05 11:42:22 +0200
commit692fe1f3ffc8f4364b39c14aa7d90cec2ff5c0a6 (patch)
tree1d08af7d56e986dba2b548ff9b9a7e1a77c713ed /test/src
parente3ee55b28d0b230d054c9718f79a1f6d685cd62b (diff)
downloadqtlocation-mapboxgl-692fe1f3ffc8f4364b39c14aa7d90cec2ff5c0a6.tar.gz
[build] switch to CMake
This is very much a work in progress.
Diffstat (limited to 'test/src')
-rw-r--r--test/src/main.cpp15
-rw-r--r--test/src/mbgl/test/util.cpp17
-rw-r--r--test/src/mbgl/test/util.hpp2
3 files changed, 30 insertions, 4 deletions
diff --git a/test/src/main.cpp b/test/src/main.cpp
index a481dc5dc3..d01cf75ffc 100644
--- a/test/src/main.cpp
+++ b/test/src/main.cpp
@@ -1,5 +1,20 @@
#include <mbgl/test.hpp>
+#include <unistd.h>
+#include <cstring>
+#include <cerrno>
+#include <cstdio>
+
+#define xstr(s) str(s)
+#define str(s) #s
int main(int argc, char *argv[]) {
+#ifdef WORK_DIRECTORY
+ const int result = chdir(xstr(WORK_DIRECTORY));
+ if (result != 0) {
+ fprintf(stderr, "failed to change directory: %s\n", strerror(errno));
+ return errno;
+ }
+#endif
+
return mbgl::runTests(argc, argv);
}
diff --git a/test/src/mbgl/test/util.cpp b/test/src/mbgl/test/util.cpp
index 4021fd89b1..393d65b667 100644
--- a/test/src/mbgl/test/util.cpp
+++ b/test/src/mbgl/test/util.cpp
@@ -14,10 +14,17 @@
#include <unistd.h>
+#ifndef NODE_EXECUTABLE
+#define NODE_EXECUTABLE node
+#endif
+
+#define xstr(s) str(s)
+#define str(s) #s
+
namespace mbgl {
namespace test {
-Server::Server(const char* executable) {
+Server::Server(const char* script) {
int input[2];
int output[2];
@@ -48,14 +55,18 @@ Server::Server(const char* executable) {
close(output[1]);
close(output[0]);
+ const char* executable = xstr(NODE_EXECUTABLE);
+
+ fprintf(stderr, "executable: %s\n", executable);
+
// Launch the actual server process.
- int ret = execl(executable, executable, nullptr);
+ int ret = execl(executable, executable, script, nullptr);
// This call should not return. In case execl failed, we exit anyway.
if (ret < 0) {
Log::Error(Event::Setup, "Failed to start server: %s", strerror(errno));
}
- exit(0);
+ abort();
} else {
// This is the parent process.
diff --git a/test/src/mbgl/test/util.hpp b/test/src/mbgl/test/util.hpp
index 30108a8866..66499c6fd6 100644
--- a/test/src/mbgl/test/util.hpp
+++ b/test/src/mbgl/test/util.hpp
@@ -59,7 +59,7 @@ namespace test {
class Server {
public:
- Server(const char* executable);
+ Server(const char* script);
~Server();
private: