xref: /aosp_15_r20/platform_testing/libraries/flicker/utils/src/android/tools/io/RunStatus.kt (revision dd0948b35e70be4c0246aabd6c72554a5eb8b22a)
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 {
42         @JvmStatic
fromFileNamenull43         fun fromFileName(fileName: String): RunStatus? {
44             if (!fileName.contains("__")) {
45                 return UNDEFINED
46             }
47 
48             return when (fileName.split("__").first()) {
49                 RUN_EXECUTED.prefix -> RUN_EXECUTED
50                 ASSERTION_SUCCESS.prefix -> ASSERTION_SUCCESS
51                 RUN_FAILED.prefix -> RUN_FAILED
52                 PARSING_FAILURE.prefix -> PARSING_FAILURE
53                 ASSERTION_FAILED.prefix -> ASSERTION_FAILED
54                 UNDEFINED.prefix -> UNDEFINED
55                 else -> null
56             }
57         }
58 
59         val ALL: List<RunStatus> = RunStatus.values().toList()
60     }
61 }
62