diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2016-06-23 16:39:27 +0200 |
---|---|---|
committer | Ivo van Dongen <info@ivovandongen.nl> | 2016-07-07 10:08:43 +0200 |
commit | a09fb9526ad16ba9168c04950cbd656ec3ec8202 (patch) | |
tree | 276bfcb569a061deb11462da8610da624027ac1a | |
parent | 32dcb34fc1dc733419c0f60918e74a734c7ee0bd (diff) | |
download | qtlocation-mapboxgl-a09fb9526ad16ba9168c04950cbd656ec3ec8202.tar.gz |
[android] #5456 - initial setup with a shared test lib and a main class. Does not link properly
-rw-r--r-- | Makefile | 18 | ||||
-rw-r--r-- | platform/android/platform.gyp | 36 | ||||
-rw-r--r-- | platform/android/scripts/configure.sh | 2 | ||||
-rw-r--r-- | test/src/Main.java | 8 | ||||
-rw-r--r-- | test/src/main.jni.cpp | 20 | ||||
-rw-r--r-- | test/src/mbgl/test/util.hpp | 6 | ||||
-rw-r--r-- | test/test.gypi | 69 |
7 files changed, 85 insertions, 74 deletions
@@ -178,7 +178,11 @@ build/android-$1/Makefile: platform/android/platform.gyp build/android-$1/config android-lib-$1: build/android-$1/Makefile $$(shell $(ANDROID_ENV) $1) $(MAKE) -j$(JOBS) -C build/android-$1 all -android-$1: android-lib-$1 +test-android-$1: node_modules android-lib-$1 + $$(shell $(ANDROID_ENV) $1) $(MAKE) -j$(JOBS) -C build/android-$1 test + +android-lib-$1: build/android-$1/Makefile + $$(shell $(ANDROID_ENV) $1) $(MAKE) -j$(JOBS) -C build/android-$1 all cd platform/android && ./gradlew --parallel --max-workers=$(JOBS) assemble$(BUILDTYPE) apackage: android-lib-$1 @@ -188,12 +192,20 @@ $(foreach abi,$(ANDROID_ABIS),$(eval $(call ANDROID_RULES,$(abi)))) android: android-arm-v7 -test-android: - cd platform/android && ./gradlew testReleaseUnitTest --continue +test-android: test-android-arm-v7 +#TODO Decide where to place the class files and other tmp outputs + javac -sourcepath test/src -d build -source 1.7 -target 1.7 test/src/Main.java + cd build && dx --dex --output=test.jar Main.class + adb push build/test.jar /data/local/tmp/ + adb shell "LD_LIBRARY_PATH=/data/local/tmp dalvikvm -cp /data/local/tmp/test.jar Main" + #cd platform/android && ./gradlew testReleaseUnitTest --continue apackage: cd platform/android && ./gradlew --parallel-threads=$(JOBS) assemble$(BUILDTYPE) +#test-android-arm-v7: node_modules android-lib-arm-v7 +# $$(shell $(ANDROID_ENV) arm-v7) $(MAKE) -j$(JOBS) -C build/android-arm-v7 test + #### Node targets ##################################################### NODE_PRE_GYP = $(shell npm bin)/node-pre-gyp diff --git a/platform/android/platform.gyp b/platform/android/platform.gyp index 964492a21e..34524408da 100644 --- a/platform/android/platform.gyp +++ b/platform/android/platform.gyp @@ -6,6 +6,7 @@ }, 'includes': [ '../../mbgl.gypi', + '../../test/test.gypi', ], 'targets': [ { @@ -114,6 +115,7 @@ 'dependencies': [ 'platform-lib', 'example-custom-layer-lib', + 'test', ], 'variables': { @@ -147,5 +149,39 @@ } ], }, + { + 'target_name': 'test', + 'product_name': 'test-jni-lib', + 'type': 'shared_library', + 'hard_dependency': 1, + + 'dependencies': [ + 'test-lib', + 'platform-lib', + ], + + 'cflags_cc': [ + '<@(jni.hpp_cflags)', + ], + + 'link_settings': { + 'libraries': [ + '-llog', + '-landroid', + '-lEGL', + '-lGLESv2', + '-lstdc++', + '-latomic', + ], + }, + + 'sources': [ + '../../test/src/main.jni.cpp', + ], + + 'include_dirs': [ + '../../include', + ], + }, ], } diff --git a/platform/android/scripts/configure.sh b/platform/android/scripts/configure.sh index a9a5b25ff7..89ff6b6d3e 100644 --- a/platform/android/scripts/configure.sh +++ b/platform/android/scripts/configure.sh @@ -16,5 +16,7 @@ VARIANT_VERSION=1.1.0 RAPIDJSON_VERSION=1.0.2 JNI_HPP_VERSION=2.0.0 EARCUT_VERSION=0.11 +GTEST_VERSION=1.7.0 +PIXELMATCH_VERSION=0.9.0 export MASON_ANDROID_ABI=${MASON_PLATFORM_VERSION} diff --git a/test/src/Main.java b/test/src/Main.java new file mode 100644 index 0000000000..7cb601f365 --- /dev/null +++ b/test/src/Main.java @@ -0,0 +1,8 @@ +public class Main { + public native void run(); + + public static void main(String[] args) { + System.loadLibrary("test-lib"); + new Main().run(); + } +} diff --git a/test/src/main.jni.cpp b/test/src/main.jni.cpp new file mode 100644 index 0000000000..0e74698654 --- /dev/null +++ b/test/src/main.jni.cpp @@ -0,0 +1,20 @@ +#include <jni/jni.hpp> +#include <mbgl/test.hpp> + +#pragma clang diagnostic ignored "-Wunused-parameter" + +void runAllTests(JNIEnv *env, jni::jobject* obj) { + mbgl::runTests(0, nullptr); +} + +extern "C" JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *reserved) { + struct Main { static constexpr auto Name() { return "Main"; } }; + + jni::JNIEnv& env = jni::GetEnv(*vm, jni::jni_version_1_6); + + #define MAKE_NATIVE_METHOD(name, sig) jni::MakeNativeMethod<decltype(name), name>( #name, sig ) + //jni::jclass mainClass = jni::Class<Main>::Find(env); + jni::RegisterNatives(env, jni::Class<Main>::Find(env), MAKE_NATIVE_METHOD(runAllTests, "()V")); + + return JNI_VERSION_1_6; +} diff --git a/test/src/mbgl/test/util.hpp b/test/src/mbgl/test/util.hpp index 30108a8866..85574cb70b 100644 --- a/test/src/mbgl/test/util.hpp +++ b/test/src/mbgl/test/util.hpp @@ -4,13 +4,9 @@ #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 diff --git a/test/test.gypi b/test/test.gypi index 304e0e9730..52896379e7 100644 --- a/test/test.gypi +++ b/test/test.gypi @@ -18,74 +18,11 @@ ], 'sources': [ - 'util/async_task.cpp', - 'util/geo.cpp', - 'util/image.cpp', - 'util/mapbox.cpp', - 'util/memory.cpp', - 'util/merge_lines.cpp', - 'util/run_loop.cpp', - 'util/number_conversions.cpp', - 'util/text_conversions.cpp', - 'util/thread.cpp', - 'util/thread_local.cpp', - 'util/tile_cover.cpp', - 'util/timer.cpp', - 'util/token.cpp', - 'util/work_queue.cpp', - 'util/projection.cpp', - 'algorithm/covered_by_children.cpp', 'algorithm/generate_clip_ids.cpp', 'algorithm/mock.hpp', 'algorithm/update_renderables.cpp', - 'api/annotations.cpp', - 'api/api_misuse.cpp', - 'api/repeated_render.cpp', - 'api/render_missing.cpp', - 'api/set_style.cpp', - 'api/custom_layer.cpp', - - 'geometry/binpack.cpp', - - 'gl/object.cpp', - - 'map/map.cpp', - 'map/transform.cpp', - - 'math/minmax.cpp', - 'math/clamp.cpp', - - 'text/quads.cpp', - - 'tile/geometry_tile_data.cpp', - 'tile/tile_id.cpp', - - 'storage/offline.cpp', - 'storage/offline_database.cpp', - 'storage/offline_download.cpp', - 'storage/asset_file_source.cpp', - 'storage/default_file_source.cpp', - 'storage/http_file_source.cpp', - 'storage/online_file_source.cpp', - 'storage/headers.cpp', - 'storage/resource.cpp', - - 'style/glyph_store.cpp', - 'style/source.cpp', - 'style/style.cpp', - 'style/style_layer.cpp', - 'style/tile_source.cpp', - 'style/filter.cpp', - 'style/functions.cpp', - 'style/style_parser.cpp', - - 'sprite/sprite_atlas.cpp', - 'sprite/sprite_image.cpp', - 'sprite/sprite_parser.cpp', - 'sprite/sprite_store.cpp', - 'src/mbgl/test/stub_file_source.hpp', 'src/mbgl/test/stub_file_source.cpp', 'src/mbgl/test/util.hpp', @@ -105,11 +42,11 @@ '<@(geojsonvt_cflags)', '<@(rapidjson_cflags)', '<@(pixelmatch_cflags)', - '<@(earcut_cflags)', + '<@(earcut_cflags)' ], 'ldflags': [ - '<@(gtest_ldflags)', - '<@(sqlite_ldflags)', + '-landroid', + '<@(sqlite_ldflags)', ], 'libraries': [ '<@(gtest_static_libs)', |