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

987 Commits

Author SHA1 Message Date
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
Marc Bonnici
8647ceafd8 workloads/meabo: Fix incorrect add_metric call 2019-04-03 11:33:27 +01:00
Marc Bonnici
2c2118ad23 fw/resource: Fix attempting to match against empty values
Update checking of attributes to allow for empty structures as they can
be set to empty lists etc. and therefore should not be checking if
explicitly `None`.
2019-04-02 07:54:05 +01:00
Marc Bonnici
0ec8427d05 fw/output: Implement retriving "augmentations" for JobDatabaseOutputs
Enable retriving augmentations on a per job basis when using a Postgres
database backend.
2019-03-18 15:26:19 +00:00
Marc Bonnici
cf5c3a2723 fw/output: Add missing "augmentation" attribute to JobOutput
Add attribute to `JobOutput` to allow easy listing of enabled augmentations
for individual jobs rather than just the overall run level.
2019-03-18 15:26:19 +00:00
Marc Bonnici
8ddc1c1eba fw/version: Bump to development version 2019-03-04 15:50:13 +00:00
Marc Bonnici
b5db4afc05 fw/version: Version Bump
Bump to the next revision release.
2019-03-04 15:50:13 +00:00
Marc Bonnici
769aae3047 utils/serializer: Explicitly state yaml loader
In newer versions of PyYAML we need to manually specify the `Loader` to
be used as per https://msg.pyyaml.org/load.
`FullLoader` is now the default loader which attempts to avoid arbitrary
code execution, however if we are running an older version where this is
not available default back to the original Loader.
2019-03-04 15:50:13 +00:00
Marc Bonnici
a1ba3c6f69 utils/misc: Update load structure to use WA's yaml wrapper 2019-03-04 15:50:13 +00:00
Marc Bonnici
536fc7eb92 workloads/stress_ng: Update to use WA's yaml wrapper 2019-03-04 15:50:13 +00:00
Marc Bonnici
de36dacb82 fw/version: Bump to development versions 2019-03-04 10:37:39 +00:00
Marc Bonnici
637bf57cbc fw/version: Bump revison versions
Bump the revision version for WA and the required version for
devlib.
2019-03-04 10:37:39 +00:00
Marc Bonnici
ba0cd7f842 fw/target/info: Bump target info version
Due to mismatches in WA and devlib versions this previous upgrade method
could have been trigger before it was needed and would not be called a
second time. Now we can be sure that WA and devlib are updated together
bump the version number again to ensure the upgrade method is called a
second time to ensure the POD is upgraded correctly.
2019-03-04 10:37:39 +00:00
Marc Bonnici
adb3ffa6aa fw/version: Introduce required version for devlib
To ensure that a compatible version of devlib is installed on the system
keep track of the version of devlib that is required by WA and provide a
more useful error message if this is not satisfied.
2019-03-04 10:37:39 +00:00
Marc Bonnici
2ce8d6fc95 output_processors/postgresql: Add missing default
In the case of no screen resolution being present ensure that a default
is used instead of `None`.
2019-02-14 10:51:38 +00:00
Marc Bonnici
1415f61e36 workloads/chrome: Fix for tablet devices
Some tablet devices use an alternate tab switching method due to the
larger screen space. Add support for adding new tabs via the menu
instead of via the tab switcher.
2019-02-08 14:32:58 +00:00
Marc Bonnici
6ab1ae74a6 wa/apk_workloads: Update to not specify a default apk version.
No longer specify a default version to allow any available apks to be
detected and then choose the appropriate automation based on the
detected version.
Refactor to support new supported_versions attribute and since APK
resolution needs to have happened before setting uiauto parameter
move assignments to ``initialize``.
2019-02-08 13:56:55 +00:00
Marc Bonnici
a1cecc0002 fw/workload: Add "support_versions" attribute to workloads
Allow for specifying a list of supported APK versions for a workload. If
a specific version is no specified then attempt to a resolve any valid
version for the workload.
2019-02-08 13:56:55 +00:00
Marc Bonnici
0cba3c68dc fw/resource: Support matching APKs on multiple versions.
In the case where a range of apk versions are valid allow for the matching
process to accommodate a list of versions instead of a single value.
2019-02-08 13:56:55 +00:00
Marc Bonnici
f267fc9277 fw/workload: Use apk version for workload if not set.
If a workloads `version` attribute is not set, and an APK file is
found, use this as the version number. This allows for workloads to not
specify a default version via parameters and for an available APK to be
automatically chosen.
2019-02-08 13:56:55 +00:00
Sergei Trofimov
462a5b651a fw/output: add label property to Metric
Add a "label" property to Metric that combines its name with its
classifiers into a single string.
2019-02-05 10:27:06 +00:00
pablololo12
7cd7b73f58 Fixed an error emptying the reading buffer of the poller
Fixed identation

Fixed identation
2019-02-04 09:46:13 +00:00
Marc Bonnici
4a9a2ad105 fw/target/info: Fix for KernelConfig refactor
The Devlib KernelConfig object was refactored in commit
f65130b7c7
therefore update the way KernelConfig objects are deserialized to reflect the new
implementation and provide a conversion for PODs.
2019-01-31 09:44:30 +00:00
Marc Bonnici
9f88459f56 fw/workload: Fix Typo 2019-01-30 15:46:54 +00:00
Marc Bonnici
a2087ea467 workloads/manual: Fix incorrect attribute used to access target 2019-01-30 15:46:54 +00:00
Marc Bonnici
31a5a95803 output_processors/postgresql: Ensure screen resolution is a list
Ensure that the screen resolution is converted to a list to prevent
casting errors.
2019-01-30 15:46:54 +00:00
Marc Bonnici
ce7720b26d instruments/fps: Fix Typo 2019-01-28 12:45:10 +00:00
Marc Bonnici
766b96e2ad fw/workload: Add a 'View' parameter to ApkWorkloads
Allow for easy configuring of a view for a particular workload as this
can vary depending on the device which can be used when using certain
instruments for example `fps`.
2019-01-11 10:12:42 +00:00
Marc Bonnici
5263cfd6f8 fw/version: Add development tag to version
Add a development tag to the version format instead of using the
revision field.
2019-01-11 10:12:26 +00:00
Marc Bonnici
e312efc113 fw/version: Version bump for minor fixes 2019-01-10 13:21:16 +00:00
Sergei Trofimov
ed95755af5 fw/output: better classifiers format for metrics
Use a dict-like string representation for classifiers, rather than the
default OrderedDict one, which is a lot more verbose and difficult to
read.
2019-01-10 13:03:29 +00:00
syl-nktaylor
4c6636eb72 tools/revent: update binaries to latest version
- cross-compiled revent binaries to match latest version (with recording timestamp fix f64aaf6 on 12 Oct 2018)
toolchains used:
gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabi
gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu

- fixes error in utils/revent.py when reading timestamps from recordings made with previous wa revent binaries
2019-01-07 13:31:07 +00:00
Marc Bonnici
60fe412548 wa/version: Update to development version
Update WA and devlib versions to development tags.
2019-01-04 11:29:10 +00:00
Marc Bonnici
e187e7efd6 fw/version: Verion Bump to v3.1.0 2018-12-21 14:31:07 +00:00
Marc Bonnici
8770888685 workloads/googleslides: Misc Fixes:
- Move the slide editing test into the main runWorkload instead of
setup.
- On some devices the folder picker has changed layout so add support for
navigating.
- Add support for differently capitalized splash buttons.
- Add workaround for adding a new slide if click the button doesn't work
the first time.
2018-12-21 14:26:55 +00:00
Marc Bonnici
755417f139 workloads/speedometer: Misc Fixes
- Fix formatting
- Skip teardown automation if elements are not present on some devices
instead of failing the workload.
- Give extra time for start button to appear as some devices can be slow
to load.
2018-12-21 14:26:55 +00:00
Marc Bonnici
ba4004db5f workloads/googlemaps: Fix for alternative layouts.
Add additional check for text based directions button as id can be
missing on some devices and allow for skipping the view steps stage for
large screen devices which do not require this step.
2018-12-21 14:26:55 +00:00
Marc Bonnici
87ac9c6ab3 workloads/androbench: Fix extracting benchmark results
On some devices the entire results page fits on one screen and does not
present a scrollable element, therefore only attempt to scroll if
available.
2018-12-21 14:26:55 +00:00
Marc Bonnici
b93beb3f1f commands/show: Revert quoting method switch
In commit bb282eb19c devlibs
`escape_double_quotes` method was retired in favour of the `pipes.quote`
method however this does not format correctly for this purpose therefore
revert back to the original escaping method.
2018-12-21 14:05:14 +00:00
Marc Bonnici
6b03653227 fw/rt_config: Update tunables parameter to match other formats
Update RT param `governor_tunables` to `gov_tunables` to match the style
of the other paramters e.g. `big_gov_tunables`.
2018-12-14 07:44:44 +00:00
Marc Bonnici
a9e254742a fw/rt_param_manager: Add support for aliased parameters
Additionally check for aliases when matching runtime parameters to their
corresponding cfg points.
2018-12-14 07:44:44 +00:00
Marc Bonnici
f2d6f351cb output_processors/postgres: Fix incorrect parameter
When verifying the database schema the connection instead of a cursor
should be passed.
2018-12-07 10:51:18 +00:00
Marc Bonnici
72046f5f0b fw/output: Convert Status enums to/from POD during (de)serialization
Previously the `Status` Enum was converted to a string as part of
serialization however now use the Enum `to_pod` method and make the
respective changes for de-serialization.
2018-12-07 09:55:17 +00:00
Marc Bonnici
4f67cda89f utils/types: When creating an enum also try to deserialize from POD
Allows for recreating an Enum from a full string representation of the Enum
rather than just the name of the Enum.
2018-12-07 09:55:17 +00:00
Marc Bonnici
0113940c85 fw/execution: Fix status being assigned as strings 2018-12-07 09:55:17 +00:00
Marc Bonnici
0fb8d261fa fw/output: Add check for schema versions 2018-12-07 09:55:17 +00:00
Marc Bonnici
0426a966da utils/postgres: Relocate functions to retrieve schema information
Move the functions to retrieve schema information to general utilities to
be used in other classes.
2018-12-07 09:55:17 +00:00
Marc Bonnici
eabe15750c commands/create: Allow for upgrading database schema
Provide a method of upgrading existing postgres databases to a new
schema version.
2018-12-07 09:55:17 +00:00
Marc Bonnici
250bf61c4b postgres: Update schema to v1.2
Update the postgres database schema:
    - Rename "resourcegetters" schema to "resource_getters" for
      consistency
    - Rename "retreies" colum to "retry" to better relflect it purpose
    - Store additional information including:
        - POD serialization data
        - Missing target information
        - JSON formatted runstate
2018-12-07 09:55:17 +00:00
Marc Bonnici
64f7c2431e utils/postgres: Rename postgres_covert to house more general methods
Rename the postgres_covert file to allow for place more general postgres
utility functions.
2018-12-07 09:55:17 +00:00
Marc Bonnici
0fee3debea fw/output: Implement the Output API for using a database backend
Allow for the creating of a RunDatabaseOutput to allow for utilizing WA
output API from run data stored in a postgres database.
2018-12-07 09:55:17 +00:00
Marc Bonnici
423882a8e6 output_processors/postgres: Update target info to use POD representation
Instead of taking values directly when storing target information use
the POD representation to allow for restoring the state.
2018-12-07 09:55:17 +00:00
Marc Bonnici
86287831b3 utilts/serializer: Update exception method to support Python3 2018-12-07 09:55:17 +00:00
Marc Bonnici
e81aaf3421 framework/output: Split out common Output functionality
In preparation for the creation of a DatabaseRunOut split out
functionality that can be shared.
2018-12-07 09:55:17 +00:00
Marc Bonnici
2d7dc61686 output_processors/postgresql: Serialize parameters in json
To make it easier to deserialize the data again ensure that the data is
converted to json rather than using the built in string representation.
2018-12-07 09:55:17 +00:00
Marc Bonnici
88a4677434 utils/serializer: Fix attempting to deserialize a single value. 2018-12-07 08:46:12 +00:00
Marc Bonnici
dcf0418379 fw/config/execution: Implement CombinedConfig as Podable
Ensure that the various Configuration structures now have serialization
versions.
2018-12-07 08:46:12 +00:00
Marc Bonnici
1723ac8132 fw/output: Implement Output structures as Podable
Ensure that the various Output structures now have serialization
versions.
2018-12-07 08:46:12 +00:00
Marc Bonnici
1462f26b2e fw/run: Implement Run Structures as Podable
Ensure that Run structures now have serialization versions.
Also fix serialization/de-serialization of `Status` type as previously this
was formatted as a String instead a pod.
2018-12-07 08:46:12 +00:00
Marc Bonnici
8ee924b896 fw/config/core: Implement Configuration structures as Podable
Ensure that the various Configuration structures now have serialization versions.
2018-12-07 08:46:12 +00:00
Marc Bonnici
92cf132cf2 fw/target/info: Implement TargetInfo structures as Podable
Ensure that the various data structures used to store target information
now have a serialization versions.
2018-12-07 08:46:12 +00:00
Marc Bonnici
4ff7e4aab0 utils/serializer: Add Podable Mix-in class
Add a new mix-in class for classes that are serialized to PODs, the aim
of this class is to provide a way to ensure that both the original data
version and the current serialization version are known. When attempting
to de-serialize a POD the serialization version will be compared to the
latest version in WA if not matching will call the appropriate method to
upgrade the pod to a known structure state populating any missing fields
with a sensible default or converting the existing data to the new
format.
2018-12-07 08:46:12 +00:00
Marc Bonnici
e0ffd84239 fw/output: Ensure that Event message is converted to a string
Explicitly convert the passed message into a string as this is expected when
generating a event summary, otherwise splitting can fail.
2018-12-04 15:15:47 +00:00
Marc Bonnici
d3d5ca9154 workloads/glbench: Port workload to WA3 2018-11-23 17:24:41 +00:00
Marc Bonnici
88f708abf5 target/descriptor: Update default sudo command format
Due to changes introduced in devlib https://github.com/ARM-software/devlib/pull/339
the command placeholder should no longer be in quote so remove them from
the default value.
2018-11-21 15:07:25 +00:00
Marc Bonnici
bb282eb19c wa: Remove reference to devlibs escaping methods
As part of https://github.com/ARM-software/devlib/pull/339 the escaping
method are being removed in favour of using `quote` from `pipes` so
also make reflecting changes here.
2018-11-21 15:07:25 +00:00
Marc Bonnici
285bc2cd0b workloads/gfxbench: Move test selection into setup phase
Previously the configuration of the tests was performed in the run stage
instead of the setup.
2018-11-20 10:10:19 +00:00
Marc Bonnici
0d9dbe8845 workloads/gfxbench: Fix clicking on select tests
The X coordinate was miscalculated when attempting to load the test
selection menu.
2018-11-20 10:10:19 +00:00
Marc Bonnici
c89ea9875e workloads/gfxbench: Fix parameter description 2018-11-20 10:10:19 +00:00
Marc Bonnici
e4283729c1 workloads/gfxbenchmark: Fix score matching
On some devices the score string obtained can contain extra characters.
Only use the numerical values from the score when converting, otherwise
if not found set the result to 'NaN'.
2018-11-20 10:10:19 +00:00
Marc Bonnici
a2eb6e96e2 commands/process: Fix initialization of ProcessContext ordering
Ensure that that ProcessContext is initialized before attempting to
initialize any of the output processors.
2018-11-19 10:17:53 +00:00
scott
3bd8f033d5 workloads: Updating geekbench to support v4.3.1
v4.3.1 has made a minor change to the run cpu benchmark element.
Refactoring to support both the new and previous elements.
2018-11-15 15:56:09 +00:00
Marc Bonnici
ea1d4e9071 workloads/gfxbench: Do not clear package data on launch
By clearing the application data each time the workload is run this
forces the required assets to be re-installed each time. As the
workload is not affected by persistent state do not perform the
clearing.
2018-11-15 07:54:43 +00:00
Marc Bonnici
cc0cfaafe3 fw/workload: Add attribute to control if package data should be cleared.
Allow specifying that the package data should not be cleared
before starting the workload.
2018-11-15 07:54:43 +00:00
Marc Bonnici
1b4fc68542 workloads/gfxbench: Fix formatting 2018-11-13 13:06:54 +00:00