summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libnativeloader/Android.bp59
-rw-r--r--libnativeloader/native_loader_api_test.cpp (renamed from libnativeloader/native_loader_lazy_test.cpp)16
2 files changed, 48 insertions, 27 deletions
diff --git a/libnativeloader/Android.bp b/libnativeloader/Android.bp
index 4e5cde5665..f7e5bf8c98 100644
--- a/libnativeloader/Android.bp
+++ b/libnativeloader/Android.bp
@@ -123,8 +123,8 @@ cc_library {
shared_libs: ["liblog"],
}
-cc_defaults {
- name: "libnativeloader-test-defaults",
+art_cc_test {
+ name: "libnativeloader_test",
defaults: [
"art_module_source_build_defaults",
// Cannot use art_standalone_gtest_defaults because it makes us link
@@ -148,24 +148,13 @@ cc_defaults {
],
shared_libs: [
"liblog", // libbase dependency
+ "libnativeloader",
],
static_libs: [
"libbase",
"libgmock",
],
- test_for: [
- "com.android.art",
- "com.android.art.debug",
- ],
- test_suites: ["device-tests"],
-}
-
-art_cc_test {
- name: "libnativeloader_test",
- defaults: [
- "libnativeloader-test-defaults",
- ],
tidy_timeout_srcs: [
"native_loader_test.cpp",
],
@@ -174,21 +163,53 @@ art_cc_test {
"native_loader_api_test.c",
"native_loader_test.cpp",
],
+
+ test_for: [
+ "com.android.art",
+ "com.android.art.debug",
+ ],
+ test_suites: [
+ "general-tests",
+ "mts-art",
+ ],
+}
+
+cc_defaults {
+ name: "libnativeloader_api_test_defaults",
+ defaults: ["art_standalone_test_defaults"],
+
+ srcs: ["native_loader_api_test.cpp"],
+ header_libs: [
+ "libnativebridge-headers",
+ "libnativehelper_header_only",
+ ],
+ static_libs: [
+ "libbase",
+ "libgmock",
+ ],
+}
+
+art_cc_test {
+ name: "art_libnativeloader_cts_test",
+ defaults: ["libnativeloader_api_test_defaults"],
shared_libs: [
"libnativeloader",
],
+ test_config_template: ":art-gtests-target-standalone-cts-template",
test_suites: [
- "mts-art",
+ "cts",
+ "mcts-art",
],
}
art_cc_test {
name: "libnativeloader_lazy_test",
- defaults: ["libnativeloader-test-defaults"],
- srcs: [
- "native_loader_lazy_test.cpp",
- ],
+ defaults: ["libnativeloader_api_test_defaults"],
static_libs: [
"libnativeloader_lazy",
],
+ test_suites: [
+ "general-tests",
+ "mts-art",
+ ],
}
diff --git a/libnativeloader/native_loader_lazy_test.cpp b/libnativeloader/native_loader_api_test.cpp
index b863c85100..78fb29f91d 100644
--- a/libnativeloader/native_loader_lazy_test.cpp
+++ b/libnativeloader/native_loader_api_test.cpp
@@ -16,8 +16,7 @@
#if defined(ART_TARGET_ANDROID)
-#include <gtest/gtest.h>
-
+#include "gtest/gtest.h"
#include "native_loader_test.h"
#include "nativehelper/scoped_utf_chars.h"
#include "nativeloader/native_loader.h"
@@ -25,11 +24,13 @@
namespace android {
namespace nativeloader {
+using ::testing::Return;
using ::testing::StrEq;
-// Only need to test that the trivial lazy lib wrappers call through to the real
-// functions, but still have to mock things well enough to avoid null pointer
-// dereferences.
+// Test the exported API in libnativeloader and libnativeloader_lazy. The
+// testing we can do here outside a full VM is limited, but this is only to
+// complement other tests and ensure coverage of the APIs that aren't in the
+// common call paths.
class NativeLoaderLazyTest : public ::testing::Test {
protected:
@@ -49,9 +50,6 @@ class NativeLoaderLazyTest : public ::testing::Test {
void CallCreateClassLoaderNamespace(const char* class_loader) {
ON_CALL(*mock, JniObject_getParent(StrEq(class_loader))).WillByDefault(Return(nullptr));
- EXPECT_CALL(*mock, mock_create_namespace)
- .WillOnce(Return(TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE(class_loader))));
- ON_CALL(*mock, mock_link_namespaces).WillByDefault(Return(true));
jstring err = CreateClassLoaderNamespace(env.get(),
17,
@@ -69,6 +67,8 @@ class NativeLoaderLazyTest : public ::testing::Test {
TEST_F(NativeLoaderLazyTest, CreateClassLoaderNamespace) {
CallCreateClassLoaderNamespace("my_classloader_1");
+ EXPECT_NE(FindNamespaceByClassLoader(env.get(), env.get()->NewStringUTF("my_classloader_1")),
+ nullptr);
}
TEST_F(NativeLoaderLazyTest, OpenNativeLibrary) {