diff options
author | Felipe Leme <felipeal@google.com> | 2021-06-15 15:12:13 -0700 |
---|---|---|
committer | Felipe Leme <felipeal@google.com> | 2021-06-15 15:16:37 -0700 |
commit | 576720c09c6790b0228ad8bc0a1f98902ee94208 (patch) | |
tree | b85fd282d31eb5455c7c32f9e0934d45609e4214 | |
parent | b3832c195ab0ac765fdfeecbf11c2228a6f79b82 (diff) | |
download | Car-576720c09c6790b0228ad8bc0a1f98902ee94208.tar.gz |
Annotated some class with ExcludeFromCodeCoverageGeneratedReport.
It required copying ExcludeFromCodeCoverageGeneratedReport to the
internal lib as well.
Fixes: 190839526
Fixes: 190839233
Test: echo 'In Dashboard we trust!'
Change-Id: Ic62ad4d18cc4d54ba5c0c4ef7514b7f11342dc22
5 files changed, 84 insertions, 1 deletions
diff --git a/car-internal-lib/Android.bp b/car-internal-lib/Android.bp index 9d6aef7f8d..2937bd1e2e 100644 --- a/car-internal-lib/Android.bp +++ b/car-internal-lib/Android.bp @@ -28,5 +28,6 @@ java_library { "src/com/android/car/internal/SystemConstants.java", "src/com/android/car/internal/ICarServiceHelper.aidl", "src/com/android/car/internal/ICarSystemServerClient.aidl", + "src/com/android/car/internal/testing/ExcludeFromCodeCoverageGeneratedReport.java", ], } diff --git a/car-internal-lib/src/com/android/car/internal/SystemConstants.java b/car-internal-lib/src/com/android/car/internal/SystemConstants.java index 0025ea7796..88356f115c 100644 --- a/car-internal-lib/src/com/android/car/internal/SystemConstants.java +++ b/car-internal-lib/src/com/android/car/internal/SystemConstants.java @@ -15,6 +15,10 @@ */ package com.android.car.internal; +import static com.android.car.internal.testing.ExcludeFromCodeCoverageGeneratedReport.BOILERPLATE_CODE; + +import com.android.car.internal.testing.ExcludeFromCodeCoverageGeneratedReport; + /** * Provides common constants for CarService, CarServiceHelperService and other packages. */ @@ -22,6 +26,8 @@ public final class SystemConstants { public static final String ICAR_SYSTEM_SERVER_CLIENT = "ICarSystemServerClient"; + @ExcludeFromCodeCoverageGeneratedReport(reason = BOILERPLATE_CODE, + details = "private constructor") private SystemConstants() { throw new UnsupportedOperationException("contains only static constants"); } diff --git a/car-internal-lib/src/com/android/car/internal/testing/ExcludeFromCodeCoverageGeneratedReport.java b/car-internal-lib/src/com/android/car/internal/testing/ExcludeFromCodeCoverageGeneratedReport.java new file mode 100644 index 0000000000..b13d2956ee --- /dev/null +++ b/car-internal-lib/src/com/android/car/internal/testing/ExcludeFromCodeCoverageGeneratedReport.java @@ -0,0 +1,69 @@ +/* + * 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.car.internal.testing; + +import android.annotation.IntDef; + +import com.android.car.internal.testing.ExcludeFromCodeCoverageGeneratedReport.Reason; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; + +// NOTE: it's copied from car-lib but using a different package +/** + * Annotation used to mark code to be excluded from coverage report. + */ +@Target({ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD}) +public @interface ExcludeFromCodeCoverageGeneratedReport { + + // Reason annotation and its associated constant values + int DEPRECATED_CODE = 0; + int BOILERPLATE_CODE = 1; + int DUMP_INFO = 2; + int DEBUGGING_CODE = 3; + + @IntDef(prefix = "REASON_", value = { + DEPRECATED_CODE, + BOILERPLATE_CODE, + DUMP_INFO, + DEBUGGING_CODE + }) + @interface Reason { } + + /** + * The reason explaining why the code is being excluded from the code coverage report. + * <p> + * Possible reasons to exclude code from coverage report are: + * <p><ul> + * <li>{@link ExcludeFromCodeCoverageGeneratedReport#DEPRECATED_CODE} to exclude deprecated + * code from coverage report + * <li>{@link ExcludeFromCodeCoverageGeneratedReport#BOILERPLATE_CODE} to exclude boilerplate + * code like {@link java.lang.Object} methods, {@link android.os.Parcel} methods, etc + * <li>{@link ExcludeFromCodeCoverageGeneratedReport#DUMP_INFO} to exclude dump info methods + * <li>{@link ExcludeFromCodeCoverageGeneratedReport#DEBUGGING_CODE} to exclude debugging + * purpose + * code + * </ul><p> + */ + @Reason int reason(); + + /** + * Optional field used to provide extra details about the excluded code (e.g. it can be used to + * tag a follow up bug). + */ + String details() default ""; +} diff --git a/car-lib/Android.bp b/car-lib/Android.bp index 9c1129920f..84bbc0dfe2 100644 --- a/car-lib/Android.bp +++ b/car-lib/Android.bp @@ -86,7 +86,8 @@ java_library { srcs: [ "src/com/android/car/internal/common/**/*.java", "src/com/android/car/internal/common/EventLogTags.logtags", - ] + "src/com/android/car/internal/ExcludeFromCodeCoverageGeneratedReport.java", + ], } java_library { diff --git a/car-lib/src/com/android/car/internal/common/UserHelperLite.java b/car-lib/src/com/android/car/internal/common/UserHelperLite.java index 4b43e06038..c4b85166b6 100644 --- a/car-lib/src/com/android/car/internal/common/UserHelperLite.java +++ b/car-lib/src/com/android/car/internal/common/UserHelperLite.java @@ -16,11 +16,15 @@ package com.android.car.internal.common; +import static com.android.car.internal.ExcludeFromCodeCoverageGeneratedReport.BOILERPLATE_CODE; + import android.annotation.Nullable; import android.annotation.UserIdInt; import android.os.UserHandle; import android.os.UserManager; +import com.android.car.internal.ExcludeFromCodeCoverageGeneratedReport; + /** * Provides user information related helper methods. * @@ -28,6 +32,8 @@ import android.os.UserManager; */ public final class UserHelperLite { + @ExcludeFromCodeCoverageGeneratedReport(reason = BOILERPLATE_CODE, + details = "private constructor") private UserHelperLite() { throw new UnsupportedOperationException("contains only static methods"); } |