1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2024-10-06 19:01:15 +01:00
Commit Graph

66 Commits

Author SHA1 Message Date
Marc Bonnici
1648a58c11 framework/workload: Add check for platform
Remove unused ``platform`` attributes and add ``supported_platforms``
along with check so that workloads can fail early when attempting to run
on an incorrect platform.
2018-07-02 12:11:00 +01:00
Joe Savage
6cc1ac147c framework/workload: Add rerun infrastructure 2018-06-18 10:51:32 +01:00
Sergei Trofimov
2ff06af632 fw/execution: record resource hashes in metadata
As part of resolving a resource, record its MD5 hash in the output
metadata. In order to enable this, resource resolution is now done via
the context, rather than directly via the ResourceResolver (in order not
to introduce a context dependency in the Gui object, context now
emulates the resolver interface).
2018-05-25 10:21:06 +01:00
Sergei Trofimov
79141582e9 fw/workload: record app version in metadata
Add the package version for an ApkWorkload to the metadata for that job.
2018-05-25 10:21:06 +01:00
Marc Bonnici
efffae5254 framework/workload: Fix typos 2018-05-22 17:18:40 +01:00
Marc Bonnici
c3a01f61af framework/workload: Move deployment of gui into initialize
We only need to deploy the gui once, therefore move the `deploy` method
call into `initialize` the corresponding `remove` method is already in
`finalize`.
2018-05-22 17:18:40 +01:00
Marc Bonnici
a963bd7768 framework/workload: Add missing alias for cleanup_assets 2018-04-20 18:00:04 +01:00
Marc Bonnici
1832648add Framework/workload: Fix typo 2018-04-10 18:07:20 +01:00
Marc Bonnici
49af8ce1d3 framework/workload: Use installation timeout when pulling apk
The `install_timeout` variable is used to allow extra time when
installing an apk, if the apk is not present on the host system it
will be pulled back to the host, therefore we should allow extra time
when transferring the file in the other direction as well.
2018-04-09 16:38:09 +01:00
Marc Bonnici
65eb741f6f framework/workload: Fix Typo 2018-04-09 16:38:09 +01:00
Marc Bonnici
daa1959fd1 framework/workload: Refactor apk resolution
Now allows a `prefer_host_package` parameter to be set to control
whether a package located on the host system (`True`) or on the target
(`False`) should be favoured during resolution.
2018-03-20 16:17:16 +00:00
Marc Bonnici
1cb8f1670a framework/workload: Return path of pulled apk
`pull_apk` now returns the path to the apk it pulled from the device so
WA can keep track of it and avoid conflicts with other apks present
on the host.
2018-03-20 16:17:16 +00:00
Marc Bonnici
bf8c4a856a framework/workload: Add 'cleanup_assets' to global aliases
Allow specifying whether to clean up deployed assets as a global config
option as in WA2.
2018-03-20 08:24:58 +00:00
Sascha Bischoff
dd7ff641f3 fw/workload: Fix installed apk info
Fix an issue where AndroidWorkload.pull_apk would sometimes get the
wrong package if the desired package name is a substring of another
package name. Rather than using a regex to match the package name, use
the new get_package_info method to match the name exactly.
2018-03-15 17:06:23 +00:00
Sergei Trofimov
b33defbfea framework/workload: fix "no matching package" error
Fix an issue introduced by commit 42fb3eb

	framework/workload: make "no matching package" message more useful

PackageHandler was incorrectly passing self.name into the error message
instead of self.owner.name.
2018-02-12 11:45:03 +00:00
Sergei Trofimov
42fb3eb148 framework/workload: make "no matching package" message more useful
Make the error message reported when no matching Android app package
could be found more useful by including the workload name, and, if
applicable, sought version.
2018-02-09 17:45:04 +00:00
Marc Bonnici
320da77ac0 framework/workload: Adds support for ChromeOs Targets
Adds a check if the target is running ChromeOs and if so only use the
Android Container portion for running thr workload.
2018-01-25 06:32:37 +00:00
Marc Bonnici
51794c99e9 framework/workload: Fix incorrect regex matching apk filepath
On some devices an installed apk filepath can contain an '=' character
which was previously used to end the regex match. Now match with the
package name as well to ensure the file path is extracted correctly.
2018-01-09 10:45:58 +00:00
Marc Bonnici
346ce2fb15 framework/workload: Fix typo and formatting 2017-12-14 09:50:26 +00:00
Marc Bonnici
6df498b4bd framework/workload: Fix path of deployed asset
Get pushed file basename to ensure the assets deployed path is correct.
2017-12-14 08:15:39 +00:00
Brendan Jackman
feabecd19d framework/workload: Calm pylint 2017-12-07 15:37:49 +00:00
Brendan Jackman
69f52f3359 framework/workload: Remove unused imports 2017-12-07 15:37:49 +00:00
Brendan Jackman
aa2abd16a3 Run autoflake to remove unused imports & variables 2017-12-07 15:37:49 +00:00
Marc Bonnici
698c61b0a5 framework/workload: Adds support for gui only workloads
Adds new workload types to allow for using a gui without requiring an
apk file.
2017-11-30 17:17:18 +00:00
Marc Bonnici
0f28a07476 framework/workload: Rename ReventWorkload to ApkReventWorkload
To reflect that the current implementation of ReventWorkload uses an APK
file on the device the name has been changed appropriately and the
relevant workloads have been updated.
2017-11-30 17:17:18 +00:00
Marc Bonnici
ac5741136d Framework/Workload: Fix super propagation.
Previously super calls were not being propagated correctly so either
call the relevant super or remove the empty methods.
2017-11-28 08:12:31 +00:00
Marc Bonnici
74347b9e67 Framework/Workload: Change condition for pushing assets
Changes from checking if there are deployable assets to checking for
discovered assets. This allows for automated pushing of assets without
invoking the resource getters, for example pre discovered files.
2017-11-28 08:12:31 +00:00
Marc Bonnici
30da77a1cf Framework: Moved resource deployment to base workload 2017-11-28 08:12:31 +00:00
Marc Bonnici
2611579d29 Framework/Workload: Fix typo 2017-11-23 17:49:30 +00:00
Marc Bonnici
e9ae08e00b Framework/Workload: Utilize package_names during package resolution
Iterate through available package names when resolving an apk file from
the host.
2017-11-23 17:49:30 +00:00
Marc Bonnici
ff529462e0 Framework/Workload: Require package name for package resolution
Mandate that either a package name is specified or the owner defines
supported package names. This prevents any apk file in the correct
location incorrectly being resolved.
2017-11-23 17:49:30 +00:00
Sergei Trofimov
49eb40fec7 framework/workload: add markers_enabled param for uiauto workloads
Some workloads can insert timestamped markers into the logs if this
parameter is enabled in their automation. These markers can then be
used to look at measurements for specific parts of the execution.
2017-11-22 09:22:21 +00:00
Sergei Trofimov
73a530917a framework/workload: fix asset_files and deployed_assets
These two lists are updated by workloads as assets are discovered and
deployed. As these are defined as class attributes in the base Workload
class, the same two list instances are shared between all classes. This
results in subsequent workloads re-deploying assets from the previous
workloads, and may lead to mismatches with deployable_assets, which is
overwritten on per-workload basis.

Make these into instance attriutes to prevent these issues.
2017-11-22 09:22:21 +00:00
Sergei Trofimov
652f107d10 framework/workload: fix class attribute docs
Change from free-floating strings into comments and move above the
corresponding attribute.
2017-11-22 09:22:21 +00:00
Marc Bonnici
8a913639bd Framework/Workload: Fix call to deploy assets 2017-11-15 15:59:27 +00:00
Marc Bonnici
d3a2242dd3 Framework/Workload: Fix incorrect error message being reported 2017-11-15 14:47:36 +00:00
Marc Bonnici
4e3a30b515 AndroidTarget: Ensure permissions are granted for installed application
Upon clearing data of a previously installed application the runtime
permissions can also be cleared, to avoid having to reinstall the
application all available permissions are explicitly granted to the
required application.
2017-11-15 14:47:36 +00:00
Marc Bonnici
c332715e4a Workload: Adds support for deploying/cleanup of additional assets
Allows for automatically pushing a set of arbitrary assets to the device
during initialization and adds a parameter to specify whether the assets should
be removed again at the end of the run.
2017-11-15 14:47:36 +00:00
Brendan Jackman
71815e4e1c framework/workload: Implement Workload.requires_network attribute 2017-10-18 11:50:29 +01:00
Brendan Jackman
06b451d31b framework: Add feature to mark workloads unsafe for confidential devices
Some workloads, such as Geekbench, may phone home and report data about the
device they are running on. This poses a risk for users that are testing on
unreleased or otherwise confidential devices - perhaps they use a standard
agenda to run a large battery of tests, in which case they may forget to disable
these dangerous workloads.

This provides a mechanism to prevent running those workloads from running by
setting allow_phone_home=False in the user configuration.
2017-10-04 15:43:03 +01:00
Sergei Trofimov
9cb7ea862c framework/workload: default view for ApkWorkload
- Add "activity" property to PackageManager exposing the underlying
  apk_info attribute.
- Add "view" class attribute to ApkWorkload, initialized to None
- If "view" is not set for a particular workload, set a default based on
  the package and activity of the underlying workload.
2017-09-29 14:22:22 +01:00
Sergei Trofimov
0934037e1b revent fixes
- do not attempt to replay setup if a setup recording has not been
  provided (perviously, setup was mandatory).
- update the apk initialization to the correct method inside the record
  command.
2017-09-27 10:32:41 +01:00
Sergei Trofimov
fe53efcd49 framework/workload: ApkWorkload consistent package handling
Rename "package" parameter to "package_name" (to be cosnsitent with
package_names class attribute). "package" is now a property containting
the name of the actual package used after the APK is resolved.
2017-09-27 10:32:20 +01:00
Brendan Jackman
a79fb83fd1 framework/workload: Fix resolve_packge_from_target
This currently raises an error undonditionally when self.package is set, fix the
indentation so it only does that if it isn't installed on the target.
2017-09-15 18:04:11 +01:00
Marc Bonnici
f8e4d34e60 APKResolution: Uses loose version matching
Allows for more flexible version matching  e.g. specifying a
version of 4, 4.3, 4.3.1 will all resolve to an apk version of 4.3.1
2017-07-20 14:30:52 +01:00
Marc Bonnici
c722a6a73c ApkResolution: Now takes into account apk abi when resolving.
Previously any apk found would be selected even if the abi did not match
the device, now an apk is only selected if it is compatible with the
device. Additionally the 'exact_abi' parameter has been added to allow only
selecting an apk if a devices primary abi's native code is present in
the apk, or there is no native code.
2017-07-20 14:30:52 +01:00
Marc Bonnici
f9bc0261bf AndroidWorkload: Adds support for apk replacement/downgrading
Now tries to replace and downgrade an apk if already installed.
2017-07-10 11:08:44 +01:00
Marc Bonnici
4d397ab465 AndroidWorkload: Uninstall uiauto apks before reinstalling
Due to the fact that uiauto apk files built on different machines will
be signed with different keys, adb will fail to overwrite a previous
version even when set to replace. This commit now will uninstall the
previous uiauto apk file if present before attempting to install the new
version.
2017-07-10 11:08:43 +01:00
Marc Bonnici
27b488cc56 Jobs: Fixes job initialize/finalize
Previously initialize and finalize were being called for each iteration
of each workload at the start/end of the run which is incorrect
behaviour. To prevent this, each iteration of a workload now shares a
single instance of the workload combined with the 'once_per_instance' decorator
to ensure that the methods are only invoked once per set of workload
runs.
2017-07-10 11:08:43 +01:00
Marc Bonnici
5232bc3504 Workload: Move gui deployment into setup
Ensures that the correct workload gui is deployed before each iteration.
2017-07-10 11:08:43 +01:00