~linaro-validation/lava-android-test/trunk

« back to all changes in this revision

Viewing changes to lava_android_test/testdef.py

  • Committer: Yongqin Liu
  • Date: 2012-03-13 02:08:24 UTC
  • mfrom: (140.2.4 lava-android-test)
  • Revision ID: yongqin.liu@linaro.org-20120313020824-t3ni2llkwhyq53be
merge with the branch that support custom android command 

Show diffs side-by-side

added added

removed removed

Lines of Context:
65
65
        self.org_ouput_file = org_ouput_file
66
66
        self.origdir = os.path.abspath(os.curdir)
67
67
 
 
68
    def set_runner(self, runner=None):
 
69
        self.runner = runner
 
70
 
 
71
    def set_parser(self, parser=None):
 
72
        self.parser = parser
 
73
 
68
74
    def install(self, install_options=None):
69
75
        """Install the test suite.
70
76
 
149
155
        filename_target = os.path.join(self.resultsdir, 'testdata.json')
150
156
        self.adb.push(filename_host, filename_target)
151
157
 
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'" %
155
161
                                self.testname)
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 = []
301
307
 
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')
305
311
        try:
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,
308
316
                                                           stdoutlog,
309
317
                                                            stderrlog)
321
329
            self.adb.shell('cat /proc/meminfo',
322
330
                           os.path.join(resultsdir, 'meminfo.log'))
323
331
 
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()
336
344
 
337
345
    def setadb(self, adb=None):