Sergei Trofimov
4cc5aec39a
utils/serializer: make is_pod() recursive
...
If the object being passed into is_pod() is iterable (and not a
string), recursively check that its elements are also PODs.
2018-05-25 10:21:06 +01:00
Marc Bonnici
86ba51be72
framework/execution: Implement each_spec
reboot policy
...
Implement the `each_spec` reboot policy so that the device will be
rebooted if the spec has changed.
2018-05-25 10:02:17 +01:00
Marc Bonnici
f13e3adf99
framework/execution: Fix previous/next job
...
The next and previous job attribute implementations of context were
swapped.
2018-05-25 10:02:17 +01:00
Marc Bonnici
d6e9e503fa
framework/execution: Allow for retrying the intial reboot
...
If the device is to perform an initial reboot, allow up to `max_retries`
from the run configuration for the reboot to succeed and add logging to
inform the user.
2018-05-25 10:02:17 +01:00
Marc Bonnici
8654fcfc30
framework/execution: Treat reboot as part of job allowing retires
...
Treat the optional reboot of the device as part of the job itself so that
if the reboot fails it will be retried in accordance to the job
configuration.
2018-05-25 10:02:17 +01:00
Marc Bonnici
4a427f830b
framework/execution: Move start/stop calls to the TargetManager to Runner
...
Instead of starting and stopping the target from inside the Context,
move the calls to the Runner. This allows for the any initilizaton
errors to be dealt with as part of the job and retried as
appropriate.
2018-05-25 10:02:17 +01:00
Marc Bonnici
c3e4bdc964
config/core: Re-add by_spec
reboot policy
...
The `by_spec` reboot policy was removed in commit
0a549bd28e01a800566e9ad05a9420e1e4db3adc however this is still
desirable so re-add.
2018-05-25 10:02:17 +01:00
Sergei Trofimov
23946620d6
fw/job: add missing log indents
...
Add "with indentcontext():" to Job stages that were missing them.
2018-05-24 17:44:03 +01:00
Marc Bonnici
a32e7e7bc7
doc/plugin: Add instrument backends to plugin reference
...
Add documentation for the energy instrument.
2018-05-24 16:57:47 +01:00
Marc Bonnici
c338962c48
utils/doc: Add missing newline when generating aliases docs
...
Ensure when extracting aliases documentation it is followed by 2
newlines so that it formats correctly.
2018-05-24 16:57:47 +01:00
Marc Bonnici
bbb5cb9643
doc/build_plugin_docs: Only load the required plugins
...
When updating the pluginload only load the modules we want to document
rather than load all avalible and then filter.
2018-05-24 16:57:47 +01:00
Marc Bonnici
03e5c6c0af
framework/pluginloader: Make sure to also clear aliases
...
When 'clearing' the pluginloader previously any aliases already
discovered were not removed, now ensure all discovered items are
removed.
2018-05-24 16:57:47 +01:00
Marc Bonnici
30f856abe0
framework/execution: Only add screenshots as an artifact if present
...
When attempting to take a screenshot from a device do not try to add it
as an artifact if screenshot failed and is not present.
2018-05-24 11:49:10 +01:00
Marc Bonnici
c3854e89c7
framework/host: Fix Typo
2018-05-24 11:49:10 +01:00
Marc Bonnici
e008134145
framework/host: Add missing defaults for agenda conversion
...
Ensure that defaults are correctly populated when converting a WA2 agenda
to the WA3 style.
2018-05-24 11:49:10 +01:00
Marc Bonnici
6cb7031713
wa/misc: Fix format_duration() to handle missing time
...
If a run is interrupted this can cause the time to be `None` causing an
error, if this is the case then set time to 0 and therefore return `N/A`.
2018-05-24 11:49:10 +01:00
Marc Bonnici
f73f502ecd
tests/agenda_parser: Update agenda tests to the AgendaParser
...
The current test was designed to test the removed `Agenda` class, we now
use use an `AgendaParser` so update the tests to test its functionality
instead.
2018-05-24 11:49:10 +01:00
Marc Bonnici
2f02ee3b16
tests/test-agenda: Update to WA3 workloads
...
Update old WA2 only workloads to those present in WA3
2018-05-24 11:49:10 +01:00
Marc Bonnici
f49dfeac70
config/core: Remove JobGenerator unused sections
attribute
...
Remove the used attribute `sections` from the JobGenerator
2018-05-24 11:49:10 +01:00
Marc Bonnici
614a590b35
utils/counters: Remove duplicated counter
...
The implementation of the `counter` was duplicated in both
`wa.utils.counters` and `wa.utils.types.counter` the latter of which is
currently unsed, therefore port missing functionality to the former and
remove.
2018-05-24 11:49:10 +01:00
Marc Bonnici
a13e205280
fw/configuration: Allow for numerical ids to be used
...
Previously WA would fail if a purely numerical id was used, now
explicitly convert the id to a string before use.
2018-05-24 11:49:10 +01:00
Marc Bonnici
2abfe68b07
fw/parsers: Raise error if no workload is specified
...
Ensure that an error is raised if no workload name is specified in an
agenda.
2018-05-24 11:49:10 +01:00
Sergei Trofimov
ffdb6235c9
workloads: add openssl
...
Add a workload that runs openssl's speed command to benchmark the
performance of various openssl algorithms.
2018-05-23 14:51:54 +01:00
Sergei Trofimov
76f436d770
commands/show: handle aliases
...
Replace the ad-hoc get_plugin() function in the show command (which was
broken for aliases) with a call to pluginloader.get_plugin_class(),
which correctly handles alias resolution.
2018-05-23 14:51:54 +01:00
Sergei Trofimov
712e64458c
commands/show: add missing blank lines
2018-05-23 14:51:54 +01:00
Sergei Trofimov
2a2eafa282
utils/doc: include plugin aliases in the docs
...
If a plugin defines aliases, include the aliases and the parameter
values they correspond to inside the docs.
2018-05-23 14:51:54 +01:00
Sergei Trofimov
063212c2a9
fw/config: resolve aliases inside plugin_cache
...
- expose pluginloader's resolve_alias in plugin_cache (it's supposed
to be a transparent proxy for pluginloader).
- resolve aliases inside _set_plugin_defaults() to make sure the
correct defaults are used when creating job specs.
2018-05-23 14:21:11 +01:00
Sergei Trofimov
775f3d55f2
fw/plugin: return a copy of alias params
...
When resolving aliases, return a copy of the alias' params to ensure
they don't get modified by the calling code.
2018-05-23 14:21:11 +01:00
Sergei Trofimov
8c1f636808
fw: export Alias into the main __init__.py
...
Alias is part of the API, and should therefore be exported.
2018-05-23 14:21:11 +01:00
Marc Bonnici
cacc4dec8b
doc: Update RebootPolicy and ExectionOrder information
2018-05-23 10:14:34 +01:00
Marc Bonnici
dc41af1f3f
framework/tm: Ensure RebootPolicy is respected with unresponsive target
...
Expose the RebootPolicy as an attribute of the ExectionContext and ensure
that that the target is not automatically rebooted if the reboot
policy is set to "Never".
2018-05-23 10:14:34 +01:00
Marc Bonnici
78d5b18182
framework/execution: Implement reboot policies
...
Although the configuration of reboot policies was present the actual
implementation was missing.
2018-05-23 10:14:34 +01:00
Marc Bonnici
1a67a3a4e5
config/core: Rename each_iteration
RebootPolicy to each_job
...
Rename the parameter to be clearer on the effect of the policy, as this
will cause WA to reset the device for each new job it runs regardless of
the iteration number.
2018-05-23 10:14:34 +01:00
Marc Bonnici
9d8f1ec68e
config/core: Remove by_spec
reboot policy
...
This reboot policy was left over from previous versions of WA and
is no longer relevant.
2018-05-23 10:14:34 +01:00
Marc Bonnici
c2b039ba2d
framework/execution: Remove unused attribute
2018-05-23 10:14:34 +01:00
Marc Bonnici
2a95a198b0
framework/config: Rename by_spec
to by_workload
execution order
...
Rename the `by_spec` execution order to `by_workload` and update
description for clarification.
2018-05-23 10:14:34 +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
3efff81a5c
utils/exec_control: Fix issue with once_per_instance
decorator
...
Previously the `once_per_instance` used the output of `__repr__` to
identify the class of where the decorated method was called from. For
classes that override this method to produce the same output for
different instances of the same class this caused different instances to
be mistakenly treated as one. Now use the hash of the containing class
instead of the string representation and update the tests to catch this
error.
2018-05-22 17:18:40 +01:00
Marc Bonnici
bea36cc398
doc: Update output_api
references
2018-05-21 10:26:28 +01:00
Marc Bonnici
04fe3768af
doc: Misc fixes
...
Fix typos, formatting and irrelevant information.
2018-05-21 10:26:28 +01:00
Marc Bonnici
f4dd1a1c84
doc/migration_guide: Add additional parameter changes
2018-05-21 10:26:28 +01:00
Marc Bonnici
4f295af96c
doc/index: Update intro description of WA.
2018-05-21 10:26:28 +01:00
Marc Bonnici
43a8f01109
dev_scripts/dev8: Update to use WA3 paths
2018-05-21 10:26:28 +01:00
Marc Bonnici
041f4d93f7
tests/test_diff: Update instrumentation
reference.
...
Update the import path for the test to use `instruments` instead of
`instrumentation`.
2018-05-21 10:26:28 +01:00
Marc Bonnici
978d43b33d
doc: Update linaro link
2018-05-21 10:26:28 +01:00
Marc Bonnici
b3d34e25ff
doc: Update sysfile documentation.
...
Remove duplicated information and added link to additional
documentation.
2018-05-21 10:26:28 +01:00
Marc Bonnici
700989298c
doc: Correct ID names
2018-05-21 10:26:28 +01:00
Marc Bonnici
69462e54a1
doc: Update APK workload parameter descriptions.
...
Clarify parameter descriptions.
2018-05-21 10:26:28 +01:00
Marc Bonnici
5c6cc87105
doc: Update sections example.
...
Modify documention and example to better explain sections
2018-05-21 10:26:28 +01:00