Loading apct-tests/perftests/core/Android.bp +2 −1 Original line number Diff line number Diff line Loading @@ -43,12 +43,13 @@ android_test { "apct-perftests-resources-manager-apps", "apct-perftests-utils", "collector-device-lib", "core-tests-support", "guava", ], libs: ["android.test.base"], java_resources: [ ":GoogleFontDancingScript", ], java_resources: [":GoogleFontDancingScript"], data: [":perfetto_artifacts"], Loading apct-tests/perftests/core/src/android/libcore/nor_ready/JarFilePerfTest.java 0 → 100644 +61 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 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. */ package android.libcore.regression; import android.perftests.utils.BenchmarkState; import android.perftests.utils.PerfStatusReporter; import android.test.suitebuilder.annotation.LargeTest; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import java.io.File; import java.util.Arrays; import java.util.Collection; import java.util.jar.JarFile; import java.util.jar.Manifest; @RunWith(Parameterized.class) @LargeTest public class JarFilePerfTest { @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); @Parameters(name = "mFilename={0}") public static Collection<Object[]> data() { return Arrays.asList( new Object[][] { {"/system/framework/core-oj.jar"}, {"/system/priv-app/Phonesky/Phonesky.apk"} }); } @Parameterized.Parameter(0) public String mFilename; @Test public void time() throws Exception { File f = new File(mFilename); BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { JarFile jf = new JarFile(f); Manifest m = jf.getManifest(); jf.close(); } } } apct-tests/perftests/core/src/android/libcore/regression/SSLLoopbackPerfTest.java 0 → 100644 +52 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 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. */ package android.libcore.regression; import android.perftests.utils.BenchmarkState; import android.perftests.utils.PerfStatusReporter; import android.test.suitebuilder.annotation.LargeTest; import androidx.test.runner.AndroidJUnit4; import libcore.java.security.TestKeyStore; import libcore.javax.net.ssl.TestSSLContext; import libcore.javax.net.ssl.TestSSLSocketPair; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import javax.net.ssl.SSLSocket; @RunWith(AndroidJUnit4.class) @LargeTest public class SSLLoopbackPerfTest { @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); @Test public void time() throws Exception { BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { TestSSLContext context = TestSSLContext.create(TestKeyStore.getClient(), TestKeyStore.getServer()); SSLSocket[] sockets = TestSSLSocketPair.connect(context, null, null); context.close(); sockets[0].close(); sockets[1].close(); } } } apct-tests/perftests/core/src/android/libcore/regression/SSLSocketFactoryPerfTest.java 0 → 100644 +43 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 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. */ package android.libcore.regression; import android.perftests.utils.BenchmarkState; import android.perftests.utils.PerfStatusReporter; import android.test.suitebuilder.annotation.LargeTest; import androidx.test.runner.AndroidJUnit4; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import javax.net.ssl.SSLSocketFactory; @RunWith(AndroidJUnit4.class) @LargeTest public class SSLSocketFactoryPerfTest { @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); @Test public void time() throws Exception { BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { SSLSocketFactory.getDefault(); } } } apct-tests/perftests/core/src/android/libcore/regression/SchemePrefixPerfTest.java 0 → 100644 +103 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 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. */ package android.libcore.regression; import android.perftests.utils.BenchmarkState; import android.perftests.utils.PerfStatusReporter; import android.test.suitebuilder.annotation.LargeTest; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import java.util.Arrays; import java.util.Collection; import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; @RunWith(Parameterized.class) @LargeTest public final class SchemePrefixPerfTest { @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); enum Strategy { JAVA() { @Override String execute(String spec) { int colon = spec.indexOf(':'); if (colon < 1) { return null; } for (int i = 0; i < colon; i++) { char c = spec.charAt(i); if (!isValidSchemeChar(i, c)) { return null; } } return spec.substring(0, colon).toLowerCase(Locale.US); } private boolean isValidSchemeChar(int index, char c) { if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) { return true; } if (index > 0 && ((c >= '0' && c <= '9') || c == '+' || c == '-' || c == '.')) { return true; } return false; } }, REGEX() { private final Pattern mPattern = Pattern.compile("^([a-zA-Z][a-zA-Z0-9+\\-.]*):"); @Override String execute(String spec) { Matcher matcher = mPattern.matcher(spec); if (matcher.find()) { return matcher.group(1).toLowerCase(Locale.US); } else { return null; } } }; abstract String execute(String spec); } @Parameters(name = "mStrategy={0}") public static Collection<Object[]> data() { return Arrays.asList(new Object[][] {{Strategy.REGEX}, {Strategy.JAVA}}); } @Parameterized.Parameter(0) public Strategy mStrategy; @Test public void timeSchemePrefix() { BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { mStrategy.execute("http://android.com"); } } } Loading
apct-tests/perftests/core/Android.bp +2 −1 Original line number Diff line number Diff line Loading @@ -43,12 +43,13 @@ android_test { "apct-perftests-resources-manager-apps", "apct-perftests-utils", "collector-device-lib", "core-tests-support", "guava", ], libs: ["android.test.base"], java_resources: [ ":GoogleFontDancingScript", ], java_resources: [":GoogleFontDancingScript"], data: [":perfetto_artifacts"], Loading
apct-tests/perftests/core/src/android/libcore/nor_ready/JarFilePerfTest.java 0 → 100644 +61 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 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. */ package android.libcore.regression; import android.perftests.utils.BenchmarkState; import android.perftests.utils.PerfStatusReporter; import android.test.suitebuilder.annotation.LargeTest; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import java.io.File; import java.util.Arrays; import java.util.Collection; import java.util.jar.JarFile; import java.util.jar.Manifest; @RunWith(Parameterized.class) @LargeTest public class JarFilePerfTest { @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); @Parameters(name = "mFilename={0}") public static Collection<Object[]> data() { return Arrays.asList( new Object[][] { {"/system/framework/core-oj.jar"}, {"/system/priv-app/Phonesky/Phonesky.apk"} }); } @Parameterized.Parameter(0) public String mFilename; @Test public void time() throws Exception { File f = new File(mFilename); BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { JarFile jf = new JarFile(f); Manifest m = jf.getManifest(); jf.close(); } } }
apct-tests/perftests/core/src/android/libcore/regression/SSLLoopbackPerfTest.java 0 → 100644 +52 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 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. */ package android.libcore.regression; import android.perftests.utils.BenchmarkState; import android.perftests.utils.PerfStatusReporter; import android.test.suitebuilder.annotation.LargeTest; import androidx.test.runner.AndroidJUnit4; import libcore.java.security.TestKeyStore; import libcore.javax.net.ssl.TestSSLContext; import libcore.javax.net.ssl.TestSSLSocketPair; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import javax.net.ssl.SSLSocket; @RunWith(AndroidJUnit4.class) @LargeTest public class SSLLoopbackPerfTest { @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); @Test public void time() throws Exception { BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { TestSSLContext context = TestSSLContext.create(TestKeyStore.getClient(), TestKeyStore.getServer()); SSLSocket[] sockets = TestSSLSocketPair.connect(context, null, null); context.close(); sockets[0].close(); sockets[1].close(); } } }
apct-tests/perftests/core/src/android/libcore/regression/SSLSocketFactoryPerfTest.java 0 → 100644 +43 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 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. */ package android.libcore.regression; import android.perftests.utils.BenchmarkState; import android.perftests.utils.PerfStatusReporter; import android.test.suitebuilder.annotation.LargeTest; import androidx.test.runner.AndroidJUnit4; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import javax.net.ssl.SSLSocketFactory; @RunWith(AndroidJUnit4.class) @LargeTest public class SSLSocketFactoryPerfTest { @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); @Test public void time() throws Exception { BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { SSLSocketFactory.getDefault(); } } }
apct-tests/perftests/core/src/android/libcore/regression/SchemePrefixPerfTest.java 0 → 100644 +103 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 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. */ package android.libcore.regression; import android.perftests.utils.BenchmarkState; import android.perftests.utils.PerfStatusReporter; import android.test.suitebuilder.annotation.LargeTest; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import java.util.Arrays; import java.util.Collection; import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; @RunWith(Parameterized.class) @LargeTest public final class SchemePrefixPerfTest { @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); enum Strategy { JAVA() { @Override String execute(String spec) { int colon = spec.indexOf(':'); if (colon < 1) { return null; } for (int i = 0; i < colon; i++) { char c = spec.charAt(i); if (!isValidSchemeChar(i, c)) { return null; } } return spec.substring(0, colon).toLowerCase(Locale.US); } private boolean isValidSchemeChar(int index, char c) { if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) { return true; } if (index > 0 && ((c >= '0' && c <= '9') || c == '+' || c == '-' || c == '.')) { return true; } return false; } }, REGEX() { private final Pattern mPattern = Pattern.compile("^([a-zA-Z][a-zA-Z0-9+\\-.]*):"); @Override String execute(String spec) { Matcher matcher = mPattern.matcher(spec); if (matcher.find()) { return matcher.group(1).toLowerCase(Locale.US); } else { return null; } } }; abstract String execute(String spec); } @Parameters(name = "mStrategy={0}") public static Collection<Object[]> data() { return Arrays.asList(new Object[][] {{Strategy.REGEX}, {Strategy.JAVA}}); } @Parameterized.Parameter(0) public Strategy mStrategy; @Test public void timeSchemePrefix() { BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { mStrategy.execute("http://android.com"); } } }