Example #1
0
def create_workload(name,
                    kind='basic',
                    where='local',
                    check_name=True,
                    **kwargs):

    if check_name:
        if name in [wl.name for wl in pluginloader.list_plugins('workload')]:
            raise CommandError(
                'Workload with name "{}" already exists.'.format(name))

    class_name = get_class_name(name)
    if where == 'local':
        workload_dir = _d(os.path.join(settings.plugins_directory, name))
    else:
        workload_dir = _d(os.path.join(where, name))

    try:
        # Note: `create_funcs` mapping is listed below
        create_funcs[kind](workload_dir, name, kind, class_name, **kwargs)
    except KeyError:
        raise CommandError('Unknown workload type: {}'.format(kind))

    # pylint: disable=superfluous-parens
    print('Workload created in {}'.format(workload_dir))
Example #2
0
    def setup(self, context):
        before_dirs = [
            _d(os.path.join(context.output_directory, 'before', self._local_dir(d)))
            for d in self.paths
        ]
        after_dirs = [
            _d(os.path.join(context.output_directory, 'after', self._local_dir(d)))
            for d in self.paths
        ]
        diff_dirs = [
            _d(os.path.join(context.output_directory, 'diff', self._local_dir(d)))
            for d in self.paths
        ]
        self.device_and_host_paths = list(zip(self.paths, before_dirs, after_dirs, diff_dirs))

        if self.use_tmpfs:
            for d in self.paths:
                before_dir = self.target.path.join(self.on_device_before,
                                                   self.target.path.dirname(as_relative(d)))
                after_dir = self.target.path.join(self.on_device_after,
                                                  self.target.path.dirname(as_relative(d)))
                if self.target.file_exists(before_dir):
                    self.target.execute('rm -rf  {}'.format(before_dir), as_root=True)
                self.target.execute('mkdir -p {}'.format(before_dir), as_root=True)
                if self.target.file_exists(after_dir):
                    self.target.execute('rm -rf  {}'.format(after_dir), as_root=True)
                self.target.execute('mkdir -p {}'.format(after_dir), as_root=True)
Example #3
0
def create_uiauto_project(path, name):
    package_name = 'com.arm.wa.uiauto.' + name.lower()

    copy_tree(os.path.join(TEMPLATES_DIR, 'uiauto', 'uiauto_workload_template'), path)

    manifest_path = os.path.join(path, 'app', 'src', 'main')
    mainifest = os.path.join(_d(manifest_path), 'AndroidManifest.xml')
    with open(mainifest, 'w') as wfh:
        wfh.write(render_template(os.path.join('uiauto', 'uiauto_AndroidManifest.xml'),
                                  {'package_name': package_name}))

    build_gradle_path = os.path.join(path, 'app')
    build_gradle = os.path.join(_d(build_gradle_path), 'build.gradle')
    with open(build_gradle, 'w') as wfh:
        wfh.write(render_template(os.path.join('uiauto', 'uiauto_build.gradle'),
                                  {'package_name': package_name}))

    build_script = os.path.join(path, 'build.sh')
    with open(build_script, 'w') as wfh:
        wfh.write(render_template(os.path.join('uiauto', 'uiauto_build_script'),
                                  {'package_name': package_name}))
    os.chmod(build_script, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)

    source_file = _f(os.path.join(path, 'app', 'src', 'main', 'java',
                                  os.sep.join(package_name.split('.')[:-1]),
                                  'UiAutomation.java'))
    with open(source_file, 'w') as wfh:
        wfh.write(render_template(os.path.join('uiauto', 'UiAutomation.java'),
                                  {'name': name, 'package_name': package_name}))
Example #4
0
def create_workload(name, kind='basic', where='local', check_name=True, **kwargs):

    if check_name:
        if name in [wl.name for wl in pluginloader.list_plugins('workload')]:
            raise CommandError('Workload with name "{}" already exists.'.format(name))

    class_name = get_class_name(name)
    if where == 'local':
        workload_dir = _d(os.path.join(settings.plugins_directory, name))
    else:
        workload_dir = _d(os.path.join(where, name))

    try:
        # Note: `create_funcs` mapping is listed below
        create_funcs[kind](workload_dir, name, kind, class_name, **kwargs)
    except KeyError:
        raise CommandError('Unknown workload type: {}'.format(kind))

    # pylint: disable=superfluous-parens
    print('Workload created in {}'.format(workload_dir))
Example #5
0
def create_uiauto_project(path, name):
    package_name = 'com.arm.wa.uiauto.' + name.lower()

    copy_tree(
        os.path.join(TEMPLATES_DIR, 'uiauto', 'uiauto_workload_template'),
        path)

    manifest_path = os.path.join(path, 'app', 'src', 'main')
    mainifest = os.path.join(_d(manifest_path), 'AndroidManifest.xml')
    with open(mainifest, 'w') as wfh:
        wfh.write(
            render_template(
                os.path.join('uiauto', 'uiauto_AndroidManifest.xml'),
                {'package_name': package_name}))

    build_gradle_path = os.path.join(path, 'app')
    build_gradle = os.path.join(_d(build_gradle_path), 'build.gradle')
    with open(build_gradle, 'w') as wfh:
        wfh.write(
            render_template(os.path.join('uiauto', 'uiauto_build.gradle'),
                            {'package_name': package_name}))

    build_script = os.path.join(path, 'build.sh')
    with open(build_script, 'w') as wfh:
        wfh.write(
            render_template(os.path.join('uiauto', 'uiauto_build_script'),
                            {'package_name': package_name}))
    os.chmod(build_script, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)

    source_file = _f(
        os.path.join(path, 'app', 'src', 'main', 'java',
                     os.sep.join(package_name.split('.')[:-1]),
                     'UiAutomation.java'))
    with open(source_file, 'w') as wfh:
        wfh.write(
            render_template(os.path.join('uiauto', 'UiAutomation.java'), {
                'name': name,
                'package_name': package_name
            }))
Example #6
0
 def try_get_resource(self, resource, remote_path, local_path):
     if not self.always_fetch:
         result = get_from_location(local_path, resource)
         if result:
             return result
     if not os.path.exists(local_path):
         return None
     if os.path.exists(remote_path):
         # Didn't find it cached locally; now check the remoted
         result = get_from_location(remote_path, resource)
         if not result:
             return result
     else:  # remote path is not set
         return None
     # Found it remotely, cache locally, then return it
     local_full_path = os.path.join(_d(local_path), os.path.basename(result))
     self.logger.debug('cp {} {}'.format(result, local_full_path))
     shutil.copy(result, local_full_path)
     return result
Example #7
0
 def try_get_resource(self, resource, remote_path, local_path):
     if not self.always_fetch:
         result = get_from_location(local_path, resource)
         if result:
             return result
     if not os.path.exists(local_path):
         return None
     if os.path.exists(remote_path):
         # Didn't find it cached locally; now check the remoted
         result = get_from_location(remote_path, resource)
         if not result:
             return result
     else:  # remote path is not set
         return None
     # Found it remotely, cache locally, then return it
     local_full_path = os.path.join(_d(local_path), os.path.basename(result))
     self.logger.debug('cp {} {}'.format(result, local_full_path))
     shutil.copy(result, local_full_path)
     return result
Example #8
0
 def get(self, resource):
     basepath = settings.dependencies_directory
     directory = _d(os.path.join(basepath, resource.owner.name))
     return get_from_location(directory, resource)
Example #9
0
 def dependencies_directory(self):
     return _d(os.path.join(settings.dependencies_directory, self.name))
Example #10
0
 def get(self, resource):
     basepath = settings.dependencies_directory
     directory = _d(os.path.join(basepath, resource.owner.name))
     return get_from_location(directory, resource)