1 /* 2 * Copyright (C) 2023 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 17 package android.tools.io 18 19 import android.tools.Scenario 20 21 /** Possible status of a flicker ru */ 22 enum class RunStatus(val prefix: String, val isFailure: Boolean) { 23 UNDEFINED("UNDEFINED", false), 24 RUN_EXECUTED("EXECUTED", false), 25 ASSERTION_SUCCESS("PASS", false), 26 RUN_FAILED("FAILED_RUN", true), 27 PARSING_FAILURE("FAILED_PARSING", true), 28 ASSERTION_FAILED("FAIL", true); 29 <lambda>null30 fun generateArchiveNameFor(scenario: Scenario, counter: Int): String = buildString { 31 append(prefix) 32 append("__") 33 append(scenario) 34 if (counter > 0) { 35 append("_") 36 append(counter) 37 } 38 append(".zip") 39 } 40 41 companion object { fromFileNamenull42 fun fromFileName(fileName: String): RunStatus? { 43 if (!fileName.contains("__")) { 44 return UNDEFINED 45 } 46 47 return when (fileName.split("__").first()) { 48 RUN_EXECUTED.prefix -> RUN_EXECUTED 49 ASSERTION_SUCCESS.prefix -> ASSERTION_SUCCESS 50 RUN_FAILED.prefix -> RUN_FAILED 51 PARSING_FAILURE.prefix -> PARSING_FAILURE 52 ASSERTION_FAILED.prefix -> ASSERTION_FAILED 53 UNDEFINED.prefix -> UNDEFINED 54 else -> null 55 } 56 } 57 58 val ALL: List<RunStatus> = RunStatus.values().toList() 59 } 60 } 61