65
65
self.org_ouput_file = org_ouput_file
66
66
self.origdir = os.path.abspath(os.curdir)
68
def set_runner(self, runner=None):
71
def set_parser(self, parser=None):
68
74
def install(self, install_options=None):
69
75
"""Install the test suite.
149
155
filename_target = os.path.join(self.resultsdir, 'testdata.json')
150
156
self.adb.push(filename_host, filename_target)
152
def run(self, quiet=False):
158
def run(self, quiet=False, run_options=None):
153
159
if not self.runner:
154
160
raise RuntimeError("no test runner defined for '%s'" %
162
168
str(time.mktime(datetime.utcnow().timetuple())))
163
169
self.resultsdir = os.path.join(config.resultsdir_android, resultname)
164
170
self.adb.makedirs(self.resultsdir)
165
self.runner.run(self.resultsdir)
171
self.runner.run(self.resultsdir, run_options=run_options)
166
172
self._copyorgoutputfile(self.resultsdir)
167
173
self._screencap(self.resultsdir)
168
174
self._savetestdata(str(uuid4()))
299
305
self.steps_host_post = steps_host_post
300
306
self.testoutput = []
302
def _run_steps_adbshell(self, resultsdir):
308
def _run_steps_adbshell(self, resultsdir, option=None):
303
309
stdoutlog = os.path.join(resultsdir, 'stdout.log')
304
310
stderrlog = os.path.join(resultsdir, 'stderr.log')
306
312
for cmd in self.adbshell_steps:
313
if option is not None:
314
cmd = cmd.replace('$(OPTIONS)', option)
307
315
ret_code = self.adb.run_adb_shell_for_test(cmd,
321
329
self.adb.shell('cat /proc/meminfo',
322
330
os.path.join(resultsdir, 'meminfo.log'))
324
def run(self, resultsdir):
332
def run(self, resultsdir, run_options=None):
325
333
self.starttime = datetime.utcnow()
326
334
_run_steps_host(self.steps_host_pre, self.adb.serial,
327
resultsdir=resultsdir)
335
option=run_options, resultsdir=resultsdir)
328
336
_run_steps_adb(self.steps_adb_pre, self.adb.serial,
329
resultsdir=resultsdir)
330
self._run_steps_adbshell(resultsdir)
337
option=run_options, resultsdir=resultsdir)
338
self._run_steps_adbshell(resultsdir, option=run_options,)
331
339
_run_steps_adb(self.steps_adb_post, self.adb.serial,
332
resultsdir=resultsdir)
340
option=run_options, resultsdir=resultsdir)
333
341
_run_steps_host(self.steps_host_post, self.adb.serial,
334
resultsdir=resultsdir)
342
option=run_options, resultsdir=resultsdir)
335
343
self.endtime = datetime.utcnow()
337
345
def setadb(self, adb=None):