Home | History | Annotate | Download | only in atest
      1 # Copyright 2018, The Android Open Source Project
      2 #
      3 # Licensed under the Apache License, Version 2.0 (the "License");
      4 # you may not use this file except in compliance with the License.
      5 # You may obtain a copy of the License at
      6 #
      7 #     http://www.apache.org/licenses/LICENSE-2.0
      8 #
      9 # Unless required by applicable law or agreed to in writing, software
     10 # distributed under the License is distributed on an "AS IS" BASIS,
     11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 # See the License for the specific language governing permissions and
     13 # limitations under the License.
     14 
     15 """
     16 Unittest constants.
     17 
     18 Unittest constants get their own file since they're used purely for testing and
     19 should not be combined with constants_defaults as part of normal atest
     20 operation. These constants are used commonly as test data so when updating a
     21 constant, do so with care and run all unittests to make sure nothing breaks.
     22 """
     23 
     24 import os
     25 
     26 import constants
     27 from test_finders import test_info
     28 from test_runners import atest_tf_test_runner as atf_tr
     29 
     30 ROOT = '/'
     31 MODULE_DIR = 'foo/bar/jank'
     32 MODULE2_DIR = 'foo/bar/hello'
     33 MODULE_NAME = 'CtsJankDeviceTestCases'
     34 MODULE2_NAME = 'HelloWorldTests'
     35 CLASS_NAME = 'CtsDeviceJankUi'
     36 FULL_CLASS_NAME = 'android.jank.cts.ui.CtsDeviceJankUi'
     37 PACKAGE = 'android.jank.cts.ui'
     38 FIND_ONE = ROOT + 'foo/bar/jank/src/android/jank/cts/ui/CtsDeviceJankUi.java\n'
     39 FIND_TWO = ROOT + 'other/dir/test.java\n' + FIND_ONE
     40 FIND_PKG = ROOT + 'foo/bar/jank/src/android/jank/cts/ui\n'
     41 INT_NAME = 'example/reboot'
     42 GTF_INT_NAME = 'some/gtf_int_test'
     43 TEST_DATA_DIR = os.path.join(os.path.dirname(__file__), 'unittest_data')
     44 RELATIVE_TEST_DATA_DIR = 'relative_test_data_dir'
     45 
     46 INT_DIR = 'tf/contrib/res/config'
     47 GTF_INT_DIR = 'gtf/core/res/config'
     48 
     49 CONFIG_FILE = os.path.join(MODULE_DIR, constants.MODULE_CONFIG)
     50 CONFIG2_FILE = os.path.join(MODULE2_DIR, constants.MODULE_CONFIG)
     51 JSON_FILE = 'module-info.json'
     52 MODULE_INFO_TARGET = '/out/%s' % JSON_FILE
     53 MODULE_BUILD_TARGETS = {'tradefed-core', MODULE_INFO_TARGET,
     54                         'MODULES-IN-%s' % MODULE_DIR.replace('/', '-'),
     55                         'module-specific-target'}
     56 MODULE_DATA = {constants.TI_REL_CONFIG: CONFIG_FILE,
     57                constants.TI_FILTER: frozenset()}
     58 MODULE_INFO = test_info.TestInfo(MODULE_NAME,
     59                                  atf_tr.AtestTradefedTestRunner.NAME,
     60                                  MODULE_BUILD_TARGETS,
     61                                  MODULE_DATA)
     62 CLASS_FILTER = test_info.TestFilter(FULL_CLASS_NAME, frozenset())
     63 CLASS_DATA = {constants.TI_REL_CONFIG: CONFIG_FILE,
     64               constants.TI_FILTER: frozenset([CLASS_FILTER])}
     65 PACKAGE_FILTER = test_info.TestFilter(PACKAGE, frozenset())
     66 PACKAGE_DATA = {constants.TI_REL_CONFIG: CONFIG_FILE,
     67                 constants.TI_FILTER: frozenset([PACKAGE_FILTER])}
     68 TEST_DATA_CONFIG = os.path.relpath(os.path.join(TEST_DATA_DIR,
     69                                                 constants.MODULE_CONFIG), ROOT)
     70 PATH_DATA = {
     71     constants.TI_REL_CONFIG: TEST_DATA_CONFIG,
     72     constants.TI_FILTER: frozenset([PACKAGE_FILTER])}
     73 EMPTY_PATH_DATA = {
     74     constants.TI_REL_CONFIG: TEST_DATA_CONFIG,
     75     constants.TI_FILTER: frozenset()}
     76 
     77 CLASS_BUILD_TARGETS = {'class-specific-target'}
     78 CLASS_INFO = test_info.TestInfo(MODULE_NAME,
     79                                 atf_tr.AtestTradefedTestRunner.NAME,
     80                                 CLASS_BUILD_TARGETS,
     81                                 CLASS_DATA)
     82 PACKAGE_INFO = test_info.TestInfo(MODULE_NAME,
     83                                   atf_tr.AtestTradefedTestRunner.NAME,
     84                                   CLASS_BUILD_TARGETS,
     85                                   PACKAGE_DATA)
     86 PATH_INFO = test_info.TestInfo(MODULE_NAME,
     87                                atf_tr.AtestTradefedTestRunner.NAME,
     88                                MODULE_BUILD_TARGETS,
     89                                PATH_DATA)
     90 EMPTY_PATH_INFO = test_info.TestInfo(MODULE_NAME,
     91                                      atf_tr.AtestTradefedTestRunner.NAME,
     92                                      MODULE_BUILD_TARGETS,
     93                                      EMPTY_PATH_DATA)
     94 MODULE_CLASS_COMBINED_BUILD_TARGETS = MODULE_BUILD_TARGETS | CLASS_BUILD_TARGETS
     95 INT_CONFIG = os.path.join(INT_DIR, INT_NAME + '.xml')
     96 GTF_INT_CONFIG = os.path.join(GTF_INT_DIR, GTF_INT_NAME + '.xml')
     97 METHOD_NAME = 'method1'
     98 METHOD_FILTER = test_info.TestFilter(FULL_CLASS_NAME, frozenset([METHOD_NAME]))
     99 METHOD_INFO = test_info.TestInfo(
    100     MODULE_NAME,
    101     atf_tr.AtestTradefedTestRunner.NAME,
    102     MODULE_BUILD_TARGETS,
    103     data={constants.TI_FILTER: frozenset([METHOD_FILTER]),
    104           constants.TI_REL_CONFIG: CONFIG_FILE})
    105 METHOD2_NAME = 'method2'
    106 FLAT_METHOD_FILTER = test_info.TestFilter(
    107     FULL_CLASS_NAME, frozenset([METHOD_NAME, METHOD2_NAME]))
    108 INT_INFO = test_info.TestInfo(INT_NAME,
    109                               atf_tr.AtestTradefedTestRunner.NAME,
    110                               set(),
    111                               data={constants.TI_REL_CONFIG: INT_CONFIG,
    112                                     constants.TI_FILTER: frozenset()})
    113 GTF_INT_INFO = test_info.TestInfo(
    114     GTF_INT_NAME,
    115     atf_tr.AtestTradefedTestRunner.NAME,
    116     set(),
    117     data={constants.TI_FILTER: frozenset(),
    118           constants.TI_REL_CONFIG: GTF_INT_CONFIG})
    119 
    120 # Sample test configurations in TEST_MAPPING file.
    121 TEST_MAPPING_TEST = {'name': MODULE_NAME}
    122 TEST_MAPPING_TEST_WITH_OPTION = {
    123     'name': CLASS_NAME,
    124     'options': [
    125         {
    126             'arg1': 'val1'
    127         },
    128         {
    129             'arg2': ''
    130         }
    131     ]
    132 }
    133 TEST_MAPPING_TEST_WITH_OPTION_STR = '%s (arg1: val1, arg2:)' % CLASS_NAME
    134 TEST_MAPPING_TEST_WITH_BAD_OPTION = {
    135     'name': CLASS_NAME,
    136     'options': [
    137         {
    138             'arg1': 'val1',
    139             'arg2': ''
    140         }
    141     ]
    142 }
    143