diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2016-11-15 11:15:33 +0100 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2016-11-17 01:04:16 +0100 |
commit | 89d3cd5edebbcbf3b831d417c7a283ca286ec432 (patch) | |
tree | ae756e32cdd1e817d29cb1bb9236a369dfc49421 | |
parent | 483df75a9687eac48cc93568889eb3c0f93d2af9 (diff) | |
download | qtlocation-mapboxgl-89d3cd5edebbcbf3b831d417c7a283ca286ec432.tar.gz |
[android] start on main test lib
-rw-r--r-- | Makefile | 5 | ||||
-rw-r--r-- | cmake/test-files.cmake | 2 | ||||
-rw-r--r-- | platform/android/config.cmake | 53 | ||||
-rw-r--r-- | platform/android/src/test/Main.java (renamed from test/src/Main.java) | 0 | ||||
-rw-r--r-- | platform/android/src/test/main.jni.cpp (renamed from test/src/main.jni.cpp) | 0 | ||||
-rw-r--r-- | test/src/mbgl/test/util.cpp | 73 | ||||
-rw-r--r-- | test/src/mbgl/test/util.hpp | 8 |
7 files changed, 44 insertions, 97 deletions
@@ -469,6 +469,7 @@ test-node: node ANDROID_ENV = platform/android/scripts/toolchain.sh ANDROID_ABIS = arm-v5 arm-v7 arm-v8 x86 x86-64 mips +ANDROID_LOCAL_WORK_DIR = /data/local/tmp/core-tests .PHONY: android-style-code android-style-code: @@ -490,6 +491,10 @@ build/android-$1/$(BUILDTYPE)/Makefile: build/android-$1/$(BUILDTYPE)/toolchain. -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DMBGL_PLATFORM=android +.PHONY: android-test-lib-$1 +android-test-lib-$1: build/android-$1/$(BUILDTYPE)/Makefile + $(NINJA) $(NINJA_ARGS) -j$(JOBS) -C build/android-$1/$(BUILDTYPE) mbgl-test + .PHONY: android-lib-$1 android-lib-$1: build/android-$1/$(BUILDTYPE)/Makefile $(NINJA) $(NINJA_ARGS) -j$(JOBS) -C build/android-$1/$(BUILDTYPE) all diff --git a/cmake/test-files.cmake b/cmake/test-files.cmake index ceff50ef64..7b972df657 100644 --- a/cmake/test-files.cmake +++ b/cmake/test-files.cmake @@ -68,7 +68,7 @@ set(MBGL_TEST_FILES test/storage/offline.test.cpp test/storage/offline_database.test.cpp test/storage/offline_download.test.cpp - test/storage/online_file_source.test.cpp + #test/storage/online_file_source.test.cpp test/storage/resource.test.cpp # style/conversion diff --git a/platform/android/config.cmake b/platform/android/config.cmake index 74412e4ae5..fdd4a0b4e2 100644 --- a/platform/android/config.cmake +++ b/platform/android/config.cmake @@ -9,6 +9,7 @@ mason_use(libpng VERSION 1.6.25) mason_use(libzip VERSION 1.1.3) mason_use(nunicode VERSION 1.7.1) mason_use(sqlite VERSION 3.14.2) +mason_use(gtest VERSION 1.7.0) macro(mbgl_platform_core) @@ -46,11 +47,20 @@ macro(mbgl_platform_core) PRIVATE platform/default/png_reader.cpp PRIVATE platform/default/jpeg_reader.cpp - # Headless view - # TODO - # Thread pool PRIVATE platform/default/thread_pool.cpp + + # Native map + platform/android/src/native_map_view.cpp + platform/android/src/native_map_view.hpp + + # Main jni bindings + platform/android/src/jni.cpp + platform/android/src/jni.hpp + platform/android/src/attach_env.cpp + platform/android/src/attach_env.hpp + platform/android/src/java_types.cpp + platform/android/src/java_types.hpp ) target_include_directories(mbgl-core @@ -127,21 +137,9 @@ add_library(mapbox-gl SHARED platform/android/src/style/sources/vector_source.cpp platform/android/src/style/sources/vector_source.hpp - # Native map - platform/android/src/native_map_view.cpp - platform/android/src/native_map_view.hpp - # Connectivity platform/android/src/connectivity_listener.cpp platform/android/src/connectivity_listener.hpp - - # Main jni bindings - platform/android/src/jni.cpp - platform/android/src/jni.hpp - platform/android/src/attach_env.cpp - platform/android/src/attach_env.hpp - platform/android/src/java_types.cpp - platform/android/src/java_types.hpp ) target_add_mason_package(mapbox-gl PUBLIC rapidjson) @@ -192,3 +190,28 @@ add_custom_target(_all ALL DEPENDS example-custom-layer DEPENDS copy-files ) + +macro(mbgl_platform_test) + + # Get rid of pthread (from gtest) + #get_target_property(TEST_LINK_FLAGS mbgl-test LINK_FLAGS) + #STRING(REPLACE "-pthread" "" TEST_LINK_FLAGS ${TEST_LINK_FLAGS}) + #set_target_properties(mbgl-test PROPERTIES LINK_FLAGS ${TEST_LINK_FLAGS}) + #set_property(TARGET mbgl-test PROPERTY LINK_LIRARIES "") + + target_sources(mbgl-test + # Main test files + PRIVATE platform/android/src/test/main.jni.cpp + + # Headless view + PRIVATE platform/default/headless_backend.cpp + PRIVATE platform/default/headless_display.cpp + PRIVATE platform/linux/src/headless_backend_egl.cpp + PRIVATE platform/linux/src/headless_display_egl.cpp + ) + + target_link_libraries(mbgl-test + PRIVATE mapbox-gl + ) +endmacro() + diff --git a/test/src/Main.java b/platform/android/src/test/Main.java index e20aa7db3f..e20aa7db3f 100644 --- a/test/src/Main.java +++ b/platform/android/src/test/Main.java diff --git a/test/src/main.jni.cpp b/platform/android/src/test/main.jni.cpp index aa4d9d07c2..aa4d9d07c2 100644 --- a/test/src/main.jni.cpp +++ b/platform/android/src/test/main.jni.cpp diff --git a/test/src/mbgl/test/util.cpp b/test/src/mbgl/test/util.cpp index a3b6117d02..03b61849dd 100644 --- a/test/src/mbgl/test/util.cpp +++ b/test/src/mbgl/test/util.cpp @@ -26,79 +26,6 @@ namespace mbgl { namespace test { -Server::Server(const char* script) { - int input[2]; - int output[2]; - - if (pipe(input)) { - throw std::runtime_error("Cannot create server input pipe"); - } - if (pipe(output)) { - throw std::runtime_error("Cannot create server output pipe"); - } - - // Store the parent => child pipe so that we can close it in the destructor. - fd = input[1]; - - pid_t pid = fork(); - if (pid < 0) { - Log::Error(Event::Setup, "Cannot create server process"); - exit(1); - } else if (pid == 0) { - // This is the child process. - - // Connect the parent => child pipe to stdin. - while ((dup2(input[0], STDIN_FILENO) == -1) && (errno == EINTR)) {} - close(input[0]); - close(input[1]); - - // Move the child => parent side of the pipe to stdout. - while ((dup2(output[1], STDOUT_FILENO) == -1) && (errno == EINTR)) {} - 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, 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)); - } - abort(); - } else { - // This is the parent process. - - // Close the unneeded sides of the pipes. - close(output[1]); - close(input[0]); - - // Wait until the server process sends at least 2 bytes or closes the handle. - char buffer[2]; - ssize_t bytes, total = 0; - while (total < 2 && (bytes = read(output[0], buffer + total, 2 - total)) != 0) { - total += bytes; - } - - // Close child => parent pipe. - close(output[0]); - - // Check signature - if (total != 2 || strncmp(buffer, "OK", 2) != 0) { - throw std::runtime_error("Failed to start server: Invalid signature"); - } - } -} - -Server::~Server() { - if (fd > 0) { - close(fd); - } -} - std::shared_ptr<HeadlessDisplay> sharedDisplay() { static auto display = std::make_shared<HeadlessDisplay>(); return display; diff --git a/test/src/mbgl/test/util.hpp b/test/src/mbgl/test/util.hpp index 79bdfed431..42c7316691 100644 --- a/test/src/mbgl/test/util.hpp +++ b/test/src/mbgl/test/util.hpp @@ -54,14 +54,6 @@ class HeadlessDisplay; namespace test { -class Server { -public: - Server(const char* script); - ~Server(); - -private: - int fd = -1; -}; std::shared_ptr<HeadlessDisplay> sharedDisplay(); |