Loading config/Android.bp 0 → 100644 +18 −0 Original line number Diff line number Diff line // Copyright (C) 2019 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. filegroup { name: "preloaded-classes-blacklist", srcs: ["preloaded-classes-blacklist"], } tools/preload-check/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ java_test_host { name: "PreloadCheck", srcs: ["src/**/*.java"], java_resources: [":preloaded-classes-blacklist"], libs: ["tradefed"], test_suites: ["general-tests"], required: ["preload-check-device"], Loading tools/preload-check/src/com/android/preload/check/PreloadCheck.java +40 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,9 @@ import com.android.tradefed.testtype.IDeviceTest; import org.junit.Test; import org.junit.runner.RunWith; import java.io.BufferedReader; import java.io.InputStreamReader; @RunWith(DeviceJUnit4ClassRunner.class) public class PreloadCheck implements IDeviceTest { private ITestDevice mTestDevice; Loading Loading @@ -65,6 +68,35 @@ public class PreloadCheck implements IDeviceTest { run("com.android.preload.check.Initialized", "android.animation.Animator"); } /** * Test the classes mentioned in the embedded preloaded-classes blacklist. */ @Test public void testBlackList() throws Exception { StringBuilder sb = new StringBuilder(); try (BufferedReader br = new BufferedReader(new InputStreamReader(getClass() .getResourceAsStream("/preloaded-classes-blacklist")))) { String s; while ((s = br.readLine()) != null) { s = s.trim(); if (s.startsWith("#") || s.isEmpty()) { continue; } try { run("com.android.preload.check.NotInitialized", s); } catch (Throwable t) { if (sb.length() > 0) { sb.append('\n'); } sb.append(t.getMessage()); } } } if (sb.length() > 0) { throw new RuntimeException(sb.toString()); } } private void run(String cmd, String... args) throws Exception { StringBuilder sb = new StringBuilder(); sb.append("app_process ") Loading @@ -72,9 +104,16 @@ public class PreloadCheck implements IDeviceTest { .append(" /system/bin ") .append(cmd); for (String arg : args) { sb.append(' ').append(arg); sb.append(' ').append(escape(arg)); } String res = mTestDevice.executeShellCommand(sb.toString()); assertEquals(sb.toString(), "OK", res.trim()); } private static String escape(String input) { if (input.indexOf('$') == -1) { return input; } return input.replace("$", "\\$"); } } Loading
config/Android.bp 0 → 100644 +18 −0 Original line number Diff line number Diff line // Copyright (C) 2019 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. filegroup { name: "preloaded-classes-blacklist", srcs: ["preloaded-classes-blacklist"], }
tools/preload-check/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ java_test_host { name: "PreloadCheck", srcs: ["src/**/*.java"], java_resources: [":preloaded-classes-blacklist"], libs: ["tradefed"], test_suites: ["general-tests"], required: ["preload-check-device"], Loading
tools/preload-check/src/com/android/preload/check/PreloadCheck.java +40 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,9 @@ import com.android.tradefed.testtype.IDeviceTest; import org.junit.Test; import org.junit.runner.RunWith; import java.io.BufferedReader; import java.io.InputStreamReader; @RunWith(DeviceJUnit4ClassRunner.class) public class PreloadCheck implements IDeviceTest { private ITestDevice mTestDevice; Loading Loading @@ -65,6 +68,35 @@ public class PreloadCheck implements IDeviceTest { run("com.android.preload.check.Initialized", "android.animation.Animator"); } /** * Test the classes mentioned in the embedded preloaded-classes blacklist. */ @Test public void testBlackList() throws Exception { StringBuilder sb = new StringBuilder(); try (BufferedReader br = new BufferedReader(new InputStreamReader(getClass() .getResourceAsStream("/preloaded-classes-blacklist")))) { String s; while ((s = br.readLine()) != null) { s = s.trim(); if (s.startsWith("#") || s.isEmpty()) { continue; } try { run("com.android.preload.check.NotInitialized", s); } catch (Throwable t) { if (sb.length() > 0) { sb.append('\n'); } sb.append(t.getMessage()); } } } if (sb.length() > 0) { throw new RuntimeException(sb.toString()); } } private void run(String cmd, String... args) throws Exception { StringBuilder sb = new StringBuilder(); sb.append("app_process ") Loading @@ -72,9 +104,16 @@ public class PreloadCheck implements IDeviceTest { .append(" /system/bin ") .append(cmd); for (String arg : args) { sb.append(' ').append(arg); sb.append(' ').append(escape(arg)); } String res = mTestDevice.executeShellCommand(sb.toString()); assertEquals(sb.toString(), "OK", res.trim()); } private static String escape(String input) { if (input.indexOf('$') == -1) { return input; } return input.replace("$", "\\$"); } }