1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-01-18 12:06:08 +00:00
Commit Graph

1161 Commits

Author SHA1 Message Date
Jonathan Paynter
8640f4f69a framework: Add serializing Job status setter
When setting the job status through ExecutionContext, this change
should be accompanied by an update to the state file, so that the state
file accurately reflects execution state.

As Jobs should not be aware of the output, this method is added to
ExecutionContext, and couples setting job state with writing to the
state file.
2020-07-14 17:31:38 +01:00
Jonathan Paynter
460965363f framework: Fix serialized job retries set to 0
JobState serializations did not reflect the current state of
execution, as the 'retries' field was set to 0 instead of
JobState.retries.
2020-07-14 17:31:38 +01:00
Chris Redpath
37f4d33015 WA/Jankbench: Update Pandas function to remove deprecated .ix access
Pandas removed .ix as a way to iterate the index, .loc is the replacement
in most cases. Jankbench as a workload fails on a clean install due to
this call.

Replacing this works for me on a native install of Lisa with Ubuntu 20.04

Signed-off-by: Chris Redpath <chris.redpath@arm.com>
2020-07-03 12:13:40 +01:00
Marc Bonnici
8c7320a1be workloads/gfxbench: Swtich to the home screen before run
Alter the element to check popups have closed to be present
on any main screen and ensure we switch to the homescreen of the
app before performing setup steps.
2020-06-30 16:51:11 +01:00
Marc Bonnici
0c2613c608 fw/execution: Fix missing parameter 2020-06-29 16:22:13 +01:00
Marc Bonnici
39121caf66 workloads/gfxbench: Fix using the correct scrollable element.
On smaller devices there can be multiple scrollable elements, ensure
we scroll the correct one to identify tests.
2020-06-19 11:24:46 +01:00
Marc Bonnici
83da20ce9f ouput_processor/postgres: Fix events sql command 2020-06-15 15:30:56 +01:00
Marc Bonnici
f664a00bdc config/core: Fix handling of depreciated parameters
Provide warning to user when attempting to set a depreciated
parameter instead of during validation and only raise the warning
if a value has been explicitly provided.
2020-06-12 09:24:51 +01:00
Marc Bonnici
443358f513 workloads/gfxbench: Rework score detection
Rework how the result matching is performed. Some tests from
gfxbench provide more than 1 score per test and
some provide their output in a different format to others.
Update the matching to perform more flexible matching as well
as dealing with entries that do not fit on a single results screen.
2020-06-10 11:10:26 +01:00
Marc Bonnici
58f3ea35ec workloads/gfxbench: Fix incorrect parameter name 2020-05-26 20:55:58 +01:00
Marc Bonnici
7fe334b467 workloads/gfxbench: Fix incorrect parameter name 2020-05-26 20:38:58 +01:00
Marc Bonnici
3967071a5e workloads/gfxbench: Fix incorrect parameter name 2020-05-26 20:13:53 +01:00
Marc Bonnici
cd6f4541ca workloads/gfxbench: Move results extraction to the extraction stage 2020-05-21 12:39:25 +01:00
Marc Bonnici
7e6eb089ab workloads/geekbench: Update result screen matching criteria
Update the element that is searched for as on some devices this can
match before all the tests are complete.
2020-05-21 12:39:25 +01:00
Marc Bonnici
7a085e586a workloads/gfxbench: Allow configuration of tests to be ran.
Allow the user to customise which tests are to be ran on the device.
2020-05-21 12:39:25 +01:00
Marc Bonnici
0f47002e4e fw/getters: Use the assets_repository as the default for the filer 2020-05-21 12:39:25 +01:00
Marc Bonnici
6ff5abdffe fw/config: Remove whitespace 2020-05-21 12:39:25 +01:00
Marc Bonnici
82d09612cb fw/config: Add default to `assets_repository' 2020-05-21 12:39:25 +01:00
Marc Bonnici
2d32d81acb utils/file_lock: Create lock files in system temp directory
Use the original file path to create a lock file in the system temp
directory. This prevents issues where we are attempting to lock a file
where wa does not have permission to create new files.
2020-05-19 17:55:40 +01:00
Marc Bonnici
b9d593e578 fw/version: Development version bump
Bump dev version to synchronise interface for SSHConnection with devlib.
2020-05-13 16:43:03 +01:00
Marc Bonnici
1f8be77331 Disable pep8 errors 2020-05-13 16:43:03 +01:00
Marc Bonnici
66f0edec5b descriptor/SSHConnection: Expose use_scp parameter
Allow specifying to use scp for file transfer rather than sftp as
this is not supported by all targets.
2020-05-13 16:43:03 +01:00
Marc Bonnici
e2489ea3a0 descriptor/ssh: Add note to password parameter for passwordless target
For a passwordless target the `password` parameter needs to be set to an
empty string to prevent attempting ssh key authentication.
2020-05-13 16:43:03 +01:00
Rob Freeman
16be8a70f5 Fix pcmark setup
* Pcmark sometimes auto installs without need for clicking button,
in such cases workload throws UiObjectNotFound exception.
* Added logic to check for installation button existence.
* Increased install wait time to 5 mins.
2020-04-28 09:57:41 +01:00
Rob Freeman
dce07e5095 Update gfxbench to log correct scores.
* Updated regex to reflect correct test name.

* Enabling/disabling tests on setup was missing tesselation on some devices
  so changed order of toggle.

* Sometimes whilst collecting scores the workload grabs the wrong score.
  Updated to check the name of the test before grabbing the score.

* Tested on mate20, xperia, s9-exynos, s10-exynos, pixel-4
2020-04-27 13:54:48 +01:00
Marc Bonnici
9b19f33186 target/descriptor: Fix overwriting variable
Ensure we don't overwrite `conn_params` in the inner for loop.
2020-04-17 13:03:27 +01:00
Marc Bonnici
53faf159e8 target/descriptor: Cosmetic fixes
Fix typo and choose more descriptive variable name.
2020-04-17 13:03:27 +01:00
Marc Bonnici
84a9526dd3 target/descriptor: Fix handling of custom Targets 2020-04-17 13:03:27 +01:00
Marc Bonnici
a3cf2e5650 descriptor: Fix overriding of parameters
Make sure we only override parameters that are present in the current
config. This allows for connection parameters to be supplied for a
platform but only overridden if required for the connection.
2020-04-16 09:44:17 +01:00
Marc Bonnici
607cff4c54 framework: Lock files which could be read/written to concurrently
Add file locking to files that could be read and written to concurrently
by separate wa processes causing race conditions.
2020-04-09 09:14:39 +01:00
Marc Bonnici
d56f0fbe20 utils/misc: Add file locking context manager
Enable automation locking and unlocking of a file path provided. Used to
prevent synchronisation issues between multiple wa processes.
2020-04-09 09:14:39 +01:00
Marc Bonnici
0f9c20dc69 target/descriptor: Add support for connection parameter overriding.
Allow for overriding connection parameters on a per platform basis, and
make the `host` parameter for `Juno` optional as this can be auto
detected via the serial connection.
2020-04-09 09:10:11 +01:00
Marc Bonnici
310bad3966 target/descriptor: Rework how parameter defaults are overridden.
Instead of supplying only the parameter name and value to be set as a
default, allow for replacing the entire parameter object as this allow
more control over what needs overriding for a particular platform.
2020-04-09 09:10:11 +01:00
Marc Bonnici
a8abf24db0 fw/descriptor: Add unsupported_platforms for a particular target
Allow for specifying a list of `Platforms` that a particular target does
not support, e.g. 'local_juno'
2020-04-09 09:10:11 +01:00
Marc Bonnici
dad0a28b5e logcat_parsing: Replace errors when decoding logcat output
Some devices print non standard characters to logcat. If an error
occurs when parsing the output, replace the offending character instead
of raising an error.
2020-04-07 14:15:24 +01:00
Rob Freeman
5049e3663b Force speedometer to use chrome and change to ApkUiAutoWorkload
* Workload was failing when chrome was not set as default broser so
  altered to use chrome every time.

* Changed workload to an ApkuiAutoWorkload since chrome is now a
  dependency.

* Refactored opening speedometer to new method.

* Added wait time for scores to show up when test finished.
2020-03-31 10:49:25 +01:00
Rob Freeman
c9ddee761a Update framework to wait for object before dismissing chrome popup
* Added wait for exist for google terms accept.

* Reduced wait time for device sync negative button to reduce workload run
  time.
2020-03-31 10:49:25 +01:00
scojac01
3be00b296d Androbench: Handle storage permissions prompt.
Updating the workload to handle the storage permissions that present themselves on certain devices.
2020-03-25 18:21:43 +00:00
scojac01
9a931f42ee Handle the common chrome browser popup messages.
The Chrome browser presents a number of popups when run for
the first time. This update handles those popup messages.
2020-03-25 16:35:04 +00:00
Marc Bonnici
06ba8409c1 target/descriptor: Make strict_host_check default to False
The majority of users will not find a benefit of the additional
check so make this parameter default to `False` instead.
2020-03-12 11:21:07 +00:00
Marc Bonnici
2da9370920 target/descriptor: Ensure we set a default SSH port. 2020-03-06 19:16:47 +00:00
Marc Bonnici
ef9b4c8919 fw/version: Dev version bump
Bump the dev version of WA and required devlib version to ensure
that both repos stay in sync to accommodate the SSH interface
change.
2020-03-06 17:34:30 +00:00
Marc Bonnici
31f4c0fd5f fw/descriptor: Add parameter list for Telenet connections.
`TelnetConnection` no longer uses the same parameter list as
`SSHConnection` so create it's own parameter list.
2020-03-06 17:34:30 +00:00
Marc Bonnici
62ca7c0c36 fw/SSHConnection: Deprecated parameters for Parimiko implementation
Deprecate parameters for the new implementation of the SSHConnection
based on Parimiko.
2020-03-06 17:34:30 +00:00
Marc Bonnici
d0f099700a fw/ConfigutationPoints: Add support for deprecated parameters
Allow specifying a ConfigutationPoint is deprecated. This means that any
supplied configuration will not be used however execution will continue
with a warning displayed to the user.
2020-03-06 17:34:30 +00:00
Sergei Trofimov
5f00a94121 utils/types: fix toggle_set creation
Correctly handle the presence of both an element and its toggle in the
input, and handle them base on order, e.g.

toggle_set(['x', 'y', '~x']) --> {'y', '~x'}
toggle_set(['~x', 'y', 'x']) --> {'y', 'x'}
2020-02-19 17:02:58 +00:00
Sergei Trofimov
0f2de5f951 util/exec_control: add once_per_attribute_value
Add a decorator to run a method once for all instances that share the
value of the specified attribute.
2020-02-07 16:49:48 +00:00
Sergei Trofimov
51ffd60c06 instruments: add proc_stat
Add an instrument that monitors CPU load using data from /proc/stat
2020-02-07 14:11:31 +00:00
Sergei Trofimov
fe50d75858 fw/instrument: derive Instrument from TargetedPlugin
Change Instrument to derive from TargetedPlugin rather than Plugin,
which it should have been all along.
2020-02-04 13:28:48 +00:00
Sergei Trofimov
79dec810f3 fw/plugin: move cleanup_assets to TargetedPlugin
Move cleanup_assets from Workload up into TargetedPlugin. This way,
Instruments may also utilize it if they deploy assets.

More generally, it makes sense for it to be inside TargetedPlugin, as
any plugin that interacts with the target may conceivably need to clean
up.
2020-02-04 10:43:26 +00:00
Marc Bonnici
44cead2f76 fw/workload: Prefix TestPackages with "test_"
Previously, when pulling an apk from the target to the host, the default
package name was used for both regular apks and test apks. This could
result in one overwriting the other. To prevent this ensure
`TestPackages` have the "test_" prefixed to their filename.
2020-02-03 14:55:39 +00:00
Marc Bonnici
c6d23ab01f workloads/exoplayer: Support Android 10
Android 10 appears to use a new format in logcat when displaying the
PlayerActivity. Update the regex to suport both formats.
2020-01-27 15:00:33 +00:00
Marc Bonnici
6f9856cf2e pcmark: Update popup dismissal to be case insensitive.
Some devices use difference capitalisation so ignore case when matching.
2020-01-21 15:46:14 +00:00
Sergei Trofimov
0f9331dafe fw/job: copy classifiers from the spec
Now that classifiers may be added to the job during execution, its
classifiers dict should be unique to each job rather than just returning
them form spec (which may be shared between multiple jobs.)
2020-01-17 17:07:52 +00:00
Sergei Trofimov
659e60414f fw/exec: Add add_classifier() method
Add add_classifier() method to context. Allow plugins to add classifiers
to the current job, or the run as a whole. This will ensure that the new
classifiers are propagated to all relevant current and future artifacts
and metrics.
2020-01-17 16:38:58 +00:00
Sergei Trofimov
796f62d924 commands/process: partial results + write info
- Correct handling of skipped jobs -- the output directory would not
  have been generated, so do not try to write it.
- Do not attempt to process runs that are in progress, unless forced,
  and do not try to process jobs that have not completed yet.
- Write the run info as well as the result, allowing output processors
  to modify it (e.g. adjusting run names).
2020-01-17 10:59:56 +00:00
Marc Bonnici
f60032a59d fw/target/manager: Update to use module_name_set
Allow for comparing which modules are installed on a Target when
additional module configuration is present.
2020-01-16 15:55:29 +00:00
Marc Bonnici
977ce4995d utils/types: Add module_name_set type
The list of modules retrieved from a `Target` may include configuration
as a dictionary. This helper function will produce a set of only the
module names allowing for comparison.
2020-01-16 15:55:29 +00:00
scojac01
a66251dd60 Antutu: Updating to work with major version 8.
The update to Antutu major version 8 has changed a lot of element names.
There have also been changes to the tests run in three of the four categories.

This commit handles those updates while also retaining backwards compatibility
with major version 7.
2020-01-15 12:59:43 +00:00
Marc Bonnici
d3adfa1af9 fw/getters: Pylint fix 2020-01-14 13:24:51 +00:00
Marc Bonnici
39a294ddbe utils/types: Update version_tuple to allow splitting on "-"
Some Apks use "-" characters to separate their version and identifier so
treat as a separator value.
2020-01-14 13:24:51 +00:00
Marc Bonnici
164095e664 utils/types: Update version_tuple to use strings
The versionName field of an apk allows for containing non-numerical
characters so update the type to be a string.
2020-01-14 13:24:51 +00:00
Sergei Trofimov
24a4a032db fw/getters: update Executable resolution
Use Executable.match() rather than just checking the path inside
get_from_location(); this allows for alternative matching semantics
(e.g. globbing) inside derived implementations.
2020-01-10 13:56:11 +00:00
Sergei Trofimov
05857ec2bc utils/cpustates: update idle state naming
If idle state names for a cpu could not be discovered, use "idle[N]"
where N is the state number, instead of just making them all as
"unknown".
2020-01-10 13:32:40 +00:00
Sergei Trofimov
fd8a7e442c utils/trace_cmd: update for Python 3
re._pattern_type became re.Pattern in Python 3.
2020-01-10 13:31:30 +00:00
Marc Bonnici
dfb4737e51 Development version bump 2019-12-20 16:25:01 +00:00
Marc Bonnici
06518ad40a Version bump for release 2019-12-20 16:07:10 +00:00
Marc Bonnici
38aa9d12bd fw/entrypoint: Fix devlib version check
That absence of a value in the "dev" version field indicates a release
version, ensure this is taken into account when comparing version numbers.
2019-12-20 16:07:10 +00:00
Marc Bonnici
90db655959 instrument/perf: Fix incorrect argument 2019-12-20 16:07:10 +00:00
Marc Bonnici
817d98ed72 wa/instruments: Refactor collectors to use Collector Inferface
Update the WA instruments which rely on the refactored devlib collectors
to reflect the new API.
2019-12-20 15:17:01 +00:00
scojac01
d67668621c Geekbench: Adding 4.4.2 as a supported version
There have been no UI changes to the application so simply adding the
new supported version to the list of accepted versions.
2019-12-19 14:18:10 +00:00
Marc Bonnici
1531ddcdef workloads/speedometer: Only close tabs on supported devices
Some devices don't have the option to close all tabs so don't error if
this element cannot be found.
2019-12-18 10:07:11 +00:00
Marc Bonnici
322f9be2d3 workloads/googleplaybooks: Fix book selector
Do not try and use a parent element of the book entry, search for the entry
directly.
2019-12-18 10:07:11 +00:00
Marc Bonnici
494424c8ea utils/types: Fix ParameterDict update method.
When updating a ParameterDict with another ParameterDict the unencoded
values were being merged. Ensure consistent behaviour by implicitally
iterating via `__iter__` which will cause ParameterDict values to be
decoded before being re-endcoded as expected.
2019-12-18 10:07:11 +00:00
scojac01
ee54a68b65 Updating the framework to include the app package data
As part of our continous integration system it has become
clear that gathering the app package data as well as the
version name can provide useful.

Adding this functionality to mainline as it could prove
useful to other developers.
2019-12-03 17:48:59 +00:00
Sergei Trofimov
cc1cc6f77f tests: fix pytest warnings
Fix warnings reported when running unit tests via pytest.

- Rename TestDevice to MockDevice, so that it is not interpreted as a
  test case.
- Fix collections abstract base class imports.
- Add an ini file to ignore the same from "past".
2019-12-03 14:03:18 +00:00
scojac01
da0ceab027 PCMark: Updating to handle new Android 10 permission warnings
Android 10 has introduced a new permission warning and a
seperate warning about the APK being built for an older version
of the Android OS. Have added two checks to accept these
permissions and continue with the workload and the given APK
rather than attempting to update.
2019-11-28 16:02:20 +00:00
scojac01
683eec2377 PCMark: Editing the screen orientation
Some devices have proved to have a natural orientation
that does not lend itself well to this workload. Therefore
I have edited the orientation lock to portrait instead of
natural.
2019-11-22 16:29:59 +00:00
scojac01
07e47de807 Geekbench: Updating supported versions
Adding support for Geekbench 4.3.4 and 4.4.0.

Adding support for Geekbench Corporate 5.0.1 and 5.0.3.

There are no changes required to the functional workload.
2019-11-22 12:07:50 +00:00
Marc Bonnici
5906bca6b3 instruments/acme_cape: Fix missing parameter to get_instruments
The signature of `get_instruments` was missing the `keep_raw` parameter
so fix this and use it as part of the subsequent common invocation.
2019-11-18 16:09:09 +00:00
Robert Freeman
796dfb1de6 Update googlephotos workload to work against most recent version
* Updated googlephotos workload to work against version 4.28.0
2019-10-29 16:17:20 +00:00
Robert Freeman
f3e7b14b28 Update googlemaps workload to work against most recent version
* Updated google maps workload to work against apk version 10.19.1
2019-10-29 13:34:08 +00:00
Marc Bonnici
e9839d52c4 output_processor/postgres: Fix out of range for hostid
Change the field type of `hostid` as part of `TargetInfo` from `Int` to
Bigint to prevent some ids from exceeding the maximum value.
2019-10-23 15:45:56 +01:00
Marc Bonnici
7ebbb05934 target/info: Fix missing return statement
Add missing return statement when upgrading a `TargetInfo` POD to v5.
2019-10-23 15:45:56 +01:00
Robert Freeman
13166f66d1 Update gmail workload to work against most recent version
* Updated gmail to work against 2019.05.26.252424914.release.
2019-10-17 14:17:56 +01:00
Marc Bonnici
ab5d12be72 output_processors/cpustates: Improve handling of missing cpuinfo data
Improve checking of whether cpu idle state information is available for
processing.
Add debug message to inform user if the cpuidle module is not detected
on the target.
2019-10-15 15:17:02 +01:00
Marc Bonnici
298bc3a7f3 output_processors/cpustates: Deal with cpufreq data being unavailable
If the `cpufreq` module is not detected as present then warn the user
and processes the remaining data instead of crashing.
2019-10-15 15:17:02 +01:00
Marc Bonnici
09d6f4dea1 uilts/cpustates: Fix inverted no_idle check
If there is no information about idle states then `no_idle` should be
set to `True` instead of `False`.
2019-10-15 15:17:02 +01:00
Marc Bonnici
d7c95fa844 instrument/energy_measurement: Fix typo and formatting 2019-10-03 12:48:24 +01:00
Marc Bonnici
0efd20cf59 uiauto: Update all applications to target SDK version 28
On devices running android 9 with google play services, PlayProtect
blocks the installation of our automation apks due to targeting a lower
SDK version. Update all apk builds to target SDK version 28 (Android 9)
however do not change the minimum version to maintain backwards
compatibility.
2019-10-03 12:18:48 +01:00
Marc Bonnici
e41aa3c967 instruments/energy_measurement: Add a keep_raw parameter
Add a `keep_raw` parameter to control whether raw files should be
deleted during teardown.
2019-10-03 11:38:29 +01:00
Marc Bonnici
3bef4fc92d instrument/energy_measurement: Invoke teardown method for backends
Forward the teardown method invocation to the instrument backend.
2019-10-03 08:39:53 +01:00
Scott Jackson
0166180f30 PCMark: Fixing click co-ordinates
The workload is clicking the run button in the centre
of the element but this is no longer starting the
run operation.

Refactoring the code to click in the topleft of the
object seems to rectify the issue.
2019-09-24 16:01:37 +01:00
Robert Freeman
a9f3ee9752 Update adobe reader workload to work with most recent version
Updated adobe reader workload to work with version 19.7.1.10709
2019-09-24 12:57:26 +01:00
Scott Jackson
35ce87068c Antutu: Updating to handle the new shortcut popup
Added logic to dismiss the new popup message which asks
to add a shortcut to the android homescreen.
2019-09-19 14:07:50 +01:00
Robert Freeman
6beac11ee2 Add simpleperf type to perf instrument
* Added simpleperf type to perf instrument as it's more stable
  on Android devices.
* Added record command to instrument
* Added output processing for simpleperf
2019-09-18 12:55:59 +01:00
Sergei Trofimov
2f231b5ce5 fw/target: detect module variations in TargetInfo
- Add modules entry to TargetInfo
- When retrieving TargetInfo from cache, make sure info modules match
  those for the current target, otherwise mark info as stale and
  re-generate.
2019-09-12 15:27:23 +01:00
Marc Bonnici
75878e2f27 uiauto/build_scripts: Update to use python3
Ensure we are invoking python3 when attempting to import `wa` and
update the printing syntax to be compatible.
2019-09-06 11:02:13 +01:00
Marc Bonnici
023cb88ab1 templates/setup: Update package setup template to specify python3 2019-09-06 11:02:13 +01:00
Marc Bonnici
d27443deb5 workloads/rt_app: Update to use python3
Update the workload generation script to be python3 compatible and
invoke with python3.
2019-09-06 11:02:13 +01:00
Scott Jackson
1a15f5c761 Geekbench: Adding support for Version 5 of Geekbench Corporate 2019-09-06 10:34:41 +01:00
Marc Bonnici
062be6d544 output_processors/postgresql: Don't reconnect if not initialised
Update check to clarify that we should not attempt to reconnect to
the database if the initialisation of the output processor failed.
2019-08-28 11:33:46 +01:00
Marc Bonnici
c1e095be51 output_processors/postgresql: Ensure still connected to the database
Before exporting output to ensure that we are still connected to the
database. The connection may be dropped so reconnect if necessary, this
is a more of an issue with longer running jobs.
2019-08-28 11:33:46 +01:00
Marc Bonnici
eeebd010b9 output_processors/postgresql: Group database connection operations
Refactors connection operations into the `connect_to_database`
method.
2019-08-28 11:33:46 +01:00
Marc Bonnici
6042fa374a fw/version: Version Bump 2019-07-19 17:07:46 +01:00
Marc Bonnici
050329a5ee fw/version: Update version for WA and required devlib 2019-07-19 16:37:00 +01:00
Marc Bonnici
12bb21045e instruments/SysfsExtractor: Add extracted directories as artifacts
Add the directories that have been extracted by the `SysfsExtractor` and
derived instruments as artifacts.
2019-07-19 16:36:11 +01:00
Marc Bonnici
4bb1f4988f fw/DatabaseOutput: Only attempt to extract config if avaliable
Do not try to parse `kernel_config` if no data is present.
2019-07-19 16:36:11 +01:00
Marc Bonnici
0ff6b4842a fw/DatabaseOutput: Fix the retrieval of job level artifacts 2019-07-19 16:36:11 +01:00
Marc Bonnici
98b787e326 fw/DatabaseOutput: Enabled retrieving of directory artifacts
To provide the same user experience of accessing a directory
artifact from a standard `wa_output` when attempting to retrieve the
path of the artifact extract the stored tar file and extract it to a
temporary location on the host returning the path.
2019-07-19 16:36:11 +01:00
Marc Bonnici
e915436661 commands/postgres: Upgrade the data base schema to v1.3
Upgrade the database schema to reflect the additions of directory
artifacts and the missing TargetInfo property.
2019-07-19 16:36:11 +01:00
Marc Bonnici
68e1806c07 output_processors/postgresql: Add support for new directory Artifacts
Reflecting the addition to being able to store directories as Artifacts
enable uploading of a directory as a compressed tar file rather than
storing the file directly.
2019-07-19 16:36:11 +01:00
Marc Bonnici
f19ebb79ee output_processors/postgresql: Add missing system_id field
When storing the `TargetInfo` the `system_id` attribute was ommited.
2019-07-19 16:36:11 +01:00
Marc Bonnici
c950f5ec8f utils/postgres: Fix formatting 2019-07-19 16:36:11 +01:00
Marc Bonnici
6aaa28781b fw/Artifact: Allows adding directories as artifacts
Adds a `is_dir` property to an `Artifact` to indicate that the
artifact represents a directory rather than an individual file.
2019-07-19 16:36:11 +01:00
Marc Bonnici
d87025ad3a output_processors/postgres: Fix empty iterable
In the case of an empty iterable an empty string would be returned
however this was not an valid value so ensure that the brackets are
always inserted into the output.
2019-07-19 16:36:11 +01:00
Marc Bonnici
ac5819da8e output_processors/postgres: Fix incorrect dict keys 2019-07-19 16:36:11 +01:00
Marc Bonnici
31e08a6477 instruments/interrupts: Add interrupt files as artifacts
Ensure that the interrupt files pulled and diffed from the device are
added as artifacts.
2019-07-19 16:36:11 +01:00
scott
47769cf28d Add a workload for Motionmark tests 2019-07-19 14:31:04 +01:00
Marc Bonnici
564738a2ad workloads/monoperf: Fix typos 2019-07-18 15:17:24 +01:00
Marc Bonnici
c092128e94 workloads: Sets requires_network attribute for workloads
Both speedometer and aitutu require internet to function however this
attribute was missing from the workloads.
2019-07-18 15:17:24 +01:00
Marc Bonnici
a6f0ab31e4 fw/entrypoint: Add check for system default encoding
Check what the default encoding for the system is set to. If this is not
configured to use 'UTF-8', log a warning to the user as this is known
to cause issues when attempting to parse none ascii files during operation.
2019-07-12 13:32:28 +01:00
Marc Bonnici
766bb4da1a fw/uiauto: Allow specifying landscape and portrait orientation
Previously the `setScreenOrientation` function only accepted relative
orientations, this causes issue when attempt to use across tablets and
phones with different natural orientations. Now take into account the
current orientation and screen resolution to allow specifying portrait vs
landscape across different types of devices.
2019-07-04 13:18:48 +01:00
Marc Bonnici
a5f0521353 utils/types: Fix typos 2019-06-28 17:56:13 +01:00
Marc Bonnici
3435c36b98 fw/workload: Improve version matching and error propergation
Ensure that the appropriate error message is returned to the user to
outline what caused the version matching to fail.
Additionally fix the case where if specifying a package name directly
the version matching result would be ignored.
2019-06-28 17:56:13 +01:00
Marc Bonnici
bd252a6471 fw/workload: Introduce max / min versions for apks
Allow specifying a maximum and minimum version of an APK to be used for
a workload.
2019-06-28 17:56:13 +01:00
Marc Bonnici
f46851a3b4 utils/types: Add version_tuple
Allow for `version_tuple` to be used more generically to enable
natural comparing of versions encoded as strings.
2019-06-28 17:56:13 +01:00
Marc Bonnici
8910234448 fw/workload: Don't override the package manager for ApkRevent workloads
`ApkRevent` workloads should be able to use the same Apk selection
criteria as `ApkWorkloads` therefore rely on the superclass to
instantiate the `PackageHandler`.
2019-06-28 17:56:13 +01:00
Marc Bonnici
1108c5701e workloads: Update to better utilize cleanup_assets and uninstall
Update the workload classes to attempt and standardize the use of the
`cleanup_assets` parameter and the newly added `uninstall` parameter
2019-06-28 17:54:04 +01:00
Marc Bonnici
f5d1a9e94a fw/workload: Add the uninstall parameter to the base workload class
In additional to being able to specify whether the APK should be
uninstalled as part of a `APKWorkload`s teardown add the `uninstall`
parameter to the base `workload` class in order to specify whether any
binaries installed for a workload should be uninstalled again.
2019-06-28 17:54:04 +01:00
Marc Bonnici
959106d61b fw/workload: Update description of cleanup_assests parameter
Improve the description of the parameter as the parameter may be used in
other places aside from the teardown method.
2019-06-28 17:54:04 +01:00
Pierre-Clement Tosi
0aea3abcaf workloads: Add support for UIBench Jank Tests
Add a workload that launches UIBenchJankTests. This differs from the
UIBench application as it adds automation and instrumentation to that
APK. This therefore requires a different implementation than classical
ApkWorkloads as 2 APKs are required (UIBench and UIBenchJankTests) and
the main APK is invoked through `am instrument` (as opposed to `am
start`).
2019-06-28 09:27:56 +01:00
Pierre-Clement Tosi
24ccc024f8 framework.workload: am instrument APK manager
Add support for Android applications that are invoked through `am
instrument` (as opposed to `am start`) _i.e._ that have been
instrumented. See AOSP `/platform_testing/tests/` for examples of such
applications.
2019-06-28 09:27:56 +01:00
Marc Bonnici
42ab811032 workloads/lmbench: Fix missing run method declaration 2019-06-19 11:28:28 +01:00
Marc Bonnici
832ed797e1 fw/config/execution: Raise error if no jobs are available for running
If no jobs have been generated that are available for running then WA
will crash when trying to access the job queue. Add an explicit check to
ensure that a sensible error is raised in this case, for example if
attempting to run a specific job ID that is not found.
2019-06-06 15:17:42 +01:00
Marc Bonnici
9aec4850c2 workloads/uibench: Pylint Fix 2019-05-28 09:33:15 +01:00
scott
bdaa26d772 Geekbench: Updating supported versions to include 4.3.2 2019-05-24 17:47:49 +01:00
Pierre-Clement Tosi
d7aedae69c workloads/uibench: Initial commit
Add support for Android's UIBench suite of tests as a WA workload.
2019-05-24 17:47:35 +01:00
Pierre-Clément Tosi
45af8c69b8 ApkWorkload: Support implicit activity path
If the activity field of an instance of ApkWorkload does not the '.'
character, it is assumed that it is in the Java namespace of the
application. This is similar to how activities can be referred to with
relative paths:
    com.domain.app/.activity
instead of
    com.domain.app/com.domain.app.activity
2019-05-24 17:47:35 +01:00
scott
e398083f6e PCMark: Removing hard coded index to make the workload more robust 2019-05-22 11:07:43 +01:00
Marc Bonnici
83f826d6fe utils/serializser: Re-fix support for YAML anchors
Include missing `flatten_mapping` call in our implementation of
`construct_mapping`. This is performed by a subclass in the default
implementation which was missing in our previous fix.
2019-05-17 20:04:33 +01:00
scott
1599b59770 workloads: add aitutu
Add a workload to execute the Aitutu benchmark.
2019-05-17 13:26:36 +01:00
Marc Bonnici
8cd9862e32 workloads/geekbench: Clean up version handling
The workload could attempt to use the version attribute before it was
discovered to assess the workload activity causing an error however the
whole process can be simplified using newer discovery features.
2019-05-17 09:15:23 +01:00
Marc Bonnici
76e6f14212 utils/serializer: pylint fixes 2019-05-15 19:48:39 +01:00
Marc Bonnici
ce59318e66 utils/serializer: Fix using incorrect loader and imports
- Ensure that the new loader is used when opening files to ensure that our
custom constructors are used.
- Fix missing imports
2019-05-15 19:48:39 +01:00
Sergei Trofimov
5652057adb utils/serializer: fix support for YAML anchors.
Change the way maps get processed by YAML constructor to support YAML
features, such as anchors, while still maintaining dict ordering.
2019-05-15 09:59:14 +01:00
Sergei Trofimov
e9f5577237 utils/serializer: fix error reporting for YAML
When attempting to access the message of a exception check not only that
e.args is populated, but also that e.args[0] actually contains
something, before defaulting to str(e).
2019-05-15 09:57:52 +01:00
Marc Bonnici
e3406bdb74 instruments/delay: Convert module name to identifier
- Ensure cooling module name is converted to identifier when resolving
- Fix typo
2019-04-26 08:04:45 +01:00
Marc Bonnici
55d983ecaf workloads/vellamo: Fix initialization order
Ensure that uiauto parameters are set before calling the super method.
2019-04-26 08:04:45 +01:00
Marc Bonnici
753786a45c fw/workload: Add activity attribute to APK workloads
Allow specifying an `activity` attribute for an APK based workload which
will override the automatically detected activity from the resolved APK.
2019-04-18 10:44:50 +01:00