Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Unified Diff: base/android/jni_android_unittest.cc

Issue 23835020: Android: cleanup jni_android to minimize external dependencies. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/android/jni_android_unittest.cc
diff --git a/base/android/jni_android_unittest.cc b/base/android/jni_android_unittest.cc
index 920b395659025c4784a774439237fb645bcb4831..1fd2e67ea6f9b4ec66c02b2bac90dc10c995997a 100644
--- a/base/android/jni_android_unittest.cc
+++ b/base/android/jni_android_unittest.cc
@@ -8,89 +8,6 @@
#include "base/logging.h"
#include "testing/gtest/include/gtest/gtest.h"
-namespace base {
-namespace android {
-
-namespace {
-
-const char kJavaLangObject[] = "java/lang/Object";
-const char kGetClass[] = "getClass";
-const char kToString[] = "toString";
-const char kReturningJavaLangClass[] = "()Ljava/lang/Class;";
-const char kReturningJavaLangString[] = "()Ljava/lang/String;";
-
-const char* g_last_method;
-const char* g_last_jni_signature;
-jmethodID g_last_method_id;
-
-const JNINativeInterface* g_previous_functions;
-
-jmethodID GetMethodIDWrapper(JNIEnv* env, jclass clazz, const char* method,
- const char* jni_signature) {
- g_last_method = method;
- g_last_jni_signature = jni_signature;
- g_last_method_id = g_previous_functions->GetMethodID(env, clazz, method,
- jni_signature);
- return g_last_method_id;
-}
-
-} // namespace
-
-class JNIAndroidTest : public testing::Test {
- protected:
- virtual void SetUp() {
- JNIEnv* env = AttachCurrentThread();
- g_previous_functions = env->functions;
- hooked_functions = *g_previous_functions;
- env->functions = &hooked_functions;
- hooked_functions.GetMethodID = &GetMethodIDWrapper;
- }
-
- virtual void TearDown() {
- JNIEnv* env = AttachCurrentThread();
- env->functions = g_previous_functions;
- Reset();
- }
-
- void Reset() {
- g_last_method = 0;
- g_last_jni_signature = 0;
- g_last_method_id = NULL;
- }
- // Needed to cleanup the cached method map in the implementation between
- // runs (e.g. if using --gtest_repeat)
- base::ShadowingAtExitManager exit_manager;
- // From JellyBean release, the instance of this struct provided in JNIEnv is
- // read-only, so we deep copy it to allow individual functions to be hooked.
- JNINativeInterface hooked_functions;
-};
-
-TEST_F(JNIAndroidTest, GetMethodIDFromClassNameCaching) {
- JNIEnv* env = AttachCurrentThread();
-
- Reset();
- jmethodID id1 = GetMethodIDFromClassName(env, kJavaLangObject, kGetClass,
- kReturningJavaLangClass);
- EXPECT_STREQ(kGetClass, g_last_method);
- EXPECT_STREQ(kReturningJavaLangClass, g_last_jni_signature);
- EXPECT_EQ(g_last_method_id, id1);
-
- Reset();
- jmethodID id2 = GetMethodIDFromClassName(env, kJavaLangObject, kGetClass,
- kReturningJavaLangClass);
- EXPECT_STREQ(0, g_last_method);
- EXPECT_STREQ(0, g_last_jni_signature);
- EXPECT_EQ(NULL, g_last_method_id);
- EXPECT_EQ(id1, id2);
-
- Reset();
- jmethodID id3 = GetMethodIDFromClassName(env, kJavaLangObject, kToString,
- kReturningJavaLangString);
- EXPECT_STREQ(kToString, g_last_method);
- EXPECT_STREQ(kReturningJavaLangString, g_last_jni_signature);
- EXPECT_EQ(g_last_method_id, id3);
-}
-
namespace {
base::subtle::AtomicWord g_atomic_id = 0;
@@ -111,6 +28,9 @@ int MethodIDCall(JNIEnv* env, jclass clazz, jmethodID id, int p) {
} // namespace
+namespace base {
+namespace android {
joth 2013/09/24 13:31:49 nit: move to line 10. (normally more convenient to
bulach 2013/09/24 14:43:34 Done.
+
TEST(JNIAndroidMicrobenchmark, MethodId) {
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jclass> clazz(GetClass(env, "java/lang/Math"));

Powered by Google App Engine
This is Rietveld 408576698