xref: /aosp_15_r20/cts/tools/utils/buildCts.py (revision b7c941bb3fa97aba169d73cee0bed2de8ac964bf)
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