1*b7c941bbSAndroid Build Coastguard Worker#!/usr/bin/python 2*b7c941bbSAndroid Build Coastguard Worker 3*b7c941bbSAndroid Build Coastguard Worker# Copyright (C) 2009 The Android Open Source Project 4*b7c941bbSAndroid Build Coastguard Worker# 5*b7c941bbSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 6*b7c941bbSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 7*b7c941bbSAndroid Build Coastguard Worker# You may obtain a copy of the License at 8*b7c941bbSAndroid Build Coastguard Worker# 9*b7c941bbSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 10*b7c941bbSAndroid Build Coastguard Worker# 11*b7c941bbSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 12*b7c941bbSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 13*b7c941bbSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*b7c941bbSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 15*b7c941bbSAndroid Build Coastguard Worker# limitations under the License. 16*b7c941bbSAndroid Build Coastguard Worker 17*b7c941bbSAndroid Build Coastguard Worker"""Module for generating CTS test descriptions and test plans.""" 18*b7c941bbSAndroid Build Coastguard Worker 19*b7c941bbSAndroid Build Coastguard Workerimport glob 20*b7c941bbSAndroid Build Coastguard Workerimport os 21*b7c941bbSAndroid Build Coastguard Workerimport re 22*b7c941bbSAndroid Build Coastguard Workerimport shutil 23*b7c941bbSAndroid Build Coastguard Workerimport string 24*b7c941bbSAndroid Build Coastguard Workerimport subprocess 25*b7c941bbSAndroid Build Coastguard Workerimport sys 26*b7c941bbSAndroid Build Coastguard Workerimport xml.dom.minidom as dom 27*b7c941bbSAndroid Build Coastguard Workerfrom cts import tools 28*b7c941bbSAndroid Build Coastguard Workerfrom multiprocessing import Pool 29*b7c941bbSAndroid Build Coastguard Worker 30*b7c941bbSAndroid Build Coastguard Workerdef GetSubDirectories(root): 31*b7c941bbSAndroid Build Coastguard Worker """Return all directories under the given root directory.""" 32*b7c941bbSAndroid Build Coastguard Worker return [x for x in os.listdir(root) if os.path.isdir(os.path.join(root, x))] 33*b7c941bbSAndroid Build Coastguard Worker 34*b7c941bbSAndroid Build Coastguard Workerdef ReadFileLines(filePath): 35*b7c941bbSAndroid Build Coastguard Worker """Reads a file and returns its contents as a line list.""" 36*b7c941bbSAndroid Build Coastguard Worker f = open(filePath, 'r'); 37*b7c941bbSAndroid Build Coastguard Worker lines = [line.strip() for line in f.readlines()] 38*b7c941bbSAndroid Build Coastguard Worker f.close() 39*b7c941bbSAndroid Build Coastguard Worker return lines 40*b7c941bbSAndroid Build Coastguard Worker 41*b7c941bbSAndroid Build Coastguard Workerdef ReadDeqpTestList(testRoot, file): 42*b7c941bbSAndroid Build Coastguard Worker """Reads a file, converts test names from deqp to CTS format, and returns 43*b7c941bbSAndroid Build Coastguard Worker its contents as a line list. 44*b7c941bbSAndroid Build Coastguard Worker """ 45*b7c941bbSAndroid Build Coastguard Worker REPO_ROOT = os.path.join(testRoot, "../../..") 46*b7c941bbSAndroid Build Coastguard Worker f = open(os.path.join(REPO_ROOT, "external/deqp/android/cts", file), 'r'); 47*b7c941bbSAndroid Build Coastguard Worker lines = [string.join(line.strip().rsplit('.',1),'#') for line in f.readlines()] 48*b7c941bbSAndroid Build Coastguard Worker f.close() 49*b7c941bbSAndroid Build Coastguard Worker return lines 50*b7c941bbSAndroid Build Coastguard Worker 51*b7c941bbSAndroid Build Coastguard Workerdef GetMakeFileVars(makefile_path): 52*b7c941bbSAndroid Build Coastguard Worker """Extracts variable definitions from the given make file. 53*b7c941bbSAndroid Build Coastguard Worker 54*b7c941bbSAndroid Build Coastguard Worker Args: 55*b7c941bbSAndroid Build Coastguard Worker makefile_path: Path to the make file. 56*b7c941bbSAndroid Build Coastguard Worker 57*b7c941bbSAndroid Build Coastguard Worker Returns: 58*b7c941bbSAndroid Build Coastguard Worker A dictionary mapping variable names to their assigned value. 59*b7c941bbSAndroid Build Coastguard Worker """ 60*b7c941bbSAndroid Build Coastguard Worker result = {} 61*b7c941bbSAndroid Build Coastguard Worker pattern = re.compile(r'^\s*([^:#=\s]+)\s*:=\s*(.*?[^\\])$', re.MULTILINE + re.DOTALL) 62*b7c941bbSAndroid Build Coastguard Worker stream = open(makefile_path, 'r') 63*b7c941bbSAndroid Build Coastguard Worker content = stream.read() 64*b7c941bbSAndroid Build Coastguard Worker for match in pattern.finditer(content): 65*b7c941bbSAndroid Build Coastguard Worker result[match.group(1)] = match.group(2) 66*b7c941bbSAndroid Build Coastguard Worker stream.close() 67*b7c941bbSAndroid Build Coastguard Worker return result 68*b7c941bbSAndroid Build Coastguard Worker 69*b7c941bbSAndroid Build Coastguard Worker 70*b7c941bbSAndroid Build Coastguard Workerclass CtsBuilder(object): 71*b7c941bbSAndroid Build Coastguard Worker """Main class for generating test descriptions and test plans.""" 72*b7c941bbSAndroid Build Coastguard Worker 73*b7c941bbSAndroid Build Coastguard Worker def __init__(self, argv): 74*b7c941bbSAndroid Build Coastguard Worker """Initialize the CtsBuilder from command line arguments.""" 75*b7c941bbSAndroid Build Coastguard Worker if len(argv) != 6: 76*b7c941bbSAndroid Build Coastguard Worker print 'Usage: %s <testRoot> <ctsOutputDir> <tempDir> <androidRootDir> <docletPath>' % argv[0] 77*b7c941bbSAndroid Build Coastguard Worker print '' 78*b7c941bbSAndroid Build Coastguard Worker print 'testRoot: Directory under which to search for CTS tests.' 79*b7c941bbSAndroid Build Coastguard Worker print 'ctsOutputDir: Directory in which the CTS repository should be created.' 80*b7c941bbSAndroid Build Coastguard Worker print 'tempDir: Directory to use for storing temporary files.' 81*b7c941bbSAndroid Build Coastguard Worker print 'androidRootDir: Root directory of the Android source tree.' 82*b7c941bbSAndroid Build Coastguard Worker print 'docletPath: Class path where the DescriptionGenerator doclet can be found.' 83*b7c941bbSAndroid Build Coastguard Worker sys.exit(1) 84*b7c941bbSAndroid Build Coastguard Worker self.test_root = sys.argv[1] 85*b7c941bbSAndroid Build Coastguard Worker self.out_dir = sys.argv[2] 86*b7c941bbSAndroid Build Coastguard Worker self.temp_dir = sys.argv[3] 87*b7c941bbSAndroid Build Coastguard Worker self.android_root = sys.argv[4] 88*b7c941bbSAndroid Build Coastguard Worker self.doclet_path = sys.argv[5] 89*b7c941bbSAndroid Build Coastguard Worker 90*b7c941bbSAndroid Build Coastguard Worker self.test_repository = os.path.join(self.out_dir, 'repository/testcases') 91*b7c941bbSAndroid Build Coastguard Worker self.plan_repository = os.path.join(self.out_dir, 'repository/plans') 92*b7c941bbSAndroid Build Coastguard Worker self.definedplans_repository = os.path.join(self.android_root, 'cts/tests/plans') 93*b7c941bbSAndroid Build Coastguard Worker 94*b7c941bbSAndroid Build Coastguard Worker def GenerateTestDescriptions(self): 95*b7c941bbSAndroid Build Coastguard Worker """Generate test descriptions for all packages.""" 96*b7c941bbSAndroid Build Coastguard Worker pool = Pool(processes=2) 97*b7c941bbSAndroid Build Coastguard Worker 98*b7c941bbSAndroid Build Coastguard Worker # generate test descriptions for android tests 99*b7c941bbSAndroid Build Coastguard Worker results = [] 100*b7c941bbSAndroid Build Coastguard Worker pool.close() 101*b7c941bbSAndroid Build Coastguard Worker pool.join() 102*b7c941bbSAndroid Build Coastguard Worker return sum(map(lambda result: result.get(), results)) 103*b7c941bbSAndroid Build Coastguard Worker 104*b7c941bbSAndroid Build Coastguard Worker def __WritePlan(self, plan, plan_name): 105*b7c941bbSAndroid Build Coastguard Worker print 'Generating test plan %s' % plan_name 106*b7c941bbSAndroid Build Coastguard Worker plan.Write(os.path.join(self.plan_repository, plan_name + '.xml')) 107*b7c941bbSAndroid Build Coastguard Worker 108*b7c941bbSAndroid Build Coastguard Worker def GenerateTestPlans(self): 109*b7c941bbSAndroid Build Coastguard Worker """Generate default test plans.""" 110*b7c941bbSAndroid Build Coastguard Worker # TODO: Instead of hard-coding the plans here, use a configuration file, 111*b7c941bbSAndroid Build Coastguard Worker # such as test_defs.xml 112*b7c941bbSAndroid Build Coastguard Worker packages = [] 113*b7c941bbSAndroid Build Coastguard Worker descriptions = sorted(glob.glob(os.path.join(self.test_repository, '*.xml'))) 114*b7c941bbSAndroid Build Coastguard Worker for description in descriptions: 115*b7c941bbSAndroid Build Coastguard Worker doc = tools.XmlFile(description) 116*b7c941bbSAndroid Build Coastguard Worker packages.append(doc.GetAttr('TestPackage', 'appPackageName')) 117*b7c941bbSAndroid Build Coastguard Worker # sort the list to give the same sequence based on name 118*b7c941bbSAndroid Build Coastguard Worker packages.sort() 119*b7c941bbSAndroid Build Coastguard Worker 120*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 121*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('android\.car') 122*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('android\.performance.*') 123*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS') 124*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-TF') 125*b7c941bbSAndroid Build Coastguard Worker 126*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 127*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('android\.car') 128*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('android\.performance.*') 129*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('android\.media\.cts\.StreamingMediaPlayerTest.*') 130*b7c941bbSAndroid Build Coastguard Worker # Test plan to not include media streaming tests 131*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-No-Media-Stream') 132*b7c941bbSAndroid Build Coastguard Worker 133*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 134*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('android\.car') 135*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('android\.performance.*') 136*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'SDK') 137*b7c941bbSAndroid Build Coastguard Worker 138*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'android\.signature') 139*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'android\.core.*') 140*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'Android') 141*b7c941bbSAndroid Build Coastguard Worker 142*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 143*b7c941bbSAndroid Build Coastguard Worker plan.Include(r'android\.core\.tests.*') 144*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'android\.core\.tests\.libcore\.package\.harmony*') 145*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'Java') 146*b7c941bbSAndroid Build Coastguard Worker 147*b7c941bbSAndroid Build Coastguard Worker # TODO: remove this once the tests are fixed and merged into Java plan above. 148*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 149*b7c941bbSAndroid Build Coastguard Worker plan.Include(r'android\.core\.tests\.libcore\.package\.harmony*') 150*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'Harmony') 151*b7c941bbSAndroid Build Coastguard Worker 152*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 153*b7c941bbSAndroid Build Coastguard Worker plan.Include(r'android\.core\.vm-tests-tf') 154*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'VM-TF') 155*b7c941bbSAndroid Build Coastguard Worker 156*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 157*b7c941bbSAndroid Build Coastguard Worker plan.Include(r'android\.tests\.appsecurity') 158*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'AppSecurity') 159*b7c941bbSAndroid Build Coastguard Worker 160*b7c941bbSAndroid Build Coastguard Worker # hard-coded white list for PDK plan 161*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('.*') 162*b7c941bbSAndroid Build Coastguard Worker plan.Include('android\.aadb') 163*b7c941bbSAndroid Build Coastguard Worker plan.Include('android\.bluetooth') 164*b7c941bbSAndroid Build Coastguard Worker plan.Include('android\.graphics.*') 165*b7c941bbSAndroid Build Coastguard Worker plan.Include('android\.hardware') 166*b7c941bbSAndroid Build Coastguard Worker plan.Include('android\.media') 167*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('android\.mediastress') 168*b7c941bbSAndroid Build Coastguard Worker plan.Include('android\.net') 169*b7c941bbSAndroid Build Coastguard Worker plan.Include('android\.opengl.*') 170*b7c941bbSAndroid Build Coastguard Worker plan.Include('android\.renderscript') 171*b7c941bbSAndroid Build Coastguard Worker plan.Include('android\.telephony') 172*b7c941bbSAndroid Build Coastguard Worker plan.Include('android\.nativemedia.*') 173*b7c941bbSAndroid Build Coastguard Worker plan.Include('com\.android\.cts\..*')#TODO(stuartscott): Should PDK have all these? 174*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('android\.car') 175*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'PDK') 176*b7c941bbSAndroid Build Coastguard Worker 177*b7c941bbSAndroid Build Coastguard Worker temporarily_known_failure_tests = BuildCtsTemporarilyKnownFailureList(); 178*b7c941bbSAndroid Build Coastguard Worker flaky_tests = BuildCtsFlakyTestList() 179*b7c941bbSAndroid Build Coastguard Worker releasekey_tests = BuildListForReleaseBuildTest() 180*b7c941bbSAndroid Build Coastguard Worker 181*b7c941bbSAndroid Build Coastguard Worker # CTS Stable plan 182*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 183*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('android\.car') 184*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'android\.browser') 185*b7c941bbSAndroid Build Coastguard Worker for package, test_list in flaky_tests.iteritems(): 186*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 187*b7c941bbSAndroid Build Coastguard Worker for package, test_list in releasekey_tests.iteritems(): 188*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 189*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-stable') 190*b7c941bbSAndroid Build Coastguard Worker 191*b7c941bbSAndroid Build Coastguard Worker # CTS Flaky plan - list of tests known to be flaky in lab environment 192*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 193*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('.*') 194*b7c941bbSAndroid Build Coastguard Worker plan.Include(r'android\.browser') 195*b7c941bbSAndroid Build Coastguard Worker for package, test_list in flaky_tests.iteritems(): 196*b7c941bbSAndroid Build Coastguard Worker plan.Include(package+'$') 197*b7c941bbSAndroid Build Coastguard Worker plan.IncludeTests(package, test_list) 198*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-flaky') 199*b7c941bbSAndroid Build Coastguard Worker 200*b7c941bbSAndroid Build Coastguard Worker small_tests = BuildAospSmallSizeTestList() 201*b7c941bbSAndroid Build Coastguard Worker medium_tests = BuildAospMediumSizeTestList() 202*b7c941bbSAndroid Build Coastguard Worker new_test_packages = BuildCtsVettedNewPackagesList() 203*b7c941bbSAndroid Build Coastguard Worker 204*b7c941bbSAndroid Build Coastguard Worker # CTS - sub plan for public, small size tests 205*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 206*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('.*') 207*b7c941bbSAndroid Build Coastguard Worker for package, test_list in small_tests.iteritems(): 208*b7c941bbSAndroid Build Coastguard Worker plan.Include(package+'$') 209*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'android\.browser') 210*b7c941bbSAndroid Build Coastguard Worker for package, test_list in flaky_tests.iteritems(): 211*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 212*b7c941bbSAndroid Build Coastguard Worker for package, test_list in releasekey_tests.iteritems(): 213*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 214*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-kitkat-small') 215*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-public-small') 216*b7c941bbSAndroid Build Coastguard Worker 217*b7c941bbSAndroid Build Coastguard Worker # CTS - sub plan for public, medium size tests 218*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 219*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('.*') 220*b7c941bbSAndroid Build Coastguard Worker for package, test_list in medium_tests.iteritems(): 221*b7c941bbSAndroid Build Coastguard Worker plan.Include(package+'$') 222*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'android\.browser') 223*b7c941bbSAndroid Build Coastguard Worker for package, test_list in flaky_tests.iteritems(): 224*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 225*b7c941bbSAndroid Build Coastguard Worker for package, test_list in releasekey_tests.iteritems(): 226*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 227*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-kitkat-medium') 228*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-public-medium') 229*b7c941bbSAndroid Build Coastguard Worker 230*b7c941bbSAndroid Build Coastguard Worker # CTS - sub plan for hardware tests which is public, large 231*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 232*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('.*') 233*b7c941bbSAndroid Build Coastguard Worker plan.Include(r'android\.hardware$') 234*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'android\.browser') 235*b7c941bbSAndroid Build Coastguard Worker for package, test_list in flaky_tests.iteritems(): 236*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 237*b7c941bbSAndroid Build Coastguard Worker for package, test_list in releasekey_tests.iteritems(): 238*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 239*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-hardware') 240*b7c941bbSAndroid Build Coastguard Worker 241*b7c941bbSAndroid Build Coastguard Worker # CTS - sub plan for camera tests which is public, large 242*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 243*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('.*') 244*b7c941bbSAndroid Build Coastguard Worker plan.Include(r'android\.camera$') 245*b7c941bbSAndroid Build Coastguard Worker misc_camera_tests = BuildCtsMiscCameraList() 246*b7c941bbSAndroid Build Coastguard Worker for package, test_list in misc_camera_tests.iteritems(): 247*b7c941bbSAndroid Build Coastguard Worker plan.Include(package+'$') 248*b7c941bbSAndroid Build Coastguard Worker plan.IncludeTests(package, test_list) 249*b7c941bbSAndroid Build Coastguard Worker for package, test_list in flaky_tests.iteritems(): 250*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 251*b7c941bbSAndroid Build Coastguard Worker for package, test_list in releasekey_tests.iteritems(): 252*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 253*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-camera') 254*b7c941bbSAndroid Build Coastguard Worker 255*b7c941bbSAndroid Build Coastguard Worker # CTS - sub plan for media tests which is public, large 256*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 257*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('.*') 258*b7c941bbSAndroid Build Coastguard Worker plan.Include(r'android\.media$') 259*b7c941bbSAndroid Build Coastguard Worker plan.Include(r'android\.view$') 260*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'android\.browser') 261*b7c941bbSAndroid Build Coastguard Worker for package, test_list in flaky_tests.iteritems(): 262*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 263*b7c941bbSAndroid Build Coastguard Worker for package, test_list in releasekey_tests.iteritems(): 264*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 265*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-media') 266*b7c941bbSAndroid Build Coastguard Worker 267*b7c941bbSAndroid Build Coastguard Worker # CTS - sub plan for mediastress tests which is public, large 268*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 269*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('.*') 270*b7c941bbSAndroid Build Coastguard Worker plan.Include(r'android\.mediastress$') 271*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'android\.browser') 272*b7c941bbSAndroid Build Coastguard Worker for package, test_list in flaky_tests.iteritems(): 273*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 274*b7c941bbSAndroid Build Coastguard Worker for package, test_list in releasekey_tests.iteritems(): 275*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 276*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-mediastress') 277*b7c941bbSAndroid Build Coastguard Worker 278*b7c941bbSAndroid Build Coastguard Worker # CTS - sub plan for new tests that is vetted for L launch 279*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 280*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('.*') 281*b7c941bbSAndroid Build Coastguard Worker for package, test_list in new_test_packages.iteritems(): 282*b7c941bbSAndroid Build Coastguard Worker plan.Include(package+'$') 283*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'android\.browser') 284*b7c941bbSAndroid Build Coastguard Worker for package, test_list in flaky_tests.iteritems(): 285*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 286*b7c941bbSAndroid Build Coastguard Worker for package, test_list in releasekey_tests.iteritems(): 287*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 288*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-l-tests') 289*b7c941bbSAndroid Build Coastguard Worker 290*b7c941bbSAndroid Build Coastguard Worker # CTS - sub plan for tests in drawelement packages 291*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 292*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('.*') 293*b7c941bbSAndroid Build Coastguard Worker plan.Include(r'com\.drawelements\.') 294*b7c941bbSAndroid Build Coastguard Worker plan.IncludeTests('com.drawelements.deqp.egl', ReadDeqpTestList(self.test_root, 'mnc/egl-master.txt')) 295*b7c941bbSAndroid Build Coastguard Worker plan.IncludeTests('com.drawelements.deqp.gles2', ReadDeqpTestList(self.test_root, 'mnc/gles2-master.txt')) 296*b7c941bbSAndroid Build Coastguard Worker plan.IncludeTests('com.drawelements.deqp.gles3', ReadDeqpTestList(self.test_root, 'mnc/gles3-master.txt')) 297*b7c941bbSAndroid Build Coastguard Worker plan.IncludeTests('com.drawelements.deqp.gles31', ReadDeqpTestList(self.test_root, 'mnc/gles31-master.txt')) 298*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-DEQP') 299*b7c941bbSAndroid Build Coastguard Worker 300*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 301*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('.*') 302*b7c941bbSAndroid Build Coastguard Worker plan.Include(r'com\.drawelements\.') 303*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests('com.drawelements.deqp.egl', ReadDeqpTestList(self.test_root, 'mnc/egl-master.txt')) 304*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests('com.drawelements.deqp.gles2', ReadDeqpTestList(self.test_root, 'mnc/gles2-master.txt')) 305*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests('com.drawelements.deqp.gles3', ReadDeqpTestList(self.test_root, 'mnc/gles3-master.txt')) 306*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests('com.drawelements.deqp.gles31', ReadDeqpTestList(self.test_root, 'mnc/gles31-master.txt')) 307*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-DEQP-for-next-rel') 308*b7c941bbSAndroid Build Coastguard Worker 309*b7c941bbSAndroid Build Coastguard Worker # CTS - sub plan for new test packages added for staging 310*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 311*b7c941bbSAndroid Build Coastguard Worker for package, test_list in small_tests.iteritems(): 312*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(package+'$') 313*b7c941bbSAndroid Build Coastguard Worker for package, test_list in medium_tests.iteritems(): 314*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(package+'$') 315*b7c941bbSAndroid Build Coastguard Worker for package, tests_list in new_test_packages.iteritems(): 316*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(package+'$') 317*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'com\.drawelements\.') 318*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'android\.hardware$') 319*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'android\.media$') 320*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'android\.view$') 321*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'android\.mediastress$') 322*b7c941bbSAndroid Build Coastguard Worker plan.Exclude(r'android\.browser') 323*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('android\.car') 324*b7c941bbSAndroid Build Coastguard Worker for package, test_list in flaky_tests.iteritems(): 325*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 326*b7c941bbSAndroid Build Coastguard Worker for package, test_list in releasekey_tests.iteritems(): 327*b7c941bbSAndroid Build Coastguard Worker plan.ExcludeTests(package, test_list) 328*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-m-tests') 329*b7c941bbSAndroid Build Coastguard Worker 330*b7c941bbSAndroid Build Coastguard Worker 331*b7c941bbSAndroid Build Coastguard Worker # CTS - sub plan for new test packages added for staging 332*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 333*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('.*') 334*b7c941bbSAndroid Build Coastguard Worker for package, test_list in temporarily_known_failure_tests.iteritems(): 335*b7c941bbSAndroid Build Coastguard Worker plan.Include(package+'$') 336*b7c941bbSAndroid Build Coastguard Worker plan.IncludeTests(package, test_list) 337*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-staging') 338*b7c941bbSAndroid Build Coastguard Worker 339*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 340*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('.*') 341*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'CTS-webview') 342*b7c941bbSAndroid Build Coastguard Worker 343*b7c941bbSAndroid Build Coastguard Worker # CTS - sub plan for Security 344*b7c941bbSAndroid Build Coastguard Worker plan = tools.TestPlan(packages) 345*b7c941bbSAndroid Build Coastguard Worker plan.Exclude('.*') 346*b7c941bbSAndroid Build Coastguard Worker plan.Include(r'android\.security$') 347*b7c941bbSAndroid Build Coastguard Worker plan.Include('android\.host\.jdwpsecurity$') 348*b7c941bbSAndroid Build Coastguard Worker plan.Include('android\.host\.abioverride$') 349*b7c941bbSAndroid Build Coastguard Worker self.__WritePlan(plan, 'Security') 350*b7c941bbSAndroid Build Coastguard Worker 351*b7c941bbSAndroid Build Coastguard Workerdef BuildAospMediumSizeTestList(): 352*b7c941bbSAndroid Build Coastguard Worker """ Construct a defaultdic that lists package names of medium tests 353*b7c941bbSAndroid Build Coastguard Worker already published to aosp. """ 354*b7c941bbSAndroid Build Coastguard Worker return { 355*b7c941bbSAndroid Build Coastguard Worker 'android.app' : [], 356*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.libcore' : [], 357*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.org' : [], 358*b7c941bbSAndroid Build Coastguard Worker 'android.core.vm-tests-tf' : [], 359*b7c941bbSAndroid Build Coastguard Worker 'android.dpi' : [], 360*b7c941bbSAndroid Build Coastguard Worker 'android.host.security' : [], 361*b7c941bbSAndroid Build Coastguard Worker 'android.net' : [], 362*b7c941bbSAndroid Build Coastguard Worker 'android.os' : [], 363*b7c941bbSAndroid Build Coastguard Worker 'android.permission2' : [], 364*b7c941bbSAndroid Build Coastguard Worker 'android.security' : [], 365*b7c941bbSAndroid Build Coastguard Worker 'android.telephony' : [], 366*b7c941bbSAndroid Build Coastguard Worker 'android.webkit' : [], 367*b7c941bbSAndroid Build Coastguard Worker 'android.widget' : [], 368*b7c941bbSAndroid Build Coastguard Worker 'android.browser' : []} 369*b7c941bbSAndroid Build Coastguard Worker 370*b7c941bbSAndroid Build Coastguard Workerdef BuildAospSmallSizeTestList(): 371*b7c941bbSAndroid Build Coastguard Worker """ Construct a default dict that lists packages names of small tests 372*b7c941bbSAndroid Build Coastguard Worker already published to aosp. """ 373*b7c941bbSAndroid Build Coastguard Worker return { 374*b7c941bbSAndroid Build Coastguard Worker 'android.aadb' : [], 375*b7c941bbSAndroid Build Coastguard Worker 'android.acceleration' : [], 376*b7c941bbSAndroid Build Coastguard Worker 'android.accessibility' : [], 377*b7c941bbSAndroid Build Coastguard Worker 'android.accessibilityservice' : [], 378*b7c941bbSAndroid Build Coastguard Worker 'android.accounts' : [], 379*b7c941bbSAndroid Build Coastguard Worker 'android.admin' : [], 380*b7c941bbSAndroid Build Coastguard Worker 'android.animation' : [], 381*b7c941bbSAndroid Build Coastguard Worker 'android.appsecurity' : [], 382*b7c941bbSAndroid Build Coastguard Worker 'android.bionic' : [], 383*b7c941bbSAndroid Build Coastguard Worker 'android.bluetooth' : [], 384*b7c941bbSAndroid Build Coastguard Worker 'android.calendarcommon' : [], 385*b7c941bbSAndroid Build Coastguard Worker 'android.content' : [], 386*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.com' : [], 387*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.conscrypt' : [], 388*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.dalvik' : [], 389*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.sun' : [], 390*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.tests' : [], 391*b7c941bbSAndroid Build Coastguard Worker 'android.database' : [], 392*b7c941bbSAndroid Build Coastguard Worker 'android.dram' : [], 393*b7c941bbSAndroid Build Coastguard Worker 'android.dreams' : [], 394*b7c941bbSAndroid Build Coastguard Worker 'android.drm' : [], 395*b7c941bbSAndroid Build Coastguard Worker 'android.effect' : [], 396*b7c941bbSAndroid Build Coastguard Worker 'android.filesystem' : [], 397*b7c941bbSAndroid Build Coastguard Worker 'android.gesture' : [], 398*b7c941bbSAndroid Build Coastguard Worker 'android.graphics' : [], 399*b7c941bbSAndroid Build Coastguard Worker 'android.graphics2' : [], 400*b7c941bbSAndroid Build Coastguard Worker 'android.jni' : [], 401*b7c941bbSAndroid Build Coastguard Worker 'android.keystore' : [], 402*b7c941bbSAndroid Build Coastguard Worker 'android.location' : [], 403*b7c941bbSAndroid Build Coastguard Worker 'android.nativemedia.sl' : [], 404*b7c941bbSAndroid Build Coastguard Worker 'android.nativemedia.xa' : [], 405*b7c941bbSAndroid Build Coastguard Worker 'android.ndef' : [], 406*b7c941bbSAndroid Build Coastguard Worker 'android.opengl' : [], 407*b7c941bbSAndroid Build Coastguard Worker 'android.openglperf' : [], 408*b7c941bbSAndroid Build Coastguard Worker 'android.permission' : [], 409*b7c941bbSAndroid Build Coastguard Worker 'android.preference' : [], 410*b7c941bbSAndroid Build Coastguard Worker 'android.preference2' : [], 411*b7c941bbSAndroid Build Coastguard Worker 'android.provider' : [], 412*b7c941bbSAndroid Build Coastguard Worker 'android.renderscript' : [], 413*b7c941bbSAndroid Build Coastguard Worker 'android.rscpp' : [], 414*b7c941bbSAndroid Build Coastguard Worker 'android.rsg' : [], 415*b7c941bbSAndroid Build Coastguard Worker 'android.sax' : [], 416*b7c941bbSAndroid Build Coastguard Worker 'android.server' : [], 417*b7c941bbSAndroid Build Coastguard Worker 'android.signature' : [], 418*b7c941bbSAndroid Build Coastguard Worker 'android.simplecpu' : [], 419*b7c941bbSAndroid Build Coastguard Worker 'android.simpleperf' : [], 420*b7c941bbSAndroid Build Coastguard Worker 'android.speech' : [], 421*b7c941bbSAndroid Build Coastguard Worker 'android.text' : [], 422*b7c941bbSAndroid Build Coastguard Worker 'android.textureview' : [], 423*b7c941bbSAndroid Build Coastguard Worker 'android.theme' : [], 424*b7c941bbSAndroid Build Coastguard Worker 'android.usb' : [], 425*b7c941bbSAndroid Build Coastguard Worker 'android.util' : [], 426*b7c941bbSAndroid Build Coastguard Worker 'android.video' : [], 427*b7c941bbSAndroid Build Coastguard Worker 'com.android.cts.jank' : [], 428*b7c941bbSAndroid Build Coastguard Worker 'com.android.cts.jank2' : [], 429*b7c941bbSAndroid Build Coastguard Worker 'com.android.cts.opengl' : [], 430*b7c941bbSAndroid Build Coastguard Worker 'com.android.cts.ui' : [], 431*b7c941bbSAndroid Build Coastguard Worker 'com.android.cts.uihost' : [], 432*b7c941bbSAndroid Build Coastguard Worker 'zzz.android.monkey' : []} 433*b7c941bbSAndroid Build Coastguard Worker 434*b7c941bbSAndroid Build Coastguard Workerdef BuildCtsVettedNewPackagesList(): 435*b7c941bbSAndroid Build Coastguard Worker """ Construct a defaultdict that maps package names that is vetted for L. """ 436*b7c941bbSAndroid Build Coastguard Worker return { 437*b7c941bbSAndroid Build Coastguard Worker 'android.JobScheduler' : [], 438*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.harmony_annotation' : [], 439*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.harmony_beans' : [], 440*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.harmony_java_io' : [], 441*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.harmony_java_lang' : [], 442*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.harmony_java_math' : [], 443*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.harmony_java_net' : [], 444*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.harmony_java_nio' : [], 445*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.harmony_java_util' : [], 446*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.harmony_java_text' : [], 447*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.harmony_javax_security' : [], 448*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.harmony_logging' : [], 449*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.harmony_prefs' : [], 450*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.harmony_sql' : [], 451*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.jsr166' : [], 452*b7c941bbSAndroid Build Coastguard Worker 'android.core.tests.libcore.package.okhttp' : [], 453*b7c941bbSAndroid Build Coastguard Worker 'android.display' : [], 454*b7c941bbSAndroid Build Coastguard Worker 'android.host.theme' : [], 455*b7c941bbSAndroid Build Coastguard Worker 'android.jdwp' : [], 456*b7c941bbSAndroid Build Coastguard Worker 'android.location2' : [], 457*b7c941bbSAndroid Build Coastguard Worker 'android.print' : [], 458*b7c941bbSAndroid Build Coastguard Worker 'android.renderscriptlegacy' : [], 459*b7c941bbSAndroid Build Coastguard Worker 'android.signature' : [], 460*b7c941bbSAndroid Build Coastguard Worker 'android.tv' : [], 461*b7c941bbSAndroid Build Coastguard Worker 'android.uiautomation' : [], 462*b7c941bbSAndroid Build Coastguard Worker 'android.uirendering' : []} 463*b7c941bbSAndroid Build Coastguard Worker 464*b7c941bbSAndroid Build Coastguard Workerdef BuildListForReleaseBuildTest(): 465*b7c941bbSAndroid Build Coastguard Worker """ Construct a defaultdict that maps package name to a list of tests 466*b7c941bbSAndroid Build Coastguard Worker that are expected to pass only when running against a user/release-key build. """ 467*b7c941bbSAndroid Build Coastguard Worker return { 468*b7c941bbSAndroid Build Coastguard Worker 'android.app' : [ 469*b7c941bbSAndroid Build Coastguard Worker 'android.app.cts.ActivityManagerTest#testIsRunningInTestHarness',], 470*b7c941bbSAndroid Build Coastguard Worker 'android.dpi' : [ 471*b7c941bbSAndroid Build Coastguard Worker 'android.dpi.cts.DefaultManifestAttributesSdkTest#testPackageHasExpectedSdkVersion',], 472*b7c941bbSAndroid Build Coastguard Worker 'android.host.security' : [ 473*b7c941bbSAndroid Build Coastguard Worker 'android.cts.security.SELinuxHostTest#testAllEnforcing', 474*b7c941bbSAndroid Build Coastguard Worker 'android.cts.security.SELinuxHostTest#testSuDomain',], 475*b7c941bbSAndroid Build Coastguard Worker 'android.os' : [ 476*b7c941bbSAndroid Build Coastguard Worker 'android.os.cts.BuildVersionTest#testReleaseVersion', 477*b7c941bbSAndroid Build Coastguard Worker 'android.os.cts.BuildTest#testIsSecureUserBuild',], 478*b7c941bbSAndroid Build Coastguard Worker 'android.security' : [ 479*b7c941bbSAndroid Build Coastguard Worker 'android.security.cts.BannedFilesTest#testNoSu', 480*b7c941bbSAndroid Build Coastguard Worker 'android.security.cts.BannedFilesTest#testNoSuInPath', 481*b7c941bbSAndroid Build Coastguard Worker 'android.security.cts.PackageSignatureTest#testPackageSignatures', 482*b7c941bbSAndroid Build Coastguard Worker 'android.security.cts.SELinuxDomainTest#testSuDomain',], 483*b7c941bbSAndroid Build Coastguard Worker '' : []} 484*b7c941bbSAndroid Build Coastguard Worker 485*b7c941bbSAndroid Build Coastguard Workerdef BuildCtsFlakyTestList(): 486*b7c941bbSAndroid Build Coastguard Worker """ Construct a defaultdict that maps package name to a list of tests 487*b7c941bbSAndroid Build Coastguard Worker that flaky during dev cycle and cause other subsequent tests to fail. """ 488*b7c941bbSAndroid Build Coastguard Worker return { 489*b7c941bbSAndroid Build Coastguard Worker 'android.camera' : [ 490*b7c941bbSAndroid Build Coastguard Worker 'android.hardware.cts.CameraTest#testVideoSnapshot', 491*b7c941bbSAndroid Build Coastguard Worker 'android.hardware.cts.CameraGLTest#testCameraToSurfaceTextureMetadata', 492*b7c941bbSAndroid Build Coastguard Worker 'android.hardware.cts.CameraGLTest#testSetPreviewTextureBothCallbacks', 493*b7c941bbSAndroid Build Coastguard Worker 'android.hardware.cts.CameraGLTest#testSetPreviewTexturePreviewCallback',], 494*b7c941bbSAndroid Build Coastguard Worker 'android.media' : [ 495*b7c941bbSAndroid Build Coastguard Worker 'android.media.cts.DecoderTest#testCodecResetsH264WithSurface', 496*b7c941bbSAndroid Build Coastguard Worker 'android.media.cts.StreamingMediaPlayerTest#testHLS',], 497*b7c941bbSAndroid Build Coastguard Worker 'android.net' : [ 498*b7c941bbSAndroid Build Coastguard Worker 'android.net.cts.ConnectivityManagerTest#testStartUsingNetworkFeature_enableHipri', 499*b7c941bbSAndroid Build Coastguard Worker 'android.net.cts.DnsTest#testDnsWorks', 500*b7c941bbSAndroid Build Coastguard Worker 'android.net.cts.SSLCertificateSocketFactoryTest#testCreateSocket', 501*b7c941bbSAndroid Build Coastguard Worker 'android.net.cts.SSLCertificateSocketFactoryTest#test_createSocket_bind', 502*b7c941bbSAndroid Build Coastguard Worker 'android.net.cts.SSLCertificateSocketFactoryTest#test_createSocket_simple', 503*b7c941bbSAndroid Build Coastguard Worker 'android.net.cts.SSLCertificateSocketFactoryTest#test_createSocket_wrapping', 504*b7c941bbSAndroid Build Coastguard Worker 'android.net.cts.TrafficStatsTest#testTrafficStatsForLocalhost', 505*b7c941bbSAndroid Build Coastguard Worker 'android.net.wifi.cts.NsdManagerTest#testAndroidTestCaseSetupProperly',], 506*b7c941bbSAndroid Build Coastguard Worker 'android.security' : [ 507*b7c941bbSAndroid Build Coastguard Worker 'android.security.cts.ListeningPortsTest#testNoRemotelyAccessibleListeningUdp6Ports', 508*b7c941bbSAndroid Build Coastguard Worker 'android.security.cts.ListeningPortsTest#testNoRemotelyAccessibleListeningUdpPorts',], 509*b7c941bbSAndroid Build Coastguard Worker 'android.webkit' : [ 510*b7c941bbSAndroid Build Coastguard Worker 'android.webkit.cts.WebViewClientTest#testOnUnhandledKeyEvent',], 511*b7c941bbSAndroid Build Coastguard Worker 'com.android.cts.filesystemperf' : [ 512*b7c941bbSAndroid Build Coastguard Worker 'com.android.cts.filesystemperf.RandomRWTest#testRandomRead', 513*b7c941bbSAndroid Build Coastguard Worker 'com.android.cts.filesystemperf.RandomRWTest#testRandomUpdate',], 514*b7c941bbSAndroid Build Coastguard Worker '' : []} 515*b7c941bbSAndroid Build Coastguard Worker 516*b7c941bbSAndroid Build Coastguard Workerdef BuildCtsTemporarilyKnownFailureList(): 517*b7c941bbSAndroid Build Coastguard Worker """ Construct a defaultdict that maps package name to a list of tests 518*b7c941bbSAndroid Build Coastguard Worker that are known failures during dev cycle but expected to be fixed before launch """ 519*b7c941bbSAndroid Build Coastguard Worker return { 520*b7c941bbSAndroid Build Coastguard Worker 'android.alarmclock' : [ 521*b7c941bbSAndroid Build Coastguard Worker 'android.alarmclock.cts.DismissAlarmTest#testAll', 522*b7c941bbSAndroid Build Coastguard Worker 'android.alarmclock.cts.SetAlarmTest#testAll', 523*b7c941bbSAndroid Build Coastguard Worker 'android.alarmclock.cts.SnoozeAlarmTest#testAll', 524*b7c941bbSAndroid Build Coastguard Worker ], 525*b7c941bbSAndroid Build Coastguard Worker 'android.dumpsys' : [ 526*b7c941bbSAndroid Build Coastguard Worker 'android.dumpsys.cts.DumpsysHostTest#testBatterystatsOutput', 527*b7c941bbSAndroid Build Coastguard Worker 'android.dumpsys.cts.DumpsysHostTest#testGfxinfoFramestats', 528*b7c941bbSAndroid Build Coastguard Worker ], 529*b7c941bbSAndroid Build Coastguard Worker 'android.telecom' : [ 530*b7c941bbSAndroid Build Coastguard Worker 'android.telecom.cts.ExtendedInCallServiceTest#testAddNewOutgoingCallAndThenDisconnect', 531*b7c941bbSAndroid Build Coastguard Worker 'android.telecom.cts.RemoteConferenceTest#testRemoteConferenceCallbacks_ConferenceableConnections', 532*b7c941bbSAndroid Build Coastguard Worker ], 533*b7c941bbSAndroid Build Coastguard Worker 'android.transition' : [ 534*b7c941bbSAndroid Build Coastguard Worker 'android.transition.cts.ChangeScrollTest#testChangeScroll', 535*b7c941bbSAndroid Build Coastguard Worker ], 536*b7c941bbSAndroid Build Coastguard Worker 'android.voicesettings' : [ 537*b7c941bbSAndroid Build Coastguard Worker 'android.voicesettings.cts.ZenModeTest#testAll', 538*b7c941bbSAndroid Build Coastguard Worker ], 539*b7c941bbSAndroid Build Coastguard Worker 'android.systemui.cts' : [ 540*b7c941bbSAndroid Build Coastguard Worker 'android.systemui.cts.LightStatusBarTests#testLightStatusBarIcons', 541*b7c941bbSAndroid Build Coastguard Worker ], 542*b7c941bbSAndroid Build Coastguard Worker 'com.android.cts.app.os' : [ 543*b7c941bbSAndroid Build Coastguard Worker 'com.android.cts.app.os.OsHostTests#testNonExportedActivities', 544*b7c941bbSAndroid Build Coastguard Worker ], 545*b7c941bbSAndroid Build Coastguard Worker 'com.android.cts.devicepolicy' : [ 546*b7c941bbSAndroid Build Coastguard Worker 'com.android.cts.devicepolicy.MixedDeviceOwnerTest#testPackageInstallUserRestrictions', 547*b7c941bbSAndroid Build Coastguard Worker 'com.android.cts.devicepolicy.MixedProfileOwnerTest#testPackageInstallUserRestrictions', 548*b7c941bbSAndroid Build Coastguard Worker ], 549*b7c941bbSAndroid Build Coastguard Worker '' : []} 550*b7c941bbSAndroid Build Coastguard Worker 551*b7c941bbSAndroid Build Coastguard Workerdef BuildCtsMiscCameraList(): 552*b7c941bbSAndroid Build Coastguard Worker """ Construct a defaultdict that maps package name to a list of tests 553*b7c941bbSAndroid Build Coastguard Worker that are relevant to camera but does not reside in camera test package """ 554*b7c941bbSAndroid Build Coastguard Worker return { 555*b7c941bbSAndroid Build Coastguard Worker 'android.app' : [ 556*b7c941bbSAndroid Build Coastguard Worker 'android.app.cts.SystemFeaturesTest#testCameraFeatures', 557*b7c941bbSAndroid Build Coastguard Worker ], 558*b7c941bbSAndroid Build Coastguard Worker 'android.permission' : [ 559*b7c941bbSAndroid Build Coastguard Worker 'android.permission.cts.CameraPermissionTest', 560*b7c941bbSAndroid Build Coastguard Worker 'android.permission.cts.Camera2PermissionTest', 561*b7c941bbSAndroid Build Coastguard Worker ], 562*b7c941bbSAndroid Build Coastguard Worker '' : []} 563*b7c941bbSAndroid Build Coastguard Worker 564*b7c941bbSAndroid Build Coastguard Workerdef LogGenerateDescription(name): 565*b7c941bbSAndroid Build Coastguard Worker print 'Generating test description for package %s' % name 566*b7c941bbSAndroid Build Coastguard Worker 567*b7c941bbSAndroid Build Coastguard Workerif __name__ == '__main__': 568*b7c941bbSAndroid Build Coastguard Worker builder = CtsBuilder(sys.argv) 569*b7c941bbSAndroid Build Coastguard Worker result = builder.GenerateTestDescriptions() 570*b7c941bbSAndroid Build Coastguard Worker if result != 0: 571*b7c941bbSAndroid Build Coastguard Worker sys.exit(result) 572*b7c941bbSAndroid Build Coastguard Worker builder.GenerateTestPlans() 573