aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/skqp/jni
diff options
context:
space:
mode:
authorGravatar Hal Canary <halcanary@google.com>2018-01-19 13:08:23 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-01-22 20:11:57 +0000
commita9de760a217cf48c974d6c51b4ba88f08c269bbe (patch)
tree16924fe7092b51a982ad667524440c5b6bbbe0e7 /tools/skqp/jni
parent3b428cbf8a2f4b8d4fad7f2708e67cf954ba7bf1 (diff)
SkQP: replace blacklist with: DoNotExecuteInExperimentalMode and NoScoreInCompatibilityTestMode
Also clean up some things, fix docs, whitelist. Change-Id: I2818d973978ffe1b8ce0cc9c69f8d91ab4a0ef22 Reviewed-on: https://skia-review.googlesource.com/91805 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
Diffstat (limited to 'tools/skqp/jni')
-rw-r--r--tools/skqp/jni/org_skia_skqp_SkQPRunner.cpp24
1 files changed, 17 insertions, 7 deletions
diff --git a/tools/skqp/jni/org_skia_skqp_SkQPRunner.cpp b/tools/skqp/jni/org_skia_skqp_SkQPRunner.cpp
index 7347f28ff9..7864fc43c4 100644
--- a/tools/skqp/jni/org_skia_skqp_SkQPRunner.cpp
+++ b/tools/skqp/jni/org_skia_skqp_SkQPRunner.cpp
@@ -8,9 +8,10 @@
#include <mutex>
#include <vector>
-#include <jni.h>
#include <android/asset_manager.h>
#include <android/asset_manager_jni.h>
+#include <jni.h>
+#include <sys/stat.h>
#include "gm_runner.h"
#include "gm_knowledge.h"
@@ -19,7 +20,7 @@
////////////////////////////////////////////////////////////////////////////////
extern "C" {
-JNIEXPORT void JNICALL Java_org_skia_skqp_SkQP_nInit(JNIEnv*, jobject, jobject, jstring);
+JNIEXPORT void JNICALL Java_org_skia_skqp_SkQP_nInit(JNIEnv*, jobject, jobject, jstring, jboolean);
JNIEXPORT jfloat JNICALL Java_org_skia_skqp_SkQP_nExecuteGM(JNIEnv*, jobject, jint, jint);
JNIEXPORT jobjectArray JNICALL Java_org_skia_skqp_SkQP_nExecuteUnitTest(JNIEnv*, jobject,
jint);
@@ -74,13 +75,13 @@ struct AndroidAssetManager : public skqp::AssetManager {
return dup;
}
};
+ // SkDebugf("AndroidAssetManager::open(\"%s\");", path);
AAsset* asset = AndroidAssetManager::OpenAsset(fMgr, path);
return asset ? std::unique_ptr<SkStreamAsset>(new AAStrm(fMgr, std::string(path), asset))
: nullptr;
}
static AAsset* OpenAsset(AAssetManager* mgr, const char* path) {
- std::string fullPath = std::string("gmkb/") + path;
- return mgr ? AAssetManager_open(mgr, fullPath.c_str(), AASSET_MODE_STREAMING) : nullptr;
+ return mgr ? AAssetManager_open(mgr, path, AASSET_MODE_STREAMING) : nullptr;
}
};
}
@@ -119,23 +120,32 @@ jobjectArray to_java_string_array(JNIEnv* env,
}
void Java_org_skia_skqp_SkQP_nInit(JNIEnv* env, jobject object, jobject assetManager,
- jstring dataDir) {
+ jstring dataDir, jboolean experimentalMode) {
jclass clazz = env->GetObjectClass(object);
jassert(env, assetManager);
- gm_runner::InitSkia();
-
std::lock_guard<std::mutex> lock(gMutex);
gAssetManager.fMgr = AAssetManager_fromJava(env, assetManager);
jassert(env, gAssetManager.fMgr);
+ gm_runner::InitSkia(experimentalMode ? gm_runner::Mode::kExperimentalMode
+ : gm_runner::Mode::kCompatibilityTestMode,
+ &gAssetManager);
+
const char* dataDirString = env->GetStringUTFChars(dataDir, nullptr);
+ jassert(env, dataDirString && dataDirString[0]);
gReportDirectory = std::string(dataDirString) + "/skqp_report";
+ int mkdirRetval = mkdir(gReportDirectory.c_str(), 0777);
+ SkASSERT_RELEASE(0 == mkdirRetval);
+
env->ReleaseStringUTFChars(dataDir, dataDirString);
gBackends = gm_runner::GetSupportedBackends();
+ jassert(env, gBackends.size() > 0);
gGMs = gm_runner::GetGMFactories(&gAssetManager);
+ jassert(env, gGMs.size() > 0);
gUnitTests = gm_runner::GetUnitTests();
+ jassert(env, gUnitTests.size() > 0);
gStringClass = env->FindClass("java/lang/String");
constexpr char stringArrayType[] = "[Ljava/lang/String;";