summaryrefslogtreecommitdiff
path: root/test/src/mbgl/test/util.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/src/mbgl/test/util.hpp')
-rw-r--r--test/src/mbgl/test/util.hpp80
1 files changed, 80 insertions, 0 deletions
diff --git a/test/src/mbgl/test/util.hpp b/test/src/mbgl/test/util.hpp
new file mode 100644
index 0000000000..f778679cb8
--- /dev/null
+++ b/test/src/mbgl/test/util.hpp
@@ -0,0 +1,80 @@
+#ifndef MBGL_TEST_UTIL
+#define MBGL_TEST_UTIL
+
+#ifdef __APPLE__
+#include <TargetConditionals.h>
+#endif
+
+#if TARGET_OS_IOS
+#define TEST_READ_ONLY 1
+#define TEST_HAS_SERVER 0
+#else
+#define TEST_READ_ONLY 0
+#define TEST_HAS_SERVER 1
+#endif
+
+#if TARGET_OS_SIMULATOR
+#define TEST_IS_SIMULATOR 1
+#else
+#define TEST_IS_SIMULATOR 0
+#endif
+
+#if !TEST_IS_SIMULATOR
+#define TEST_REQUIRES_ACCURATE_TIMING(name) name
+#else
+#define TEST_REQUIRES_ACCURATE_TIMING(name) DISABLED_ ## name
+#endif
+
+#if !TEST_READ_ONLY
+#define TEST_REQUIRES_WRITE(name) name
+#else
+#define TEST_REQUIRES_WRITE(name) DISABLED_ ## name
+#endif
+
+#if TEST_HAS_SERVER
+#define TEST_REQUIRES_SERVER(name) name
+#else
+#define TEST_REQUIRES_SERVER(name) DISABLED_ ## name
+#endif
+
+#include <mbgl/util/image.hpp>
+#include <mbgl/util/chrono.hpp>
+
+#include <cstdint>
+
+#include <gtest/gtest.h>
+
+#define SCOPED_TEST(name) \
+ static class name { \
+ bool completed = false; \
+ public: \
+ void finish() { EXPECT_FALSE(completed) << #name " was already completed."; completed = true; } \
+ ~name() { if (!completed) ADD_FAILURE() << #name " didn't complete."; } \
+ } name;
+
+namespace mbgl {
+
+class Map;
+
+namespace test {
+
+class Server {
+public:
+ Server(const char* executable);
+ ~Server();
+
+private:
+ int fd = -1;
+};
+
+PremultipliedImage render(Map&);
+
+void checkImage(const std::string& base,
+ const PremultipliedImage& actual,
+ double imageThreshold = 0,
+ double pixelThreshold = 0);
+
+}
+}
+
+#endif