summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvo van Dongen <info@ivovandongen.nl>2016-06-23 16:39:27 +0200
committerIvo van Dongen <info@ivovandongen.nl>2016-07-07 10:08:43 +0200
commita09fb9526ad16ba9168c04950cbd656ec3ec8202 (patch)
tree276bfcb569a061deb11462da8610da624027ac1a
parent32dcb34fc1dc733419c0f60918e74a734c7ee0bd (diff)
downloadqtlocation-mapboxgl-a09fb9526ad16ba9168c04950cbd656ec3ec8202.tar.gz
[android] #5456 - initial setup with a shared test lib and a main class. Does not link properly
-rw-r--r--Makefile18
-rw-r--r--platform/android/platform.gyp36
-rw-r--r--platform/android/scripts/configure.sh2
-rw-r--r--test/src/Main.java8
-rw-r--r--test/src/main.jni.cpp20
-rw-r--r--test/src/mbgl/test/util.hpp6
-rw-r--r--test/test.gypi69
7 files changed, 85 insertions, 74 deletions
diff --git a/Makefile b/Makefile
index 7cf6fcc1c0..293dc9a363 100644
--- a/Makefile
+++ b/Makefile
@@ -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)',