summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzmiao <miao.zhao@mapbox.com>2019-10-17 16:07:31 +0300
committerzmiao <miao.zhao@mapbox.com>2019-10-17 16:25:21 +0300
commitc2e3073860a1a22c7814a589053ac97447dea69d (patch)
tree5bd117ab81ab0c28c1e1bc96687c35c16ebaa465
parent3af549ea885e321088875d3e7473806abe1ebe1c (diff)
downloadqtlocation-mapboxgl-upstream/zmiao-render-test-lib.tar.gz
-rw-r--r--next/platform/android/android.cmake18
-rw-r--r--platform/android/src/test/render_test_runner.cpp105
-rwxr-xr-xrender-test/android-test-runner/render_test_setup.sh20
-rw-r--r--render-test/parser.cpp5
-rw-r--r--render-test/render_test_collator.cpp40
-rw-r--r--render-test/render_test_number_format.cpp15
6 files changed, 119 insertions, 84 deletions
diff --git a/next/platform/android/android.cmake b/next/platform/android/android.cmake
index 15f9e9220b..d7f3ee9900 100644
--- a/next/platform/android/android.cmake
+++ b/next/platform/android/android.cmake
@@ -83,10 +83,6 @@ target_sources(
${MBGL_ROOT}/platform/android/src/gson/json_primitive.cpp
${MBGL_ROOT}/platform/android/src/gson/json_primitive.hpp
${MBGL_ROOT}/platform/android/src/http_file_source.cpp
- ${MBGL_ROOT}/platform/android/src/i18n/collator.cpp
- ${MBGL_ROOT}/platform/android/src/i18n/collator_jni.hpp
- ${MBGL_ROOT}/platform/android/src/i18n/number_format.cpp
- ${MBGL_ROOT}/platform/android/src/i18n/number_format_jni.hpp
${MBGL_ROOT}/platform/android/src/image.cpp
${MBGL_ROOT}/platform/android/src/java/util.cpp
${MBGL_ROOT}/platform/android/src/java/util.hpp
@@ -190,12 +186,10 @@ target_sources(
${MBGL_ROOT}/platform/android/src/style/value.hpp
${MBGL_ROOT}/platform/android/src/thread.cpp
${MBGL_ROOT}/platform/android/src/timer.cpp
- ${MBGL_ROOT}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gl/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/map/map_snapshotter.cpp
- ${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/asset_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/default_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_request.cpp
@@ -212,6 +206,11 @@ target_sources(
${MBGL_ROOT}/platform/default/src/mbgl/util/thread_local.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/utf.cpp
${MBGL_ROOT}/platform/linux/src/headless_backend_egl.cpp
+ # These files are added temporarily for enabling running mbgl-render-test-runner on android
+ ${MBGL_ROOT}/render-test/render_test_collator.cpp
+ ${MBGL_ROOT}/render-test/render_test_number_format.cpp
+ ${MBGL_ROOT}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
+ ${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source.cpp
)
target_include_directories(
@@ -239,6 +238,8 @@ target_link_libraries(
add_library(
mapbox-gl SHARED
+ ${MBGL_ROOT}/platform/android/src/main.cpp
+ # These files are added temporarily for enabling running mbgl-render-test-runner on android
${MBGL_ROOT}/platform/android/src/logger.cpp
${MBGL_ROOT}/platform/android/src/logger.hpp
${MBGL_ROOT}/platform/android/src/logging_android.cpp
@@ -246,7 +247,10 @@ add_library(
${MBGL_ROOT}/platform/android/src/text/local_glyph_rasterizer_jni.hpp
${MBGL_ROOT}/platform/android/src/file_source.cpp
${MBGL_ROOT}/platform/android/src/file_source.hpp
- ${MBGL_ROOT}/platform/android/src/main.cpp
+ ${MBGL_ROOT}/platform/android/src/i18n/collator.cpp
+ ${MBGL_ROOT}/platform/android/src/i18n/collator_jni.hpp
+ ${MBGL_ROOT}/platform/android/src/i18n/number_format.cpp
+ ${MBGL_ROOT}/platform/android/src/i18n/number_format_jni.hpp
)
target_link_libraries(
diff --git a/platform/android/src/test/render_test_runner.cpp b/platform/android/src/test/render_test_runner.cpp
index c1ffbc81bf..f132b6b948 100644
--- a/platform/android/src/test/render_test_runner.cpp
+++ b/platform/android/src/test/render_test_runner.cpp
@@ -1,8 +1,8 @@
+#include <android_native_app_glue.h>
+#include <mbgl/render_test.hpp>
#include "jni.hpp"
#include "logger.hpp"
-#include <mbgl/render_test.hpp>
-#include <android_native_app_glue.h>
#include <string>
#include <vector>
@@ -11,94 +11,49 @@
#include <android/log.h>
-
-// Find a class, attempting to load the class if it's not found.
-jclass LoadClass(JNIEnv* env, jobject activity_object, const char* class_name) {
- jclass class_object = env->FindClass(class_name);
- if (env->ExceptionCheck()) {
- env->ExceptionClear();
- // If the class isn't found it's possible NativeActivity is being used by
- // the application which means the class path is set to only load system
- // classes. The following falls back to loading the class using the
- // Activity before retrieving a reference to it.
-// jclass activity_class = env->FindClass("android/app/NativeActivity");
- jclass activity_class = env->GetObjectClass(activity_object);
- jmethodID activity_get_class_loader = env->GetMethodID(
- activity_class, "getClassLoader", "()Ljava/lang/ClassLoader;");
-
- jobject class_loader_object =
- env->CallObjectMethod(activity_object, activity_get_class_loader);
-
- jclass class_loader_class = env->FindClass("java/lang/ClassLoader");
- jmethodID class_loader_load_class =
- env->GetMethodID(class_loader_class, "loadClass",
- "(Ljava/lang/String;)Ljava/lang/Class;");
- jstring class_name_object = env->NewStringUTF(class_name);
-
- class_object = static_cast<jclass>(env->CallObjectMethod(
- class_loader_object, class_loader_load_class, class_name_object));
-
- if (env->ExceptionCheck()) {
- env->ExceptionClear();
- class_object = nullptr;
- }
- env->DeleteLocalRef(class_name_object);
- env->DeleteLocalRef(class_loader_object);
- }
-// return class_object;
-}
-
-
-
-
namespace mbgl {
- namespace {
-
- int severityToPriority(EventSeverity severity) {
- switch(severity) {
- case EventSeverity::Debug:
- return ANDROID_LOG_DEBUG;
-
- case EventSeverity::Info:
- return ANDROID_LOG_INFO;
-
- case EventSeverity::Warning:
- return ANDROID_LOG_WARN;
+namespace {
- case EventSeverity::Error:
- return ANDROID_LOG_ERROR;
+int severityToPriority(EventSeverity severity) {
+ switch (severity) {
+ case EventSeverity::Debug:
+ return ANDROID_LOG_DEBUG;
- default:
- return ANDROID_LOG_VERBOSE;
- }
- }
+ case EventSeverity::Info:
+ return ANDROID_LOG_INFO;
- } // namespace
+ case EventSeverity::Warning:
+ return ANDROID_LOG_WARN;
- void Log::platformRecord(EventSeverity severity, const std::string &msg) {
- __android_log_print(severityToPriority(severity), "mbgl", "%s", msg.c_str());
+ case EventSeverity::Error:
+ return ANDROID_LOG_ERROR;
+ default:
+ return ANDROID_LOG_VERBOSE;
}
+}
+
+} // namespace
+void Log::platformRecord(EventSeverity severity, const std::string& msg) {
+ __android_log_print(severityToPriority(severity), "mbgl", "%s", msg.c_str());
}
+} // namespace mbgl
void android_main(struct android_app* app) {
using FindClassFN = jclass (*)(JNIEnv*, const char*);
- mbgl::android::theJVM= app->activity->vm;
+ mbgl::android::theJVM = app->activity->vm;
JNIEnv* env;
app->activity->vm->AttachCurrentThread(&env, NULL);
- // Logger
-
-// LoadClass(env, app->activity->clazz, mbgl::android::Logger::Name());
-// mbgl::android::Logger::registerNative(*env);
- std::vector<std::string> arguments = {"runner","-p", "/sdcard/render-test"};
- std::vector<char*> argv;
- for (const auto& arg : arguments) {
- argv.push_back((char*) arg.data());
- }
- argv.push_back(nullptr);
- mbgl::runRenderTests(argv.size() - 1, argv.data());
+
+ std::vector<std::string> arguments = {"mbgl-render-test-runner", "-p", "/sdcard/render-test"};
+ std::vector<char*> argv;
+ for (const auto& arg : arguments) {
+ argv.push_back((char*)arg.data());
+ }
+ argv.push_back(nullptr);
+ (void)mbgl::runRenderTests(argv.size() - 1, argv.data());
app->activity->vm->DetachCurrentThread();
} \ No newline at end of file
diff --git a/render-test/android-test-runner/render_test_setup.sh b/render-test/android-test-runner/render_test_setup.sh
new file mode 100755
index 0000000000..65d0788474
--- /dev/null
+++ b/render-test/android-test-runner/render_test_setup.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+adb shell rm -rf /sdcard/render-test
+adb shell mkdir /sdcard/render-test
+
+adb push mapbox-gl-js/test/integration/render-tests /sdcard/render-test/mapbox-gl-js/test/integration/render-tests
+# adb push mapbox-gl-js/test/integration/query-tests /sdcard/render-test/mapbox-gl-js/test/integration/query-tests
+adb push mapbox-gl-js/test/integration/tiles /sdcard/render-test/mapbox-gl-js/test/integration/tiles
+adb push mapbox-gl-js/test/integration/glyphs /sdcard/render-test/mapbox-gl-js/test/integration/glyphs
+adb push mapbox-gl-js/test/integration/sprites /sdcard/render-test/mapbox-gl-js/test/integration/sprites
+adb push mapbox-gl-js/test/integration/styles /sdcard/render-test/mapbox-gl-js/test/integration/styles
+adb push mapbox-gl-js/test/integration/tilesets /sdcard/render-test/mapbox-gl-js/test/integration/tilesets
+adb push mapbox-gl-js/test/integration/image /sdcard/render-test/mapbox-gl-js/test/integration/image
+adb push mapbox-gl-js/test/integration/video /sdcard/render-test/mapbox-gl-js/test/integration/video
+adb push vendor/mapbox-gl-styles/styles /sdcard/render-test/mapbox-gl-js/test/integration/mapbox-gl-styles/styles
+adb push mapbox-gl-js/test/integration/data /sdcard/render-test/mapbox-gl-js/test/integration/data
+adb push mapbox-gl-js/test/integration/geojson /sdcard/render-test/mapbox-gl-js/test/integration/geojson
+adb push render-test/expected /sdcard/render-test/render-test/expected
+
+adb shell ls /sdcard/render-test/mapbox-gl-js/test/integration \ No newline at end of file
diff --git a/render-test/parser.cpp b/render-test/parser.cpp
index c9343fdd26..e1540ea664 100644
--- a/render-test/parser.cpp
+++ b/render-test/parser.cpp
@@ -112,7 +112,8 @@ mbgl::optional<std::string> getVendorPath(const std::string& url, const std::reg
}
mbgl::optional<std::string> getIntegrationPath(const std::string& url, const std::string& parent, const std::regex& regex, bool glyphsPath = false) {
- static const mbgl::filesystem::path integrationPath(std::string("/sdcard/render-test") + "/mapbox-gl-js/test/integration/");
+ static const mbgl::filesystem::path integrationPath(std::string("/sdcard/render-test") +
+ "/mapbox-gl-js/test/integration/");
mbgl::filesystem::path file = std::regex_replace(url, regex, integrationPath.string() + parent);
if (mbgl::filesystem::exists(file.parent_path())) {
@@ -703,7 +704,7 @@ std::string createResultItem(const TestMetadata& metadata, bool hasFailedTests)
html.append(" src=\"data:image/png;base64," + encodeBase64(metadata.actual) + "\">\n");
}
} else {
-// assert(!metadata.errorMessage.empty());
+ // assert(!metadata.errorMessage.empty());
html.append("<p style=\"color: red\"><strong>Error:</strong> " + metadata.errorMessage + "</p>\n");
}
if (metadata.difference != 0.0) {
diff --git a/render-test/render_test_collator.cpp b/render-test/render_test_collator.cpp
new file mode 100644
index 0000000000..e6e3b27b48
--- /dev/null
+++ b/render-test/render_test_collator.cpp
@@ -0,0 +1,40 @@
+#include <mbgl/i18n/collator.hpp>
+
+#include <memory>
+
+namespace mbgl {
+namespace platform {
+
+class Collator::Impl {
+public:
+ Impl(bool caseSensitive_, bool diacriticSensitive_, optional<std::string>)
+ : caseSensitive(caseSensitive_), diacriticSensitive(diacriticSensitive_) {}
+
+ bool operator==(const Impl& other) const { return true; }
+
+ int compare(const std::string& lhs, const std::string& rhs) const { return 0; }
+
+ std::string resolvedLocale() const { return ""; }
+
+private:
+ bool caseSensitive;
+ bool diacriticSensitive;
+};
+
+Collator::Collator(bool caseSensitive, bool diacriticSensitive, optional<std::string> locale_)
+ : impl(std::make_shared<Impl>(caseSensitive, diacriticSensitive, std::move(locale_))) {}
+
+int Collator::compare(const std::string& lhs, const std::string& rhs) const {
+ return impl->compare(lhs, rhs);
+}
+
+bool Collator::operator==(const Collator& other) const {
+ return *impl == *(other.impl);
+}
+
+std::string Collator::resolvedLocale() const {
+ return impl->resolvedLocale();
+}
+
+} // namespace platform
+} // namespace mbgl
diff --git a/render-test/render_test_number_format.cpp b/render-test/render_test_number_format.cpp
new file mode 100644
index 0000000000..93c0daa20c
--- /dev/null
+++ b/render-test/render_test_number_format.cpp
@@ -0,0 +1,15 @@
+#include <mbgl/i18n/number_format.hpp>
+
+namespace mbgl {
+namespace platform {
+
+std::string formatNumber(double /*number*/,
+ const std::string& /*localeId */,
+ const std::string& /*currency*/,
+ uint8_t /*minFractionDigits*/,
+ uint8_t /*maxFractionDigits*/) {
+ return "";
+}
+
+} // namespace platform
+} // namespace mbgl