diff options
author | Yongqin Liu <yongqin.liu@linaro.org> | 2015-01-15 08:22:11 +0800 |
---|---|---|
committer | Yongqin Liu <yongqin.liu@linaro.org> | 2015-01-15 08:22:11 +0800 |
commit | 837bb4adbebfc172460bc19f7cfb7a056e031813 (patch) | |
tree | fbea2019886c4928f522694c917718c7e5a42bb0 | |
parent | 780418be8f03eed7f96e099dfcc56e846ad9b291 (diff) |
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
83 files changed, 0 insertions, 7639 deletions
diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/__init__.py b/build/lib.linux-x86_64-2.7/lava_android_test/__init__.py deleted file mode 100644 index 7074800..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright (c) 2010, 2011 Linaro -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -__version__ = (0, 16, 3, "final", 0) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/adb.py b/build/lib.linux-x86_64-2.7/lava_android_test/adb.py deleted file mode 100644 index 5bedb8c..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/adb.py +++ /dev/null @@ -1,401 +0,0 @@ -# Copyright (c) 2011 - 2012 Linaro -# -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -import os -import re -import subprocess -import tempfile -import threading -import time - -from Queue import Queue -from lava_android_test.config import get_config - -config = get_config() - - -class ADB(object): - ERR_CHMOD = 260 - ERR_WRAPPER = 300 - ERR_SHELL = 350 - ERR_PUSH = 400 - ERR_INSTALL = 450 - ERR_UNINSTALL = 450 - adb = 'adb' - serial = None - - target_dir = config.tempdir_android - - def __init__(self, serial=None, quiet=True): - self.cmdExecutor = CommandExecutor(quiet) - if serial is not None: - self.serial = serial - self.adb = 'adb -s %s' % serial - else: - self.serial = self.get_serial() - - def get_serial(self): - if not self.serial: - serial_ary = self.run_cmd_host('adb get-serialno')[1] - serial = serial_ary[0].strip() - if not serial or serial == 'unknown': - return '' - else: - return serial - else: - return self.serial - - def push(self, source=None, target=None): - if source is None: - return (-1, None) - - target_dir = self.target_dir - if target is None: - target = os.path.join(self.target_dir, os.path.basename(source)) - else: - target_dir = os.path.dirname(target) - - self.cmdExecutor.run('%s shell mkdir %s' % (self.adb, target_dir)) - s = self.cmdExecutor.run('%s push %s %s' % (self.adb, source, target)) - ret = s.returncode - return (ret, target) - - def pull(self, source=None, target=None): - if source is None: - return -1 - - if target is None: - cmd = '%s pull %s' % (self.adb, source) - else: - cmd = '%s pull %s %s' % (self.adb, source, target) - s = self.cmdExecutor.run(cmd) - return s.returncode - - def shell(self, command=None, stdout=None, stderr=None): - if command is None: - return 0 - tmpdir = config.tempdir_host - if not os.path.exists(tmpdir): - os.mkdir(tmpdir) - (tmpshell, tmpshell_name) = tempfile.mkstemp(suffix='.sh', - prefix='lava-android-test', - dir=tmpdir) - tmpfile_path = os.path.join(tmpdir, tmpshell_name) - os.write(tmpshell, '#/system/bin/sh\n') - os.write(tmpshell, 'base=/system\n') - os.write(tmpshell, ("export PATH=/sbin:/vendor/bin:/system/sbin:" - "/system/bin:/system/xbin\n")) - org_cmd = command - if stdout is not None: - command = '%s 1>>%s' % (command, stdout) - if stderr is not None: - command = '%s 2>>%s' % (command, stderr) - - os.write(tmpshell, command + '\n') - os.write(tmpshell, 'RET_CODE=$?\n') - if stdout is not None: - os.write(tmpshell, - 'echo ANDROID_TEST_COMMAND="%s">>%s\n' % (org_cmd, stdout)) - os.write(tmpshell, - 'echo ANDROID_TEST_RET_CODE=${RET_CODE} >>%s\n' % (stdout)) - - os.write(tmpshell, 'echo RET_CODE=${RET_CODE}\n') - os.close(tmpshell) - - (ret_code, target_path) = self.push(tmpfile_path) - os.remove(tmpfile_path) - if ret_code != 0: - return self.ERR_PUSH - - s = self.cmdExecutor.run( - '%s shell chmod 777 %s' % (self.adb, target_path)) - ret_code = s.returncode - if ret_code != 0: - return self.ERR_CHMOD + ret_code - #check the whether the output is empty - if len(s.stdout) != 0: - return self.ERR_CHMOD - - self.cmdExecutor.say('Begin to execute shell command: %s' % command) - s = self.cmdExecutor.run('%s shell %s' % (self.adb, target_path)) - ret_code = s.returncode - if ret_code != 0: - return self.ERR_SHELL + ret_code - output = s.stdout - ret_code_line = output[len(output) - 1] - self.cmdExecutor.run('%s shell rm %s' % (self.adb, target_path)) - - ret_code_pattern = "^RET_CODE=(?P<ret_code>\d+)\s*$" - pat = re.compile(ret_code_pattern) - match = pat.search(ret_code_line) - if not match: - return self.ERR_SHELL - else: - data = match.groupdict() - return int(data['ret_code'], 10) - - def exists(self, path): - ret_code = self.shell("ls %s" % path) - return ret_code == 0 - - def installapk(self, apkpath): - cmd = '%s install %s' % (self.adb, apkpath) - s = self.cmdExecutor.run(cmd) - ret_code = s.returncode - if ret_code != 0: - return self.ERR_INSTALL + ret_code - return 0 - - def uninstallapk(self, package): - cmd = '%s uninstall %s' % (self.adb, package) - s = self.cmdExecutor.run(cmd) - ret_code = s.returncode - if ret_code != 0: - return self.ERR_UNINSTALL + ret_code - return 0 - - def makedirs(self, path): - parent_path = os.path.dirname(path) - if parent_path == '/' or self.exists(parent_path): - return self.shell("mkdir %s" % path) - else: - ret = self.makedirs(parent_path) - if ret == 0: - return self.shell("mkdir %s" % path) - else: - return ret - - def rmtree(self, dirpath): - ret_code = self.shell("rm -r %s" % dirpath) - return ret_code - - def move(self, srcdir, destdir): - if srcdir is None: - return 0 - if destdir is None: - return 0 - ret_code = self.shell("mv %s %s" % (srcdir, destdir)) - return ret_code - - def copy(self, source_file, target_file): - if source_file is None: - return 0 - if target_file is None: - return 0 - if not self.exists(source_file): - return 0 - - ret_code = self.shell("dd if=%s of=%s" % (source_file, target_file)) - return ret_code - - def listdir(self, dirpath): - if self.exists(dirpath): - (ret_code, output) = self.run_cmd_host( - '%s shell ls %s ' % (self.adb, dirpath)) - return (ret_code, output) - else: - return (1, None) - - def read_file(self, filepath): - tmpfile_name = tempfile.mkstemp( - prefix='read_file_', dir=config.tempdir_host)[1] - ret_code = self.pull(filepath, tmpfile_name) - if ret_code != 0: - return None - data = None - try: - with open(tmpfile_name) as fd: - data = fd.read() - finally: - os.remove(tmpfile_name) - return data - - def get_shellcmdoutput(self, cmd=None, quiet=True): - return self.get_shellcmdoutput_with_stderr(cmd=cmd, quiet=True)[0:2] - - def run_adb_cmd(self, cmd, quiet=True): - return self.run_adb_cmd_with_stderr(cmd=cmd, quiet=quiet)[0:2] - - def run_cmd_host(self, cmd, quiet=True): - return self.run_cmd_host_with_stderr(cmd, quiet=quiet)[0:2] - - def get_shellcmdoutput_with_stderr(self, cmd=None, quiet=True): - if cmd is None: - return None - return self.run_adb_cmd_with_stderr(cmd='shell %s' % cmd, quiet=quiet) - - def run_adb_cmd_with_stderr(self, cmd, quiet=True): - if not self.isDeviceConnected(): - print ("Reconnect adb connection of device(%s) " - "for running command[%s]") % (self.get_serial(), cmd) - if not self.reconnect(): - raise Exception('Failed to connect the device(%s)' % ( - self.get_serial())) - return self.run_cmd_host_with_stderr(cmd='%s %s' % (self.adb, cmd), - quiet=quiet) - - def run_cmd_host_with_stderr(self, cmd, quiet=True): - result = self.cmdExecutor.run(cmd, quiet=quiet) - return (result.returncode, result.stdout, result.stderr) - - def run_adb_shell_for_test(self, cmd, stdoutlog=None, - stderrlog=None, quiet=False): - (ret_code, stdout, stderr) = self.get_shellcmdoutput_with_stderr( - cmd=cmd, - quiet=quiet) - if ret_code != 0: - return ret_code - self.push_stream_to_device(stdout, stdoutlog) - self.push_stream_to_device(stderr, stderrlog) - return ret_code - - def push_stream_to_device(self, stream_lines, path): - if self.serial: - android_info = 'android(%s)' % self.serial - else: - android_info = 'android' - - if not self.isDeviceConnected(): - if not self.reconnect(): - raise Exception('Failed to pull file(%s) to %s, ' - 'because the device is not connected' % ( - path, android_info)) - basename = os.path.basename(path) - tmp_path = os.path.join(config.tempdir_host, basename) - if self.exists(path): - retcode = self.pull(path, tmp_path) - if retcode != 0: - raise Exception( - 'Failed to pull file(%s) to %s' % (path, android_info)) - - with open(tmp_path, 'a') as tmp_fd: - tmp_fd.writelines(stream_lines) - tmp_fd.close() - - if self.push(tmp_path, path)[1] is None: - raise Exception( - 'Failed to pull file(%s) to %s' % (path, android_info)) - os.remove(tmp_path) - - def devices(self): - return self.run_cmd_host('%s devices' % self.adb) - - def isDeviceConnected(self): - lines = self.run_cmd_host('%s get-state' % self.adb)[1] - for line in lines: - if 'device' in line: - return True - return False - - def connect(self): - if self.serial: - self.run_cmd_host('adb connect %s' % self.serial, quiet=False) - return self.isDeviceConnected() - return False - - def disconnect(self): - if self.serial: - self.run_cmd_host('adb disconnect %s' % self.serial, quiet=False) - return not self.isDeviceConnected() - return False - - def reconnect(self): - for i in range(1, 5): - print "LAVA: try to reconnect the device(%s) %i/5 times" % ( - self.serial, i) - if self.disconnect(): - time.sleep(2) - if self.connect(): - return True - time.sleep(5) - return False - - -class CommandExecutor(object): - def __init__(self, quiet=True): - self._queue = Queue() - self.quiet = quiet - self.stdout = [] - self.stderr = [] - - def say(self, text, *args, **kwargs): - if not self.quiet: - print "LAVA:", text.format(*args, **kwargs) - - def display_subprocess_output(self, stream_name, line): - if stream_name == 'stdout': - self.say('(stdout) {0}', line.rstrip()) - elif stream_name == 'stderr': - self.say('(stderr) {0}', line.rstrip()) - - def _drain_queue(self): - while True: - args = self._queue.get() - if args is None: - break - self.display_subprocess_output(*args) - - def _read_stream(self, stream, stream_name): - if stream is None: - return - for line in iter(stream.readline, ''): - output_line = (stream_name, line) - self._queue.put(output_line) - if stream_name == 'stdout': - self.stdout.append(line) - elif stream_name == 'stderr': - self.stderr.append(line) - - def run(self, cmd, quiet=True): - self.quiet = quiet - self.stdout = [] - self.stderr = [] - self.say("Begin to execute command: %s" % - cmd.replace('{', '{{').replace('}', '}}')) - proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, - shell=True) - - stdout_reader = threading.Thread( - target=self._read_stream, args=(proc.stdout, "stdout")) - stderr_reader = threading.Thread( - target=self._read_stream, args=(proc.stderr, "stderr")) - ui_printer = threading.Thread( - target=self._drain_queue) - - ui_printer.start() - stdout_reader.start() - stderr_reader.start() - try: - proc.wait() - except KeyboardInterrupt: - proc.kill() - finally: - stdout_reader.join() - stderr_reader.join() - self._queue.put(None) - ui_printer.join() - return CommandResult(proc.returncode, self.stdout, self.stderr) - - -class CommandResult(object): - def __init__(self, returncode, stdout=[], stderr=[]): - self.returncode = returncode - self.stdout = stdout - self.stderr = stderr diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/api.py b/build/lib.linux-x86_64-2.7/lava_android_test/api.py deleted file mode 100644 index 624422e..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/api.py +++ /dev/null @@ -1,44 +0,0 @@ -""" -Public API for extending Abrek -""" -from abc import abstractmethod - - -class ITest(object): - """ - Abrek test. - - Something that can be installed and invoked by abre. - """ - - @abstractmethod - def install(self): - """ - Install the test suite. - - This creates an install directory under the user's XDG_DATA_HOME - directory to mark that the test is installed. The installer's - install() method is then called from this directory to complete any - test specific install that may be needed. - """ - - @abstractmethod - def uninstall(self): - """ - Uninstall the test suite. - - Uninstalling just recursively removes the test specific directory under - the user's XDG_DATA_HOME directory. This will both mark the test as - removed, and clean up any files that were downloaded or installed under - that directory. Dependencies are intentionally not removed by this. - """ - - @abstractmethod - def run(self, quiet=False): - # TODO: Document me - pass - - @abstractmethod - def parse(self, resultname): - # TODO: Document me - pass diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/commands.py b/build/lib.linux-x86_64-2.7/lava_android_test/commands.py deleted file mode 100644 index eb46c78..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/commands.py +++ /dev/null @@ -1,935 +0,0 @@ -# Copyright (c) 2011, 2012 Linaro -# -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -import base64 -import os -import re -import urlparse -import versiontools -import zipfile - -from tempfile import mkdtemp -from uuid import uuid4 - -from lava_tool.interface import Command as LAVACommand -from lava_tool.interface import LavaCommandError -from linaro_dashboard_bundle.io import DocumentIO - -from lava_android_test.adb import ADB -from lava_android_test.config import get_config -from lava_android_test.provider import TestProvider -from lava_android_test.repository import GitRepository -from lava_android_test.testdef import AndroidTest -from lava_android_test.testdef import AndroidTestRunner, \ - AndroidTestInstaller, \ - AndroidTestParser -from lava_android_test import utils - - -class Command(LAVACommand): - - def __init__(self, parser, args): - super(Command, self).__init__(parser, args) - self.config = get_config() -# self._test_loader = TestLoader(self._config) - - @classmethod - def register_arguments(cls, parser): - parser.add_argument( - "-q", "--quiet", - action="store_true", - default=False, - help="Be less verbose about undertaken actions") - parser.add_argument( - "-Q", "--quiet-subcommands", - action="store_true", - default=False, - help="Hide the output of all sub-commands (including tests)") - - def say(self, text, *args, **kwargs): - print "LAVA:", text.format(*args, **kwargs) - - def say_begin(self, text, *args, **kwargs): - print "LAVA: --Start Operation: ", text.format(*args, **kwargs) - - def say_end(self, text, *args, **kwargs): - print "LAVA: --End Operation: ", text.format(*args, **kwargs), - - def display_subprocess_output(self, stream_name, line): - if self.args.quiet_subcommands: - return - if stream_name == 'stdout': - self.say('(stdout) {0}', line.rstrip()) - elif stream_name == 'stderr': - self.say('(stderr) {0}', line.rstrip()) - - -class extract_attachments(Command): - """ - Extract the attachment files from the result bundle file - generated by the -o option of run command - or from the output of parse command - """ - @classmethod - def register_arguments(self, parser): - super(extract_attachments, self).register_arguments(parser) - parser.add_argument("result_file", - help="The result bundle json file") - group = parser.add_argument_group("specify the output directory") - group.add_argument("-d", "--directory", - default=None, - metavar="directory", - help=("specify the directory where all the " - "attachment files will be put")) - - def invoke(self): - - if not os.path.exists(self.args.result_file): - raise LavaCommandError("The specified result file(%s) " - "does not exist." % self.args.result_file) - msg = "extract attachment file from result bundle file(%s)" % ( - self.args.result_file) - self.say_begin(msg) - badchars = "[^a-zA-Z0-9\._-]" - with open(self.args.result_file) as stream: - jobdata = stream.read() - result_data = DocumentIO.loads(jobdata)[1] - test_runs = result_data.get('test_runs') - if not self.args.directory: - attachment_dir = mkdtemp(prefix='attachments-', - dir=os.path.curdir) - elif not os.path.exists(self.args.directory): - os.makedirs(self.args.directory) - attachment_dir = self.args.directory - elif not os.path.isdir(self.args.directory): - raise LavaCommandError( - "The specified path(%s) is not a directory." - % self.args.directory) - else: - attachment_dir = self.args.directory - - for test in test_runs: - test_id = test.get('test_id').replace(" ", "_") - test_id = re.sub(badchars, "_", test_id) - target_dir = mkdtemp(prefix='%s' % test_id, dir=attachment_dir) - print "The test id is: %s" % test_id - attachments = test.get('attachments', []) - for attach in attachments: - pathname = attach.get('pathname') - file_name = os.path.basename(pathname) - content_decoded = base64.standard_b64decode( - attach.get("content")) - with open(os.path.join(target_dir, file_name), 'w') as fd: - fd.write(content_decoded) - self.say("All attachment files are put under directory(%s)" % - (attachment_dir)) - self.say_end(msg) - - -class list_devices(Command): - """ - List available devices - program::lava-android-test list-devices - """ - - def invoke(self): - - self.adb = ADB() - try: - output = self.adb.devices()[1] - if output is not None: - for line in output: - print line.strip() - else: - print "No device attached" - except OSError: - print "No device attached" - - -class list_tests(Command): - """ - List available tests - program:: lava-android-test list-tests - """ - - def invoke(self): - self.say("Known tests:") - for provider in TestProvider().get_test_provider_list(): - for test in provider().list_test(): - self.say(" - {test_id}", test_id=test) - - -class version(Command): - """ - Show LAVA Test version - """ - - def invoke(self): - self.say("version details:") - for framework in self._get_frameworks(): - self.say(" - {framework}: {version}", - framework=framework.__name__, - version=versiontools.format_version( - framework.__version__, framework)) - - def _get_frameworks(self): - import lava_tool - import lava_android_test - import linaro_dashboard_bundle - return [ - lava_android_test, - lava_tool, - linaro_dashboard_bundle] - - -class AndroidCommand(Command): - - @classmethod - def register_arguments(self, parser): - super(AndroidCommand, self).register_arguments(parser) - group = parser.add_argument_group("specify device serial number") - group.add_argument("-s", "--serial", - default=None, - metavar="serial", - help=("specify the device with serial number" - "that this command will be run on")) - - def test_installed(self, test_id): - if self.adb is None: - self.adb = ADB() - test_dir = os.path.join(self.config.installdir_android, test_id) - return self.adb.exists(test_dir) - - def get_device_serial(self): - return ADB(self.args.serial).get_serial() - - def assertDeviceIsConnected(self): - if not self.adb.isDeviceConnected(): - if self.adb.serial: - raise Exception("Device '%s' is not connected" % - self.adb.serial) - else: - raise Exception("No device found") - - def invoke(self): - serial = self.get_device_serial() - if not serial: - raise LavaCommandError("No device attached") - self.serial = serial - self.adb = ADB(self.serial) - - try: - self.assertDeviceIsConnected() - except Exception as err: - raise LavaCommandError(err) - - self.invoke_sub() - - def invoke_sub(self): - raise NotImplementedError - - -class AndroidTestCommand(AndroidCommand): - @classmethod - def register_arguments(self, parser): - super(AndroidTestCommand, self).register_arguments(parser) - parser.add_argument("test_id", - help="Test identifier") - - def get_tip_msg(self, text): - if self.args.serial: - tip_msg = "%s (%s) on device(%s)" % (text, - self.args.test_id, - self.args.serial) - else: - tip_msg = "%s (%s)" % (text, self.args.test_id) - return tip_msg - - -class AndroidResultCommand(AndroidCommand): - @classmethod - def register_arguments(self, parser): - super(AndroidResultCommand, self).register_arguments(parser) - parser.add_argument("result_id", - help="Test result identifier") - - -class AndroidResultsCommand(AndroidCommand): - @classmethod - def register_arguments(self, parser): - super(AndroidResultsCommand, self).register_arguments(parser) - parser.add_argument("result_id", nargs="+", - help="One or more result identifiers") - - -class list_installed(AndroidCommand): - """ - List installed tests for specified device. - program:: lava-android-test list-tests - program:: lava-android-test list-tests -s device_serial - """ - def invoke_sub(self): - - self.say("Installed tests:") - try: - output = self.adb.listdir(self.config.installdir_android)[1] - if output is not None: - for dir_name in output: - self.say(" - {test_id}", test_id=dir_name.strip()) - else: - self.say("No tests installed") - except OSError: - self.say("No tests installed") - - -class list_results(AndroidCommand): - """ - List results of tests that has been run on the specified device. - program:: lava-android-test list-results - program:: lava-android-test list-results -s device_serial - """ - def invoke_sub(self): - self.say("Saved results:") - try: - (ret_code, output) = self.adb.listdir( - self.config.resultsdir_android) - if ret_code != 0: - raise OSError() - for dir_name in output: - self.say(" - {result_id}", result_id=dir_name.strip()) - except OSError: - self.say("No results found") - - -class install(AndroidTestCommand): - """ - Install test to the specified device. - program:: lava-android-test install test-id - program:: lava-android-test install test-id -s device_serial - """ - - @classmethod - def register_arguments(cls, parser): - super(cls, install).register_arguments(parser) - parser.add_argument('-o', '--install-option') - - def invoke_sub(self): - tip_msg = self.get_tip_msg("Install test") - self.say_begin(tip_msg) - - if self.test_installed(self.args.test_id): - raise LavaCommandError("The test (%s) has already installed." % - self.args.test_id) - test = TestProvider().load_test(self.args.test_id, self.args.serial) - try: - test.install(self.args.install_option) - except Exception as strerror: - raise LavaCommandError("Test installation error: %s" % strerror) - - self.say_end(tip_msg) - - -class uninstall(AndroidTestCommand): - """ - Unistall test of the specified device. - program:: lava-android-test uninstall test-id - program:: lava-android-test uninstall test-id -s device_serial - """ - def invoke_sub(self): - tip_msg = self.get_tip_msg("Uninstall test") - self.say_begin(tip_msg) - - test = TestProvider().load_test(self.args.test_id, self.args.serial) - try: - test.uninstall() - except Exception as strerror: - raise LavaCommandError("Test uninstall error: %s" % strerror) - self.say_end(tip_msg) - - -class run(AndroidTestCommand): - """ - Run a previously installed test program on the specified device - program:: lava-android-test run test-id - program:: lava-android-test run test-id -s device_serial - program:: lava-android-test run test-id -s device_serial -o outputfile - """ - - @classmethod - def register_arguments(cls, parser): - super(run, cls).register_arguments(parser) - parser.add_argument('-O', '--run-option', - help=("Specified in the job file for using in " - "the real test action, so that we can customize" - " some test when need")) - group = parser.add_argument_group("specify the bundle output file") - group.add_argument("-o", "--output", - default=None, - metavar="FILE", - help=("After running the test parse the result" - " artefacts, fuse them with the initial" - " bundle and finally save the complete bundle" - " to the specified FILE.")) - - def invoke_sub(self): - tip_msg = self.get_tip_msg("Run test") - self.say_begin(tip_msg) - - if not self.test_installed(self.args.test_id): - raise LavaCommandError( - "The test (%s) has not been installed yet." % - self.args.test_id) - test = TestProvider().load_test(self.args.test_id, self.args.serial) - - if not self.test_installed(test.testname): - raise LavaCommandError( - "The test (%s) has not been installed yet." - % self.args.test_id) - - try: - result_id = test.run(quiet=self.args.quiet, - run_options=self.args.run_option) - if self.args.output: - output_dir = os.path.dirname(self.args.output) - if output_dir and (not os.path.exists(output_dir)): - os.makedirs(output_dir) - bundle = generate_bundle(self.args.serial, result_id) - with open(self.args.output, "wt") as stream: - DocumentIO.dump(stream, bundle) - - except Exception as strerror: - raise LavaCommandError("Test execution error: %s" % strerror) - - self.say_end(tip_msg) - - -class run_custom(AndroidCommand): - """ - Run the command(s) that specified by the -c option in the command line - program:: lava-android-test run-custom -c 'cm1' -c 'cmd2' -p 'parse-regex1' - program:: lava-android-test run test-id -s device_serial - program:: lava-android-test run test-id -s device_serial -o outputfile - """ - - @classmethod - def register_arguments(cls, parser): - super(run_custom, cls).register_arguments(parser) - group = parser.add_mutually_exclusive_group(required=True) - group.add_argument('-c', '--android-command', action='append', - help=("Specified in the job file for using" - " in the real test action, so that " - "we can customize some test when need")) - group.add_argument('-f', '--command-file', - help=("Specified the command file that will be " - "pushed into android and run.")) - parser.add_argument('-p', '--parse-regex', - help=("Specified the regular expression used" - " for analyzing command output")) - group = parser.add_argument_group("specify the bundle output file") - group.add_argument("-o", "--output", - default=None, - metavar="FILE", - help=("After running the test parse the result" - " artefacts, fuse them with the initial" - " bundle and finally save the complete bundle" - " to the specified FILE.")) - - def invoke_sub(self): - - test_name = 'custom' - ADB_SHELL_STEPS = [] - STEPS_HOST_PRE = [] - STEPS_ADB_PRE = [] - file_name = None - if self.args.android_command: - ADB_SHELL_STEPS = self.args.android_command - cmds_str = ','.join(ADB_SHELL_STEPS) - if len(cmds_str) > 40: - cmds_str = '%s...' % (cmds_str[:40]) - test_name_suffix = 'command=[%s]' % (cmds_str) - elif self.args.command_file: - file_url = self.args.command_file - urlpath = urlparse.urlsplit(file_url).path - file_name = os.path.basename(urlpath) - target_path = os.path.join(self.config.installdir_android, - test_name, file_name) - STEPS_HOST_PRE = ["wget %s -O %s" % (file_url, file_name)] - STEPS_ADB_PRE = ["push %s %s" % (file_name, target_path)] - ADB_SHELL_STEPS = ["chmod 777 %s" % target_path, - target_path] - file_name_str = file_name - if len(file_name_str) > 40: - file_name_str = '%s...' % (cmds_str[:40]) - test_name_suffix = 'command_file=%s' % (file_name_str) - - PATTERN = None - if self.args.parse_regex: - PATTERN = self.args.parse_regex - - tip_msg = '' - if self.args.serial: - tip_msg = ("Run following custom test(s) on device(%s):" - "\n\tcommands=%s" - "\n\tcommand-file=%s\n") % ( - self.args.serial, - '\n\t\t'.join(ADB_SHELL_STEPS), - file_name) - else: - tip_msg = ("Run following custom test(s):" - "\n\t\tcommands=%s" - "\n\tcommand-file=%s\n") % ( - '\n\t\t'.join(ADB_SHELL_STEPS), - file_name) - - self.say_begin(tip_msg) - - inst = AndroidTestInstaller() - - run = AndroidTestRunner(steps_host_pre=STEPS_HOST_PRE, - steps_adb_pre=STEPS_ADB_PRE, - adbshell_steps=ADB_SHELL_STEPS) - parser = AndroidTestParser(pattern=PATTERN) - test = AndroidTest(testname=test_name, - installer=inst, runner=run, parser=parser) - test.parser.results = {'test_results': []} - test.setadb(self.adb) - - if not self.test_installed(test.testname): - test.install() - - try: - result_id = test.run(quiet=self.args.quiet) - if self.args.output: - output_dir = os.path.dirname(self.args.output) - if output_dir and (not os.path.exists(output_dir)): - os.makedirs(output_dir) - bundle = generate_bundle(self.args.serial, - result_id, test=test, - test_id='%s(%s)' % (test_name, test_name_suffix)) - with open(self.args.output, "wt") as stream: - DocumentIO.dump(stream, bundle) - - except Exception as strerror: - raise LavaCommandError("Test execution error: %s" % strerror) - self.say_end(tip_msg) - - -class run_monkeyrunner(AndroidCommand): - """ - Run the monkeyrunner scripts that stored in the specified git repository - program:: lava-android-test run-monkeyrunner -g giturl -r resultfilelist - """ - - @classmethod - def register_arguments(cls, parser): - super(run_monkeyrunner, cls).register_arguments(parser) - parser.add_argument("url", - help="The repository url of the test scripts") - parser.add_argument('-t', '--repo-type', - default='git', - help=("Specify the type of the repository")) - group = parser.add_argument_group("specify the bundle output file") - group.add_argument("-o", "--output", - default=None, - metavar="FILE", - help=("After running the test parse the result" - " artefacts, fuse them with the initial" - " bundle and finally save the complete bundle" - " to the specified FILE.")) - - def invoke_sub(self): - - if not utils.check_command_exist('monkeyrunner'): - raise LavaCommandError('The command monkeyrunner can not be found') - - if self.args.repo_type == 'git': - target_dir = mkdtemp(prefix='git_repo', - dir=self.config.tempdir_host) - os.chmod(target_dir, 0755) - GitRepository(self.args.url).checkout(target_dir) - else: - raise LavaCommandError("The repository type(%s) is not supported" - % self.args.repo_type) - - script_list = utils.find_files(target_dir, '.py') - - test_id = self.args.url - if len(test_id) > 40: - test_id = '%s...' % (test_id[:40]) - test_id = 'monkeyrunner_%s' % test_id - - tip_msg = ("Run monkeyrunner scripts in following url on device(%s):" - "\n\turl=%s") % ( - self.serial, - self.args.url) - - self.say_begin(tip_msg) - bundles = [] - for script in script_list: - if "monkeycommon.py" == os.path.basename(script): - continue - sub_bundle = {} - from datetime import datetime - starttime = datetime.utcnow() - test_case_id = script.replace('%s/' % target_dir, '') - if len(test_case_id) > 50: - test_case_id = '%s...' % (test_case_id[:50]) - try: - sub_bundle = self.run_monkeyrunner_test(script, self.serial, - test_case_id) - test_result = {"test_case_id": test_case_id, - "result": 'pass'} - if sub_bundle: - sub_bundle['test_runs'][0]['test_results'].append( - test_result) - except Exception as strerror: - self.say('Failed to run script(%s) with error:\n%s' % ( - script, - strerror)) - - test_result = {"test_case_id": test_case_id, - "result": 'fail'} - TIMEFORMAT = '%Y-%m-%dT%H:%M:%SZ' - sub_bundle['test_runs'] = [{'test_results': [test_result], - 'test_id': 'monkeyrunner(%s)' % test_case_id, - 'time_check_performed': False, - 'analyzer_assigned_uuid': str(uuid4()), - 'analyzer_assigned_date': starttime.strftime(TIMEFORMAT)}] - if sub_bundle: - bundles.append(sub_bundle) - - if self.args.output: - output_dir = os.path.dirname(self.args.output) - if output_dir and (not os.path.exists(output_dir)): - os.makedirs(output_dir) - with open(self.args.output, "wt") as stream: - DocumentIO.dump(stream, merge_bundles(bundles)) - - self.say_end(tip_msg) - - def run_monkeyrunner_test(self, script, serial, test_case_id=None): - - inst = AndroidTestInstaller() - run = AndroidTestRunner(steps_host_pre=[ - 'monkeyrunner %s %s' % (script, serial)]) - parser = MonkeyrunnerTestParser() - parser.monkeyrunner_result = os.path.join(os.path.dirname(script), - 'results.txt') - test = AndroidTest(testname='monkeyrunner', - installer=inst, runner=run, parser=parser) - test.parser.results = {'test_results': []} - test.setadb(self.adb) - - ##By calling the install function, we will create the directory - ##on the target, and the the output file and error file - ##will be pushed there - if not self.test_installed(test.testname): - test.install() - - ##The png files here are generated to the host by the monkeyrunner - ##monkeyrunner is run on host, not on the target - bundle = {} - org_png_file_list = utils.find_files(self.config.tempdir_host, - '.%s' % 'png') - result_id = test.run(quiet=self.args.quiet) - if self.args.output: - cur_all_png_list = utils.find_files(self.config.tempdir_host, - '.%s' % 'png') - new_png_list = set(cur_all_png_list).difference(org_png_file_list) - test_id = 'monkeyrunner(%s)' % (test_case_id) - bundle = generate_bundle(self.args.serial, - result_id, test=test, - test_id=test_id, - attachments=list(new_png_list)) - utils.delete_files(new_png_list) - - return bundle - - -class MonkeyrunnerTestParser(AndroidTestParser): - ''' - Before this method is called, self.monkeyrunner_result must be set - to the right value - ''' - - - def real_parse(self, result_filename=None, output_filename=None, - test_name=''): - self.res_pattern = ("^\s*(?P<test_case_id>.*?)\s*=" - "\s*(?P<result>(true|false))\s*$") - self.measurement_pattern = ("^\s*(?P<test_case_id>.*?)\s*=" - "\s*(?P<measurement>[\.\d]+)\s*$") - self.measurement_units_pattern = ("^\s*(?P<test_case_id>.*?)\s*=" - "\s*(?P<measurement>[\.\d]+)\s+(?P<units>\S+)\s*$") - - res_pat = re.compile(self.res_pattern) - measurement_pat = re.compile(self.measurement_pattern) - measurement_units_pat = re.compile(self.measurement_units_pattern) - - - if not os.path.exists(self.monkeyrunner_result): - return - with open(self.monkeyrunner_result) as stream: - for lineno, line in enumerate(stream, 1): - match = res_pat.search(line) - if not match: - match = measurement_pat.search(line) - if not match: - match = measurement_units_pat.search(line) - if not match: - continue - data = match.groupdict() - data["log_filename"] = result_filename - data["log_lineno"] = lineno - if data.get('result') is None: - data['result'] = 'pass' - - self.results['test_results'].append(data) - - -class parse(AndroidResultsCommand): - """ - Parse the results of previous test that run on the specified device - program:: lava-android-test parse test-result-id - """ - def invoke_sub(self): - bundle = generate_combined_bundle(self.args.serial, - self.args.result_id) - try: - print DocumentIO.dumps(bundle) - except IOError: - pass - - -class parse_custom(AndroidResultsCommand): - """ - Parse the results of previous test that run with run-custom command - on the specified device - program:: lava-android-test parse-custom test-result-id -P - """ - @classmethod - def register_arguments(cls, parser): - super(parse_custom, cls).register_arguments(parser) - parser.add_argument('-p', '--parse-regex', - help=("Specified the regular expression used" - " for analyzing command output")) - - def invoke_sub(self): - PATTERN = None - if self.args.parse_regex: - PATTERN = self.args.parse_regex - test_name = 'custom' - inst = AndroidTestInstaller() - run = AndroidTestRunner() - parser = AndroidTestParser(pattern=PATTERN) - test = AndroidTest(testname=test_name, installer=inst, - runner=run, parser=parser) - test.parser.results = {'test_results': []} - test.setadb(self.adb) - - bundle = generate_combined_bundle(self.args.serial, - self.args.result_id, test=test) - try: - print DocumentIO.dumps(bundle) - except IOError: - pass - - -def generate_combined_bundle(serial=None, result_ids=None, test=None, - test_id=None): - if result_ids is None: - return {} - - bundle = None - - for rid in result_ids: - b = generate_bundle(serial, rid, test, test_id) - if rid == result_ids[0]: - bundle = b - else: - bundle['test_runs'].append(b['test_runs'][0]) - - return bundle - - -def merge_bundles(bundles=[]): - config = get_config() - merged_bundles = {"format": config.bundle_format, - 'test_runs': []} - for bundle in bundles: - if bundle['test_runs']: - merged_bundles['test_runs'].append(bundle['test_runs'][0]) - return merged_bundles - - -def generate_bundle(serial=None, result_id=None, test=None, - test_id=None, attachments=[]): - if result_id is None: - return {} - config = get_config() - adb = ADB(serial) - resultdir = os.path.join(config.resultsdir_android, result_id) - if not adb.exists(resultdir): - raise Exception("The result (%s) is not existed." % result_id) - - bundle_text = adb.read_file(os.path.join(resultdir, "testdata.json")) - bundle = DocumentIO.loads(bundle_text)[1] - test_tmp = None - if test: - test_tmp = test - else: - test_tmp = TestProvider().load_test(bundle['test_runs'][0]['test_id'], - serial) - if test_id: - bundle['test_runs'][0]['test_id'] = test_id - else: - attrs = bundle['test_runs'][0].get('attributes') - if attrs: - run_options = attrs.get('run_options') - if run_options: - test_id = '%s(%s)' % (bundle['test_runs'][0]['test_id'], - run_options) - bundle['test_runs'][0]['test_id'] = test_id - - test_tmp.parse(result_id) - stdout_text = adb.read_file(os.path.join(resultdir, - os.path.basename(test_tmp.org_ouput_file))) - if stdout_text is None: - stdout_text = '' - stderr_text = adb.read_file(os.path.join(resultdir, 'stderr.log')) - if stderr_text is None: - stderr_text = '' - bundle['test_runs'][0]["test_results"] = test_tmp.parser.results[ - "test_results"] - - ## following part is used for generating the attachment for normal test - attachment_bundles = [] - for attachment in test_tmp.attachments: - data_bundle = attachment.generate_bundle(adb=adb, resultsdir=resultdir) - if data_bundle: - attachment_bundles.append(data_bundle) - - bundle['test_runs'][0]["attachments"] = attachment_bundles - - ##following used for the attachment for monkeyrunner test - for attach in attachments: - if os.path.exists(attach): - with open(attach, 'rb') as stream: - data = stream.read() - if data: - bundle['test_runs'][0]["attachments"].append({ - "pathname": os.path.basename(attach), - "mime_type": 'image/png', - "content": base64.standard_b64encode(data)}) - return bundle - -class show(AndroidResultCommand): - """ - Display the output from a previous test that run on the specified device - program:: lava-android-test show result-id - program:: lava-android-test show result-id -s device_serial - """ - def invoke_sub(self): - resultsdir = os.path.join(self.config.resultsdir_android, - self.args.result_id) - if not self.adb.exists(resultsdir): - raise LavaCommandError( - "The result (%s) is not existed." % self.args.result_id) - - stdout = os.path.join(resultsdir, "stdout.log") - if not self.adb.exists(stdout): - self.say("No result found for '%s'" % self.args.result_id) - return - try: - output = self.adb.get_shellcmdoutput('cat %s' % stdout)[1] - if output is not None: - for line in output: - self.display_subprocess_output('stdout', line) - except IOError: - pass - - stderr = os.path.join(resultsdir, "stderr.log") - if not self.adb.exists(stderr): - return - try: - output = self.adb.get_shellcmdoutput('cat %s' % stderr)[1] - if output is not None: - for line in output: - self.display_subprocess_output('stderr', line) - except IOError: - pass - - -class rename(AndroidResultCommand): - """ - Rename the result's id of a previous test that run on the specified device - program:: lava-android-test rename result-id result-id-new - program:: lava-android-test remove result-id result-id-new -s device_serial - """ - - @classmethod - def register_arguments(self, parser): - super(rename, self).register_arguments(parser) - parser.add_argument("result_id_new", - help="New test result identifier") - - def invoke_sub(self): - srcdir = os.path.join(self.config.resultsdir_android, - self.args.result_id) - destdir = os.path.join(self.config.resultsdir_android, - self.args.result_id_new) - - if not self.adb.exists(srcdir): - self.say("Result (%s) not found" % self.args.result_id) - return - if self.adb.exists(destdir): - self.say("Destination result name already exists") - self.adb.move(srcdir, destdir) - - -class remove(AndroidResultsCommand): - """ - Remove the result of a previous test that run on the specified device - program:: lava-android-test remove result-id - program:: lava-android-test remove result-id0 result-id1 - program:: lava-android-test remove result-id -s device_serial - """ - - @classmethod - def register_arguments(self, parser): - super(remove, self).register_arguments(parser) - group = parser.add_argument_group("force to remove") - group.add_argument("-f", "--force", - action="store_true", - help=("give an interactive question about remove")) - - def remove(self, rid): - resultsdir = os.path.join(self.config.resultsdir_android, rid) - if not self.adb.exists(resultsdir): - self.say("No result found for '%s'" % rid) - return - if not self.args.force: - self.say("Remove result '%s' for good? [Y/N]" % rid) - response = raw_input() - if response[0].upper() != 'Y': - return - self.adb.rmtree(resultsdir) - - def invoke_sub(self): - for rid in self.args.result_id: - self.remove(rid) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/config.py b/build/lib.linux-x86_64-2.7/lava_android_test/config.py deleted file mode 100644 index 64bf278..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/config.py +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright (c) 2010-2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -import os - - -class LavaAndroidTestConfig(object): - def __init__(self): - home = os.environ.get('ANDROID_TEST_HOME', '/data/local/tmp/lava-android-test/') - config = os.environ.get('ANDROID_TEST_CONFIG_HOME', - os.path.join(home, '.config')) - basedata = os.environ.get('ANDROID_TEST_DATA_HOME', - os.path.join(home, 'share')) - self.configdir = config - self.installdir_android = os.path.join(basedata, 'installed-tests') - self.resultsdir_android = os.path.join(basedata, 'results') - self.tempdir_android = os.path.join(home, 'temp') - self.tempdir_host = os.environ.get('ANDROID_TEST_TEMP_HOST', - '/tmp/lava-android-test') - self.bundle_format = "Dashboard Bundle Format 1.3" - - -_config = None - - -def get_config(): - global _config - if _config is not None: - return _config - return LavaAndroidTestConfig() - - -def set_config(config): - global _config - _config = config diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/hwprofile.py b/build/lib.linux-x86_64-2.7/lava_android_test/hwprofile.py deleted file mode 100644 index 1ac7b50..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/hwprofile.py +++ /dev/null @@ -1,174 +0,0 @@ -# Copyright (c) 2010 Linaro -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -import re -import sys -from lava_android_test.adb import ADB - -ARM_KEYMAP = { - 'Processor': 'cpu_model_name', - 'Features': 'cpu_features', - 'CPU implementer': 'cpu_implementer', - 'CPU architecture': 'cpu_architecture', - 'CPU variant': 'cpu_variant', - 'CPU part': 'cpu_part', - 'CPU revision': 'cpu_revision', -} - -ARM_VALMAP = { - 'CPU implementer': lambda value: int(value, 16), - 'CPU architecture': int, - 'CPU variant': lambda value: int(value, 16), - 'CPU part': lambda value: int(value, 16), - 'CPU revision': int, -} - - -def _translate_cpuinfo(keymap, valmap, key, value): - """ - Translate a key and value using keymap and valmap passed in - """ - newkey = keymap.get(key, key) - newval = valmap.get(key, lambda x: x)(value) - return newkey, newval - - -def get_cpu_devs(adb=ADB()): - """ - Return a list of CPU devices - """ - - pattern = re.compile('^(?P<key>.+?)\s*:\s*(?P<value>.*)$') - cpunum = 0 - devices = [] - cpudevs = [] - cpudevs.append({}) - - # TODO maybe there is other types - keymap, valmap = ARM_KEYMAP, ARM_VALMAP - - try: - (retcode, cpuinfo) = adb.get_shellcmdoutput("cat /proc/cpuinfo") - if retcode != 0 or cpuinfo is None: - raise IOError("Faile to get content of file(%s)" % "/proc/cpuinfo") - for line in cpuinfo: - match = pattern.match(line) - if match: - key, value = match.groups() - key = key.strip() - value = value.strip() - try: - key, value = _translate_cpuinfo(keymap, valmap, key, value) - except ValueError: - pass - if cpudevs[cpunum].get(key): - cpunum += 1 - cpudevs.append({}) - cpudevs[cpunum][key] = value - for c in range(len(cpudevs)): - device = {} - device['device_type'] = 'device.cpu' - device['description'] = 'Processor #{0}'.format(c) - device['attributes'] = cpudevs[c] - devices.append(device) - except IOError: - print >> sys.stderr, "WARNING: Could not read cpu information" - return devices - - -def get_board_devs(adb=ADB()): - """ - Return a list of board devices - """ - devices = [] - attributes = {} - device = {} - - try: - (retcode, cpuinfo) = adb.get_shellcmdoutput("cat /proc/cpuinfo") - if retcode != 0 or cpuinfo is None: - raise IOError("Faile to get content of file(%s)" % "/proc/cpuinfo") - pattern = re.compile("^Hardware\s*:\s*(?P<description>.+)$", re.M) - found = False - for line in cpuinfo: - match = pattern.search(line) - if match: - found = True - device['description'] = match.group('description').strip() - if not found: - return devices - except IOError: - print >> sys.stderr, "WARNING: Could not read board information" - return devices - if attributes: - device['attributes'] = attributes - device['device_type'] = 'device.board' - devices.append(device) - return devices - - -def get_mem_devs(adb=ADB()): - """ Return a list of memory devices - - This returns up to two items, one for physical RAM and another for swap - """ - devices = [] - - pattern = re.compile('^(?P<key>.+?)\s*:\s*(?P<value>.+) kB$', re.M) - - try: - (retcode, meminfo) = adb.get_shellcmdoutput("cat /proc/meminfo") - if retcode != 0 or meminfo is None: - raise IOError("Faile to get content of file(%s)" % "/proc/meminfo") - for line in meminfo: - match = pattern.search(line) - if not match: - continue - key, value = match.groups() - key = key.strip() - value = value.strip() - if key not in ('MemTotal', 'SwapTotal'): - continue - #Kernel reports in 2^10 units - capacity = int(value) << 10 - if capacity == 0: - continue - if key == 'MemTotal': - kind = 'RAM' - else: - kind = 'swap' - description = "{capacity}MiB of {kind}".format( - capacity=capacity >> 20, kind=kind) - device = {} - device['description'] = description - device['attributes'] = {'capacity': str(capacity), 'kind': kind} - device['device_type'] = "device.mem" - devices.append(device) - except IOError: - print >> sys.stderr, "WARNING: Could not read memory information" - return devices - - -def get_hardware_context(adb=ADB()): - """ - Return a dict with all of the hardware profile information gathered - """ - hardware_context = {} - devices = [] - devices.extend(get_cpu_devs(adb)) - devices.extend(get_board_devs(adb)) - devices.extend(get_mem_devs(adb)) - hardware_context['devices'] = devices - return hardware_context diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/main.py b/build/lib.linux-x86_64-2.7/lava_android_test/main.py deleted file mode 100644 index cb39a72..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/main.py +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright (c) 2010-2012 Linaro -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -import os -import sys -import shutil -from tempfile import mkdtemp -from lava_android_test import utils -from lava_android_test.config import get_config, set_config -from lava_tool.dispatcher import LavaDispatcher, run_with_dispatcher_class - - -class LAVAAndroidTestDispatcher(LavaDispatcher): - toolname = 'lava_android_test' - description = """ - LAVA Android Test wrapper framework - """ - epilog = """ - Please report all bugs using the Launchpad bug tracker: - http://bugs.launchpad.net/lava-android-test/+filebug - """ - - -def check_adb_installed(): - return utils.check_command_exist('adb') - - -def main(): - if not check_adb_installed(): - print >> sys.stderr, "Can't find the command adb." - print >> sys.stderr, ("Please add the path of adb" - " command to PATH environment.") - sys.exit(1) - - config = get_config() - try: - if not os.path.exists(config.tempdir_host): - os.makedirs(config.tempdir_host) - #make every user can write/read this directory - os.chmod(config.tempdir_host, 0777) - config.tempdir_host = mkdtemp(dir=config.tempdir_host) - set_config(config) - os.chmod(config.tempdir_host, 0755) - run_with_dispatcher_class(LAVAAndroidTestDispatcher) - finally: - #can't remove the parent directory, because there may be other - #instance using the parent directory - shutil.rmtree(config.tempdir_host) - - -if __name__ == '__main__': - main() diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/provider.py b/build/lib.linux-x86_64-2.7/lava_android_test/provider.py deleted file mode 100644 index 4ded272..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/provider.py +++ /dev/null @@ -1,276 +0,0 @@ -# Copyright (c) 2012 Linaro - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -import os -import traceback - -from pkgutil import walk_packages - -from lava_android_test import testdef -from lava_android_test import test_definitions -from lava_android_test.test_definitions import commands, instruments -from lava_android_test.adb import ADB -from lava_android_test.config import get_config -from lava_android_test.utils import find_files - - -class UnfoundTest(Exception): - """ - Raise this for unfound test errors - """ - - -class TestProvider(object): - - test_prefix = '' - - def list_test(self): - """ - Return the list of this type - """ - raise NotImplementedError() - - def import_mod(self, importpath): - try: - mod = __import__(importpath) - except ImportError: - raise UnfoundTest('The module(%s) is not found!' % importpath) - for i in importpath.split('.')[1:]: - mod = getattr(mod, i) - return mod - - def list_mod(self, pkg_path): - test_list = [] - for importer, mod, ispkg in walk_packages(pkg_path): - test_list.append(mod) - return test_list - - def gen_testobj(self, testname=None, installer=None, runner=None, - parser=None, adb=ADB()): - - if installer is None: - installer = testdef.AndroidTestInstaller() - if runner is None: - runner = testdef.AndroidTestRunner() - if parser is None: - parser = testdef.AndroidTestParser() - - testobj = testdef.AndroidTest(testname=testname, - installer=installer, runner=runner, parser=parser) - - testobj.parser.results = {'test_results': []} - testobj.setadb(adb) - return testobj - - def get_test_provider_list(self): - providers_hash = {} -# module = imp.load_source("module", os.path.realpath(__file__)) - module = self.import_mod('lava_android_test.provider') - for name, cls in module.__dict__.iteritems(): - if name.endswith('TestProvider') \ - and name != 'TestProvider': - providers_hash[name] = cls - names = providers_hash.keys() - names.sort() - providers_list = [] - common_test_provider = None - for name in names: - if name != 'CommonTestProvider': - providers_list.append(providers_hash.get(name)) - else: - common_test_provider = providers_hash.get(name) - if common_test_provider is not None: - providers_list.append(common_test_provider) - return providers_list - - def load_test(self, test_name=None, serial=''): - providers = self.get_test_provider_list() - err_msg = '' - for provider in providers: - try: - testobj = provider().load_test(test_name=test_name, - serial=serial) - if testobj is not None: - return testobj - except: - err_msg = err_msg + traceback.format_exc() - raise UnfoundTest('The test(%s) is not found! + Exception:\n%s' % ( - test_name, err_msg)) - - -class CommonTestProvider(TestProvider): - - def list_test(self): - return self.list_mod(test_definitions.__path__) - - def load_test(self, test_name=None, serial=None): - importpath = "lava_android_test.test_definitions.%s" % test_name - mod = self.import_mod(importpath) - - base = mod.testobj - base.parser.results = {'test_results': []} - base.setadb(ADB(serial)) - return base - - -class CommandTestProvider(TestProvider): - - test_prefix = 'command' - - def list_test(self): - test_list = self.list_mod(commands.__path__) - ret_list = [] - for test_id in test_list: - ret_list.append('%s-%s' % (self.test_prefix, test_id)) - return ret_list - - def load_test(self, test_name=None, serial=None): - if not test_name.startswith('%s-' % self.test_prefix): - raise UnfoundTest('The test(%s) is not found!' % test_name) - mod_name = test_name.replace('%s-' % self.test_prefix, '', 1) - importpath = "lava_android_test.test_definitions.%ss.%s" % ( - self.test_prefix, mod_name) - mod = self.import_mod(importpath) - if not mod.RUN_ADB_SHELL_STEPS: - raise UnfoundTest(("RUN_ADB_SHELL_STEPS not" - " defined in the test(%s).") % test_name) - if not mod.PATTERN: - raise UnfoundTest(("PATTERN not" - " defined in the test(%s).") % test_name) - testobj = self.gen_testobj( - testname=test_name, - runner=testdef.AndroidTestRunner( - adbshell_steps=mod.RUN_ADB_SHELL_STEPS), - parser=testdef.AndroidTestParser(pattern=mod.PATTERN), - adb=ADB(serial)) - return testobj - - -class InstrumentTestProvider(TestProvider): - - test_prefix = 'instrument' - - def list_test(self): - test_list = self.list_mod(instruments.__path__) - ret_list = [] - for test_id in test_list: - ret_list.append('%s-%s' % (self.test_prefix, test_id)) - return ret_list - - def load_test(self, test_name=None, serial=None): - if not test_name.startswith('%s-' % self.test_prefix): - raise UnfoundTest('The test(%s) is not found!' % test_name) - mod_name = test_name.replace('%s-' % self.test_prefix, '', 1) - importpath = "lava_android_test.test_definitions.%ss.%s" % ( - self.test_prefix, mod_name) - mod = self.import_mod(importpath) - if not mod.RUN_ADB_SHELL_STEPS: - raise UnfoundTest(("RUN_ADB_SHELL_STEPS not" - " defined in the test(%s).") % test_name) - - testobj = self.gen_testobj( - testname=test_name, - runner=testdef.AndroidTestRunner( - adbshell_steps=mod.RUN_ADB_SHELL_STEPS), - parser=testdef.AndroidInstrumentTestParser(), - adb=ADB(serial)) - return testobj - - -class ShellTestProvider(TestProvider): - - test_prefix = 'shell' - config = get_config() - dotext = '.sh' - - def list_test(self): - dotext = '.sh' - mod = self.import_mod("lava_android_test.test_definitions.shells") - sh_files = find_files(mod.curdir, dotext) - test_list = [] - for f in sh_files: - ##Assume that the file name only has one '.sh' - f_name_no_dotext = os.path.basename(f).replace(dotext, '') - test_list.append('%s-%s' % (self.test_prefix, f_name_no_dotext)) - return test_list - - def load_test(self, test_name=None, serial=None): - if not test_name.startswith('%s-' % self.test_prefix): - raise UnfoundTest('The test(%s) is not found!' % test_name) - f_name_no_dotext = test_name.replace('%s-' % self.test_prefix, '', 1) - - mod = self.import_mod("lava_android_test.test_definitions.%ss" % - self.test_prefix) - f_name = '%s%s' % (f_name_no_dotext, self.dotext) - sh_file = '%s/%s' % (mod.curdir, f_name) - - test_sh_android_path = os.path.join(self.config.installdir_android, - test_name, f_name) - - INSTALL_STEPS_ADB_PRE = [ - 'push %s %s ' % (sh_file, test_sh_android_path), - 'shell chmod 777 %s' % test_sh_android_path] - - ADB_SHELL_STEPS = ['%s $(OPTIONS)' % test_sh_android_path] - - testobj = self.gen_testobj( - testname=test_name, - installer=testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE), - runner=testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS), - parser=testdef.AndroidSimpleTestParser(), - adb=ADB(serial)) - return testobj - - -class HostShellTestProvider(TestProvider): - - test_prefix = 'hostshell' - config = get_config() - dotext = '.sh' - - def list_test(self): - dotext = '.sh' - mod = self.import_mod("lava_android_test.test_definitions.hostshells") - sh_files = find_files(mod.curdir, dotext) - test_list = [] - for f in sh_files: - ##Assume that the file name only has one '.sh' - f_name_no_dotext = os.path.basename(f).replace(dotext, '') - test_list.append('%s-%s' % (self.test_prefix, f_name_no_dotext)) - return test_list - - def load_test(self, test_name=None, serial=None): - if not test_name.startswith('%s-' % self.test_prefix): - raise UnfoundTest('The test(%s) is not found!' % test_name) - f_name_no_prefix = test_name.replace('%s-' % self.test_prefix, '', 1) - - mod = self.import_mod("lava_android_test.test_definitions.%ss" % - self.test_prefix) - f_name = '%s%s' % (f_name_no_prefix, self.dotext) - test_sh_path = '%s/%s' % (mod.curdir, f_name) - - HOST_SHELL_STEPS = ['bash %s -s $(SERIAL) $(OPTIONS)' % test_sh_path] - - testobj = self.gen_testobj( - testname=test_name, - installer=testdef.AndroidTestInstaller(), - runner=testdef.AndroidTestRunner( - steps_host_pre=HOST_SHELL_STEPS), - parser=testdef.AndroidSimpleTestParser(), - adb=ADB(serial)) - return testobj - diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/repository.py b/build/lib.linux-x86_64-2.7/lava_android_test/repository.py deleted file mode 100644 index ce57470..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/repository.py +++ /dev/null @@ -1,83 +0,0 @@ -# Copyright (C) 2012 Linaro Limited -# -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -import os -import subprocess - -from lava_android_test import utils - - -class RepositoryError(Exception): - """ - Raise this for repository related errors - """ - - -class Repository(object): - ''' - Base class for all repository class used to checkout files. - This class and sub classes are base the repository command. - ''' - - def __init__(self, url, repo_type, cmds=[]): - self.url = url - self.repo_type = repo_type - self.check_cmds_exist(cmds) - - def checkout(self, target_dir=None): - """ - Checkout this repository to the specified the target_dir directory - """ - raise NotImplementedError() - - def check_cmds_exist(self, cmds=[]): - """ - check whether the necessary commands are existing. - """ - for cmd in cmds: - if not utils.check_command_exist(cmd): - raise RepositoryError(("The necessary command(%) does not" - " exist, Or can't be seen from path") - % cmd) - - -class GitRepository(Repository): - - git_cmd = 'git' - - def __init__(self, url): - super(GitRepository, self).__init__(url, 'git', [self.git_cmd]) - - def checkout(self, target_dir=None): - """ - Checkout this git repository to the specified the target_dir directory - """ - cmds = [] - if not target_dir: - cmds = [self.git_cmd, 'clone', self.url] - - else: - if not os.path.exists(target_dir): - os.makedirs(target_dir) - cmds = [self.git_cmd, 'clone', self.url, target_dir] - - rc = subprocess.call(cmds) - if rc != 0: - raise RepositoryError(("Failed to clone the specified " - "repository() with exist staus=%d") - % (self.url, rc)) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/swprofile.py b/build/lib.linux-x86_64-2.7/lava_android_test/swprofile.py deleted file mode 100644 index 1a74e67..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/swprofile.py +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright (c) 2010 Linaro -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -import re -import sys -from datetime import datetime -from lava_android_test.adb import ADB - - -def get_properties(adb=ADB()): - if adb is None: - return {} - - properties = {} - try: - propinfo = adb.get_shellcmdoutput("getprop")[1] - if propinfo is None: - return properties - pattern = re.compile( - '^\[(?P<key>[^\]]+?)]\s*:\s*\[(?P<value>[^\]]+)\]\s*$', - re.M) - for line in propinfo: - match = pattern.search(line) - if match: - key, value = match.groups() - properties[key] = value - except IOError: - print >> sys.stderr, "WARNING: Could not read board information" - return properties - return properties - - -def get_image_name_from_properties(adb=ADB()): - props = get_properties(adb) - return props.get('ro.build.display.id', '') - - -def get_source_info(adb=ADB()): - - TIMEFORMAT = '%Y-%m-%dT%H:%M:%SZ' - source = [] - example = {'project_name': '', - 'branch_vcs': 'git', - 'branch_url': '', - 'branch_revision': '', - 'commit_timestamp': datetime.utcnow().strftime(TIMEFORMAT)} - source.append(example) - return source - - -def get_package_info(adb=ADB()): - - packages_info = [] - pkginfo = adb.get_shellcmdoutput('/system/bin/pm list packages -v')[1] - if pkginfo is None: - return packages_info - pattern = re.compile( - ("^\s*package:\s*(?P<package_name>[^:]+?)\s*:" - "\s*(?P<version>[^\s].+)\s*$"), re.M) - for line in pkginfo: - match = pattern.search(line) - if match: - package_name, version = match.groups() - package = {'name': package_name.strip(), - 'version': version.strip()} - packages_info.append(package) - return packages_info - - -def get_software_context(adb=ADB()): - """ Return dict used for storing software_context information - - image - the image information of the android system - sources - the source information about the android system - packages - the apk packages information in the android system - """ - if adb is None: - return {} - - software_context = {'image': {'name': get_image_name_from_properties(adb)}, - 'sources': get_source_info(adb), - 'packages': get_package_info(adb) - } - return software_context diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/0xbench.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/0xbench.py deleted file mode 100644 index 8327629..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/0xbench.py +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright (c) 2011 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -0xbench integrates several popular benchmarks into a single Android -app that can be run to get benchmark reports for a given device. -Here by default we will run the math/2d/3d test on the target device. - -**URL:** http://code.google.com/p/0xbench/ - -**Default options:** "--ez math true --ez 2d true --ez 3d true --ez vm true" -""" - -import os -import json - -import lava_android_test.testdef - -curdir = os.path.realpath(os.path.dirname(__file__)) - -# "-timeout timeout" must be specified with at least one test -# can not only specified the "-timeout timeout" as option -DEFAULT_OPTIONS = '--ez math true --ez 2d true --ez 3d true --ez vm true' -INSTALL_STEPS_HOST_POST = [ - ("python %s/android-0xbenchmark/android_0xbenchmark_modify_path.py" - " $(SERIAL)") % curdir] - -RUN_STEPS_HOST_PRE = [ - ("python %s/android-0xbenchmark/android_0xbenchmark_kill.py" - " $(SERIAL)") % curdir] -RUN_STEPS_ADB_SHELL = ['logcat -c', - ("am start -n org.zeroxlab.zeroxbenchmark/" - "org.zeroxlab.zeroxbenchmark.Benchmark --ez autorun true $(OPTIONS)")] -RUN_STEPS_HOST_POST = [ - 'python %s/android-0xbenchmark/android_0xbenchmark_wait.py ' - '$(SERIAL) $(OPTIONS)' % curdir] - - -class ZeroXBenchmarkTestParser(lava_android_test.testdef.AndroidTestParser): - - def parse(self, result_filename=None, output_filename='0xBenchmark.bundle', - test_name=''): - """Parse test output to gather results - Use the pattern specified when the class was instantiated to look - through the results line-by-line and find lines that match it. - Results are then stored in self.results. If a fixupdict was supplied - it is used to convert test result strings to a standard format. - """ - with open(output_filename) as stream: - test_results_data = stream.read() - test_results_json = json.loads(test_results_data) - self.results['test_results'] = test_results_json[ - 'test_runs'][0]['test_results'] - if self.fixupdict: - self.fixresults(self.fixupdict) - if self.appendall: - self.appendtoall(self.appendall) - self.fixmeasurements() - self.fixids() - -save_dir = '/data/data/org.zeroxlab.zeroxbenchmark/files' -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_host_post=INSTALL_STEPS_HOST_POST) -run = lava_android_test.testdef.AndroidTestRunner( - steps_host_pre=RUN_STEPS_HOST_PRE, - adbshell_steps=RUN_STEPS_ADB_SHELL, - steps_host_post=RUN_STEPS_HOST_POST) -parser = ZeroXBenchmarkTestParser() -testobj = lava_android_test.testdef.AndroidTest(testname="0xbench", - installer=inst, runner=run, parser=parser, - org_ouput_file=os.path.join(save_dir, '0xBenchmark.bundle'), - default_options=DEFAULT_OPTIONS) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/__init__.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/__init__.py +++ /dev/null diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/android-0xbenchmark/ZeroxBench_Preference.xml b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/android-0xbenchmark/ZeroxBench_Preference.xml deleted file mode 100644 index 6f07a12..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/android-0xbenchmark/ZeroxBench_Preference.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version='1.0' encoding='utf-8' standalone='yes' ?> -<map> -<string name="KEY_RESULT_CUSTOM_DIR">/data/data/org.zeroxlab.zeroxbenchmark/files</string> -<int name="KEY_RESULT_SELECTION" value="1" /> -</map> diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/android-0xbenchmark/android_0xbenchmark_kill.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/android-0xbenchmark/android_0xbenchmark_kill.py deleted file mode 100755 index 17a4fd7..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/android-0xbenchmark/android_0xbenchmark_kill.py +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/python - -# Copyright (c) 2011 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -import re -import sys -import time -from commands import getstatusoutput - -if len(sys.argv) == 1: - adb_cmd = "adb" -else: - adb_cmd = "adb -s %s" % (sys.argv[1]) - - -def back(): - back_cmd = '%s shell input keyevent 4' % (adb_cmd) - rc, output = getstatusoutput(back_cmd) - if rc != 0: - print 'Failed to execute command %s:%s' % (back_cmd, output) - sys.exit(1) -back() -back() -back() - -##app_76 861 80 165896 28848 ffffffff afd0eb18 S -## org.zeroxlab.zeroxbenchmark -pattern = re.compile( - '^\S+\s+(?P<pid>\d+?)\s+.*org\.zeroxlab\.zeroxbenchmark\s*$') -while True: - pscmd = '%s shell ps' % (adb_cmd) - rc, output = getstatusoutput(pscmd) - if rc != 0: - print ("Failed to get process information about " - "org.zeroxlab.zeroxbenchmark:%s") % output - sys.exit(1) - pid = None - for line in output.splitlines(): - match = pattern.match(line) - if match: - pid = match.group('pid') - break - - if pid is None: - sys.exit(0) - - killcmd = '%s shell kill %s' % (adb_cmd, pid) - rc, output = getstatusoutput(killcmd) - if rc != 0: - print 'Failed to kill process(%s):%s' % (pid, output) - sys.exit(1) - time.sleep(2) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/android-0xbenchmark/android_0xbenchmark_modify_path.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/android-0xbenchmark/android_0xbenchmark_modify_path.py deleted file mode 100644 index 0b0d309..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/android-0xbenchmark/android_0xbenchmark_modify_path.py +++ /dev/null @@ -1,121 +0,0 @@ -#!/usr/bin/python - -# Copyright (c) 2011 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -import sys -import re -import os -from commands import getstatusoutput - -curdir = os.path.realpath(os.path.dirname(__file__)) -source = '%s/ZeroxBench_Preference.xml' % curdir -target = ("/data/data/org.zeroxlab.zeroxbenchmark/shared_prefs/" - "ZeroxBench_Preference.xml") - -if len(sys.argv) == 1: - adbcmd = 'adb' -else: - adbcmd = 'adb -s %s' % (sys.argv[1]) - -target_dir = '/data/data' -lscmd = '%s shell ls -l %s' % (adbcmd, target_dir) -rc, output = getstatusoutput(lscmd) -if rc != 0: - print 'Failed to get group and owner of directory(%s) : %s' % (target_dir, - output) - sys.exit(1) -group = None -owner = None -##drwxr-x--x app_76 app_76 2011-10-21 14:40 -## org.zeroxlab.zeroxbenchmark -pattern = re.compile( - ("^d\S+\s+(?P<group>\S+?)\s+(?P<owner>\S+?)\s+" - "\S+\s+\S+\s+org\.zeroxlab\.zeroxbenchmark\s*$")) -for line in output.splitlines(): - match = pattern.match(line) - if match: - group, owner = match.groups() - break -if (group is None) or (owner is None): - print 'Failed to get group and owner of directory(%s): %s' % (target_dir, - output) - sys.exit(1) - -target_dir = '/data/data/org.zeroxlab.zeroxbenchmark/shared_prefs' -mkdircmd = '%s shell mkdir %s' % (adbcmd, target_dir) -rc, output = getstatusoutput(mkdircmd) -if rc != 0: - print 'Failed to create directory(%s): %s' % (source, target, output) - sys.exit(1) - -chowncmd = '%s shell chown %s.%s %s' % (adbcmd, owner, group, target_dir) -rc, output = getstatusoutput(chowncmd) -if rc != 0: - print 'Failed to change group(%s) and owner(%s) of file(%s): %s' % (group, - owner, target_dir, output) - sys.exit(1) - -chmodcmd = '%s shell chmod 771 %s' % (adbcmd, target_dir) -rc, output = getstatusoutput(chmodcmd) -if rc != 0: - print 'Failed to change chmod to 771 for file(%s): %s' % (target_dir, - output) - sys.exit(1) - -pushcmd = '%s push %s %s' % (adbcmd, source, target) -rc, output = getstatusoutput(pushcmd) -if rc != 0: - print 'Failed to push file(%s) to file(%s): %s' % (source, target, - output) - sys.exit(1) - -chowncmd = '%s shell chown %s.%s %s' % (adbcmd, owner, group, target) -rc, output = getstatusoutput(chowncmd) -if rc != 0: - print 'Failed to change group(%s) and owner(%s) of file(%s): %s' % (group, - owner, target, output) - sys.exit(1) - -chmodcmd = '%s shell chmod 660 %s' % (adbcmd, target) -rc, output = getstatusoutput(chmodcmd) -if rc != 0: - print 'Failed to change chmod to 771 for file(%s): %s' % (target, output) - sys.exit(1) - -target_dir = '/data/data/org.zeroxlab.zeroxbenchmark/files' -mkdircmd = '%s shell mkdir %s' % (adbcmd, target_dir) -rc, output = getstatusoutput(mkdircmd) -if rc != 0: - print 'Failed to create directory(%s): %s' % (target_dir, output) - sys.exit(1) - -chowncmd = '%s shell chown %s.%s %s' % (adbcmd, owner, group, target_dir) -rc, output = getstatusoutput(chowncmd) -if rc != 0: - print 'Failed to change group(%s) and owner(%s) of file(%s): %s' % (group, - owner, target_dir, output) - sys.exit(1) - -chmodcmd = '%s shell chmod 771 %s' % (adbcmd, target_dir) -rc, output = getstatusoutput(chmodcmd) -if rc != 0: - print 'Failed to change chmod to 771 for file(%s): %s' % (target_dir, - output) - sys.exit(1) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/android-0xbenchmark/android_0xbenchmark_wait.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/android-0xbenchmark/android_0xbenchmark_wait.py deleted file mode 100755 index dcfdbfc..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/android-0xbenchmark/android_0xbenchmark_wait.py +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/python - -# Copyright (c) 2011 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -import sys -import time - -from lava_android_test.utils import stop_at_pattern - -adb_cmd = "adb" -# here assumes that there is no serial number will start with '-' -# and the options passed are start with '-' as first option -if len(sys.argv) > 1 and (not sys.argv[1].startswith('-')): - adb_cmd = "adb -s %s" % (sys.argv[1]) - -timeout = 2400 -for index in range(1, len(sys.argv)): - arg = sys.argv[index] - if arg == '-timeout' and \ - (index + 1 < len(sys.argv)) and \ - sys.argv[index + 1]: - try: - timeout = int(sys.argv[index + 1]) - except ValueError: - pass - finally: - break - -logcat_cmd = '%s logcat' % (adb_cmd) -pattern = "Displayed org.zeroxlab.zeroxbenchmark/.Report" - -if not stop_at_pattern(command=logcat_cmd, pattern=pattern, timeout=timeout): - print "0xbench Test: TIMEOUT Fail" - sys.exit(1) - -time.sleep(3) -sys.exit(0) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/bctest.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/bctest.py deleted file mode 100644 index 5609277..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/bctest.py +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Android Team <linaro-android@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -bctest test covers testing of a couple of binder IOCTLS. -We can think of it as a subset of "shell-binder" test, -which is much more exhaustive and is the main binder test to go for. -binder test "bctest" that is pre-intalled on Juice Android builds. - -**URL:** http://android.git.linaro.org/gitweb?p=platform/frameworks/base.git;a=blob;f=cmds/servicemanager/bctest.c - -**Default options:** "publish 1" -""" - -import lava_android_test.config -import lava_android_test.testdef - -test_name = 'bctest' - -DEFAULT_OPTIONS = 'publish 1' - -INSTALL_STEPS_ADB_PRE = [] -ADB_SHELL_STEPS = ['bctest $(OPTIONS)'] -PATTERN = "(?P<test_case_id>.*ioctl)\s(?P<result>(PASS|FAIL)?).*" - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser, - default_options=DEFAULT_OPTIONS) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/big_LITTLE.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/big_LITTLE.py deleted file mode 100644 index 7aa6b1f..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/big_LITTLE.py +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Drives big.LITTLE test scripts that are pre-intalled on Linaro Android -builds of big.LITTLE. -By default will run all the tests on the target including tests on: -basic module and switcher/cache-coherency/data-corruption/disk-io/governor/memory/perf/switcher/vfp-ffmpeg - -**URL:** https://linaro-private.git.linaro.org/gitweb?p=bL_tests/bL_iks_tests.git;a=summary - -**Default options:** "-a" -""" - -import lava_android_test.testdef - -test_name = 'big_LITTLE' - -DEFAULT_OPTIONS='-a' - -INSTALL_STEPS_ADB_PRE = [] -ADB_SHELL_STEPS = ['run_stress_switcher_tests.sh $(OPTIONS)'] -PATTERN = "(?P<test_case_id>.*-*)\s+:\s+(?P<result>(PASS|FAIL))" - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser, - default_options=DEFAULT_OPTIONS) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/blackbox.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/blackbox.py deleted file mode 100644 index 790569b..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/blackbox.py +++ /dev/null @@ -1,494 +0,0 @@ -# Copyright (c) 2012 Linaro Limited - -# Author: Zygmunt Krynicki <zygmunt.krynicki@linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Bridge for the black-box testing implemented by lava-blackbox. -It covers all the available tests in AOSP. -The list is available here from APMTest to ZipFileROTest - -**Sample Result URL:** http://validation.linaro.org/lava-server/dashboard/image-reports/linaro-android-member-ti_panda-linaro - -**URL:** https://github.com/zyga/lava-blackbox - -**Default options:** None -""" - -import datetime -import functools -import logging -import os -import pdb -import shutil -import subprocess -import tempfile - -from linaro_dashboard_bundle.evolution import DocumentEvolution -from linaro_dashboard_bundle.io import DocumentIO - -from lava_android_test.config import get_config - - -def debuggable_real(func): - """ - Helper for debugging functions that otherwise have their exceptions - consumed by the caller. Any exception raised from such a function will - trigger a pdb session when 'DEBUG_DEBUGGABLE' environment is set. - """ - @functools.wraps(func) - def debuggable_decorator(*args, **kwargs): - try: - return func(*args, **kwargs) - except: - logging.exception("exception in @debuggable function") - pdb.post_mortem() - return debuggable_decorator - - -def debuggable_noop(func): - return func - - -if os.getenv("DEBUG_DEBUGGABLE"): - debuggable = debuggable_real -else: - debuggable = debuggable_noop - - -class SuperAdb(object): - """ - Class that implements certain parts of ADB()-like API differently. - """ - - def __init__(self, stock_adb): - # Name of the adb executable with any required arguments, - # such as -s 'serial' - self._adb_cmd = stock_adb.adb.split() - - def __call__(self, command, *args, **kwargs): - """ - Invoke adb command. - - This call is somewhat special that it wraps two subprocess helper - functions: check_call and check_output. They are called depending - on the keyword argument 'stdout', if passed as None then output - is _not_ saved and is instantly streamed to the stdout of the running - program. In any other case stdout is buffered and saved, then returned - """ - cmd = self._adb_cmd + command - if "stdout" in kwargs and kwargs['stdout'] is None: - del kwargs['stdout'] - return subprocess.check_call(cmd, *args, **kwargs) - else: - return subprocess.check_output(cmd, *args, **kwargs) - - def listdir(self, dirname): - """ - List directory entries on the android device. - - Similar to adb.listdir() as implemented in ADB() but generates - subsequent lines instead of returning a big lump of text for the - developer to parse. Also, instead of using 'ls' on the target it - uses the special 'ls' command built into adb. - - The two special entries, . and .., are omitted - """ - for line in self(['ls', dirname]).splitlines(): - # a, b and c are various pieces of stat data - # but we don't need that here. - a, b, c, pathname = line.split(' ', 3) - if pathname not in ('.', '..'): - yield pathname - - -class AdbMixIn(object): - """ - Mix-in class that assists in setting up ADB. - - lava-android-test uses the setadb()/getadb() methods to pass the ADB object - (which encapsulates connection data for the specific device we will be - talking to). - - Since the ADB object has fixed API and changes there are beyond the scope - of this test any extra stuff we want from ADB will be provided by the - SuperAdb class. - - This mix-in class that has methods expected by lava-android-test and - exposes two properties, adb and super_adb. - """ - - adb = None - - def setadb(self, adb=None): - if self.adb is None and adb is not None: - self.adb = adb - else: - self.adb = adb - self.super_adb = SuperAdb(adb) - - def getadb(self): - return self.adb - - -class Sponge(object): - """ - A simple namespace-like object that anyone can assign and read freely. - - To get some understanding of what is going on both reads and writes are - logged. - """ - - def __getattr__(self, attr): - return super(Sponge, self).__getattr__(attr) - - def __setattr__(self, attr, value): - super(Sponge, self).__setattr__(attr, value) - - -class FutureFormatDetected(Exception): - """ - Exception raised when the code detects a new, unsupported - format that was created after this library was written. - - Since formats do not have partial ordering we can only detect - a future format when the document format is already at the "latest" - value, as determined by DocumentEvolution.is_latest(), but the actual - format is not known to us. - - Typically this won't happen often as document upgrades are not performed - unless necessary. The only case when this may happen is where the bundle - loaded from the device was already using a future format to begin with. - """ - - def __init__(self, format): - self.format = format - - def __str__(self): - "Unsupported, future format: %s" % self.format - - def __repr__(self): - return "FutureFormatDetected(%r)" % self.format - - -class BlackBoxTestBridge(AdbMixIn): - """ - Bridge for interacting with black box tests implemented as something that - looks like android test definition. - """ - - # NOTE: none of the tests will actually carry this ID, it is simply used - # here so that it's not a magic value. - testname = 'blackbox' - - def __init__(self): - """ - Initialize black-box test bridge - """ - # The sponge object is just a requirement from the API, it is not - # actually used by us in any way. The framework assigns a skeleton - # test result there but we don't really need it. The Sponge object - # is a simple 'bag' or namespace that will happily accept and record - # any values. - self.parser = Sponge() - - def install(self, install_options=None): - """ - "Install" blackbox on the test device. - - Black box tests cannot be installed, they must be pre-baked into the - image. To conform to the 'protocol' used by lava-android-test we will - perform a fake 'installation' of the black box tests by creating a - directory that lava-android-test is checking for. We do that only if - the lava-blackbox executable, which is the entry point to black box - tests exists in the image. - - ..note:: - This method is part of the lava-android-test framework API. - """ - if not self.adb.exists(self._blackbox_pathname): - # Sadly lava-android-test has no exception hierarchy that we can - # use so all problems are reported as RuntimeError - raise RuntimeError( - 'blackbox test cannot be "installed" as they must be built' - ' into the image.' - ' See https://github.com/zyga/android-lava-wrapper' - ' for details.') - else: - self.adb.makedirs(self._fake_install_path) - - def uninstall(self): - """ - Conformance method to keep up with the API required by - lava-android-test. It un-does what install() did by removing the - _fake_install_path directory from the device. - - ..note:: - This method is part of the lava-android-test framework API. - """ - if self.adb.exists(self._fake_install_path): - self.adb.rmtree(self._fake_install_path) - - @debuggable - def run(self, quiet=False, run_options=None): - """ - Run the black-box test on the target device. - - Use ADB to run the black-box executable on the device. Keep the results - in the place that lava-android-test expects us to use. - - ..note:: - This method is part of the lava-android-test framework API. - """ - # The blackbox test runner will create a directory each time it is - # started. All of those directories will be created relative to a so - # called spool directory. Instead of using the default spool directory - # (which can also change) we will use the directory where - # lava-android-test keeps all of the results. - spool_dir = get_config().resultsdir_android - logging.debug("Using spool directory for black-box testing: %r", spool_dir) - stuff_before = frozenset(self.super_adb.listdir(spool_dir)) - blackbox_command = [ - 'shell', self._blackbox_pathname, - '--spool', spool_dir, - '--run-all-tests'] - # Let's run the blackbox executable via ADB - logging.debug("Starting black-box tests...") - self.super_adb(blackbox_command, stdout=None) - logging.debug("Black-box tests have finished!") - stuff_after = frozenset(self.super_adb.listdir(spool_dir)) - # Check what got added to the spool directory - new_entries = stuff_after - stuff_before - if len(new_entries) == 0: - raise RuntimeError("Nothing got added to the spool directory") - elif len(new_entries) > 1: - raise RuntimeError("Multiple items added to the spool directory") - result_id = list(new_entries)[0] - print "The blackbox test have finished running, the result id is %r" % result_id - return result_id - - def parse(self, result_id): - """ - UNIMPLEMENTED METHOD - - Sadly this method is never called as lava-android-test crashes before - it gets to realize it is processing blackbox results and load this - class. This crash _may_ be avoided by hiding the real results of - blackbox and instead populating the results directory with dummy test - results that only let LAVA figure out that blackbox is the test to - load. Then we could monkey patch other parts and it could be - implemented. - - ONCE THIS IS FIXED THE FOLLOWING DESCRIPTION SHOULD APPLY - - Parse and save results of previous test run. - - The result_id is a name of a directory on the Android device ( - relative to the resultsdir_android configuration option). - - ..note:: - This method is part of the lava-android-test framework API. - """ - # Sadly since the goal is integration with lava lab I don't have the - # time to do it. In the lab we use lava-android-test run -o anyway. - raise NotImplementedError() - - def _get_combined_bundle(self, result_id): - """ - Compute the combined bundle of a past run and return it - """ - config = get_config() - temp_dir = tempfile.mkdtemp() - remote_bundle_dir = os.path.join(config.resultsdir_android, result_id) - try: - self._copy_all_bundles(remote_bundle_dir, temp_dir) - bundle = self._combine_bundles(temp_dir) - finally: - shutil.rmtree(temp_dir) - return bundle - - # Desired format name, used in a few methods below - _desired_format = "Dashboard Bundle Format 1.3" - - def _copy_all_bundles(self, android_src, host_dest): - """ - Use adb pull to copy all the files from android_src (android - fileystem) to host_dest (host filesystem). - """ - logging.debug("Saving bundles from %s to %s", android_src, host_dest) - for name in self.super_adb.listdir(android_src): - logging.debug("Considering file %s", name) - # NOTE: We employ simple filtering for '.json' files. This prevents - # spurious JSON parsing errors if the result directory has - # additional files of any kind. - # - # We _might_ want to lessen that eventually restriction but at this - # time blackbox is really designed to be self-sufficient so there - # is no point of additional files. - if not name.endswith('.json'): - continue - remote_pathname = os.path.join(android_src, name) - local_pathname = os.path.join(host_dest, name) - try: - logging.debug( - "Copying %s to %s", remote_pathname, local_pathname) - self.adb.pull(remote_pathname, local_pathname) - except: - logging.exception("Unable to copy bundle %s", name) - - def _combine_bundles(self, dirname): - """ - Combine all bundles from a previous test run into one bundle. - - Returns the aggregated bundle object - - Load, parse and validate each bundle from the specified directory and - combine them into one larger bundle. This is somewhat tricky. Each - bundle we coalesce may be generated by a different, separate programs - and may, thus, use different formats. - - To combine them all correctly we need to take two precautions: - 1) All bundles must be updated to a single, common format - 2) No bundle may be upgraded beyond the latest format known - to this code. Since the hypothetical 2.0 format may be widely - different that we cannot reliably interpret anything beyond - the format field. To prevent this we use the evolution API - to carefully upgrade only to the "sentinel" format, 1.3 - (at this time) - """ - # Use DocumentIO.loads() to preserve the order of entries. - # This is a very small touch but it makes reading the results - # far more pleasant. - aggregated_bundle = DocumentIO.loads( - '{\n' - '"format": "' + self._desired_format + '",\n' - '"test_runs": []\n' - '}\n')[1] - # Iterate over all files there - for name in os.listdir(dirname): - bundle_pathname = os.path.join(dirname, name) - # Process bundle one by one - try: - format, bundle = self._load_bundle(bundle_pathname) - self._convert_to_common_format(format, bundle) - self._combine_with_aggregated(aggregated_bundle, bundle) - except: - logging.exception("Unable to process bundle %s", name) - # Return the aggregated bundle - return aggregated_bundle - - def _load_bundle(self, local_pathname): - """ - Load the bundle from local_pathname. - - There are various problems that can happen here but - they should all be treated equally, the bundle not - being used. This also transparently does schema validation - so the chance of getting wrong data is lower. - """ - with open(local_pathname, 'rt') as stream: - format, bundle = DocumentIO.load(stream) - return format, bundle - - def _convert_to_common_format(self, format, bundle): - """ - Convert the bundle to the common format. - - This is a careful and possibly fragile process that may - raise FutureFormatDetected exception. If that happens - then desired_format (encoded in the function itself) must be - changed and the code reviewed for any possible changes - required to support the more recent format. - """ - while True: - # Break conditions, encoded separately for clarity - if format == self._desired_format: - # This is our desired break condition, when format - # becomes (or starts as) the desired format - break - if DocumentEvolution.is_latest(bundle): - # This is a less desired break condition, if we - # got here then the only possible explanation is - # that some program started with format > desired_format - # and the DocumentEvolution API is updated to understand - # it but we are not. In that case let's raise an exception - raise FutureFormatDetected(format) - # As long as the document format is old keep upgrading it - # step-by-step. Evolution is done in place - DocumentEvolution.evolve_document(bundle, one_step=True) - - def _combine_with_aggregated(self, aggregated_bundle, bundle): - """ - Combine the bundle with the contents of aggregated_bundle. - - This method simply transplants all the test runs as that is what - the bundle format was designed to be - a simple container for test - runs. - """ - assert bundle["format"] == self._desired_format - assert aggregated_bundle["format"] == self._desired_format - aggregated_bundle["test_runs"].extend(bundle.get("test_runs", [])) - - @property - def _blackbox_pathname(self): - """ - The path to the blackbox bridge on the device. - """ - return "/system/bin/lava-blackbox" - - @property - def _fake_install_path(self): - """ - The path that we create on the android system to - indicate that the black box test is installed. - - This is used by uninstall() and install() - """ - config = get_config() - return os.path.join(config.installdir_android, self.testname) - - def _monkey_patch_lava(self): - """ - Monkey patch the implementation of lava_android_test.commands.generate_bundle - - This change is irreversible but given the one-off nature of - lava-android-test this is okay. It should be safe to do this since - LAVA will only load the blackbox test module if we explicitly request - to run it. At that time no other tests will run in the same process. - - This method should not be used once lava-android-test grows a better - API to allow us to control how bundles are generated. - """ - from lava_android_test import commands - def _phony_generate_bundle(serial=None, result_id=None, - test=None, test_id=None, attachments=[]): - if result_id is None: - raise NotImplementedError - return self._get_combined_bundle(result_id) - commands.generate_bundle = _phony_generate_bundle - logging.warning( - "The 'blackbox' test definition has monkey-patched the function" - " lava_android_test.commands.generate_bundle() if you are _not_" - " running the blackbox test or are experiencing odd problems/crashes" - " below please look at this method first") - - -# initialize the blackbox test definition object -testobj = BlackBoxTestBridge() - -# Then monkey patch lava-android-test so that parse keeps working -testobj._monkey_patch_lava() diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/bluetooth.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/bluetooth.py deleted file mode 100644 index 2ca1d8c..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/bluetooth.py +++ /dev/null @@ -1,47 +0,0 @@ -# copyright (C) 2012 Linaro Limited -# -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -This test helps validating basic bluetooth functionality by executing the -Android BluetoothTestRunner tests. - -**URL:** http://android.git.linaro.org/gitweb?p=platform/frameworks/base.git;a=blob;f=core/tests/bluetoothtests/src/android/bluetooth/BluetoothTestRunner.java - -**Default options:** None -""" - -import lava_android_test.testdef - -test_name = 'bluetooth' - -cmd = ("am instrument -r -e enable_iterations 2 -e discoverable_iterations 2" - " -e scan_iterations 2 -e enable_pan_iterations 2 -e pair_iterations 1 " - " -e device_address $(OPTIONS) " - " -w com.android.bluetooth.tests/android.bluetooth.BluetoothTestRunner") -RUN_ADB_SHELL_STEPS = [cmd] - -inst = lava_android_test.testdef.AndroidTestInstaller() -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=RUN_ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidInstrumentTestParser() -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/busybox.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/busybox.py deleted file mode 100644 index cc32fcc..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/busybox.py +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright (c) 2011 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -""" -This is a simple test to ensure busybox is installed on an Android build and -can execute some basic busybox commands - -**URL:** http://www.busybox.net/ - -**Default Options:** None -""" - -import os -import lava_android_test.testdef -from lava_android_test.config import get_config - -test_name = 'busybox' -config = get_config() -curdir = os.path.realpath(os.path.dirname(__file__)) -test_sh_name = 'busybox_test.sh' -test_sh_path = os.path.join(curdir, test_name, test_sh_name) -test_sh_android_path = os.path.join(config.installdir_android, - test_name, test_sh_name) - -INSTALL_STEPS_ADB_PRE = ['push %s %s ' % (test_sh_path, - test_sh_android_path), - 'shell chmod 777 %s' % test_sh_android_path] - -ADB_SHELL_STEPS = [test_sh_android_path] -#PATTERN = "^(?P<test_case_id>\w+):\W+(?P<measurement>\d+\.\d+)" -PATTERN = "^\s*(?P<test_case_id>\w+)=(?P<result>\w+)\s*$" - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/busybox/busybox_test.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/busybox/busybox_test.sh deleted file mode 100755 index 4b3bd4e..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/busybox/busybox_test.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/system/bin/sh - -test_func(){ - if [ ! -f /system/bin/busybox ]; then - echo "busybox=unexist" - exit - fi - - if /system/bin/busybox [ $# -lt 1 ]; then - return 0 - fi - test_cmd=$1 - /system/bin/busybox "$@" 1>/dev/null 2>/dev/null - if /system/bin/busybox [ $? -ne 0 ]; then - echo "${test_cmd}=fail" - else - echo "${test_cmd}=pass" - fi -} - -rm -r /data/busybox 1>/dev/null 2>/dev/null - -test_func mkdir /data/busybox -test_func touch /data/busybox/test.txt -test_func ls /data/busybox/test.txt -test_func ps -test_func whoami -test_func which busybox -test_func basename /data/busybox/test.txt -test_func cp /data/busybox/test.txt /data/busybox/test2.txt -test_func rm /data/busybox/test2.txt -test_func dmesg -test_func grep service /init.rc - -rm -r /data/busybox 1>/dev/null 2>/dev/null diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cache_coherency.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cache_coherency.py deleted file mode 100644 index 72f1709..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cache_coherency.py +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Stressapptest tries to maximize randomized traffic to memory from processor -and I/O, with the intent of creating a realistic high load situation -in order to test the existing hardware devices in a computer. -Used for cache-coherency testing on big.LITTLE here. - -**URL:** http://android.git.linaro.org/gitweb?p=platform/external/stressapptest.git;a=summary - -**Default options:** None -""" -import lava_android_test.testdef - -test_name = 'cache_coherency' - -INSTALL_STEPS_ADB_PRE = [] -ADB_SHELL_STEPS = ['stressapptest -M 16 --cc_test -s 10'] -PATTERN = "^\s*(?P<test_case_id>Status?):\s+(?P<result>(PASS|FAIL)?)\s+-\s+" - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/commands/__init__.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/commands/__init__.py deleted file mode 100644 index 075f164..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/commands/__init__.py +++ /dev/null @@ -1,30 +0,0 @@ -# copyright (C) 2012 Linaro Limited -# -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -This directory contains the test that only needs to run an android command and -specify the output pattern that to parse the command ouptu to get result. -Please see the example.py for a reference. -Please note this is not a test that can be run. - -**URL:** None - -**Default options:** None -""" diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/commands/bionic_libc_tests.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/commands/bionic_libc_tests.py deleted file mode 100644 index 4beaac3..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/commands/bionic_libc_tests.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (c) 2013 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -""" -Runs the stock bionic tests. - -**URL:** http://android.git.linaro.org/gitweb?p=platform/system/extras.git;a=tree;f=tests/bionic/libc - -**Default Options:** None -""" - -RUN_ADB_SHELL_STEPS = ['run-bionic-tests.sh'] -PATTERN = "(?P<test_case_id>.*-*)\s+:\s+(?P<result>(PASS|FAIL))" diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/commands/example.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/commands/example.py deleted file mode 100644 index 2a175da..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/commands/example.py +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Example for how to add tests that only need to run an android command -and specify the output pattern to parse the command ouput to get result. - -**URL:** None - -**Default options:** None -""" -RUN_ADB_SHELL_STEPS = ['tjunittest'] -PATTERN = ("^\s*(?P<test_case_id>.+)\s+\.\.\.\s+(?P<result>\w+)\." - "\s+(?P<measurement>[\d\.]+)\s+(?P<units>\w+)\s*$") diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/commands/linaro_android_kernel_test.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/commands/linaro_android_kernel_test.py deleted file mode 100644 index 39fd33c..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/commands/linaro_android_kernel_test.py +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -""" -Runs the linaro kernel unit tests including: - ashmem/ashmem_expanded/alarmdev/logger/binder/sync - -**URL:** https://linaro-private.git.linaro.org/gitweb?p=android/linaro-android-kernel-test.git;a=summary - -**Default Options:** None -""" - -RUN_ADB_SHELL_STEPS = ['linaro-android-kernel-tests.sh'] -PATTERN = "\s*\[(?P<test_case_id>\w+)\]:\s\w+\s(?P<result>\w+)" diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/commands/tjunittest.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/commands/tjunittest.py deleted file mode 100644 index e377fc4..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/commands/tjunittest.py +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Tests the various code paths in the TurboJPEG C Wrapper - -**URL:** https://git.linaro.org/gitweb?p=people/tomgall/libjpeg-turbo/libjpeg-turbo.git;a=blob_plain;f=tjunittest.c - -**Default options:** None -""" -ADB_SHELL_STEPS = ['tjunittest'] -PATTERN = ("^\s*(?P<test_case_id>.+)\s+\.\.\.\s+(?P<result>\w+)\." - "\s+(?P<measurement>[\d\.]+)\s+(?P<units>\w+)\s*$") diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts.py deleted file mode 100644 index 6e0eec7..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts.py +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright (C) 2012 Linaro Limited - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -""" -This test executes the Android Compatibility Test Suite (CTS) to verify if -a given build meets all the criteria. - -**URL:** http://source.android.com/compatibility/cts-intro.html - -**Default Options:** None -""" - -import os - -from lava_android_test.testdef import (Attachment, - AndroidTest, - AndroidTestInstaller, - AndroidTestRunner, - AndroidTestParser) - -test_name = 'cts' - -curdir = os.path.realpath(os.path.dirname(__file__)) - -RUN_STEPS_HOST_PRE = ['python %s/cts/cts_wrapper.py $(SERIAL) $(OPTIONS)' % ( - curdir)] - -inst = AndroidTestInstaller() -run = AndroidTestRunner(steps_host_pre=RUN_STEPS_HOST_PRE) - -# cts-tf > [2K06-17 14:24:02 I/10.254.21.142:5555: android.acceleration. -# cts.HardwareAccelerationTest#testIsHardwareAccelerated PASS -pattern = ("^cts-tf.*\s*[\d-]+\s+[\d:]+\s+I\/\S+\:\s+(?P<test_case_id>\S+#\S+)" - "\s+(?P<result>\S+)\s*$") -parser = AndroidTestParser(pattern=pattern, - fixupdict={'PASS': 'pass', 'FAIL': 'fail'}) - -attachments = [ - Attachment(pathname="/data/local/tmp/logcat.log", - mime_type="text/plain"), - Attachment(pathname="/data/local/tmp/kmsg.log", - mime_type="text/plain"), - Attachment(pathname="/data/local/tmp/cts-results.zip", - mime_type="application/zip"), - Attachment(pathname="/data/local/tmp/device_logcat.zip", - mime_type="application/zip"), - Attachment(pathname="/data/local/tmp/host_log.zip", - mime_type="application/zip") - ] -testobj = AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser, - attachments=attachments) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/cts_list_result_wrapper.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/cts_list_result_wrapper.sh deleted file mode 100755 index b6ef869..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/cts_list_result_wrapper.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -# Copyright (C) 2012 Linaro Limited - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -#http://source.android.com/compatibility/downloads.html - -echo "./android-cts/tools/cts-tradefed l r" -./android-cts/tools/cts-tradefed l r |tee cts_list_results.log - -exit 0
\ No newline at end of file diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/cts_prepare.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/cts_prepare.sh deleted file mode 100755 index 6b677a6..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/cts_prepare.sh +++ /dev/null @@ -1,131 +0,0 @@ -#!/bin/bash -# Copyright (C) 2012 Linaro Limited - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -#http://source.android.com/compatibility/downloads.html -if [ -z "$cts_pkg" ]; then -cts_pkg="android-cts-linux_x86-arm-latest.zip" -fi -media_pkg="android-cts-media-latest.zip" -site_url="http://testdata.validation.linaro.org/cts/" -#site_url="http://192.168.1.127/images/cts/" -#export http_proxy=http://localhost:3128 - -cts_pkg_url="${site_url}${cts_pkg}" -media_pkg_url="${site_url}${media_pkg}" - -ADB_OPTION="" -SERIAL="" -if [ "x${1}" != "x" ]; then - ADB_OPTION="-s ${1}" - SERIAL="${1}" -fi -ADB_CMD="adb ${ADB_OPTION}" - - -function download_unzip(){ - if [ -z "$1" ] || [ -z "$2" ]; then - return - fi - url="${1}" - pkg="${2}" - - echo "wget --connect-timeout=30 -S --progress=dot -e dotbytes=2M ${url} -O ${pkg}" - wget -c -t 20 --connect-timeout=30 -S --progress=dot -e dotbytes=2M "${url}" -O ${pkg} - if [ $? -ne 0 ]; then - echo "Failed to get the package ${url}" - exit 1 - fi - echo "unzip ${pkg}" - unzip ${pkg} - if [ $? -ne 0 ]; then - echo "Faild to unzip the package " - exit 1 - fi -} - -function main(){ - rm -fr ${cts_pkg} ${media_pkg} android-cts - download_unzip "${cts_pkg_url}" ${cts_pkg} - - #1. Your phone should be running a user build (Android 4.0 and later) from source.android.com - #2. Please refer to this link on the Android developer site and set up your device accordingly. - #3. Make sure that your device has been flashed with a user build (Android 4.0and later) before you run CTS. - ####Step 1~3 is done by deployment - - #4. You need to ensure the Text To Speech files are installed on the device. - # You can check via Settings > Speech synthesis > Install voice data - # before running CTS tests. - # (Note that this assumes you have Android Market installed on the device, - # if not you will need to install the files manually via adb) - ##TODO don't know how to do this yet - - #5. Make sure the device has a SD card plugged in and the card is empty. - # Warning: CTS may modify/erase data on the SD card plugged in to the device. - #6. Do a factory data reset on the device (Settings > SD Card & phone storage >Factory data reset). - # Warning: This will erase all user data from the phone. - #7. Make sure no lock pattern is set on the device (Settings > Security > Screen Lock should be 'None'). - #8. Make sure the "USB Debugging" development option is checked (Settings >Developer options > USB debugging). - #9. Make sure Settings > Developer options > Stay Awake is checked - #10. Make sure Settings > Developer options > Allow mock locations is checked - ####Step 5~10 is done by deployment - - #11. Make sure device is connected to a functioning Wi-Fi network (Settings > WiFi) - ${ADB_CMD} shell am start -a android.intent.action.MAIN -n com.android.settings/.Settings - ${ADB_CMD} shell service call wifi 13 i32 1 - sleep 5 - - #12. Make sure the device is at the home screen at the start of CTS (Press the home button). - ${ADB_CMD} shell input keyevent 3 - sleep 3 - - #13. While a device is running tests, it must not be used for any other tasks. - #14. Do not press any keys on the device while CTS is running. - # Pressing keys or touching the screen of a test device will interfere with the running tests and may lead to test failures. - #####Steps 13~14 should be the ok because nobody will operation the test target. - - #15. Set up accessibility tests: - echo "${ADB_CMD} install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk" - ${ADB_CMD} install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk - if [ $? -ne 0 ]; then - echo "Faild to install CtsDelegatingAccessibilityService.apk" - exit 1 - fi - ## On the device, enable Settings > Accessibility > DelegatingAccessibility Service - ${ADB_CMD} push $2 /data/local/tmp/ - ${ADB_CMD} shell am start -a android.intent.action.VIEW -n com.android.settings/.Settings - ${ADB_CMD} shell uiautomator runtest ctshelper.jar -c com.linaro.ctshelper#AccessibilityHelper - - - #16. Set up device administration tests: - echo "${ADB_CMD} install -r android-cts/repository/testcases/CtsDeviceAdmin.apk" - ${ADB_CMD} install -r android-cts/repository/testcases/CtsDeviceAdmin.apk - if [ $? -ne 0 ]; then - echo "Faild to install CtsDeviceAdmin.apk" - exit 1 - fi - ## On the device, enable Settings > Security > Device Administrators >android.deviceadmin.cts.CtsDeviceAdmin* settings - ${ADB_CMD} shell am start -a android.intent.action.VIEW -n com.android.settings/.Settings - ${ADB_CMD} shell uiautomator runtest ctshelper.jar -c com.linaro.ctshelper#SecurityHelper - ${ADB_CMD} shell am start -a android.intent.action.VIEW -n com.android.launcher/com.android.launcher2.Launcher - - exit 0 -} - -main "$@" diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/cts_redirect.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/cts_redirect.sh deleted file mode 100755 index b23b3a5..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/cts_redirect.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -# Copyright (C) 2012 Linaro Limited - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -output_file=${1} && shift -eval "$@" &> ${output_file} & -echo $! -exit 0 diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/cts_run_wrapper.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/cts_run_wrapper.sh deleted file mode 100755 index 6e4e5ba..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/cts_run_wrapper.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -# Copyright (C) 2012 Linaro Limited - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -#http://source.android.com/compatibility/downloads.html - -echo ./android-cts/tools/cts-tradefed "$@" --disable-reboot -./android-cts/tools/cts-tradefed "$@" --disable-reboot > ./cts_output.log 2>&1 -exit 0 diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/cts_wrapper.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/cts_wrapper.py deleted file mode 100755 index b035c35..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/cts_wrapper.py +++ /dev/null @@ -1,353 +0,0 @@ -#!/usr/bin/python - -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -import os -import re -import sys -import pexpect -import time -import xml.dom.minidom -from zipfile import ZipFile - -from lava_android_test.adb import ADB -from lava_android_test.utils import stop_at_pattern -from lava_android_test.utils import find_files - -adb = ADB(sys.argv[1]) -curdir = os.path.realpath(os.path.dirname(__file__)) - - -def stop_at_cts_pattern(command=None, pattern=None, timeout=-1): - if not command: - return - - if not pattern: - response = [pexpect.EOF] - else: - response = [pattern, pexpect.EOF] - - result = True - proc_cts = pexpect.spawn(command, logfile=sys.stdout) - time.sleep(200) - try: - match_id = proc_cts.expect(response, timeout=timeout) - if match_id == 0: - time.sleep(5) - except pexpect.TIMEOUT: - result = False - finally: - proc_cts.sendcontrol('C') - proc_cts.sendline('') - target_dir = os.path.join(os.getcwd(), - './android-cts/repository/results/') - for zip_f in find_files(target_dir, '.zip'): - ret_code = adb.push(zip_f, '/data/local/tmp/cts-results.zip')[0] - if ret_code != 0: - print "Failed to push file %s to device(%s)" % (zip_f, - adb.get_serial()) - log_target_dir = os.path.join(os.getcwd(), - './android-cts/repository/logs/') - for zip_f in find_files(log_target_dir, '.zip'): - base_name = os.path.basename(zip_f) - if base_name.startswith('device_logcat_'): - base_name = 'device_logcat.zip' - if base_name.startswith('host_log_'): - base_name = 'host_log.zip' - - ret_code = adb.push(zip_f, '/data/local/tmp/%s' % base_name)[0] - if ret_code != 0: - print "Failed to push file %s to device(%s)" % (zip_f, - adb.get_serial()) - with ZipFile(zip_f) as log_fd: - print '=========Log file [%s] starts=========>>>>>' % ( - base_name) - f_name = base_name.replace('.zip', '.txt') - for line in log_fd.open(f_name).readlines(): - print line.rstrip() - print '<<<<<=========Log file [%s] ends=========' % base_name - return result - - -def get_not_executed(): - list_result_path = os.path.join(curdir, 'cts_list_result_wrapper.sh') - list_result_cmd = "bash %s" % list_result_path - - pattern = 'CTS unknown' - if not stop_at_pattern(command=list_result_cmd, - pattern=pattern, timeout=5): - print "Failed to list the cts result for device(%s)" % adb.get_serial() - - with open('cts_list_results.log') as fd: - #0 17237 126 0 2012.06.23_03.31.49 CTS unknown - pattern = ("\s*\d+\s+\d+\s+\d+\s+(?P<no_executed>\d+)" - "\s+.+CTS\s+unknown\s*$") - pat = re.compile(pattern) - for line in fd.readlines(): - match = pat.search(line) - if not match: - continue - return match.groupdict()['no_executed'] - return 0 - - -def prepare_cts(): - cts_prepare_path = os.path.join(curdir, 'cts_prepare.sh') - cts_helper_jar_path = os.path.join(curdir, 'ctshelper.jar') - cts_prepare_cmd = "bash %s" % cts_prepare_path - if not stop_at_pattern(command="%s %s %s" % (cts_prepare_cmd, - adb.get_serial(), cts_helper_jar_path), - timeout=18000): - print "Preapration for CTS test times out" - return False - return True - - -def run_cts_with_plan(cts_cmd=None, plan='CTS', timeout=36000): - pattern = "Time:" - plan_command = '--plan %s' % plan - if cts_cmd: - plan_command = "%s %s --disable-reboot" % (cts_cmd, plan_command) - if not stop_at_cts_pattern(command=plan_command, pattern=pattern, - timeout=timeout): - print "CTS test times out" - return False - - return True - - -def run_cts_with_package(cts_cmd=None, package=None, timeout=36000): - if not package: - return True - pattern = "Time:" - plan_command = '--package %s' % package - if cts_cmd: - plan_command = "%s %s --disable-reboot" % (cts_cmd, plan_command) - if not stop_at_cts_pattern(command=plan_command, pattern=pattern, - timeout=timeout): - print "CTS test times out" - return False - - return True - - -def run_cts_with_class(cts_cmd=None, cls=None, method=None, timeout=36000): - if not cls: - return True - pattern = "Time:" - cmd = '--class %s' % cls - if method: - cmd = '%s --method %s' % (cmd, method) - - if cts_cmd: - cmd = "%s %s --disable-reboot" % (cts_cmd, cmd) - if not stop_at_cts_pattern(command=cmd, pattern=pattern, - timeout=timeout): - print "CTS test times out" - return False - - return True - - -def run_cts_continue(cts_cmd=None): - pattern = "Time:" - continue_command = '--continue-session 0' - if cts_cmd: - continue_command = "%s %s" % (cts_cmd, continue_command) - - while True: - number_of_not_executed = get_not_executed() - if number_of_not_executed and int(number_of_not_executed) > 0: - print ('Reconnect the adb connection before continuing ' - 'the CTS on device(%s)') % adb.get_serial() - if not adb.reconnect(): - print "Faile to reconnect the adb connection of device(%s)" % ( - adb.get_serial()) - break - - print "Continue the uncompleted CTS test on device(%s)" % ( - adb.get_serial()) - - if not stop_at_cts_pattern(command=continue_command, - pattern=pattern, - timeout=36000): - print "CTS test times out" - else: - break - - -def collect_log(command=None, output_file=None): - if command and output_file: - print 'Redirect the output of command[%s] to file[%s]' % (command, - output_file) - cmd = 'bash %s %s "%s"' % (os.path.join(curdir, 'cts_redirect.sh'), - output_file, command) - stdout = adb.run_cmd_host(cmd)[1] - if stdout: - return stdout[0].strip() - - return None - - -def collect_logs(): - - kmsg = {'command': - 'adb -s %s shell cat /proc/kmsg' % (adb.get_serial()), - 'output_file': 'kmsg.log'} - - logcat = {'command': - 'adb -s %s logcat -c; adb -s %s logcat -v time' % ( - adb.get_serial(), adb.get_serial()), - 'output_file': 'logcat.log'} - - ## define all the logs need to be collected - logs = [kmsg, logcat] - for log in logs: - pid = collect_log(command=log.get('command'), - output_file=log.get('output_file')) - if pid: - log['pid'] = pid - return logs - - -def push_log(logs=[]): - for log in logs: - log_file = log.get('output_file') - base_name = os.path.basename(log_file) - if log_file: - ret_code = adb.push(log_file, '/data/local/tmp/%s' % base_name)[0] - if ret_code != 0: - print "Failed to push file %s to device(%s)" % (log_file, - adb.get_serial()) - with open(log_file) as log_fd: - print '=========Log file [%s] starts=========>>>>>' % ( - log_file) - for line in log_fd.readlines(): - print line.rstrip() - print '<<<<<=========Log file [%s] ends=========' % log_file - - -def get_all_packages(plan_file=None): - if not plan_file: - return [] - if not os.path.exists(plan_file): - print "file(%s) does not exist" % plan_file - return [] - - package_list = [] - try: - dom = xml.dom.minidom.parse(plan_file) - test_plan = dom.getElementsByTagName("TestPlan")[0] - for entry in test_plan.getElementsByTagName("Entry"): - package_list.append(entry.attributes.get('uri').value) - except Exception as e: - print "Has exception to parse the xml file" - print "Exception: %s" % e - finally: - return package_list - - -def get_value_from_paras(paras=[], option=None, default=None): - if not option: - return default - - if not option in paras: - return default - - index = paras.index(option) - if len(paras) > index + 1: - return paras[index + 1] - - return default - - -def main(): - - package_name = None - plan_name = 'CTS' - class_name = None - method_name = None - timeout = 36000 - force_abi = None - #--cts_pkg cts_package_file --package package_name --timeout 36000 - #--cts_pkg cts_package_file --plan plan_name --timeout 36000 - if len(sys.argv) > 2: - paras = sys.argv[2:] - cts_pkg = get_value_from_paras(paras=paras, option='--cts-pkg') - if cts_pkg: - os.environ["cts_pkg"] = cts_pkg - - java_home = get_value_from_paras(paras=paras, option='--java-home') - if java_home: - os.environ["PATH"] = java_home + "/bin" + os.pathsep + java_home \ - + "/jre/bin" + os.pathsep + os.environ["PATH"] - os.environ["JAVA_HOME"] = java_home - - package_name = get_value_from_paras(paras=paras, option='--package') - plan_name = get_value_from_paras(paras=paras, - option='--plan', - default='CTS') - timeout = get_value_from_paras(paras=paras, option='--timeout', - default=36000) - if timeout: - timeout = int(timeout) - - class_name = get_value_from_paras(paras=paras, option='--class') - method_name = get_value_from_paras(paras=paras, option='--method') - - force_abi = get_value_from_paras(paras=paras, option='--force-abi') - - run_wrapper_path = os.path.join('./android-cts/tools/cts-tradefed ') - run_wrapper_cmd = "%s" % run_wrapper_path - run_wrapper_cmd = '%s run cts --serial %s' % (run_wrapper_cmd, - adb.get_serial()) - - if force_abi: - run_wrapper_cmd = '%s --force-abi %s' % (run_wrapper_cmd, - force_abi) - print "run_wrapper_cmd=%s" % run_wrapper_cmd - logs = collect_logs() - if not prepare_cts(): - sys.exit(1) - - try: - if package_name: - run_cts_with_package(cts_cmd=run_wrapper_cmd, package=package_name, - timeout=timeout) - elif class_name: - run_cts_with_class(cts_cmd=run_wrapper_cmd, cls=class_name, - method=method_name, timeout=timeout) - else: - run_cts_with_plan(cts_cmd=run_wrapper_cmd, plan=plan_name, - timeout=timeout) - - finally: - for log in logs: - pid = log.get('pid') - if pid: - adb.run_cmd_host('kill -9 %s' % pid) - - push_log(logs) - - sys.exit(0) - - -if __name__ == '__main__': - main() diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/ctshelper.jar b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/ctshelper.jar Binary files differdeleted file mode 100644 index 0c253ae..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/cts/ctshelper.jar +++ /dev/null diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/gatortest.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/gatortest.py deleted file mode 100644 index a04ad6c..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/gatortest.py +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Ensures the gator daemon required by DS5 is up and running on the Android -device. - -**URL:** https://wiki.linaro.org/Platform/Android/DebugAndroidUsingDS-5 - -**Default Options:** None -""" - -import os - -import lava_android_test.testdef - -curdir = os.path.realpath(os.path.dirname(__file__)) -test_name = "gatortest" - -RUN_STEPS_HOST_POST = ['python %s/gatortest/daemoncheck.py $(SERIAL)' % curdir, - 'python %s/gatortest/modulecheck.py $(SERIAL)' % curdir] - -PATTERN = "^\s*(?P<test_case_id>\w+)\s*=\s*(?P<result>\w+)\s*$" - -parser = lava_android_test.testdef.AndroidTestParser(PATTERN) - -run = lava_android_test.testdef.AndroidTestRunner( - steps_host_post=RUN_STEPS_HOST_POST) -# dummy installer -inst = lava_android_test.testdef.AndroidTestInstaller() - -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - runner=run, - installer=inst, - parser=parser) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/gatortest/daemoncheck.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/gatortest/daemoncheck.py deleted file mode 100644 index a1fa1b9..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/gatortest/daemoncheck.py +++ /dev/null @@ -1,20 +0,0 @@ -import sys -from commands import getstatusoutput - -if len(sys.argv) == 1: - adbcmd = 'adb' -else: - adbcmd = 'adb -s %s' % (sys.argv[1]) - -cmd = '%s shell ps' % (adbcmd) -rc, output = getstatusoutput(cmd) -if rc != 0: - print 'Failed to run command %s : %s' % (cmd, output) - sys.exit(1) - -# parse output - -if output.find("gator") != -1: - print "gator_daemon_check=pass" -else: - print "gator_daemon_check=fail" diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/gatortest/modulecheck.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/gatortest/modulecheck.py deleted file mode 100644 index 23f0ba6..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/gatortest/modulecheck.py +++ /dev/null @@ -1,20 +0,0 @@ -import sys -from commands import getstatusoutput - -if len(sys.argv) == 1: - adbcmd = 'adb' -else: - adbcmd = 'adb -s %s' % (sys.argv[1]) - -cmd = '%s shell lsmod' % (adbcmd) -rc, output = getstatusoutput(cmd) -if rc != 0: - print 'Failed to run command %s : %s' % (cmd, output) - sys.exit(1) - -# parse output - -if output.find("gator") != -1: - print "gator_module_check=pass" -else: - print "gator_module_check=fail" diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/glmark2.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/glmark2.py deleted file mode 100644 index f111c90..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/glmark2.py +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright (C) 2010-2012 Linaro Limited - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Executes the glmark2 benchmark. - -**URL:** https://launchpad.net/glmark2 - -**Default Options:** None -""" - -import os -import lava_android_test.testdef -from lava_android_test.config import get_config - -test_name = 'glmark2' -config = get_config() -curdir = os.path.realpath(os.path.dirname(__file__)) -test_sh_name = 'glmark2.sh' -test_sh_path = os.path.join(curdir, test_name, test_sh_name) -RUN_STEPS_HOST_PRE = ['/bin/bash %s $(SERIAL)' % test_sh_path] - -#I/glmark2 ( 1818): [texture] texture-filter=nearest: FPS: 8 FrameTime: 125.000 ms -PATTERN = ("^\s*I/glmark2\s*\(.+\):\s+(?P<test_case_id>\[\w+\]\s+\S+)" - "\s+FPS:\s+(?P<measurement>\d+)") - -inst = lava_android_test.testdef.AndroidTestInstaller() -run = lava_android_test.testdef.AndroidTestRunner( - steps_host_pre=RUN_STEPS_HOST_PRE) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN, - appendall={'units': 'FPS'}) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/glmark2/glmark2.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/glmark2/glmark2.sh deleted file mode 100755 index 2a9b410..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/glmark2/glmark2.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# Copyright (C) 2012 Linaro Limited - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -ADB_CMD="adb" -prog_dir=`dirname $0` - -function main(){ - if [ "x${1}" != "x" ]; then - ADB_CMD="${ADB_CMD} -s ${1}" - fi - ${ADB_CMD} logcat -c - ${ADB_CMD} shell am start -W org.linaro.glmark2/.Glmark2Activity - python ${prog_dir}/glmark2_wait.py ${1} - #${ADB_CMD} logcat -d glmark2:I *:S - ${ADB_CMD} logcat -d -} - -main "$@" diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/glmark2/glmark2_wait.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/glmark2/glmark2_wait.py deleted file mode 100755 index 5c680ce..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/glmark2/glmark2_wait.py +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/python - -# Copyright (C) 2012 Linaro Limited - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -import pexpect -import sys -import time - -if len(sys.argv) == 1: - adb_cmd = "adb" -else: - adb_cmd = "adb -s %s" % (sys.argv[1]) - -logcat_cmd = '%s logcat -v time' % (adb_cmd) -pattern1 = "glmark2 Score:" -#pattern1 = "\[loop\] fragment-steps=5:fragment-uniform=true: -#vertex-steps=5: FPS:" -pattern2 = "Process org.linaro.glmark2.+has died" -pattern3 = ("No suitable EGLConfig for GLES2.0 found." - " Please check that proper GLES2.0 drivers are installed.") - -try: - proc = pexpect.spawn(logcat_cmd, logfile=sys.stdout) - match_id = proc.expect([pattern1, pattern2, pattern3, pexpect.EOF], - timeout=1000) - print "in glmark2_wait.py match_id = %s\n" % match_id - if (match_id == 0) or (match_id == 1) or (match_id == 2): - proc.sendcontrol('C') -except pexpect.TIMEOUT: - print "glmark2 Test: TIMEOUT Fail\n" - sys.exit(1) -finally: - proc.sendcontrol('C') - -time.sleep(3) -sys.exit(0) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/helloworld.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/helloworld.py deleted file mode 100644 index 40ad04e..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/helloworld.py +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Example for how to add test wrapper for lava-android-test - -**URL:** None - -**Default options:** None -""" - -import lava_android_test.config -import lava_android_test.testdef - -test_name = 'helloworld' - -INSTALL_STEPS_ADB_PRE = [] -ADB_SHELL_STEPS = ['echo helloworld: PASS'] -PATTERN = "^\s*(?P<test_case_id>[^:]+?):\s+(?P<result>(PASS|FAIL)?)\s*$" - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/__init__.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/__init__.py deleted file mode 100644 index dcb0716..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/__init__.py +++ /dev/null @@ -1,31 +0,0 @@ -# copyright (C) 2012 Linaro Limited -# -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -""" -This directory contains the tests that only need to run a host command. -Please see the example.sh for a reference. -Please note this is not a test that can be run. - -**URL:** None - -**Default options:** None -""" - -import os -curdir = os.path.dirname(os.path.realpath(__file__)) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/connect-lab-wifi.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/connect-lab-wifi.sh deleted file mode 100755 index d04233d..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/connect-lab-wifi.sh +++ /dev/null @@ -1,170 +0,0 @@ -#!/bin/bash -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -function generate_wpa_conf(){ - conf=$1 && ssid=$2 passwd=$3 - if [ -z "${conf}" ];then - return - fi - - if [ -z "${ssid}" ]; then - cat >wpa_supplicant.conf <<__EOF__ -ctrl_interface=wlan0 -update_config=1 -device_type=0-00000000-0 - -__EOF__ - - elif [ -z "${passwd}" ]; then - cat >wpa_supplicant.conf <<__EOF__ -ctrl_interface=wlan0 -update_config=1 -device_type=0-00000000-0 - -network={ - ssid="${ssid}" - key_mgmt=NONE - priority=2 -} - -__EOF__ - - else - cat >wpa_supplicant.conf <<__EOF__ -ctrl_interface=wlan0 -update_config=1 -device_type=0-00000000-0 - -network={ - ssid="${ssid}" - psk="${passwd}" - key_mgmt=WPA-PSK - priority=2 -} - -__EOF__ - - fi -} - -function enable_wifi(){ - conf=$1 && ssid=$2 && serial=$3 - if [ -z "${conf}" ]; then - return - fi - ADB_OPTION="" - if [ -n "${serial}" ]; then - ADB_OPTION="-s ${serial}" - fi - - adb ${ADB_OPTION} shell am start -a android.intent.action.MAIN -n com.android.settings/.Settings - sleep 3 - adb ${ADB_OPTION} shell service call wifi 13 i32 0 - sleep 5 - adb ${ADB_OPTION} push "${conf}" /data/misc/wifi/wpa_supplicant.conf - adb ${ADB_OPTION} shell chown wifi.wifi /data/misc/wifi/wpa_supplicant.conf - adb ${ADB_OPTION} shell chmod 660 /data/misc/wifi/wpa_supplicant.conf - adb ${ADB_OPTION} shell ls -l /data/misc/wifi/wpa_supplicant.conf - adb ${ADB_OPTION} shell service call wifi 13 i32 1 - #extend the wait time because the time to turn wifi on some devices(like - #Origen) will take a little longer - sleep 60 - for i in {1..30}; do - adb ${ADB_OPTION} shell wpa_cli list_networks|grep -E "^\s*[[:digit:]]+\s+${ssid}\s+any\s+\[CURRENT\]" - if [ $? -eq 0 ];then - break - fi - sleep 5 - done - - if [ $i -eq 30 ]; then - echo "connect-lava-wifi-${ssid}=fail" - return 1 - else - echo "connect-lava-wifi-${ssid}=pass" - return 0 - fi -} - -function parse_argv() { - # Parse command line arguments - # Sets: VERBOSE, dev - while test -n "$1"; do - case "$1" in - --serial|-s) - SERIAL="$2" - shift 2 - ;; - --passwd|-p) - PASSWD="$2" - shift 2 - ;; - *) - if [ -n "${SSID}" ]; then - show_usage - exit 1 - else - SSID="$1" - shift - fi - ;; - esac - done -} - -function show_usage(){ - # Display the usage line - echo "Usage 1, Specify the ssid and pawword via command line:" - echo " $0 [--passwd|-p passwd] [--serial|-s serial] ssid" - echo "Usage 2, Specify the ssid and pawword via configuration file:" - echo " Specify the file path via 'WIFI_DEV_CONF' environment variable," - echo " /etc/lava/devices/wifi.conf is the default value if not specified" - echo " The content of this file like this:" - echo " SSID=the ssid of wifi" - echo " PASSWD=the password of the specified wifi via SSID" -} - -function main(){ - if [ -z "${WIFI_DEV_CONF}" ]; then - wifi_dev_conf="/etc/lava/devices/wifi.conf" - else - wifi_dev_conf="${WIFI_DEV_CONF}" - fi - - echo "Will use ${wifi_dev_conf} as the configuration file for wifi if exists" - if [ -f "${wifi_dev_conf}" ]; then - . "${wifi_dev_conf}" - fi - parse_argv "$@" - - if [ -z "${SSID}" ]; then - show_usage - exit 1 - fi - - wifi_conf="wpa_supplicant.conf" - generate_wpa_conf "${wifi_conf}" "${SSID}" "${PASSWD}" - enable_wifi "${wifi_conf}" "${SSID}" "${SERIAL}" - RET=$? - rm -f "${wifi_conf}" - exit $RET -} - -main "$@" diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/example.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/example.sh deleted file mode 100755 index 50c81b7..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/example.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -function parse_argv() { - # Parse command line arguments - while test -n "$1"; do - case "$1" in - --serial|-s) - SERIAL="$2" - if [ -n "${SERIAL}" ]; then - shift 2 - else - show_usage - exit 1 - fi - ;; - --help|-h) - show_usage - exit 1 - ;; - *) - if [ -n "${OPTIONS}" ]; then - OPTIONS="${OPTIONS} $1" - else - OPTIONS="$1" - fi - shift - ;; - esac - done -} - -function show_usage(){ - # Display the usage line - echo "Usage $(basename $0) [--serial <serial>|-s <serial>] <other-option>" - echo "Usage $(basename $0) [--help|-h]" -} - -function main(){ - parse_argv "$@" - echo "hostshells-example-fail=fail" - echo "hostshells-example-pass=pass" -} - -main "$@" diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/install-overlay.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/install-overlay.sh deleted file mode 100755 index 996bcbb..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/install-overlay.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/bash -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -function parse_argv() { - # Parse command line arguments - while test -n "$1"; do - case "$1" in - --serial|-s) - SERIAL="$2" - if [ -n "${SERIAL}" ]; then - shift 2 - else - show_usage - exit 1 - fi - ;; - --url|-u) - URL="$2" - if [ -n "${URL}" ]; then - shift 2 - else - show_usage - exit 1 - fi - ;; - --help|-h) - show_usage - exit 1 - ;; - *) - if [ -n "${OPTIONS}" ]; then - OPTIONS="${OPTIONS} $1" - else - OPTIONS="$1" - fi - shift - ;; - esac - done -} - -function show_usage(){ - # Display the usage line - echo "Usage $(basename $0) [--serial <serial>|-s <serial>] <other-option>" - echo "Usage $(basename $0) [--help|-h]" -} - -function main(){ - parse_argv "$@" - # Fetch the overlay and extract it. - wget $URL overlay.tar.bz2 - tar -xvf overlay.tar.bz2 - - # Push the overlay - adb -s ${SERIAL} remount - adb -s ${SERIAL} push overlay/ / - adb -s ${SERIAL} shell sync - adb -s ${SERIAL} shell stop - adb -s ${SERIAL} shell start -} - -main "$@" diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/sdcard-mounted.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/sdcard-mounted.sh deleted file mode 100755 index 4257850..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/sdcard-mounted.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/bash -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -function parse_argv() { - # Parse command line arguments - while test -n "$1"; do - case "$1" in - --serial|-s) - SERIAL="$2" - if [ -n "${SERIAL}" ]; then - shift 2 - else - show_usage - exit 1 - fi - ;; - --help|-h) - show_usage - exit 1 - ;; - *) - shift - ;; - esac - done -} - -function show_usage(){ - # Display the usage line - echo "Usage $(basename $0) [--serial <serial>|-s <serial>]" - echo "Usage $(basename $0) [--help|-h]" -} - -function main(){ - parse_argv "$@" - ADB_OPTION='' - if [ -n "${SERIAL}" ]; then - ADB_OPTION="-s ${SERIAL}" - fi - adb ${ADB_OPTION} shell mount |grep -e '/sdcard' -e 'emulated' - if [ $? -eq 0 ]; then - echo "sdcard-mounted=pass" - else - echo "sdcard-mounted=fail" - fi -} - -main "$@" diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/workload.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/workload.sh deleted file mode 100755 index a01a4a1..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/hostshells/workload.sh +++ /dev/null @@ -1,146 +0,0 @@ -#!/bin/bash -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -function parse_argv() { - # Parse command line arguments - while test -n "$1"; do - case "$1" in - --serial|-s) - SERIAL="$2" - if [ -n "${SERIAL}" ]; then - shift 2 - else - show_usage - exit 1 - fi - ;; - --config|-c) - CONFIG="$2" - if [ -n "${CONFIG}" ]; then - shift 2 - else - show_usage - exit 1 - fi - ;; - --git|-g) - GIT_URL="$2" - if [ -n "${GIT_URL}" ]; then - shift 2 - else - show_usage - exit 1 - fi - ;; - --help|-h) - show_usage - exit 1 - ;; - *) - if [ -n "${OPTIONS}" ]; then - OPTIONS="${OPTIONS} $1" - else - OPTIONS="$1" - fi - shift - ;; - esac - done -} - -function show_usage(){ - # Display the usage line - echo "Usage $(basename $0) [--serial|-s <serial>] [--config|-c <config_file>] [--git|g <git-url>] <other-option>" - echo "Usage $(basename $0) [--help|-h]" -} - -function parse_output_result(){ - result_f=${1} - if [ ! -f "${1}" ]; then - echo "There is no result file output/results.csv" - return - fi - - file_tmp=${result_f}.tmp - sed 's/ /_/g' ${result_f} > ${file_tmp} - keys=`head -n 1 ${file_tmp}` - values=`tail -n 1 ${file_tmp}` - for ((i=1; i<21; i++)); do - key=`echo ${keys}|cut -d , -f ${i}|sed 's/\r//'` - value=`echo ${values}|cut -d , -f ${i}|sed 's/\r//'` - - echo ${value}|grep -P '^[.\d]+$' &>/dev/null - if [ $? -ne 0 ]; then - key="${key}_${value}" - value="true" - fi - echo ${key}=${value} - done - rm -f ${file_tmp} -} - -function main(){ - local_git="file:///home/bhoj/workload-automation.git" - branch="lava" - outputdir="outputdir" - result="${outputdir}/result.csv" - - parse_argv "$@" - - config_file="config.csv" - if [ -n "${CONFIG}" ]; then - config_file="${CONFIG}" - fi - - if [ -n "${GIT_URL}" ]; then - git_url="${GIT_URL}" - else - git_url="${local_git}" - fi - - git clone "${git_url}" -b ${branch} - if [ $? -ne 0 ]; then - echo "Failed to clone git repository: ${git_url}" - exit 1 - fi - ip=`echo ${SERIAL}|sed 's/:5555//'` - cd "workload-automation" - - #update the ip address and patch config.csv file - sed -i "s/192.168.1.38/${ip}/g" workload_config.py - - python workload_setup_dependencies.py - if [ $? -ne 0 ]; then - echo "Failed to run workload_setup_dependencies.py" - exit 1 - fi - - rm -fr ${outputdir} - python workload.py ${config_file} ${outputdir}/ - if [ $? -ne 0 ]; then - echo "Failed to run workload.py config.csv outputdir/" - exit 1 - fi - cat ${result} - parse_output_result ${result} -} - -main "$@" - diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/ime.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/ime.py deleted file mode 100644 index aacaef6..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/ime.py +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Performs testing of Android Input Method Manager by listing the available -input methods on the system. - -**URL:** http://android.git.linaro.org/gitweb?p=platform/frameworks/base.git;a=blob;f=cmds/ime/src/com/android/commands/ime/Ime.java - -**Default options:** None -""" - -import os -import lava_android_test.testdef -from lava_android_test.config import get_config - -test_name = 'ime' -config = get_config() -curdir = os.path.realpath(os.path.dirname(__file__)) -test_sh_name = 'ime_test.sh' -test_sh_path = os.path.join(curdir, test_name, test_sh_name) -test_sh_android_path = os.path.join(config.installdir_android, - test_name, test_sh_name) - -INSTALL_STEPS_ADB_PRE = ['push %s %s ' % (test_sh_path, - test_sh_android_path), - 'shell chmod 777 %s' % test_sh_android_path] - -ADB_SHELL_STEPS = [test_sh_android_path] -PATTERN = "^\s*(?P<test_case_id>ime)=(?P<result>\w+)\s*$" - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/ime/ime_test.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/ime/ime_test.sh deleted file mode 100755 index 6a6d7a1..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/ime/ime_test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/system/bin/sh - -test_func(){ - if [ ! -f /system/bin/ime ]; then - echo "ime=fail" - exit - fi - - /system/bin/ime list -a - echo "ime=pass" -} - -test_func diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/install_prep_4bench.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/install_prep_4bench.py deleted file mode 100644 index 2687adc..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/install_prep_4bench.py +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Remove the Linaro wallpaper before start the benchmark test - -**URL:** None - -**Default options:** None -""" -import lava_android_test.config -import lava_android_test.testdef - -test_name = 'install_prep_4bench' - -INSTALL_STEPS_ADB_PRE = [] -ADB_SHELL_STEPS = ['rm /data/system/wallpaper_info.xml', - "echo install_prep_4bench.wallpaper: PASS"] -PATTERN = "^\s*(?P<test_case_id>[^:]+?):\s+(?P<result>(PASS|FAIL)?)\s*$" - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/instruments/__init__.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/instruments/__init__.py deleted file mode 100644 index 43e06ba..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/instruments/__init__.py +++ /dev/null @@ -1,28 +0,0 @@ -# copyright (C) 2012 Linaro Limited -# -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -""" -This directory contains the tests that only need to run the "am instrument -w" -command on android. Please see the example.py for a reference. -Please note this is not a test that can be run. - -**URL:** None - -**Default options:** None -""" diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/instruments/example.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/instruments/example.py deleted file mode 100644 index b5c73d0..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/instruments/example.py +++ /dev/null @@ -1,32 +0,0 @@ -# copyright (C) 2012 Linaro Limited -# -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Example for how to add instrument tests into lava-android-test. -You can try this test with the android emulator which has this test integrated. - -**URL:** http://android.git.linaro.org/gitweb?p=platform/development.git;a=blob;f=tools/emulator/test-apps/ConnectivityTest/src/com/android/emulator/connectivity/test/ConnectivityTest.java - -**Default options:** None -""" - -cmd = ("am instrument -r -w " - "com.android.emulator.connectivity.test/" - "android.test.InstrumentationTestRunner") -RUN_ADB_SHELL_STEPS = [cmd] diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/iozone.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/iozone.py deleted file mode 100644 index ab9a0b2..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/iozone.py +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Perform the iozone test on the target device - -**URL:** http://android.git.linaro.org/gitweb?p=platform/external/iozone.git;a=summary - -**Default options:** None -""" -from lava_android_test.config import get_config -import lava_android_test.testdef -import os -import re - - -class IozoneParser(lava_android_test.testdef.AndroidTestParser): - '''Custom parser for Iozone. -b with a results file must be specified. - The results file is not parsed. However the addition of this parameter - causes an organized results report to be printed at the bottom - ''' - #used to find each report - PATTERN_REPORT = '(?P<report_name>.*?)report' - #used to determined output units - PATTERN_UNITS = 'Output is in (?P<units>\S*)' - - def real_parse(self, result_filename='stdout.log', - output_filename='stdout.log', - test_name=''): - '''Parse the results of stdout. - This requires the -b option be specified to IOZONE. - ''' - #filename = artifacts.stdout_pathname - pat_report = re.compile(self.PATTERN_REPORT) - pat_units = re.compile(self.PATTERN_UNITS) - units = '' - with open(output_filename, 'r') as fd: - lines = fd.readlines() - for i in range(0, len(lines)): - line = lines[i] - match_report = pat_report.search(line) - match_units = pat_units.search(line) - #found report. - if match_report: - ''' The results are the following format - <report name> report - reclen 1 - block_size results 1 - ''' - report_name = match_report.groupdict()['report_name' - ].replace("\"", "") - i += 1 - rclen_line = lines[i].replace("\"", "") - i += 1 - results_line = lines[i].replace("\"", "") - reclen_split = rclen_line.split() - results_split = results_line.split() - #first value is the block size - size = results_split[0] - for n in range(0, len(reclen_split)): - results = {'test_case_id': - "iozone_%sKB_%s_rclen_%s" % (report_name, - str(size), - str(reclen_split[n])), - 'result': 'pass', - 'measurement': int(results_split[n + 1]), - 'units': units} - self.results['test_results'].append(results) - elif match_units: - units = match_units.groupdict()['units'] - - -test_name = 'iozone' - -config = get_config() -curdir = os.path.realpath(os.path.dirname(__file__)) -iozone_sh_name = 'iozone.sh' -iozone_dir_path = os.path.join(curdir, 'iozone') -#copy the whole directory over -#this will alow users to place the crosscompiled izone binary -#in the folder and modify iozone.sh to remount the root fs. -iozone_dir_android_path = os.path.join(config.installdir_android, - test_name) -iozone_sh_android_path = os.path.join(iozone_dir_android_path, - iozone_sh_name) - -INSTALL_STEPS_ADB_PRE = ['push %s %s ' % (iozone_dir_path, - iozone_dir_android_path), - 'shell chmod -R 777 %s' % iozone_dir_android_path] - -ADB_SHELL_STEPS = ["%s %s" % (iozone_sh_android_path, iozone_dir_android_path)] - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = IozoneParser() -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/memtester.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/memtester.py deleted file mode 100644 index 2ddad92..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/memtester.py +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Perform the memtester test on the target device. -memtester is a utility for testing the memory subsystem in a computer to determine if it is faulty. - -**URL:** http://android.git.linaro.org/gitweb?p=platform/external/memtester.git;a=summary - -**Default options:** None -""" -import lava_android_test.testdef - -test_name = 'memtester' - -INSTALL_STEPS_ADB_PRE = [] -ADB_SHELL_STEPS = ['memtester 1M 1'] -PATTERN = "^\s*(?P<test_case_id>.*?)\s*:\s*(?P<result>\w+)\s*$" - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/methanol.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/methanol.py deleted file mode 100644 index 5785317..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/methanol.py +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -The Methanol is a page load benchmarking engine. -The benchmark engine measures the overall page layouting and rendering time of the browser. -The methanol now includs test for css/canvas/smp/svg test - -**URL:** https://github.com/szeged/methanol.git - -**Default options:** None -""" - -import os -import json - -import lava_android_test.testdef - -from lava_android_test.config import get_config - -curdir = os.path.realpath(os.path.dirname(__file__)) -config = get_config() - -result_dir = config.resultsdir_android -RUN_STEPS_HOST_PRE = ["bash %s/methanol/methanol.sh $(SERIAL) $(OPTIONS)" % curdir] - -class MethanolTestParser(lava_android_test.testdef.AndroidTestParser): - - def real_parse(self, result_filename=None, output_filename='methanol_result.json', - test_name=''): - """Parse test output to gather results - Use the pattern specified when the class was instantiated to look - through the results line-by-line and find lines that match it. - Results are then stored in self.results. If a fixupdict was supplied - it is used to convert test result strings to a standard format. - """ - with open(output_filename) as stream: - test_results_data = stream.read() - test_results_json = json.loads(test_results_data) - self.results['test_results'] = test_results_json - - -inst = lava_android_test.testdef.AndroidTestInstaller() -run = lava_android_test.testdef.AndroidTestRunner(steps_host_pre=RUN_STEPS_HOST_PRE) -parser = MethanolTestParser() -testobj = lava_android_test.testdef.AndroidTest(testname="methanol", - installer=inst, runner=run, parser=parser, - org_ouput_file='/data/local/tmp/methanol/methanol_result.json') diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/methanol/methanol.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/methanol/methanol.sh deleted file mode 100755 index 81e2598..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/methanol/methanol.sh +++ /dev/null @@ -1,327 +0,0 @@ -#!/bin/bash -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -#the default ip or domain used by the client to access the server -DEFAULT_DOMAIN_IP=`ifconfig | awk -F':' '/inet addr/&&!/127.0.0.1/{split($2,_," ");print _[1]}'` -DEFAULT_BROWSER='DEFAULT' - -######################################################## -###### NOT MODIFY SOURCE OF BELOW ##### -######################################################## -THIS_FILE="$0" -methanol_git="git://github.com/szeged/methanol.git" -chrome_apk_url="http://testdata.validation.linaro.org/chrome/Chrome-latest.apk" -server_settings_file="/etc/lava/web_server/settings.conf" -result_dir_android="/data/local/tmp/methanol" -declare -a RESULTS=(); -methanol_url="/" -report_url="/cgi/save_methanol_data.py" -report_res_dir="/tmp/methanol" -target_dir="" -server_pid="" - -ADB_OPTION="" -domain_ip="${DEFAULT_DOMAIN_IP}" -browser="${DEFAULT_BROWSER}" -test_target="" - -function parse_arg(){ - serial="" - while test -n "$1"; do - case "$1" in - --browser|-b) - if [ "x$2" = "x" ]; then - echo "Error: $1 requires an argument which should be DEFAULT or CHROME" - exit 1 - fi - browser="$2" - if [ "X${browser}" != "XDEFAULT" ] && [ "X${browser}" != "XCHROME" ]; then - echo "Error: $1 requires an argument which should be DEFAULT or CHROME" - exit 1 - fi - shift 2 - ;; - --domain|-d) - if [ "x$2" = "x" ]; then - echo "Error: $1 requires an argument" - exit 1 - fi - domain_ip="$2" - shift 2 - ;; - --target|-t) - if [ "x$2" = "x" ]; then - echo "Error: $1 requires an argument" - exit 1 - fi - test_target="$2" - shift 2 - ;; - --help|-h) - show_usage - exit 0 - ;; - *) - if [ -n "${serial}" ]; then - show_usage - echo "Too many arguments, see --help for details" - exit 1 - else - serial="$1" - shift - fi - ;; - esac - done - - if [ -n "${serial}" ]; then - ADB_OPTION="-s ${serial}" - fi -} - -function show_usage(){ - echo "`basename ${THIS_FILE}` [serial_no] [-b DEFAULT|CHROME] [-d domain_ip]" -} - -function patch_sources(){ - src_root_dir=${1} - if [ -z ${src_root_dir} ]; then - return - fi - - if [ \! -d ${src_root_dir} ]; then - return - fi - - ## The following test case cannot be on android browser, so comment them out - ## Patch the engine.js - sed -i "s% + results;% + results.replace\(new RegExp('/','gm'), '_'\);%" ${src_root_dir}/engine.js - - ##Patch svg.js - sed -i s%\"svg/anim/earth.svg\",%\"svg/anim/earth.svg\"/*,% ${src_root_dir}/svg.js - sed -i s%\"svg/anim/svg.svg\"%\"svg/anim/svg.svg\"*/% ${src_root_dir}/svg.js - - ##Patch smp.js - sed -i s%\"smp/3d-terrain-demo/single/index.html\",%//\"smp/3d-terrain-demo/single/index.html\",% ${src_root_dir}/smp.js - sed -i s%\"smp/3d-terrain-demo/worker/index.html\",%//\"smp/3d-terrain-demo/worker/index.html\",% ${src_root_dir}/smp.js - sed -i s%\"smp/fire-on-water/worker/index.html\",%//\"smp/fire-on-water/worker/index.html\",% ${src_root_dir}/smp.js -} - -function deploy(){ - - if [ "${browser}" = "CHROME" ]; then - echo "wget --progress=dot -e dotbytes=1M -np -l 10 --no-check-certificate ${chrome_apk_url} -O ./Chrome-latest.apk" - wget --progress=dot -e dotbytes=1M -np -l 10 --no-check-certificate ${chrome_apk_url} -O ./Chrome-latest.apk - if [ $? -ne 0 ]; then - echo "Failed to download the chrome apk file from ${chrome_apk_url}." - cleanup - exit 1 - fi - - adb ${ADB_OPTION} uninstall com.android.chrome - - echo "adb ${ADB_OPTION} install ./Chrome-latest.apk" - adb ${ADB_OPTION} install ./Chrome-latest.apk - if [ $? -ne 0 ]; then - echo "Failed to install the Chrome browser application." - cleanup - rm -f ./Chrome-latest.apk - exit 1 - fi - rm -f ./Chrome-latest.apk - adb ${ADB_OPTION} shell am start com.android.chrome/com.google.android.apps.chrome.Main - sleep 10 - f_preferences='/data/data/com.android.chrome/shared_prefs/com.android.chrome_preferences.xml' - f_preferences_base=`basename ${f_preferences}` - owner_grp=`adb ${ADB_OPTION} shell ls -l ${f_preferences}|cut -d \ -f2` - if [ -z "${owner_grp}" ]; then - echo "Failed to get the user/group infromation of chrome preferences file." - cleanup - rm -f ./Chrome-latest.apk - exit 1 - fi - adb ${ADB_OPTION} pull ${f_preferences} ./${f_preferences_base} - sed -i '/<map>/ a\<boolean name="first_run_flow" value="true" />' ./${f_preferences_base} - adb ${ADB_OPTION} push ./${f_preferences_base} ${f_preferences} - adb ${ADB_OPTION} shell chown ${owner_grp}:${owner_grp} ${f_preferences} - chrome_pid=`adb ${ADB_OPTION} shell ps |grep -P 'chrome\s*$'|tr -s ' '|cut -d \ -f2` - if [ -n "${chrome_pid}" ]; then - adb ${ADB_OPTION} shell kill ${chrome_pid} - fi - rm -f ./${f_preferences_base} - fi - - cur_path=`pwd` - target_dir=`mktemp -u --tmpdir=${cur_path} methanol-XXX` - git clone "${methanol_git}" "${target_dir}" - if [ $? -ne 0 ];then - echo "Failed to clone the methanol source from ${methanol_git}" - cleanup - exit 1 - fi - - #patch just because some test can not be run on android - patch_sources "${target_dir}" - - url_file=`mktemp -u --tmpdir=${cur_path} url-XXX` - nohup python `dirname $0`/start_server.py "${domain_ip}" "${target_dir}" "${url_file}" &>server.log & - server_pid=$! - sleep 5 - domain_protocol=`cat ${url_file}` - if [ -z "${domain_protocol}" ]; then - echo "Cannot get the url of the temporary created server." - echo "Failed to deploy the temporary server" - cleanup - exit 1 - fi -} - -function check_url(){ - if [ -n "${report_url}" ]; then - wget -q "${domain_protocol}/${report_url}" -O /dev/null - if [ $? -ne 0 ]; then - echo "The report url(${domain_protocol}/${report_url}) cannot be accessed" - echo "Please put the save_methanol_data.py to the cgi-bin directory" - echo "of your web server, and make sure it is accessible." - cleanup - exit 1 - fi - fi - - if [ -n "${methanol_url}" ]; then - wget -q "${domain_protocol}/${methanol_url}" -O /dev/null - if [ $? -ne 0 ]; then - echo "The url(${domain_protocol}/${methanol_url}) cannot be accessed" - echo "Please clone the methanol directory to local via following command" - echo " git clone ${methanol_git}" - echo "and copy the entire directory to some place of your web server" - echo "and make sure it is accessible." - cleanup - exit 1 - fi - else - echo "Please speecify the methanol url that will be used for test." - cleanup - exit 1 - fi -} - -function wait_result(){ - if [ -n "$1" ]; then - file_path="$1" - else - return 0 - fi - - for (( i=1; ; i++ )); do - sleep 300 - if [ -f "${file_path}" ]; then - return 0 - fi - done - return 1 -} - -function test_methanol(){ - if [ -n "$1" ]; then - test_type="-${1}" - else - test_type="" - fi - - result_file=`mktemp -u --tmpdir=${report_res_dir} fire${test_type}-XXX.json` - res_basename=`basename ${result_file}` - test_url="${domain_protocol}/${methanol_url}/fire${test_type}.html" - if [ -n "${report_url}" ]; then - test_url="${test_url}?reportToUrl=${report_url}%3Fsave2file=${res_basename}" - fi - - component_default="com.android.browser/com.android.browser.BrowserActivity" - component_chrome=" com.android.chrome/com.google.android.apps.chrome.Main" - if [ "${browser}" = "CHROME" ]; then - component=${component_chrome} - else - component=${component_default} - fi - echo "adb ${ADB_OPTION} shell am start -a android.intent.action.VIEW -d ${test_url} -n ${component}" - adb ${ADB_OPTION} shell "am start -a android.intent.action.VIEW -d ${test_url} -n ${component}" - wait_result "${result_file}" - if [ $? -eq 0 ]; then - cur_path=`pwd` - cp -uvf ${result_file} ${cur_path}/${res_basename} - echo "result_file=${cur_path}/${res_basename}" - RESULTS[${#RESULTS[@]}]="${cur_path}/${res_basename}" - - rm -f ${result_file} - else - echo "Failed to get the test result of fire${test_type}.html" - #cleanup - #exit 1 - fi -} - -function cleanup(){ - echo "DO CLEAN UP" - rm -fr methanol_result.json "${RESULTS[@]}" - if [ -n "${server_pid}" ]; then - kill -9 ${server_pid} - fi - if [ -n "${target_dir}" ]; then - rm -fr "${target_dir}" - fi - if [ "${browser}" = "CHROME" ]; then - adb ${ADB_OPTION} uninstall com.android.chrome - fi -} - -function main(){ - parse_arg "$@" - - ## delete the test result for last time - adb ${ADB_OPTION} shell rm "${result_dir_android}/methanol_result.json" - - trap cleanup EXIT - - deploy - - check_url - - page_suffix='${test_target}' - if [ -n "${page_suffix}" ]; then - page_suffix="-${test_target}" - fi - echo `date`: starts to test fire${page_suffix}.html - test_methanol "${test_target}" - echo `date`: all tests completed - - echo "Merge results of file: ${RESULTS[@]}" - `dirname $0`/methanol_merge_results.py methanol_result.json "${RESULTS[@]}" - if [ $? -eq 0 ]; then - adb ${ADB_OPTION} shell mkdir ${result_dir_android} - adb ${ADB_OPTION} push methanol_result.json "${result_dir_android}/methanol_result.json" - for f in "${RESULTS[@]}"; do - adb ${ADB_OPTION} push "${f}" "${result_dir_android}" - done - echo "The result is also push to android: ${result_dir_android}/${res_basename}" - else - echo "Failed to merge the results" - fi -} -main "$@" diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/methanol/methanol_merge_results.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/methanol/methanol_merge_results.py deleted file mode 100755 index a57c602..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/methanol/methanol_merge_results.py +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/python -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -import os -import re -import string -import sys - -import simplejson as json - -if len(sys.argv) < 3: - basename = os.path.basename(sys.argv[0]) - print 'Please specified the merge target file and source files like:' - print '\t %s target-result-file source-file1 source-file2 ...' - sys.exit(1) - -target_file = sys.argv[1] -test_results = [] -for f in sys.argv[2:]: - if not os.path.exists(f): - print "The file(%s) does not exist" % f - continue - - with open(f) as stream: - f_basename = os.path.basename(f) - last_hyphen_index = string.rfind(f_basename, '-') - if last_hyphen_index != -1: - file_id = f_basename[:last_hyphen_index] - else: - file_id = '' - - jobdata = stream.read() - results_data = json.loads(jobdata) - for res in results_data: - test_case_id = res.get('test_case_id') - average = res.get('average') - avg_dev = res.get('average_deviate') - units = res.get('units') - if file_id and test_case_id == 'summary': - test_case_id = '%s-summary' % file_id - test_case_id = test_case_id.replace('/', '_') - badchars = "[^a-zA-Z0-9\._-]" - test_case_id = re.sub(badchars, "", test_case_id.replace(" ", "_")) - if not units: - units = 'ms' - test_results.append({'test_case_id': '%s_avg' % test_case_id, - 'result': 'pass', - 'measurement': average, - 'units': units}) - if avg_dev: - test_results.append({ - 'test_case_id': '%s_avg_dev' % test_case_id, - 'result': 'pass', - 'measurement': avg_dev, - 'units': '%'}) - - -with open(target_file, 'w') as fd: - indent = ' ' * 2 - separators = (', ', ': ') - json.dump(test_results, fd, - use_decimal=True, - indent=indent, - separators=separators, - sort_keys=False) - -print "The result has been merged in file: %s" % target_file -sys.exit(0) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/methanol/start_server.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/methanol/start_server.py deleted file mode 100755 index 6ca96b5..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/methanol/start_server.py +++ /dev/null @@ -1,62 +0,0 @@ -#/usr/bin/python -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -import os -import sys -import CGIHTTPServer -import BaseHTTPServer - -### check parameter -if len(sys.argv) < 3: - print 'Please spsecify the ip and directory like this:' - print ' %s domain-or-ip directory-path url-file' % ( - os.path.basename(__file__)) - sys.exit(1) - -domain = sys.argv[1] -directory = sys.argv[2] -if len(sys.argv) == 4: - url_file = sys.argv[3] -else: - url_file = '' - -## change to that directory -old_dir = os.getcwd() -os.chdir(directory) - -## set the server configuration before start -cgi_handler = CGIHTTPServer.CGIHTTPRequestHandler -cgi_handler.cgi_directories.append('/cgi') -httpd = BaseHTTPServer.HTTPServer((domain, 0), cgi_handler) -url = '%s://%s:%s/' % ('http', httpd.socket.getsockname()[0], - httpd.socket.getsockname()[1]) - -## out put the url information to console and file for other script reference -print "serving at url=", url -if url_file: - with open(url_file, 'w') as stream: - stream.write(url) - print 'The information of url also have been wirtten into file(%s)' % ( - url_file) - -try: - httpd.serve_forever() -finally: - os.chdir(old_dir) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/mmtest.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/mmtest.py deleted file mode 100644 index 985a650..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/mmtest.py +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright (C) 2011-2012 Linaro Limited -# -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Performs a test of multimedia functionality in Android by playing a variety -of different multimedia formats on Android. - -**URL:** http://android.git.linaro.org/gitweb?p=platform/frameworks/base.git;a=tree;f=media/tests/MediaFrameworkTest - -**Default options:** None -""" - -import os -import lava_android_test.testdef -from lava_android_test.utils import get_local_name -from lava_android_test.config import get_config - -test_name = 'mmtest' -config = get_config() - -site = 'http://samplemedia.linaro.org/' -local_name = get_local_name(site) -RUN_STEPS_HOST_PRE = [ - 'wget --progress=dot -e dotbytes=1M -r -np -l 10 -R csv,txt,css,html,gif,pdf %s -P %s' % (site, - local_name), - r'find %s -type f -name "index*" -exec rm -f \{\} \;' % local_name, - r'find %s -type f -name "README" -exec rm -f \{\} \;' % local_name] - -test_files_target_path = os.path.join(config.installdir_android, - test_name, local_name) -RUN_STEPS_ADB_PRE = ['push %s %s' % (local_name, test_files_target_path)] -RUN_ADB_SHELL_STEPS = ['am instrument -r -e targetDir %s \ - -w com.android.mediaframeworktest/.MediaFrameworkTestRunner' - % test_files_target_path, - 'rm -r %s' % (test_files_target_path)] - -inst = lava_android_test.testdef.AndroidTestInstaller() -run = lava_android_test.testdef.AndroidTestRunner( - steps_host_pre=RUN_STEPS_HOST_PRE, - steps_adb_pre=RUN_STEPS_ADB_PRE, - adbshell_steps=RUN_ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidInstrumentTestParser() -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey.py deleted file mode 100644 index 944d8ae..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey.py +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright (c) 2011 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -""" -Performs a test of monkey functionality in Android with the monkey command - -**URL:** http://android.git.linaro.org/gitweb?p=platform/development.git;a=blob;f=cmds/monkey/monkey - -**Default options:** None -""" -import os -import lava_android_test.testdef -from lava_android_test.config import get_config - -test_name = 'monkey' -config = get_config() -curdir = os.path.realpath(os.path.dirname(__file__)) -monkey_sh_name = 'monkey.sh' -monkey_sh_path = os.path.join(curdir, 'monkey', monkey_sh_name) -monkey_sh_android_path = os.path.join(config.installdir_android, - test_name, monkey_sh_name) - -INSTALL_STEPS_ADB_PRE = ['push %s %s ' % (monkey_sh_path, - monkey_sh_android_path), - 'shell chmod 777 %s' % monkey_sh_android_path] - -ADB_SHELL_STEPS = [monkey_sh_android_path] -#PATTERN = "^(?P<test_case_id>\w+):\W+(?P<measurement>\d+\.\d+)" -PATTERN = "## Network stats: elapsed time=(?P<measurement>\d+)ms" -FAILURE_PATTERNS = [] -#FAILURE_PATTERNS = ['\*\* Monkey aborted due to error.', -# '\*\* System appears to have crashed'] - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN, - appendall={'units': 'ms'}, failure_patterns=FAILURE_PATTERNS) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, runner=run, parser=parser) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey/monkey.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey/monkey.sh deleted file mode 100755 index c774680..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey/monkey.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/system/bin/sh -#monkey_cmd="monkey -s 1 --pct-touch 10 --pct-motion 20 --pct-nav 20 --pct-majornav 30 --pct-appswitch 20 --throttle 500 2147483647" -monkey_cmd="monkey -s 1 --pct-touch 10 --pct-motion 20 --pct-nav 20 --pct-majornav 30 --pct-appswitch 20 --throttle 500 500" -echo execute command=${monkey_cmd} -${monkey_cmd} -echo MONKEY_RET_CODE=$? diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey_long_run.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey_long_run.py deleted file mode 100644 index d3d448d..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey_long_run.py +++ /dev/null @@ -1,78 +0,0 @@ -# Copyright (c) 2011 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -""" -Performs a test of monkey functionality in Android with some -black list packages provided. - -**URL:** http://android.git.linaro.org/gitweb?p=platform/development.git;a=blob;f=cmds/monkey/monkey - -**Default options:** "generic_target" -""" -import os -import lava_android_test.testdef -from lava_android_test.config import get_config - -test_name = 'monkey_long_run' -config = get_config() -curdir = os.path.realpath(os.path.dirname(__file__)) -monkey_sh_name = 'monkey_long_run.sh' -monkey_sh_path = os.path.join(curdir, test_name, monkey_sh_name) -monkey_sh_android_path = os.path.join(config.installdir_android, - test_name, monkey_sh_name) -monkey_blacklist_name = 'package_black_list' -monkey_blacklist_path = os.path.join(curdir, test_name, monkey_blacklist_name) -monkey_blacklist_android_path = os.path.join(config.installdir_android, - test_name, monkey_blacklist_name) -juice_monkey_blacklist_name = 'juice_package_black_list' -juice_monkey_blacklist_path = os.path.join(curdir, test_name, - juice_monkey_blacklist_name) -juice_monkey_blacklist_android_path = os.path.join(config.installdir_android, - test_name, - juice_monkey_blacklist_name) - -DEFAULT_OPTIONS = 'generic_target' -INSTALL_STEPS_ADB_PRE = ['push %s %s ' % (monkey_sh_path, - monkey_sh_android_path), - 'push %s %s ' % (monkey_blacklist_path, - monkey_blacklist_android_path), - 'push %s %s ' % (juice_monkey_blacklist_path, - juice_monkey_blacklist_android_path), - 'shell chmod 777 %s' % monkey_sh_android_path] - -ADB_SHELL_STEPS = ['%s $(OPTIONS) %s %s' % (monkey_sh_android_path, - juice_monkey_blacklist_android_path, - monkey_blacklist_android_path)] -#PATTERN = "^(?P<test_case_id>\w+):\W+(?P<measurement>\d+\.\d+)" -PATTERN = "## Network stats: elapsed time=(?P<measurement>\d+)ms" -FAILURE_PATTERNS = ['\*\* Monkey aborted due to error.', - '\*\* System appears to have crashed'] - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN, - appendall={'units': 'ms'}, failure_patterns=FAILURE_PATTERNS) -testobj = lava_android_test.testdef.AndroidTest( - testname=test_name, - installer=inst, - runner=run, - parser=parser, - default_options=DEFAULT_OPTIONS) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey_long_run/juice_package_black_list b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey_long_run/juice_package_black_list deleted file mode 100644 index 8899c05..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey_long_run/juice_package_black_list +++ /dev/null @@ -1,7 +0,0 @@ -com.android.browser -com.android.development -com.android.quicksearchbox -com.android.speechrecorder -com.android.connectivitymanagertest -org.linaro.glmark2 -com.android.gallery3d diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey_long_run/monkey_long_run.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey_long_run/monkey_long_run.sh deleted file mode 100755 index afdc249..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey_long_run/monkey_long_run.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/system/bin/sh -#monkey_cmd="monkey -s 1 --pct-touch 10 --pct-motion 20 --pct-nav 20 --pct-majornav 30 --pct-appswitch 20 --throttle 500 2147483647" -if [ $1 == 'juice' ]; then -monkey_cmd="monkey -s 1 --pct-touch 10 --pct-motion 20 --pct-nav 20 --pct-majornav 30 --pct-appswitch 20 --throttle 500 --pkg-blacklist-file $2 30000" -elif [ $1 == 'juno' ]; then -monkey_cmd="monkey -s 1 --pct-touch 10 --pct-motion 20 --pct-nav 20 --pct-majornav 30 --pct-appswitch 20 --throttle 500 --pkg-blacklist-file /data/juno_monkey_blacklist 30000" -else -monkey_cmd="monkey -s 1 --pct-touch 10 --pct-motion 20 --pct-nav 20 --pct-majornav 30 --pct-appswitch 20 --throttle 500 --pkg-blacklist-file $3 25000" -fi - -echo execute command=${monkey_cmd} -${monkey_cmd} -echo MONKEY_RET_CODE=$? diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey_long_run/package_black_list b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey_long_run/package_black_list deleted file mode 100644 index 0fc6125..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/monkey_long_run/package_black_list +++ /dev/null @@ -1,2 +0,0 @@ -com.android.camera -com.android.connectivitymanagertest diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/pm_qa.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/pm_qa.py deleted file mode 100644 index bf2cff8..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/pm_qa.py +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Linaro PM-QA tests for platforms - -**URL:** https://git.linaro.org/gitweb?p=tools/pm-qa.git;a=summary - -**Default options:** /data/benchmark/pm-qa -""" - -import os -import lava_android_test.testdef -from lava_android_test.config import get_config - -DEFAULT_OPTIONS = '/data/benchmark/pm-qa' -test_name = 'pm_qa' -config = get_config() -curdir = os.path.realpath(os.path.dirname(__file__)) -test_sh_name = 'pm-qa.sh' -test_sh_path = os.path.join(curdir, test_name, test_sh_name) -test_sh_android_path = os.path.join(config.installdir_android, - test_name, test_sh_name) - -INSTALL_STEPS_ADB_PRE = ['push %s %s ' % (test_sh_path, - test_sh_android_path), - 'shell chmod 777 %s' % test_sh_android_path] - -ADB_SHELL_STEPS = ["%s $(OPTIONS)" % test_sh_android_path] -PATTERN = "^\s*(?P<test_case_id>\w+)=(?P<result>\w+)\s*$" - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser, - default_options=DEFAULT_OPTIONS) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/pm_qa/pm-qa.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/pm_qa/pm-qa.sh deleted file mode 100755 index a570d8e..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/pm_qa/pm-qa.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/system/bin/sh - -scripts_dir=$1 && shift -if [ -z "${scripts_dir}" ];then - scripts_dir="/data/benchmark/pm-qa" -fi -test_func(){ - if [ ! -d "${scripts_dir}" ]; then - echo "pm_qa=fail" - exit - fi - - mkdir /data/bin/ - cd /data/bin - - busybox ln -s -f /system/bin/busybox awk - busybox ln -s -f /system/bin/busybox basename - busybox ln -s -f /system/bin/busybox chmod - busybox ln -s -f /system/bin/busybox chown - busybox ln -s -f /system/bin/busybox cp - busybox ln -s -f /system/bin/busybox diff - busybox ln -s -f /system/bin/busybox find - busybox ln -s -f /system/bin/busybox grep - busybox ln -s -f /system/bin/busybox rm - busybox ln -s -f /system/bin/busybox seq - busybox ln -s -f /system/bin/busybox taskset - busybox ln -s -f /system/bin/busybox tee - busybox ln -s -f /system/bin/busybox printf - busybox ln -s -f /system/bin/busybox wc - - busybox ln -s -f /system/bin/fake_command command - busybox ln -s -f /system/bin/fake_sudo sudo - busybox ln -s -f /system/bin/fake_udevadm udevadm - - export PATH=/data/bin:$PATH - - cd "${scripts_dir}" - - pwd_dir=$PWD - echo $pwd - tests_dirs="cpuidle cpufreq cpuhotplug sched_mc suspend thermal utils" - - for dir in $tests_dirs; do - subDir=${pwd_dir}/$dir - if [ -d $subDir ]; then - cd $subDir - else - continue - fi - - echo `pwd` - for file in `find . -name "*.sh"`; do - path=$file - echo $path - /system/bin/sh $path - done - cd .. - done - - echo "pm_qa=pass" -} - -test_func diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/sched_tests.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/sched_tests.py deleted file mode 100644 index df91439..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/sched_tests.py +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Drives scheduler test scripts that are pre-intalled on Linaro Android -builds of big.LITTLE - -**URL:** https://linaro-private.git.linaro.org/gitweb?p=bL_tests/sched_tests.git - -**Default options:** None -""" - -import lava_android_test.testdef - -test_name = 'sched_tests' - -DEFAULT_OPTIONS='output all' - -INSTALL_STEPS_ADB_PRE = [] -ADB_SHELL_STEPS = ['run_sched_test $(OPTIONS)'] -PATTERN = "(?P<test_case_id>.*-*)\s+:\s+(?P<result>(SUCCESS|FAILED))" - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser, - default_options=DEFAULT_OPTIONS) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/shells/__init__.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/shells/__init__.py deleted file mode 100644 index 7c13426..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/shells/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -# copyright (C) 2012 Linaro Limited -# -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -""" -This directory contains the tests that only need to run the android shell -scripts that stored under this directory. -Please see the example.sh for a reference. -Please note this is not a test that can be run. - -**URL:** None - -**Default options:** None -""" - - -import os -curdir = os.path.dirname(os.path.realpath(__file__)) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/shells/binder.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/shells/binder.sh deleted file mode 100755 index d3fb43d..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/shells/binder.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/system/bin/sh - -chmod 777 /data/nativebenchmark/binderAddInts -if [ -z "$1" ]; then - /data/nativebenchmark/binderAddInts -n 10 -else - /data/nativebenchmark/binderAddInts -n $1 -fi -if [ $? -eq 0 ]; then - echo "binder=pass"; -else - echo "binder=fail"; -fi diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/shells/custom.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/shells/custom.sh deleted file mode 100755 index 4b78632..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/shells/custom.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/system/bin/sh - -echo "The custom shell will be run is:" -echo " $@" -echo "Shell starts:" -$@ -echo "Shell ends:" -RET=$? -echo "The exit status is: $RET" -if [ $? -ne 0 ]; then - echo "custom=fail" -else - echo "custom=pass" -fi diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/shells/dalvik-vm-unit-tests.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/shells/dalvik-vm-unit-tests.sh deleted file mode 100755 index 65ca818..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/shells/dalvik-vm-unit-tests.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/system/bin/sh -# -# Dalvik-VM unit tests. -# - -chmod 777 /data/nativetest/dalvik-vm-unit-tests/dalvik-vm-unit-tests -/data/nativetest/dalvik-vm-unit-tests/dalvik-vm-unit-tests -if [ $? -eq 0 ]; then - echo "dalvik-vm-unit-tests=pass" -else - echo "dalvik-vm-unit-tests=fail" -fi diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/shells/example.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/shells/example.sh deleted file mode 100755 index 7e7e858..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/shells/example.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/system/bin/sh - -echo "test_case_fail=fail" -echo "test_case_pass=pass"
\ No newline at end of file diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/skia.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/skia.py deleted file mode 100644 index 8edbaee..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/skia.py +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Runs the skia benchmark to test 2D graphics performance. - -**URL:** https://sites.google.com/site/skiadocs/ - -**Default options:** None -""" - -import re -import lava_android_test.testdef - -test_name = 'skia' - -DEFAULT_OPTIONS = '1000' - -INSTALL_STEPS_ADB_PRE = [] -# Skia can do many more benchmarks, but it becomes almost too much data -# to make a nice chart for. The -match limits the ones we run -ADB_SHELL_STEPS = ['logcat -c', - 'skia_bench -repeat $(OPTIONS) -timers w -config 565 -match bitmap', - 'skia_bench -repeat $(OPTIONS) -timers w -config 565 -match rects', - 'skia_bench -repeat $(OPTIONS) -timers w -config 565 -match repeat', - 'logcat -d -s "skia:*"'] - - -class SkiaTestParser(lava_android_test.testdef.AndroidTestParser): - - def parse(self, result_filename=None, output_filename=None, - test_name=test_name): - pat_test = re.compile(r'running bench \[.*?\]\W+(?P<test>\w+)\W+$') - pat_type = re.compile( - r'\d+\):\W+(?P<type>\w+):\W+msecs =\W+(?P<time>\d+.\d+)') - - test = None - with open(output_filename, 'r') as stream: - for lineno, line in enumerate(stream, 1): - match = pat_test.search(line) - if match: - test = match.group('test') - else: - match = pat_type.search(line) - if match: - data = {} - data['test_case_id'] = "%s_%s" % (test, - match.group('type')) - data['measurement'] = match.group('time') - data['result'] = 'pass' - data['units'] = 'ms' - data['log_filename'] = result_filename - data['log_lineno'] = lineno - self.results['test_results'].append(data) - - if self.fixupdict: - self.fixresults(self.fixupdict) - if self.appendall: - self.appendtoall(self.appendall) - self.fixmeasurements() - self.fixids() - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = SkiaTestParser() -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser, - default_options=DEFAULT_OPTIONS) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/sleep.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/sleep.py deleted file mode 100644 index faf39ad..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/sleep.py +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Action for sleeping some time between test actions - -**URL:** None - -**Default options:** None -""" -import lava_android_test.config -import lava_android_test.testdef - -test_name = 'sleep' - -DEFAULT_OPTIONS = '10' - -INSTALL_STEPS_ADB_PRE = [] -ADB_SHELL_STEPS = ['sleep $(OPTIONS); echo sleep_$(OPTIONS): PASS'] -PATTERN = "^\s*(?P<test_case_id>[^:]+?):\s+(?P<result>(PASS|FAIL)?)\s*$" - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser, - default_options=DEFAULT_OPTIONS) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/task_placement.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/task_placement.py deleted file mode 100644 index 04fe252..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/task_placement.py +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Drives task placement scripts that are pre-intalled on Linaro Android -builds of big.LITTLE - -**URL:** https://linaro-private.git.linaro.org/gitweb?p=bL_tests/task-placement-tests.git - -**Default options:** None -""" - -import lava_android_test.testdef - -test_name = 'task_placement' - -DEFAULT_OPTIONS='' - -INSTALL_STEPS_ADB_PRE = [] -ADB_SHELL_STEPS = ['run_all_task_placement_tests.sh $(OPTIONS)'] -PATTERN = "(?P<test_case_id>.*-*)\s+:\s+(?P<result>(PASS|FAIL))" - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser, - default_options=DEFAULT_OPTIONS) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/tjbench.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/tjbench.py deleted file mode 100644 index f86f3d6..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/tjbench.py +++ /dev/null @@ -1,140 +0,0 @@ -# Copyright (c) 2011-2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Tests the performance of libjpegturbo - -**URL:** http://sourceforge.net/projects/libjpeg-turbo/ - -**Default options:** None -""" - -import os -import re -import lava_android_test.testdef -from lava_android_test.config import get_config - -test_name = 'tjbench' -config = get_config() -curdir = os.path.realpath(os.path.dirname(__file__)) -ppm_file_name = 'nightshot_iso_100.ppm' -ppm_url = ("http://testdata.validation.linaro.org/tjbench/" - "nightshot_iso_100.ppm") -ppm_temp_path = os.path.join(config.tempdir_host, ppm_file_name) -ppm_android_path = os.path.join(config.tempdir_android, test_name, - ppm_file_name) -ppm_tmpfs_path = os.path.join('/data/local/tmp/mytmpfs', ppm_file_name) -INSTALL_STEPS_HOST_PRE = ['wget --no-check-certificate -q "%s" -O ./%s' % ( - ppm_url, ppm_file_name)] -INSTALL_STEPS_ADB_PRE = ['push %s %s' % (ppm_temp_path, ppm_android_path)] - -RUN_STEPS_ADB_SHELL = ['mkdir /data/local/tmp/mytmpfs', - 'mount -t tmpfs -o mode=777 tmpfs /data/local/tmp/mytmpfs', - 'dd if=%s of=%s' % (ppm_android_path, ppm_tmpfs_path), - 'tjbench %s 95 -rgb -quiet scale 1/2' % ppm_tmpfs_path, - 'tjbench %s 95 -rgb -quiet' % ppm_tmpfs_path, - 'umount /data/local/tmp/mytmpfs', - 'rmdir /data/local/tmp/mytmpfs'] - - -class TjbenchTestParser(lava_android_test.testdef.AndroidTestParser): - - def parse(self, result_filename='stdout.log', output_filename='stdout.log', - test_name=''): - """Parse test output to gather results - Use the pattern specified when the class was instantiated to look - through the results line-by-line and find lines that match it. - Results are then stored in self.results. If a fixupdict was supplied - it is used to convert test result strings to a standard format. - """ - try: - unit_pat = re.compile( - r'^\s*All performance values in (?P<units>\S+)\s*$') - measure_pat = re.compile( - ('^\s*(?P<format>\S+)\s+\S+\s+(?P<subsamp>\S+)\s+' - '(?P<qual>\d+)\s+\d+\s+\d+\s+(?P<comp_perf>[\d\.]+)\s+' - '(?P<comp_ratio>[\d\.]+)\s+(?P<dcomp_perf>[\d\.]+)\s*$') - ) - except Exception as strerror: - raise RuntimeError( - "AndroidTestParser - Invalid regular expression '%s' - %s" % ( - self.pattern, strerror)) - units = None - prefix_hash = {} - with open(output_filename, 'r') as stream: - for lineno, line in enumerate(stream, 1): - if units is None: - match = unit_pat.search(line) - if not match: - continue - else: - units = match.group('units') - - match = measure_pat.search(line) - if match: - tmpdata = match.groupdict() - test_case_prefix = '%s_%s_%s' % (tmpdata['format'], - tmpdata['subsamp'], - tmpdata['qual']) - if not prefix_hash.get(test_case_prefix): - prefix_hash[test_case_prefix] = True - test_case_prefix = '%s_%s' % (test_case_prefix, - 'scale_half') - common_data = {'log_filename': result_filename, - 'log_lineno': lineno, - 'result': 'pass' - } - comp_perf = {'test_case_id': '%s_%s' % (test_case_prefix, - 'comp_perf'), - 'units': units, - 'measurement': tmpdata['comp_perf'] - } - comp_perf.update(common_data) - comp_ratio = {'test_case_id': '%s_%s' % (test_case_prefix, - 'comp_ratio'), - 'units': '%', - 'measurement': tmpdata['comp_ratio'] - } - comp_ratio.update(common_data) - dcomp_perf = {'test_case_id': '%s_%s' % (test_case_prefix, - 'dcomp_perf'), - 'units': units, - 'measurement': tmpdata['dcomp_perf'] - } - dcomp_perf.update(common_data) - self.results['test_results'].extend([comp_perf, comp_ratio, - dcomp_perf]) - if self.fixupdict: - self.fixresults(self.fixupdict) - if self.appendall: - self.appendtoall(self.appendall) - self.fixmeasurements() - self.fixids(test_name=test_name) - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_host_pre=INSTALL_STEPS_HOST_PRE, - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=RUN_STEPS_ADB_SHELL) -parser = TjbenchTestParser() -testobj = lava_android_test.testdef.AndroidTest(testname="tjbench", - installer=inst, - runner=run, - parser=parser) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/usbhardware.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/usbhardware.py deleted file mode 100644 index 8a2a796..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/usbhardware.py +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Ensures USB is enabled on the device by checking /sys entries - -**URL:** None - -**Default options:** None -""" - -import os -import lava_android_test.testdef -from lava_android_test.config import get_config - -test_name = 'usbhardware' -config = get_config() -curdir = os.path.realpath(os.path.dirname(__file__)) -test_sh_name = 'usbhardware.sh' -test_sh_path = os.path.join(curdir, test_name, test_sh_name) -test_sh_android_path = os.path.join(config.installdir_android, - test_name, test_sh_name) - -INSTALL_STEPS_ADB_PRE = ['push %s %s ' % (test_sh_path, - test_sh_android_path), - 'shell chmod 777 %s' % test_sh_android_path] - -ADB_SHELL_STEPS = [test_sh_android_path] -PATTERN = "^\s*(?P<test_case_id>\w+)=(?P<result>\w+)\s*$" - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/usbhardware/usbhardware.sh b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/usbhardware/usbhardware.sh deleted file mode 100755 index d7e8f7d..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/usbhardware/usbhardware.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/system/bin/sh - -test_func(){ - if [ ! -f /sys/class/android_usb/android0/state ]; then - echo "usbhardware=fail" - exit - fi - - cat /sys/class/android_usb/android0/state - echo "usbhardware=pass" -} - -test_func diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/v8.py b/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/v8.py deleted file mode 100644 index e017f00..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/test_definitions/v8.py +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright (c) 2012 Linaro - -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. -# -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -Performs the v8 benchmark on Android and returns the metrics - -**URL:** http://v8.googlecode.com/svn/data/benchmarks/v5/run.html - -**Default options:** None -""" - - -import lava_android_test.config -import lava_android_test.testdef - -test_name = 'v8' - -INSTALL_STEPS_ADB_PRE = [] -adb_shell = ('"' - 'cd /data/benchmark/v8;' - 'if which v8shell 2>/dev/null 1>/dev/null;' - 'then v8shell run.js; ' - 'else d8 run.js; fi' - '"') -ADB_SHELL_STEPS = [adb_shell] -PATTERN = "^(?P<test_case_id>.*?):\s+(?P<measurement>[\d.]+)\s*$" - -inst = lava_android_test.testdef.AndroidTestInstaller( - steps_adb_pre=INSTALL_STEPS_ADB_PRE) -run = lava_android_test.testdef.AndroidTestRunner( - adbshell_steps=ADB_SHELL_STEPS) -parser = lava_android_test.testdef.AndroidTestParser(PATTERN) -testobj = lava_android_test.testdef.AndroidTest(testname=test_name, - installer=inst, - runner=run, - parser=parser) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/testdef.py b/build/lib.linux-x86_64-2.7/lava_android_test/testdef.py deleted file mode 100644 index 0cb97aa..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/testdef.py +++ /dev/null @@ -1,771 +0,0 @@ -# Copyright (C) 2010-2012 Linaro Limited -# -# Author: Linaro Validation Team <linaro-dev@lists.linaro.org> -# -# This file is part of LAVA Android Test. - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -import base64 -import hashlib -import logging -import os -import re -import string -import time -import tempfile -import decimal -import zipfile - -from datetime import datetime -from uuid import uuid4 - -from lava_android_test.adb import ADB -from lava_android_test.api import ITest -from lava_android_test.config import get_config -from lava_android_test.utils import write_file, geturl -from lava_android_test import hwprofile, swprofile -from linaro_dashboard_bundle.io import DocumentIO - - -class Attachment(object): - - def __init__(self, pathname=None, mime_type=None): - self.pathname = pathname - self.mime_type = mime_type - - def copy_to_result_dir(self, adb=None, resultsdir=None): - """ - Copy the file specified by the pathname to result - directory of this time test, beacuse some test will - generate the result to the same path file. - And Please Note that pathname must be the absolute - path in the device. - """ - if (not self.pathname) or (not self.pathname.startswith('/')): - return - if not resultsdir: - return - if not adb: - adb = ADB() - if not adb.exists(resultsdir): - adb.makedirs(resultsdir) - ret_code = adb.copy(self.pathname, os.path.join(resultsdir, - os.path.basename(self.pathname))) - if ret_code != 0: - raise RuntimeError( - "Failed to copy file '%s' to '%s' on device(%s)" % - (self.pathname, resultsdir, adb.get_serial())) - - def generate_bundle(self, adb=None, resultsdir=None): - data_bundle = {} - if not self.pathname: - return data_bundle - if not adb: - adb = ADB() - config = get_config() - basename = os.path.basename(self.pathname) - android_path = os.path.join(resultsdir, basename) - if adb.exists(android_path): - tmp_path = os.path.join(config.tempdir_host, basename) - adb.pull(android_path, tmp_path) - with open(tmp_path, 'rb') as stream: - data = stream.read() - if data: - data_bundle = {"pathname": basename, - "mime_type": self.mime_type, - "content": base64.standard_b64encode(data)} - os.unlink(tmp_path) - return data_bundle - - -class AndroidTest(ITest): - """Base class for defining tests. - - This can be used by test definition files to create an object that - contains the building blocks for installing tests, running them, - and parsing the results. - - testname - name of the test or test suite - version - version of the test or test suite - installer - AbrekInstaller instance to use - runner - AbrekRunner instance to use - parser - AbrekParser instance to use - """ - adb = ADB() - default_attachments = [ - Attachment(pathname="stderr.log", mime_type="text/plain"), - Attachment(pathname="stdout.log", mime_type="text/plain"), - Attachment(pathname="screencap.png", mime_type="image/png"), - Attachment(pathname="tombstones.zip", mime_type="application/zip") - ] - - def setadb(self, adb=None): - self.adb = adb - - def getadb(self): - return self.adb - - def __init__(self, testname, version="", installer=None, runner=None, - parser=None, default_options=None, - org_ouput_file='stdout.log', - attachments=[]): - self.testname = testname - self.version = version - self.installer = installer - self.runner = runner - self.parser = parser - self.default_options = default_options - self.org_ouput_file = org_ouput_file - self.origdir = os.path.abspath(os.curdir) - self.attachments = self.default_attachments - if self.org_ouput_file and (self.org_ouput_file != "stdout.log"): - self.attachments.append( - Attachment(pathname=self.org_ouput_file, - mime_type="text/plain")) - if attachments: - self.attachments.extend(attachments) - - def set_runner(self, runner=None): - self.runner = runner - - def set_parser(self, parser=None): - self.parser = parser - - def install(self, install_options=None): - """Install the test suite. - - This creates an install directory under the user's XDG_DATA_HOME - directory to mark that the test is installed. The installer's - install() method is then called from this directory to complete any - test specific install that may be needed. - """ - if not self.installer: - raise RuntimeError("no installer defined for '%s'" % - self.testname) - self.installer.setadb(self.adb) - config = get_config() - if not os.path.exists(config.tempdir_host): - os.makedirs(config.tempdir_host) - os.chdir(config.tempdir_host) - installdir = os.path.join(config.installdir_android, self.testname) - if self.adb.exists(installdir): - raise RuntimeError("%s is already installed" % self.testname) - ret_code = self.adb.makedirs(installdir) - if ret_code != 0: - raise RuntimeError( - "Failed to create directory(%s) for test(%s)" % - (installdir, self.testname)) - - if install_options is not None: - self.adb.shell('echo "%s" > %s/install_options' % - (install_options, installdir)) - try: - self.installer.install(install_options) - except Exception as e: - self.uninstall() - raise RuntimeError( - "Failed to install test(%s):%s" % (self.testname, e)) - finally: - os.chdir(self.origdir) - - def uninstall(self): - """Uninstall the test suite. - - Uninstalling just recursively removes the test specific directory - under the user's XDG_DATA_HOME directory. This will both mark - the test as removed, and clean up any files that were downloaded - or installed under that directory. Dependencies are intentionally - not removed by this. And others installed files won't be removed too. - """ - config = get_config() - path = os.path.join(config.installdir_android, self.testname) - if self.adb.exists(path): - self.adb.rmtree(path) - - def _add_install_options(self, bundle, config): - optionfile = "%s/%s/install_options" % (config.installdir_android, - self.testname) - if self.adb.exists(optionfile): - output = self.adb.run_adb_cmd('shell cat %s' % optionfile)[1] - bundle['test_runs'][0]['attributes']['install_options'] = output[0] - - def _savetestdata(self, analyzer_assigned_uuid, run_options=""): - config = get_config() - TIMEFORMAT = '%Y-%m-%dT%H:%M:%SZ' - bundle = { - 'format': config.bundle_format, - 'test_runs': [ - { - 'analyzer_assigned_uuid': analyzer_assigned_uuid, - 'analyzer_assigned_date': - self.runner.starttime.strftime(TIMEFORMAT), - 'time_check_performed': False, - 'attributes':{}, - 'test_id': self.testname, - 'test_results':[], - 'attachments':[], - 'hardware_context': hwprofile.get_hardware_context(self.adb), - 'software_context': swprofile.get_software_context(self.adb) - } - ] - } - if run_options: - bundle['test_runs'][0]['attributes']['run_options'] = run_options - self._add_install_options(bundle, config) - filename_host = os.path.join(config.tempdir_host, 'testdata.json') - write_file(DocumentIO.dumps(bundle), filename_host) - filename_target = os.path.join(self.resultsdir, 'testdata.json') - self.adb.push(filename_host, filename_target) - - def run(self, quiet=False, run_options=None): - if not self.runner: - raise RuntimeError("no test runner defined for '%s'" % - self.testname) - if not run_options: - run_options = self.default_options - - self.runner.setadb(self.adb) - config = get_config() - if not os.path.exists(config.tempdir_host): - os.mkdir(config.tempdir_host) - os.chdir(config.tempdir_host) - resultname = (self.testname + - str(time.mktime(datetime.utcnow().timetuple()))) - self.resultsdir = os.path.join(config.resultsdir_android, resultname) - self.adb.makedirs(self.resultsdir) - self.runner.run(self.resultsdir, run_options=run_options) - self._gather_tombstones(self.resultsdir) - self._copyattachments(self.resultsdir) - self._screencap(self.resultsdir) - self._savetestdata(str(uuid4()), run_options=run_options) - result_id = os.path.basename(self.resultsdir) - print("ANDROID TEST RUN COMPLETE: Result id is '%s'" % result_id) - os.chdir(self.origdir) - return result_id - - def _screencap(self, resultsdir): - target_path = '/system/bin/screenshot' - self.adb.shell('%s %s' % (target_path, os.path.join(resultsdir, - 'screencap.png'))) - - def _gather_tombstones(self, resultsdir): - """ - Extension of the generate bundle function. - Grabs the tombstones and appends them to the bundle. - """ - config = get_config() - tombstone_path = '/data/tombstones' - tombstone_zip = os.path.join(config.tempdir_host, 'tombstones.zip') - if self.adb.exists(tombstone_path): - tmp_path = os.path.join(config.tempdir_host, 'tombstones') - self.adb.pull(tombstone_path, tmp_path) - self.adb.shell("rm -R " + tombstone_path) - zipf = zipfile.ZipFile(tombstone_zip, mode='w') - for rootdir, dirs, files in os.walk(tmp_path): - for f in files: - zipf.write(os.path.join(rootdir, f), arcname=f) - zipf.close() - self.adb.push(tombstone_zip, os.path.join(resultsdir, - 'tombstones.zip')) - os.unlink(tombstone_zip) - - def _copyattachments(self, resultsdir): - for attachment in self.attachments: - attachment.copy_to_result_dir(adb=self.adb, resultsdir=resultsdir) - - def parse(self, resultname): - if not self.parser: - raise RuntimeError("no test parser defined for '%s'" % - self.testname) - output_filename = os.path.basename(self.org_ouput_file) - config = get_config() - os.chdir(config.tempdir_host) - resultsdir_android = os.path.join(config.resultsdir_android, - resultname) - result_filename_android = os.path.join(resultsdir_android, - output_filename) - result_filename_host_temp = tempfile.mkstemp(prefix=output_filename, - dir=config.tempdir_host)[1] - self.adb.pull(result_filename_android, result_filename_host_temp) - self.parser.parse(output_filename, - output_filename=result_filename_host_temp, - test_name=self.testname) - os.remove(result_filename_host_temp) - os.chdir(self.origdir) - - -class AndroidTestInstaller(object): - - adb = ADB() - - """Base class for defining an installer object. - - This class can be used as-is for simple installers, or extended for more - advanced funcionality. - - steps_host - list of steps to be executed on host - steps_android - list of steps to be executed on android - url - location from which the test suite should be downloaded - md5 - md5sum to check the integrety of the download - """ - def __init__(self, steps_host_pre=[], steps_adb_pre=[], apks=[], - steps_adb_post=[], steps_host_post=[], - url=None, md5=None, **kwargs): - self.steps_host_pre = steps_host_pre - self.steps_adb_pre = steps_adb_pre - self.apks = apks - self.steps_adb_post = steps_adb_post - self.steps_host_post = steps_host_post - self.url = url - self.md5 = md5 - - def _download(self): - """Download the file specified by the url and check the md5. - Returns the path and filename if successful, otherwise return None - """ - if not self.url: - return 0 - config = get_config() - filename = geturl(self.url, config.tempdir_host) - #If the file does not exist, then the download was not successful - if not os.path.exists(filename): - return None - if self.md5: - checkmd5 = hashlib.md5() - with open(filename, 'rb') as fd: - data = fd.read(0x10000) - while data: - checkmd5.update(data) - data = fd.read(0x10000) - if checkmd5.hexdigest() != self.md5: - raise RuntimeError("Unexpected md5sum downloading %s" % - filename) - return None - return filename - - def _installapk(self): - for apk in self.apks: - rc = self.adb.installapk(apk) - if rc: - raise RuntimeError( - "Failed to install apk '%s' failed. %d" % (apk, rc)) - - def install(self, install_options=None): - self._download() - _run_steps_host(self.steps_host_pre, self.adb.serial, install_options) - _run_steps_adb(self.steps_adb_pre, self.adb.serial, install_options) - self._installapk() - _run_steps_adb(self.steps_adb_post, self.adb.serial, install_options) - _run_steps_host(self.steps_host_post, self.adb.serial, install_options) - - def setadb(self, adb=None): - self.adb = adb - - -class AndroidTestRunner(object): - - adb = ADB() - """Base class for defining an test runner object. - - This class can be used as-is for simple execution with the expectation - that the run() method will be called from the directory where the test - was installed. Steps, if used, should handle changing directories from - there to the directory where the test was extracted if necessary. - This class can also be extended for more advanced funcionality. - - steps - list of steps to be executed in a shell - """ - def __init__(self, steps_host_pre=[], steps_adb_pre=[], - adbshell_steps=[], steps_adb_post=[], steps_host_post=[]): - self.steps_host_pre = steps_host_pre - self.steps_adb_pre = steps_adb_pre - self.adbshell_steps = adbshell_steps - self.steps_adb_post = steps_adb_post - self.steps_host_post = steps_host_post - self.testoutput = [] - - def _run_steps_adbshell(self, resultsdir, option=None): - stdoutlog = os.path.join(resultsdir, 'stdout.log') - stderrlog = os.path.join(resultsdir, 'stderr.log') - try: - for cmd in self.adbshell_steps: - if option is not None: - cmd = cmd.replace('$(OPTIONS)', option) - else: - cmd = cmd.replace('$(OPTIONS)', '') - if resultsdir is not None: - cmd = cmd.replace('$(RESULTDIR)', resultsdir) - else: - cmd = cmd.replace('$(RESULTDIR)', '') - cmd = cmd.strip() - ret_code = self.adb.run_adb_shell_for_test(cmd, - stdoutlog, - stderrlog) - if ret_code != 0: - raise Exception( - "Failed to execute command(%s):ret_code=%d" % (cmd, - ret_code)) - except: - raise - finally: - self.adb.shell('getprop', - os.path.join(resultsdir, 'propoutput.log')) - self.adb.shell('cat /proc/cpuinfo', - os.path.join(resultsdir, 'cpuinfo.log')) - self.adb.shell('cat /proc/meminfo', - os.path.join(resultsdir, 'meminfo.log')) - - def run(self, resultsdir, run_options=None): - self.starttime = datetime.utcnow() - _run_steps_host(self.steps_host_pre, self.adb.serial, - option=run_options, resultsdir=resultsdir) - _run_steps_adb(self.steps_adb_pre, self.adb.serial, - option=run_options, resultsdir=resultsdir) - self._run_steps_adbshell(resultsdir, option=run_options) - _run_steps_adb(self.steps_adb_post, self.adb.serial, - option=run_options, resultsdir=resultsdir) - _run_steps_host(self.steps_host_post, self.adb.serial, - option=run_options, resultsdir=resultsdir) - self.endtime = datetime.utcnow() - - def setadb(self, adb=None): - self.adb = adb - - -class AndroidTestParser(object): - adb = ADB() - PASS_PATS = ['PASS', 'OK', 'TRUE', 'DONE'] - FAIL_PATS = ['FAIL', 'NG', 'FALSE'] - SKIP_PATS = ['SKIP'] - - """Base class for defining a test parser - - This class can be used as-is for simple results parsers, but will - likely need to be extended slightly for many. If used as it is, - the parse() method should be called while already in the results - directory and assumes that a file for test output will exist called - testoutput.log. - - pattern - regexp pattern to identify important elements of test output - For example: If your testoutput had lines that look like: - "test01: PASS", then you could use a pattern like this: - "^(?P<testid>\w+):\W+(?P<result>\w+)" - This would result in identifying "test01" as testid and - "PASS" as result. Once parse() has been called, - self.results.test_results[] contains a list of dicts of all the - key,value pairs found for each test result - fixupdict - dict of strings to convert test results to standard strings - For example: if you want to standardize on having pass/fail results - in lower case, but your test outputs them in upper case, you could - use a fixupdict of something like: {'PASS':'pass','FAIL':'fail'} - appendall - Append a dict to the test_results entry for each result. - For example: if you would like to add units="MB/s" to each result: - appendall={'units':'MB/s'} - failure_patterns - regexp pattern to identify whether the test is failed - or success - If there is a string match one pattern in failure_patterns, - then this test will be deal as failed. - """ - def __init__(self, pattern=None, fixupdict=None, appendall={}, - failure_patterns=[]): - self.pattern = pattern - self.fixupdict = fixupdict - self.results = {'test_results': []} - self.appendall = appendall - self.failure_patterns = failure_patterns - - def _find_testid(self, test_id): - for x in self.results['test_results']: - if x['testid'] == test_id: - return self.results['test_results'].index(x) - - def parse(self, result_filename='stdout.log', - output_filename='stdout.log', test_name=''): - """Parse test output to gather results - - Use the pattern specified when the class was instantiated to look - through the results line-by-line and find lines that match it. - Results are then stored in self.results. If a fixupdict was supplied - it is used to convert test result strings to a standard format. - """ - - self.real_parse(result_filename=result_filename, - output_filename=output_filename, test_name=test_name) - - self.fixresults(self.fixupdict) - if self.appendall: - self.appendtoall(self.appendall) - self.fixmeasurements() - self.fixids(test_name=test_name) - - def real_parse(self, result_filename='stdout.log', - output_filename='stdout.log', test_name=''): - """Using the pattern to do the real parse operation - - generate the test_results elements from the result file by parsing - with the pattern specified. - """ - if not self.pattern: - return - - try: - pat = re.compile(self.pattern) - except Exception as strerror: - raise RuntimeError( - "AndroidTestParser - Invalid regular expression '%s' - %s" % ( - self.pattern, strerror)) - - failure_pats = [] - for failure_pattern in self.failure_patterns: - try: - failure_pat = re.compile(failure_pattern) - except Exception as strerror: - raise RuntimeError( - "AndroidTestParser - Invalid regular expression '%s' - %s" % ( - failure_pattern, strerror)) - failure_pats.append(failure_pat) - test_ok = True - - with open(output_filename, 'r') as stream: - for lineno, line in enumerate(stream, 1): - if test_ok == True: - for failure_pat in failure_pats: - failure_match = failure_pat.search(line) - if failure_match: - test_ok = False - - match = pat.search(line) - if not match: - continue - data = match.groupdict() - data["log_filename"] = result_filename - data["log_lineno"] = lineno - if data.get('result') is None: - data['result'] = test_ok and 'pass' or 'fail' - self.results['test_results'].append(data) - - def append(self, testid, entry): - """Appends a dict to the test_results entry for a specified testid - - This lets you add a dict to the entry for a specific testid - entry should be a dict, updates it in place - """ - index = self._find_testid(testid) - self.results['test_results'][index].update(entry) - - def appendtoall(self, entry): - """Append entry to each item in the test_results. - - entry - dict of key,value pairs to add to each item in the - test_results - """ - for t in self.results['test_results']: - t.update(entry) - - def fixresults(self, fixupdict): - """Convert results to a known, standard format - - pass it a dict of keys/values to replace - For instance: - {"TPASS":"pass", "TFAIL":"fail"} - This is really only used for qualitative tests - """ - for t in self.results['test_results']: - if "result" in t: - if not fixupdict: - if self.is_result_match(t['result'], self.PASS_PATS): - t['result'] = 'pass' - elif self.is_result_match(t['result'], self.FAIL_PATS): - t['result'] = 'fail' - elif self.is_result_match(t['result'], self.SKIP_PATS): - t['result'] = 'skip' - else: - t['result'] = 'unknown' - elif t['result'] in fixupdict: - t['result'] = fixupdict[t['result']] - else: - t['result'] = 'unknown' - - def is_result_match(self, result, patterns=[]): - cap_result = string.upper(result) - for pattern in patterns: - cap_pattern = string.upper(pattern) - pat_index = string.find(cap_result, cap_pattern) - if pat_index > -1: - return True - - return False - - def fixmeasurements(self): - """Measurements are often read as strings, but need to be - decimal.Decimal as per dashboard bundle format JSON schema. - """ - for test_case in self.results['test_results']: - if 'measurement' in test_case: - try: - test_case['measurement'] = decimal.Decimal( - test_case['measurement']) - except decimal.InvalidOperation: - logging.warning("Invalid measurement %s" % ( - test_case['measurement'])) - del test_case['measurement'] - - def fixids(self, test_name=''): - """ - Convert spaces to _ in test_case_id and remove illegal characters - """ - badchars = "[^a-zA-Z0-9\._-]" - for test_case in self.results['test_results']: - if 'test_case_id' in test_case: - test_case['test_case_id'] = test_case[ - 'test_case_id'].replace(" ", "_") - test_case['test_case_id'] = re.sub(badchars, "", - test_case['test_case_id']) - else: - test_case['test_case_id'] = test_name - - def setadb(self, adb=None): - self.adb = adb - - def set_result_patterns(self, pass_pat=[], fail_pat=[], skip_pat=[]): - if pass_pat: - self.PASS_PATS = pass_pat - if fail_pat: - self.FAIL_PATS = fail_pat - if skip_pat: - self.SKIP_PATS = skip_pat - - -class AndroidInstrumentTestParser(AndroidTestParser): - - def parse(self, result_filename='stdout.log', output_filename='stdout.log', - test_name=''): - """Parser for Instrument test that run with the -r option - """ - pat_test = re.compile( - r'^\s*INSTRUMENTATION_STATUS:\s*test=(?P<test_case_id>.+)\s*$') - pat_status_code = re.compile( - r'^\s*INSTRUMENTATION_STATUS_CODE:\s*(?P<status_code>[\d-]+)\s*$') - data = {} - with open(output_filename, 'r') as stream: - for lineno, line in enumerate(stream, 1): - match = pat_test.search(line) - if match: - data['test_case_id'] = match.group('test_case_id') - continue - - match = pat_status_code.search(line) - if match: - status_code = match.group('status_code') - if status_code == '1': - # test case started - data = {} - elif data['test_case_id']: - if status_code == '0': - data['result'] = 'pass' - else: - data['result'] = 'fail' - data["log_filename"] = result_filename - data["log_lineno"] = lineno - self.results['test_results'].append(data) - data = {} - continue - - if self.fixupdict: - self.fixresults(self.fixupdict) - if self.appendall: - self.appendtoall(self.appendall) - self.fixmeasurements() - self.fixids() - - -class AndroidSimpleTestParser(AndroidTestParser): - - def real_parse(self, result_filename='stdout.log', - output_filename='stdout.log', test_name=''): - self.res_pattern = ("^\s*(?P<test_case_id>.+?)\s*=" - "\s*(?P<result>(pass|fail|ok|ng|true|false|skip|done))\s*$") - self.measurement_pattern = ("^\s*(?P<test_case_id>.+?)\s*=" - "\s*(?P<measurement>[\.\d]+)\s*$") - self.measurement_units_pattern = ("^\s*(?P<test_case_id>.+?)\s*=" - "\s*(?P<measurement>[\.\d]+)\s+(?P<units>\S+)\s*$") - - res_pat = re.compile(self.res_pattern) - measurement_pat = re.compile(self.measurement_pattern) - measurement_units_pat = re.compile(self.measurement_units_pattern) - - with open(output_filename, 'r') as stream: - for lineno, line in enumerate(stream, 1): - match = res_pat.search(line) - if not match: - match = measurement_pat.search(line) - if not match: - match = measurement_units_pat.search(line) - if not match: - continue - data = match.groupdict() - data["log_filename"] = result_filename - data["log_lineno"] = lineno - if data.get('result') is None: - data['result'] = 'pass' - - self.results['test_results'].append(data) - - -def _run_steps_host(steps=[], serial=None, option=None, resultsdir=None): - adb = ADB(serial) - for cmd in steps: - if serial is not None: - cmd = cmd.replace('$(SERIAL)', serial) - else: - cmd = cmd.replace('$(SERIAL)', '') - if option is not None: - cmd = cmd.replace('$(OPTIONS)', option) - else: - cmd = cmd.replace('$(OPTIONS)', '') - if resultsdir is not None: - cmd = cmd.replace('$(RESULTDIR)', resultsdir) - else: - cmd = cmd.replace('$(RESULTDIR)', '') - - cmd = cmd.strip() - rc, output = adb.run_cmd_host(cmd, quiet=False) - if rc: - raise RuntimeError( - "Run step '%s' failed. %d : %s" % (cmd, rc, output)) - if resultsdir is not None: - stdoutlog = os.path.join(resultsdir, 'stdout.log') - adb.push_stream_to_device(output, stdoutlog) - - -def _run_steps_adb(steps=[], serial=None, option=None, resultsdir=None): - adb = ADB(serial) - for cmd in steps: - if option is not None: - cmd = cmd.replace('$(OPTIONS)', option) - else: - cmd = cmd.replace('$(OPTIONS)', '') - if resultsdir is not None: - cmd = cmd.replace('$(RESULTDIR)', resultsdir) - else: - cmd = cmd.replace('$(RESULTDIR)', '') - cmd = cmd.strip() - rc, output = adb.run_adb_cmd(cmd, quiet=False) - if rc: - raise RuntimeError( - "Run step '%s' failed. %d : %s" % (cmd, rc, output)) - if resultsdir is not None: - stdoutlog = os.path.join(resultsdir, 'stdout.log') - adb.push_stream_to_device(output, stdoutlog) diff --git a/build/lib.linux-x86_64-2.7/lava_android_test/utils.py b/build/lib.linux-x86_64-2.7/lava_android_test/utils.py deleted file mode 100644 index 75290d2..0000000 --- a/build/lib.linux-x86_64-2.7/lava_android_test/utils.py +++ /dev/null @@ -1,202 +0,0 @@ -# Copyright (c) 2010-2012 Linaro -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -import re -import os -import pexpect -import shutil -import subprocess -import sys -import time -import urllib2 -import urlparse - -_fake_files = None -_fake_paths = None -_fake_machine = None - - -class Tee(file): - """ A file-like object that optionally mimics tee functionality. - - By default, output will go to both stdout and the file specified. - Optionally, quiet=True can be used to mute the output to stdout. - """ - def __init__(self, *args, **kwargs): - try: - self.quiet = kwargs.pop('quiet') - except KeyError: - self.quiet = False - super(Tee, self).__init__(*args, **kwargs) - - def write(self, data): - super(Tee, self).write(data) - if self.quiet is False: - sys.stdout.write(data) - - -def geturl(url, path=""): - urlpath = urlparse.urlsplit(url).path - filename = os.path.basename(urlpath) - if path: - filename = os.path.join(path, filename) - fd = open(filename, "w") - try: - response = urllib2.urlopen(urllib2.quote(url, safe=":/")) - fd = open(filename, 'wb') - shutil.copyfileobj(response, fd, 0x10000) - fd.close() - response.close() - except: - raise RuntimeError("Could not retrieve %s" % url) - return filename - - -def write_file(data, path): - with open(path, "w") as fd: - fd.write(data) - - -def read_file(path): - global _fake_files - global _fake_paths - if _fake_files is not None: - if path in _fake_files: - return _fake_files[path] - if _fake_paths is not None: - if path in _fake_paths: - path = _fake_paths[path] - with open(path) as fd: - data = fd.read() - return data - - -def fake_file(path, data=None, newpath=None): - """ - Set up a fake file to be read with read_file() in testing - If data is specified, the string passed as data will be returned instead - if newpath is specified, the file attempted to be read will be replaced - by newfile - """ - global _fake_files - global _fake_paths - if data is not None: - if _fake_files is None: - _fake_files = {} - _fake_files[path] = data - if newpath is not None: - if _fake_paths is None: - _fake_paths = {} - _fake_paths[path] = newpath - - -def fake_machine(type): - """ - Set up a fake machine type for testing - """ - global _fake_machine - _fake_machine = type - - -def clear_fakes(): - global _fake_files - global _fake_paths - _fake_files = {} - _fake_paths = {} - - -def clear_fake_machine(): - global _fake_machine - _fake_machine = None - - -def run_and_log(cmd, fd, quiet=False): - """ - Run a command and log the output to fd - """ - proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, shell=True) - while proc.returncode == None: - proc.poll() - data = proc.stdout.readline() - fd.write(data) - if quiet is False: - sys.stdout.write(data) - return proc.returncode - - -def get_machine_type(): - """ - Return the machine type - """ - global _fake_machine - if _fake_machine is None: - return os.uname()[-1] - return _fake_machine - - -def get_local_name(url): - url = url.strip() - url = re.sub('[\/]+$', '', url) - rest = urllib2.splittype(url)[1] - host, rest = urllib2.splithost(rest) - if rest is None or rest == '': - return host - return os.path.basename(rest) - - -def check_command_exist(command): - rc = subprocess.call(["which", command], stdout=open('/dev/null', 'w')) - return rc == 0 - - -def find_files(target_dir, ext): - file_list = [] - for rootdir, dirs, files in os.walk(target_dir): - for f in files: - if f.upper().endswith(ext.upper()): - file_list.append(os.path.join(rootdir, f)) - - file_list.sort() - return file_list - - -def delete_files(flist=[]): - for f in flist: - if os.path.exists(f): - os.unlink(f) - - -def stop_at_pattern(command=None, pattern=None, timeout=-1): - if not command: - return - - if not pattern: - response = [pexpect.EOF] - else: - response = [pattern, pexpect.EOF] - - result = True - proc = pexpect.spawn(command, logfile=sys.stdout) - try: - match_id = proc.expect(response, timeout=timeout) - if match_id == 0: - time.sleep(5) - except pexpect.TIMEOUT: - result = False - finally: - proc.sendcontrol('C') - proc.sendline('') - - return result |