diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2021-06-18 01:07:57 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2021-06-18 01:07:57 +0000 |
commit | 0a8bde0eb27a5de62e73faf9de06a498a4ccec69 (patch) | |
tree | b604848d4716b964d68cd9a1114d7febbd772328 | |
parent | e8bfa613d4b16b4012d9b5f526ef5140bedccf1f (diff) | |
parent | c5d2ef6412d17228972de4f4ea1627a4de1d0d2b (diff) | |
download | modules-utils-android-12.1.0_r4.tar.gz |
Snap for 7468788 from c5d2ef6412d17228972de4f4ea1627a4de1d0d2b to sc-v2-releaseandroid-vts-12.1_r9android-vts-12.1_r8android-vts-12.1_r7android-vts-12.1_r6android-vts-12.1_r5android-vts-12.1_r4android-vts-12.1_r3android-vts-12.1_r2android-vts-12.1_r10android-vts-12.1_r1android-platform-12.1.0_r9android-platform-12.1.0_r8android-platform-12.1.0_r7android-platform-12.1.0_r6android-platform-12.1.0_r5android-platform-12.1.0_r4android-platform-12.1.0_r3android-platform-12.1.0_r28android-platform-12.1.0_r27android-platform-12.1.0_r26android-platform-12.1.0_r25android-platform-12.1.0_r24android-platform-12.1.0_r23android-platform-12.1.0_r22android-platform-12.1.0_r21android-platform-12.1.0_r20android-platform-12.1.0_r2android-platform-12.1.0_r19android-platform-12.1.0_r18android-platform-12.1.0_r17android-platform-12.1.0_r16android-platform-12.1.0_r15android-platform-12.1.0_r14android-platform-12.1.0_r13android-platform-12.1.0_r12android-platform-12.1.0_r11android-platform-12.1.0_r10android-platform-12.1.0_r1android-cts-12.1_r9android-cts-12.1_r8android-cts-12.1_r7android-cts-12.1_r6android-cts-12.1_r5android-cts-12.1_r4android-cts-12.1_r3android-cts-12.1_r2android-cts-12.1_r10android-cts-12.1_r1android-12.1.0_r6android-12.1.0_r5android-12.1.0_r4android-12.1.0_r3android-12.1.0_r27android-12.1.0_r2android-12.1.0_r1android12L-tests-releaseandroid12L-s1-releaseandroid12L-releaseandroid12L-platform-releaseandroid12L-gsi
Change-Id: Idc788bee00ec81381bf69e1ea49fc067508d2eb0
-rw-r--r-- | java/com/android/modules/utils/build/testing/Android.bp | 28 | ||||
-rw-r--r-- | java/com/android/modules/utils/build/testing/DeviceSdkLevel.java | 70 |
2 files changed, 98 insertions, 0 deletions
diff --git a/java/com/android/modules/utils/build/testing/Android.bp b/java/com/android/modules/utils/build/testing/Android.bp new file mode 100644 index 0000000..ab80da4 --- /dev/null +++ b/java/com/android/modules/utils/build/testing/Android.bp @@ -0,0 +1,28 @@ +// +// Copyright (C) 2020 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 { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +java_library_host { + name: "modules-utils-build-testing", + srcs: ["DeviceSdkLevel.java"], + visibility: ["//visibility:public"], + libs: [ + "androidx.annotation_annotation", + "tradefed", + ], +} diff --git a/java/com/android/modules/utils/build/testing/DeviceSdkLevel.java b/java/com/android/modules/utils/build/testing/DeviceSdkLevel.java new file mode 100644 index 0000000..3a09c9c --- /dev/null +++ b/java/com/android/modules/utils/build/testing/DeviceSdkLevel.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2021 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 com.android.modules.utils.build.testing; + +import androidx.annotation.NonNull; + +import com.android.tradefed.device.DeviceNotAvailableException; +import com.android.tradefed.device.ITestDevice; + +/** + * Utility class to check device SDK level from a host side test. + */ +public final class DeviceSdkLevel { + + private final ITestDevice device; + + public DeviceSdkLevel(ITestDevice device) { + this.device = device; + } + + /** Checks if the device is running on release version of Android R or newer. */ + public boolean isDeviceAtLeastR() throws DeviceNotAvailableException { + return device.getApiLevel() >= 30; + } + + /** + * Checks if the device is running on a pre-release version of Android S or a release version of + * Android S or newer. + */ + public boolean isDeviceAtLeastS() throws DeviceNotAvailableException { + return device.getApiLevel() >= 31 || isDeviceAtLeastPreReleaseCodename("S"); + } + + /** + * Checks if the device is running on a pre-release version of Android T or a release version of + * Android T or newer. + */ + public boolean isDeviceAtLeastT() throws DeviceNotAvailableException { + return isDeviceAtLeastPreReleaseCodename("T"); + } + + private boolean isDeviceAtLeastPreReleaseCodename(@NonNull String codename) + throws DeviceNotAvailableException { + String deviceCodename = device.getProperty("ro.build.version.codename"); + + // Special case "REL", which means the build is not a pre-release build. + if ("REL".equals(deviceCodename)) { + return false; + } + + // Otherwise lexically compare them. Return true if the build codename is equal to or + // greater than the requested codename. + return deviceCodename.compareTo(codename) >= 0; + } + +} |