Ensure all instruments are re-enabled prior to run finalization
so their `finalize()` methods are invoked. This fixes an issue
where instruments not enabled during the last job skipped finalization.
Fixes: #1295
Introduce a new workload for automating match replays in Honor of Kings.
This workload leverages ApkReventWorkload to launch the game and play
back a specified replay file.
Allow customization through parameters:
- `activity`: Specifies the activity string of the game.
- `replay_file`: Designates the replay file to be uploaded.
The game can be replayed via `wa replay` command as well, but this
plugin makes data collection (`fps`, `trace-cmd` like augmentations)
a lot easier.
Signed-off-by: Metin Kaya <metin.kaya@arm.com>
Some times a sysfs/debug fs will only generate a value on open. Subsequent seek/read will not vield any new values. This patch adds the option to reopen all files on each read.
Port v3.0 of Speedometer from Webkit [1] repo and update tarballs.
"version" field can be added to the workload agenda file to specify
which version of Speedomer should be used.
Size of v3.0 tarball is around 12 MB if the compression type is gzip.
Thus, in order to reduce total size of the repo, compress Speedometer
archives in LZMA format.
1. https://github.com/WebKit/WebKit/tree/main/Websites/browserbench.org/Speedometer3.0
Signed-off-by: Metin Kaya <metin.kaya@arm.com>
- Remove unused imports
- Handle the case that @candidate_files may be undefined
- Customize the log message regarding Speedometer timeout
Signed-off-by: Metin Kaya <metin.kaya@arm.com>
Add Geekbench command-line build workload for Android targets.
Geekbench apks allow to user to run the tests altogether. Using the
command-line, a single test or multiple tests can be specified.
Signed-off-by: Elif Topuz <elif.topuz@arm.com>
Implement tracing mode support (mainly for write-to-disk mode) in
TraceCmdInstrument, enabling efficient collection of large trace
datasets without encountering memory limitations.
This feature is particularly useful for scenarios requiring extensive
trace data.
Additional changes:
- Replace hardcoded strings with corresponding string literals for
improved maintainability.
Signed-off-by: Metin Kaya <metin.kaya@arm.com>
Update CI to run with later python versions and update to
align with latest available versions provided by github actions.
Pin to using ubuntu version 22.04 as this is the latest that support all
python versions.
The regex pattern for extracting speedometer score causes these
exceptions due to unescaped \d and \/ sequences:
wa/workloads/speedometer/__init__.py:109: SyntaxWarning: invalid escape
sequence '\d'
'(?:text|content-desc)="(?P<value>\d+.\d+)"[^>]*'
wa/workloads/speedometer/__init__.py:110: SyntaxWarning: invalid escape
sequence '\/'
'(?(Z)|resource-id="result-number")[^>]*\/>'
Fix the problem via defining the regex pattern as raw string literal to
properly escape backslashes.
Signed-off-by: Metin Kaya <metin.kaya@arm.com>
When speedometer is running on a Chrome package on Android 14, a pop-up
window was showing on the screen. Chrome preferences file is modified
to dismiss the window.
The key for 'include#' can now be either a scalar or a list.
A scalar triggers the same behaviour as before.
If the value is a list it must be a list of scalars (filepaths).
The paths will be loaded and merged in order, and finally the resulting
dict is included into the current scope.
- ``load_struct_from_yaml()`` has been moved to devlib [1].
- ``LoadSyntaxError()`` is already implemented in devlib.
- Remove ``load_struct_from_file()`` and ``RAND_MOD_NAME_LEN`` since
they are not used at all.
[1] https://github.com/ARM-software/devlib/commit/591825834028
Signed-off-by: Metin Kaya <metin.kaya@arm.com>
Use importlib.import_module instead of __import__ as per Python doc
recommendation.
This will also fix the case where the class is in a
package's submodule (since __import__ returns the top-level package),
e.g. "foo.bar.Class".
Introduce 'unlock_screen' option in order to help in automating Android
tests by unlocking device screen automatically. Surely this works only
if no passcode is set.
'unlock_screen' option implicitly requires turning on the screen. IOW,
it will override value of 'screen_on' option.
'diagonal', 'vertical' and 'horizontal' are valid values for
'unlock_screen' option as of now.
Note that this patch depends on
https://github.com/ARM-software/devlib/pull/659 in devlib repo.
Signed-off-by: Metin Kaya <metin.kaya@arm.com>
"--user <USER_ID" (current user: 0) option is added to
activity manager (am) command because of "Invalid userId" command.
Tested with other benchmarks (geekbench) as well.
Add an instrument that uses devlib's PerfettoCollector to collect a
Perfetto trace during the execution of a workload.
The instrument takes a path to a Perfetto config file which specifies
how Perfetto should be configured for the tracing.
Signed-off-by: Kajetan Puchalski <kajetan.puchalski@arm.com>