1 /*
2  * Copyright (C) 2016 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.drawelements.deqp.runner;
17 
18 /**
19  * Test configuration of dEPQ test instance execution.
20  */
21 public class BatchRunConfiguration {
22     public static final String ROTATION_UNSPECIFIED = "unspecified";
23     public static final String ROTATION_PORTRAIT = "0";
24     public static final String ROTATION_LANDSCAPE = "90";
25     public static final String ROTATION_REVERSE_PORTRAIT = "180";
26     public static final String ROTATION_REVERSE_LANDSCAPE = "270";
27 
28     private final String mGlConfig;
29     private final String mRotation;
30     private final String mSurfaceType;
31     private final boolean mRequired;
32 
BatchRunConfiguration(String glConfig, String rotation, String surfaceType, boolean required)33     public BatchRunConfiguration(String glConfig, String rotation, String surfaceType,
34             boolean required) {
35         mGlConfig = glConfig;
36         mRotation = rotation;
37         mSurfaceType = surfaceType;
38         mRequired = required;
39     }
40 
41     /**
42      * Get string that uniquely identifies this config
43      */
getId()44     public String getId() {
45         return String.format("{glformat=%s,rotation=%s,surfacetype=%s,required=%b}",
46                 mGlConfig, mRotation, mSurfaceType, mRequired);
47     }
48 
49     /**
50      * Get the GL config used in this configuration.
51      */
getGlConfig()52     public String getGlConfig() {
53         return mGlConfig;
54     }
55 
56     /**
57      * Get the screen rotation used in this configuration.
58      */
getRotation()59     public String getRotation() {
60         return mRotation;
61     }
62 
63     /**
64      * Get the surface type used in this configuration.
65      */
getSurfaceType()66     public String getSurfaceType() {
67         return mSurfaceType;
68     }
69 
70     /**
71      * Is this configuration mandatory to support, if target API is supported?
72      */
isRequired()73     public boolean isRequired() {
74         return mRequired;
75     }
76 
77     @Override
equals(Object other)78     public boolean equals(Object other) {
79         if (other == null) {
80             return false;
81         } else if (!(other instanceof BatchRunConfiguration)) {
82             return false;
83         } else {
84             return getId().equals(((BatchRunConfiguration)other).getId());
85         }
86     }
87 
88     @Override
hashCode()89     public int hashCode() {
90         return getId().hashCode();
91     }
92 }
93