diff options
author | Kenny Root <kroot@google.com> | 2012-09-09 13:22:06 -0700 |
---|---|---|
committer | Kenny Root <kroot@google.com> | 2012-09-09 15:12:16 -0700 |
commit | e64e0971475409533aec201e4f3d23b31f653217 (patch) | |
tree | 736e0e88793d4a64bbbb4428215fae4d58d6678f /core/tests | |
parent | 7e921a157d1aca97506302637d4f3843ddc2b982 (diff) | |
download | frameworks_base-e64e0971475409533aec201e4f3d23b31f653217.zip frameworks_base-e64e0971475409533aec201e4f3d23b31f653217.tar.gz frameworks_base-e64e0971475409533aec201e4f3d23b31f653217.tar.bz2 |
Add a native library to test APKs
In order to make sure we have unpacking and deletion working, add a fake
JNI library to every APK.
This can be expanded in the future to make sure replacement is working
correctly as well.
Change-Id: I1ad04c61df9518429aa17795b8a9d3608791cd8e
Diffstat (limited to 'core/tests')
3 files changed, 85 insertions, 0 deletions
diff --git a/core/tests/coretests/apks/FrameworkCoreTests_apk.mk b/core/tests/coretests/apks/FrameworkCoreTests_apk.mk index ac545ca..1e03270 100644 --- a/core/tests/coretests/apks/FrameworkCoreTests_apk.mk +++ b/core/tests/coretests/apks/FrameworkCoreTests_apk.mk @@ -7,6 +7,9 @@ LOCAL_DEX_PREOPT := false # Make sure every package name gets the FrameworkCoreTests_ prefix. LOCAL_PACKAGE_NAME := FrameworkCoreTests_$(LOCAL_PACKAGE_NAME) +# Every package should have a native library +LOCAL_JNI_SHARED_LIBRARIES := libframeworks_coretests_jni + FrameworkCoreTests_all_apks += $(LOCAL_PACKAGE_NAME) include $(BUILD_PACKAGE) diff --git a/core/tests/coretests/apks/install_jni_lib/Android.mk b/core/tests/coretests/apks/install_jni_lib/Android.mk new file mode 100644 index 0000000..de2993a --- /dev/null +++ b/core/tests/coretests/apks/install_jni_lib/Android.mk @@ -0,0 +1,28 @@ +# Copyright (C) 2012 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := \ + com_android_frameworks_coretests_JNITest.cpp + +LOCAL_SHARED_LIBRARIES := \ + libnativehelper + +LOCAL_MODULE := libframeworks_coretests_jni +LOCAL_MODULE_TAGS := optional + +include $(BUILD_SHARED_LIBRARY) diff --git a/core/tests/coretests/apks/install_jni_lib/com_android_frameworks_coretests_JNITest.cpp b/core/tests/coretests/apks/install_jni_lib/com_android_frameworks_coretests_JNITest.cpp new file mode 100644 index 0000000..957fc4a --- /dev/null +++ b/core/tests/coretests/apks/install_jni_lib/com_android_frameworks_coretests_JNITest.cpp @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "nativehelper/JNIHelp.h" + +namespace android { + +static jint checkFunction(JNIEnv*, jclass) { + return 1; +} + +static JNINativeMethod sMethods[] = { + /* name, signature, funcPtr */ + { "checkFunction", "()I", (void*) checkFunction }, +}; + +int register_com_android_framework_coretests_JNITests(JNIEnv* env) { + return jniRegisterNativeMethods(env, "com/android/framework/coretests/JNITests", sMethods, + NELEM(sMethods)); +} + +} + +/* + * JNI Initialization + */ +jint JNI_OnLoad(JavaVM *jvm, void *reserved) { + JNIEnv *e; + int status; + + // Check JNI version + if (jvm->GetEnv((void **) &e, JNI_VERSION_1_6)) { + return JNI_ERR; + } + + if ((status = android::register_com_android_framework_coretests_JNITests(e)) < 0) { + return JNI_ERR; + } + + return JNI_VERSION_1_6; +} |