diff options
author | 2025-01-13 10:13:15 +0000 | |
---|---|---|
committer | 2025-01-13 05:25:30 -0800 | |
commit | 456ffe56e21360eb79529562e45f34390c098d16 (patch) | |
tree | 262c0f934cba233ddeaa8db0dd8f09a7de2d35d9 /test/734-duplicate-fields/src/Main.java | |
parent | 56fa678dd04baccf04abe45cca8357d9eeb8159f (diff) |
Fail dex verification for duplicate static/instance fields.
Just like we ensure direct and virtual methods don't conflict, check
that static and instance fields also don't conflict.
Test: test.py
Test: 734-duplicate-fields
Change-Id: I3b959bf68a43fda573788ed848976a5fae91f8d1
Diffstat (limited to 'test/734-duplicate-fields/src/Main.java')
-rw-r--r-- | test/734-duplicate-fields/src/Main.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/734-duplicate-fields/src/Main.java b/test/734-duplicate-fields/src/Main.java new file mode 100644 index 0000000000..0d97d02744 --- /dev/null +++ b/test/734-duplicate-fields/src/Main.java @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2025 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. + */ + +import dalvik.system.PathClassLoader; + +public class Main { + static final String TEST_NAME = "734-duplicate-fields"; + + static final String SECONDARY_NAME = TEST_NAME + "-ex"; + static final String SECONDARY_DEX_FILE = + System.getenv("DEX_LOCATION") + "/" + SECONDARY_NAME + ".jar"; + + public static void main(String[] args) throws Exception { + PathClassLoader pcl = new PathClassLoader(SECONDARY_DEX_FILE, Main.class.getClassLoader()); + try { + Class.forName("Cls", true, pcl); + throw new Error("Expected ClassNotFoundException"); + } catch (ClassNotFoundException expected) { + } + } +} |