summaryrefslogtreecommitdiff
path: root/runtime/class_loader_context_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/class_loader_context_test.cc')
-rw-r--r--runtime/class_loader_context_test.cc19
1 files changed, 19 insertions, 0 deletions
diff --git a/runtime/class_loader_context_test.cc b/runtime/class_loader_context_test.cc
index 4d7e390b9a..e2e6075d22 100644
--- a/runtime/class_loader_context_test.cc
+++ b/runtime/class_loader_context_test.cc
@@ -1637,4 +1637,23 @@ TEST_F(ClassLoaderContextTest, CreateContextForClassLoaderWithSharedLibraries) {
ClassLoaderContext::VerificationResult::kVerifies);
}
+TEST_F(ClassLoaderContextTest, CheckForDuplicateDexFiles) {
+ jobject class_loader_a = LoadDexInPathClassLoader("Main", nullptr);
+ jobject class_loader_b =
+ LoadDexInInMemoryDexClassLoader("MyClass", class_loader_a);
+
+ std::unique_ptr<ClassLoaderContext> context =
+ CreateContextForClassLoader(class_loader_b);
+
+ std::vector<const DexFile*> result = context->CheckForDuplicateDexFiles(
+ std::vector<const DexFile*>());
+ ASSERT_EQ(0u, result.size());
+
+ std::vector<std::unique_ptr<const DexFile>> dex1 = OpenTestDexFiles("Main");
+ std::vector<const DexFile*> dex1_raw = MakeNonOwningPointerVector(dex1);
+ result = context->CheckForDuplicateDexFiles(dex1_raw);
+ ASSERT_EQ(1u, result.size());
+ ASSERT_EQ(dex1_raw[0], result[0]);
+}
+
} // namespace art