1 /* 2 * Copyright (C) 2020 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.android.tradefed.result.error; 17 18 import com.android.tradefed.result.proto.TestRecordProto.FailureStatus; 19 20 import javax.annotation.Nonnull; 21 22 /** Error Identifiers from Device errors and device reported errors. */ 23 public enum DeviceErrorIdentifier implements ErrorIdentifier { 24 25 // ******************************************************************************************** 26 // Device Errors: 520_001 ~ 530_000 27 // ******************************************************************************************** 28 APK_INSTALLATION_FAILED(520_001, FailureStatus.DEPENDENCY_ISSUE), 29 FAIL_ACTIVATE_APEX(520_002, FailureStatus.DEPENDENCY_ISSUE), 30 APEX_ROLLBACK_FAILED(520_003, FailureStatus.DEPENDENCY_ISSUE), 31 MAINLINE_MODULE_ROLLBACK_DETECTED(520_004, FailureStatus.DEPENDENCY_ISSUE), 32 KERNEL_MODULE_INSTALLATION_FAILED(520_005, FailureStatus.DEPENDENCY_ISSUE), 33 34 AAPT_PARSER_FAILED(520_050, FailureStatus.DEPENDENCY_ISSUE), 35 36 SHELL_COMMAND_ERROR(520_100, FailureStatus.DEPENDENCY_ISSUE), 37 DEVICE_UNEXPECTED_RESPONSE(520_101, FailureStatus.DEPENDENCY_ISSUE), 38 FAIL_PUSH_FILE(520_102, FailureStatus.DEPENDENCY_ISSUE), 39 FAIL_PULL_FILE(520_103, FailureStatus.DEPENDENCY_ISSUE), 40 DEVICE_FAILED_TO_RESET(520_104, FailureStatus.DEPENDENCY_ISSUE), 41 DEVICE_FAILED_TO_REMOUNT(520_105, FailureStatus.DEPENDENCY_ISSUE), 42 DEVICE_FAILED_BLUETOOTH_PAIRING(520_106, FailureStatus.DEPENDENCY_ISSUE), 43 DEVICE_FAILED_TO_SNAPSHOT(520_107, FailureStatus.DEPENDENCY_ISSUE), 44 DEVICE_FAILED_TO_RESTORE_SNAPSHOT(520_108, FailureStatus.DEPENDENCY_ISSUE), 45 DEVICE_FAILED_TO_SUSPEND(520_109, FailureStatus.DEPENDENCY_ISSUE), 46 DEVICE_FAILED_TO_RESUME(520_110, FailureStatus.DEPENDENCY_ISSUE), 47 DEVICE_FAILED_TO_STOP(520_111, FailureStatus.DEPENDENCY_ISSUE), 48 DEVICE_FAILED_TO_RESTORE_SNAPSHOT_NOT_ENOUGH_SPACE(520_112, FailureStatus.DEPENDENCY_ISSUE), 49 DEVICE_FAILED_TO_DELETE_SNAPSHOT(520_113, FailureStatus.DEPENDENCY_ISSUE), 50 51 INSTRUMENTATION_CRASH(520_200, FailureStatus.SYSTEM_UNDER_TEST_CRASHED), 52 ADB_DISCONNECT(520_201, FailureStatus.DEPENDENCY_ISSUE), 53 INSTRUMENTATION_LOWMEMORYKILLER(520_202, FailureStatus.SYSTEM_UNDER_TEST_CRASHED), 54 55 FAILED_TO_LAUNCH_GCE(520_500, FailureStatus.LOST_SYSTEM_UNDER_TEST), 56 FAILED_TO_CONNECT_TO_GCE(520_501, FailureStatus.LOST_SYSTEM_UNDER_TEST), 57 ERROR_AFTER_FLASHING(520_502, FailureStatus.LOST_SYSTEM_UNDER_TEST), 58 FAILED_TO_CONNECT_TO_TCP_DEVICE(520_503, FailureStatus.LOST_SYSTEM_UNDER_TEST), 59 60 DEVICE_UNAVAILABLE(520_750, FailureStatus.LOST_SYSTEM_UNDER_TEST), 61 DEVICE_UNRESPONSIVE(520_751, FailureStatus.LOST_SYSTEM_UNDER_TEST), 62 DEVICE_CRASHED(520_752, FailureStatus.SYSTEM_UNDER_TEST_CRASHED), 63 UNEXPECTED_REBOOT(520_753, FailureStatus.SYSTEM_UNDER_TEST_CRASHED), 64 // Failures of the device action tool. 65 DEVICE_ACTION_EXECUTION_FAILURE(520_754, FailureStatus.DEPENDENCY_ISSUE); 66 67 private final long code; 68 private final @Nonnull FailureStatus status; 69 DeviceErrorIdentifier(int code, FailureStatus status)70 DeviceErrorIdentifier(int code, FailureStatus status) { 71 this.code = code; 72 this.status = (status == null ? FailureStatus.UNSET : status); 73 } 74 75 @Override code()76 public long code() { 77 return code; 78 } 79 80 @Override status()81 public @Nonnull FailureStatus status() { 82 return status; 83 } 84 } 85