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

345 Commits

Author SHA1 Message Date
Sergei Trofimov
b1b2131b0c doc: fix build warnings 2018-05-18 10:32:08 +01:00
Sergei Trofimov
0a5ceabc73 fw/execution: finalize jobs before run.
Finalize jobs before performing whole-run finalization. This makes more
sense than finalizing individual jobs after run as a whole has been
finalized.
2018-05-14 17:05:06 +01:00
Sergei Trofimov
9226a3b92a fw: fix job logging indent
- Have the job manage the indent of each of its stages
- Switch output_processor to using indentcontext
- Move the "Configuring augmentations" log line into Job -- the
  rest of the stages are logged there, but this was done by the
  Executor for some reason.
2018-05-14 17:05:06 +01:00
Sergei Trofimov
98219bbba9 fw/output_processor: fix typo 2018-05-14 17:05:06 +01:00
Marc Bonnici
a61bca1a54 target/info: Fix typo 2018-05-14 16:34:10 +01:00
Sergei Trofimov
629abb1afc fw/target: add hostname to TargetInfo
Would especially be useful for Linux targets.
2018-05-10 11:51:24 +01:00
Sergei Trofimov
30eb98b275 fw/target: add hostid to TargetInfo
Add hostid entry, as reported by busybox's hostid applet, to TargetInfo.
This is intended to be a "unique 32-bit identifier for the current
machine". In practice, it may not be set, or may be generated from
something like an IP address, so may not be unique. However, if set, it
is still likely to be more unique than kernel/os version so may be worth
recording.
2018-05-10 11:51:24 +01:00
sergei Trofimov
181862b7ff fw/target: add sched_features to TargetInfo
Attempt to read scheduler features (debugfs might not be mounted) and
add them to TargetInfo.
2018-05-10 11:51:24 +01:00
sergei Trofimov
84fba8617d fw/target: enhanced cpu info
Replace Target.cpuinfo, which contained parsed contents of
/proc/cpuinfo, with a list of more comprehensive CpuInfo objects which
include cpufreq and cpuidle information as well.
2018-05-10 11:51:24 +01:00
sergei Trofimov
2d39e5699f fw/target: make TargetInfo more POD-like
Split out the loading of the TargetInfo from a target into a separate
function, leaving TargetInfo as a simple container.
2018-05-10 11:51:24 +01:00
Sergei Trofimov
1ffbce68c4 fw/execution: handle error on run initialize
- Use indentcontext inside initialize_run to make sure log level
  is dedented on error.
- Ensure Executor postamble always runs, event if runner errors.
- Fix format_duration() to handle sub-second timedeltas.
2018-05-10 11:49:30 +01:00
Sergei Trofimov
b41c3a3ea2 fw/plugin: implement __str__ for Plugin
Implement __str__ for Plugin in order to provide more readable
representations in logging.
2018-05-09 16:44:27 +01:00
Sergei Trofimov
2c28d5b214 fw/execution: implement __str__ for Executor
Implement __str__ for Executor in order to provide a more readable
representation in logs.
2018-05-09 16:44:27 +01:00
Sergei Trofimov
f477049181 fw/entrypoint: log commit hash if possible
Use get_wa_version_with_commit() instead of get_wa_version() when
logging WA version, so that the current commit is also logged, if
available.
2018-05-09 16:44:27 +01:00
Sergei Trofimov
2dbb6e8c18 fw/version: add get_wa_version_with_commit
Add a function to return WA version suffixed with the commit hash for
current HEAD. This only works if WA was deployed via

	python setup.py develop

otherwise, the output is identical to get_wa_version().
2018-05-09 16:44:27 +01:00
Sergei Trofimov
79c15ff02f fw/output: add sensible string representation
Add a useful string representation to output classes using class name and
the directory basename.
2018-05-09 16:44:27 +01:00
sergei Trofimov
a34858672f fw/plugin: do not try to load imported classes
When scanning modules for plugins, only consider classes defined in that
module, but not those imported into it. This will prevent log output
being polluted with repeated "Skipping..." messages for imported plugin
bases.
2018-05-09 15:06:31 +01:00
sergei Trofimov
ecc68ee367 utils/log: add indentcontext
Add indentcontext context manager to save having to add try/finally
clauses around indenting code just to ensure dedenting.
2018-05-09 15:06:31 +01:00
sergei Trofimov
7cf0b881c1 fw: move version and cmd line logging to main()
Move the logging of the WA version and command line used to invoke it
from run command into main() inside entrypoint. That way, these will be
the first entries in the log file, now that early log records are no
longer lost.
2018-05-09 15:06:31 +01:00
sergei Trofimov
8d330924dc fw/entrypoint: fix typos 2018-05-09 15:06:31 +01:00
sergei Trofimov
dd9a72f043 fw/config: union augmentation aliases, rather than merge
If more then one of augmentation entries ("augmentations",
"instrumenatation", "output_processors") is specified in the same
config they were being merged into a single entry.

This can cause issues with '~~' (drop everything glyph) being "resolved"
during this merge and therefore not actually used to drop all previous
augmentations.

Union'ing, instead of merging, configs at the same level avoids that.
Note that this is semantically correct, as we're not enforcing
precedence at the same level of config, so merge semantics do not apply.
2018-05-08 10:50:48 +01:00
sergei Trofimov
aacba47f9a utils/types: toggle_set: add "~~" semantics
Add support for "~~" special value that indicates that, when merging
into another set, all values from that set should in fact be dropped.
Apart from the unique merge semantics, "~~" just like any other "~"
value.
2018-05-08 10:50:48 +01:00
sergei Trofimov
5b03ac3afd config/core: JobsGenerator: delay augmentation split
Delay the split of augmentations into instruments and output processors
until they are actually being accessed; keep them as a single set until
then. This makes tracking of merges from various configurations sources
easier
2018-05-08 10:50:48 +01:00
Marc Bonnici
f4b47bf65a Fix typos 2018-04-30 09:14:11 +01:00
sergei Trofimov
f19ca4c00c fw/config: add logging to parsers
Add logging to config/agenda parsing.
2018-04-25 16:25:37 +01:00
Marc Bonnici
f463060870 framework/resource: Remove 'external_package' priority.
This priority level was left over from an older version of WA and is no
longer relevant.
2018-04-20 18:00:04 +01:00
Marc Bonnici
a963bd7768 framework/workload: Add missing alias for cleanup_assets 2018-04-20 18:00:04 +01:00
Marc Bonnici
98d9dd080c config/execution: Raise better error if no workloads specified.
If WA is ran without any workloads being specified, previously an index
error was thrown, now check that at least one global workload has been
specified and if not, provide a more helpful error message.
2018-04-11 19:05:33 +01:00
Marc Bonnici
4ab75bf722 config/core: Update decription of execution order
Remove reference to "classic" execution order.
2018-04-10 18:07:20 +01:00
Marc Bonnici
80f2e8c78b configuration/core: Fix logging rst indentation 2018-04-10 18:07:20 +01:00
Marc Bonnici
1832648add Framework/workload: Fix typo 2018-04-10 18:07:20 +01:00
Sergei Trofimov
be43d5d9b7 fw/config: add plugin_paths property to settings
Add plugin_paths property to settings which combines plugins_directory
with extra_plugin_paths, and use that inside pluginloader.
2018-04-10 10:29:44 +01:00
Sergei Trofimov
ed9dcdedd7 fw/config: add extra_plugin_paths setting
Add extra_plugin_paths setting which gets populated from WA_PLUGIN_PATHS
environment variable. This allows specifying additional locations to
scan for WA plugins.
2018-04-10 10:29:44 +01:00
Sergei Trofimov
ed74ae6654 fw/config: ensure params are obj_dict's
As part of finalizing a job spec, ensure all *_parameters are
obj_dict's.
2018-04-10 10:01:07 +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
Javi Merino
c67b917fd1 BaseUiAutomator: fix uiDeviceSwipeVertical
As it is implemented, it does the same as uiDeviceSwipeHorizontal.
Pass the x coordinates and y coordinates properly.
2018-04-06 09:48:29 +01:00
Marc Bonnici
cf4ec25615 framework/getters: Ignore connection errors with HTTP getter
If the http getter is used but a connection is not avalible, when
attempting to fetch the resource index an error will be raised. Now we
ignore the error allowing for the remaining getters to be used.
2018-04-06 09:40:05 +01:00
Sergei Trofimov
71f620f189 fw/config: add plugin type methods to plugin_cache
Add plugin type-specific methods (e.g. get_workload()) to plugin cache
so that it exposes the same interface as plugin loader.
2018-04-04 10:07:42 +01:00
setrofim
117f0f9fc4 fw/output: add augmentations to RunOutput
Add a property that gives augmentations used by all jobs in the run to
RunOutput.
2018-04-03 08:32:11 +01:00
Sergei Trofimov
d572e5210d fw/config: ensure boot/runtime_params are initialized
Ensure that boot and runtime parameters always get initialized to an
obj_dict even when not explicitly specified. This will ensure they get
serialized and deserialized properly.
2018-03-29 18:01:28 +01:00
Marc Bonnici
85d5d4f7df target/chromeosassistant: Fix missing disable_selinux parameter
Adds missing `disable_selinux` parameter to the chromeos assistant and
pass it to the android assistant if applicable.
2018-03-29 16:22:21 +01:00
Sergei Trofimov
72f2f82594 fw/config: better error when merging augs
If one or more entries for augmentations in configuration contains an
invalid value, raise ConfigError with the entry name.
2018-03-22 12:28:48 +00:00
Sergei Trofimov
3d7984412a fw/config: better message on config setting error
Catch exceptions raised when attempting to set value of a config point,
and re-raise as ConfigError with name associated with the value in the
config file.
2018-03-22 12:28:48 +00: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
1b9205f94a wa/framework: Add support for converting WA2 configuration to WA3 style
Upon initilisation WA3 will now also check if a WA3 config file
exisits, rather than just the exsistance of the config directory.
If a `config.yaml` file is not found WA will look for a WA2 config.py
file and convert it to the new format, otherwise a default config file
will be generated.
2018-03-20 08:24:58 +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
Marc Bonnici
31b46fb3b7 framework/configuration: Refactor code into seperate method 2018-03-20 08:24:58 +00:00
Sergei Trofimov
f3bb8e135a fw/execution: record UI state on error
Record UI state if an error occurs during setup, run, and output
processing stages (for other stages, the UI state is unlikely to be
relevant as they typically would not include UI manipulation).
2018-03-19 09:06:21 +00:00