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

1081 Commits

Author SHA1 Message Date
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
Marc Bonnici
e40517ab95 workloads/gfxbench: Fix not detecting missing asset popup
Add check for a differently worded popup informing that assets are
missing.
2018-11-13 13:06:54 +00:00
Sergei Trofimov
ce94638436 fw/target: record page size as part of TargetInfo
Record target.page_size_kb as part of target info.
2018-11-02 12:11:00 +00:00
Sergei Trofimov
d1fba957b3 fw/target: add versioning to TargetInfo
Add format_version class attribute to TargetInfo to track format
changes. This is checked when deserializing from POD to catch format
changes between cached and obtained TargetInfo's.
2018-11-02 12:11:00 +00:00
Marc Bonnici
281eb6adf9 output_processors/postgresql: Refactor and fix uploading duplication
Previously run level artifacts would be added with a particular job_id,
and updated artifacts would be stored as new objects each time. Refactor
to remove unnecessary instance variables, only provide a job_id when
required and add an update capability for largeobjects to ensure this
does not happen.
2018-10-24 10:42:28 +01:00
Marc Bonnici
576df80379 output_processors/postgres: Move logging message
Print the debug message warning about writing a large object to the
database before writing the object.
2018-10-24 10:42:28 +01:00
Marc Bonnici
f2f210c37f utils/postgres_convert: PEP8 fix
Remove unused local variable.
2018-10-24 10:34:44 +01:00
Marc Bonnici
6b04cbffd2 worklods: Fix whitespace 2018-10-24 10:34:44 +01:00
Marc Bonnici
dead312ff7 workloads/uiauto: Update workloads to dismiss android version warning
Update workloads that use uiautomator and can display a warning about
using an old version of the app to dismiss the popup if present.
2018-10-24 10:34:44 +01:00
Marc Bonnici
7632ee8288 fw/uiauto: Add method to baseclass to dismiss android version popup
In Android Q a popup will be displayed warning if the application has
not been designed for the latest version of android. This has currently been
dealt with on a per workload basis however this is a common popup so
add a method to dismiss the popup if present to the base class.
2018-10-24 10:34:44 +01:00
Lisa Nguyen
8f6b1a7fae workloads/vellamo: Close warning popup message to run on Android Q
While attempting to run vellamo on Android Q, a popup warning with
the message, "This app was built for an older version of Android and may not
work properly. Try checking for updates, or contact the developer." would
appear, causing the workload to halt.

Close the popup warning before dismissing EULA and executing the remaining
steps to run vellamo.

Tested with vellamo apk version 3.2.4.

Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2018-10-23 10:17:45 +01:00
syltaylor
f64aaf64a0 tools/revent: recording timestamp fix
- force cast start/end timestamps to uint64_t to correct recording format issue on 32bit devices (i.e. 4 bytes timespec tv_sec written on 8 bytes memory slot)
2018-10-15 09:48:02 +01:00
Marc Bonnici
7dce0fb208 workloads/jankbench: Ensure logcat monitor thread is terminated
Previously the LogcatRunMonitor left the logcat process running in the
background causing issues with concurrent accesses. Now ensure the thread
terminates correctly.
2018-10-12 13:41:21 +01:00
Marc Bonnici
375a36c155 utils/log: Ensure to convert all arguments to strings
Ensure that all arguments provided for an Exception are converted to
stings before attempting to join them for debug information.
2018-10-09 15:26:53 +01:00
Marc Bonnici
7c3054b54b commands/run: Update run output with final run config
The RunInfo object in the run output is initally created before the
config has been fully parsed therefore attributes for the project and
run name are never updated, once the config has been finalized make sure
to update the relavant information.
2018-10-09 15:26:53 +01:00
Sergei Trofimov
98727bce30 utils/revent: recording parser fixes
- change magic string literal to a b'' string so that the comparison
  works in python 3
- expand timestamp tuples (struct.unpack always returns a tuple) before
  attempting to cast to float.
2018-10-08 17:46:35 +01:00
Marc Bonnici
93ffe0434c workloads/meabo: Support python 3
Ensure output is encoded correctly if running with python 3
2018-10-05 10:10:43 +01:00
Marc Bonnici
75f3080c9b workloads: Use uninstall method instead of uninstall_executable
For workloads that support Linux targets do not use
`uninstall_executable` as this is not available, instead use `uninstall` as
other targets should be able to determine the appropriate uninstallation
method.
2018-10-05 10:10:43 +01:00
Marc Bonnici
75c0e40bb0 workloads/androbench: Fix extracting results with small resolutions
Previously the workload assumed that all the scores were visible on a
single screen however for devices with smaller displays the results need
to scrolled.
2018-10-03 14:33:09 +01:00
Qais Yousef
e73b299fbe pcmark: update uiautomation to fix Android-Q breakage
A new popup appears when running pcmark on android Q that complains
about the app being built for an older version of android.

Since this popup will be temporary, the fix has to make sure not to
break in the future when this popup disappears or when the test is ran
on a compatible version of android.

To achieve this, we attempt to dismiss the popup and if we timeout we
silently carry on with the test assuming no popup will appear.

Signed-off-by: Qais Yousef <qais.yousef@arm.com>
2018-10-01 16:12:05 +01:00
scott
9a4a90e0a6 GFXBench: New workload
Creating a new workload to execute the following tests on GFXBench.

* Car Chase
* Car Chase Offscreen
* Manhattan 3.1
* 1080p Manhattan 3.1 Offscreen
* 1440p Manhattan 3.1 Offscreen
* Tessellation
* Tessellation Offscreen
2018-09-25 17:27:58 +01:00
scott
8ba602cf83 Googlephotos: Updating to work with latest version
Updating the googlephotos workload to work with app version 4.0.0.212659618
2018-09-25 10:50:03 +01:00
Marc Bonnici
891ef60f4d configuration: Add support for section groups
Now allows for specifying a `group` value for each section which will
cross product the sections within that group with the sections in each
other group. Additionally classifiers will automatically be added to
each job spec with the relevant group information.
2018-09-24 10:17:26 +01:00
Marc Bonnici
6632223ac5 output_processors: Move variable initialization to __init__
In the case of a failure in the initialization of one output_processor the
remaining `initialize` methods may not get called causing variables to
not be initialized correctly.
2018-09-21 15:06:30 +01:00
Marc Bonnici
5dcac0c8ef output_processors/postgres: Do not process output if not connected
Only try to process the run output if the processor is connected to a
database.
2018-09-21 15:06:30 +01:00
Marc Bonnici
9a9a2c0742 commands/create: Add version check for Postgres Server
The 'jsonB' datatype was only added in v9.4 so ensure that the Postgres
server to is running this or later and inform the user if this is not
the case.
2018-09-21 15:06:30 +01:00
Marc Bonnici
57aa5ca588 fw/version: Add developement tag to version number 2018-09-21 15:06:30 +01:00
Marc Bonnici
fce506eb02 instruments/misc: Fix typo 2018-09-21 15:06:30 +01:00
Marc Bonnici
a1213cf84e commands/create: Use class name rather than user supplied name
Use the actual name of the plugin instead of the user supplied value,
for consistency and ensure that duplicate entries cannot be specified.
2018-09-21 15:06:30 +01:00
Marc Bonnici
a7d0b6fdbd target/descriptor: Do not convert the module list to strings
Change the type of the `modules` to `list` so that additional
configuration can be supplied to individual modules as a dict of values.
2018-09-21 15:06:30 +01:00
Marc Bonnici
7d01258bce fw/target/manager: Do no finalize target if not instantiated
In the case of an error occurring during target initialization do not
try and check for disconnecting upon finalizing.
2018-09-21 15:06:30 +01:00
scott
ccaca3d6d8 Speedometer: Extending teardown function
Some devices throw errors if too many browser tabs are open. Have
added a method to close down the tabs in the teardown function.
2018-09-20 10:26:34 +01:00
Waleed El-Geresy
6d654157b2 Add Postgres Output Processor
The Output processor which is used to upload the results found in the
wa_output folder to a Postgres database, whose schema is defined by the
WA Create Database command.
2018-09-12 10:13:34 +01:00
Waleed El-Geresy
bb255de9ad Add WA Create Database Command
Add a command to create a PostgreSQL database with supplied parameters
which draws its structure from the supplied schema (Version 1.1). This
database is of a format intended to be used with the forthcoming WA
Postgres output processor.
2018-09-12 10:13:34 +01:00
Marc Bonnici
ca03f21f46 workloads/jankbench: Update to clear logcat using devlib
Leftover code from WA2 meant that logcat was cleared on the device by
the workload directly instead of using devlib, this caused issues if logcat was
still being cleared from other areas of the code.
2018-09-10 13:30:59 +01:00
Marc Bonnici
59e29de285 workloads/jankbench: Replace errors during decoding
When running jankbench invalid bytes can be read from the device causing
decoding in the monitor to fail, now replace any invalid sequences.
2018-09-10 13:30:59 +01:00
scott
0440c41266 Googleslides: Updating the workload to support the new range of huawei devices 2018-09-06 18:01:24 +01:00
Marc Bonnici
b20b9f9cad instruments/perf: Port the perf instrument to WA3 2018-09-06 08:39:09 +01:00
Marc Bonnici
8cd79f2ac4 fw/instrument: Fix compatibility with Python2
The Python2 inspect module does not contain the `getfullargspec` method so call
the appropriate method depending on Python version.
2018-09-05 15:44:48 +01:00
Waleed El-Geresy
718f2c1c90 Expose context in OP initialize and finalize
Expose the context to the initialize and finalize functions for Output
Processors. This was found to be necessary for the upcoming PostgreSQL
Output Processor.
2018-09-05 14:40:42 +01:00
scott
4c4fd2a267 Gmail: Minor change to allow workload to run correctly on Huawei devices 2018-09-05 14:01:01 +01:00
Marc Bonnici
6366a2c264 framework/version: Specify default encoding when parsing commit id 2018-08-22 14:41:12 +01:00
Marc Bonnici
42b3f4cf9f commands/create: Add special case for EnergyInstruemntBackends
Previously when using the create command for adding
EnergyInstruemntBackends they were treated like any other plugin and
generated incorrect configuration. Now automatically add the
`energy_measurement` instrument and populate it's configuration with the
relevant defaults for the specified Backend.
2018-08-14 13:41:39 +01:00
Marc Bonnici
1eaffb6744 commands/create: Only add instruments/output processors once
Ensure that instruments and output processors are only added to the
generated agenda once.
2018-08-14 13:41:39 +01:00
Marc Bonnici
4a9b24a9a8 instruments/energy_measurments: Improve instrument description
Add note to users that all configuration for the backends should be
added through this instrument rather than directly.
2018-08-14 13:41:39 +01:00
Marc Bonnici
5afc96dc4d workloads/pcmark: Fix reading results in python3
Ensure that the results file is decoded when using python3.
2018-08-14 13:39:04 +01:00
Marc Bonnici
d858435c3d utils/version: Fix check to only decode bytes
When using Python3 the returned value of the commit is a byte string and
therefore needs to be decoded.
2018-07-27 10:11:32 +01:00
Marc Bonnici
778bc46217 commands/process: Add dummy method to ProcessContext
In commit d2ece we are now tracking augmentations which are used during a
run in the run_config via the context when installing augmentations.
Update the Process command and its ProcessContext with a dummy method
to relect this change.
2018-07-26 12:07:17 +01:00
Marc Bonnici
fc226fbb6e fw/execution: Ensure that identifiers are used when retrieving plugins.
Make sure that when retrieving plugin information from the plugin
cache the name is converted to an identifier first.
2018-07-24 11:34:19 +01:00
Marc Bonnici
d007b283df instruments/trace_cmd: Fix reporting on target
If reporting on the target the extracted trace data file was not
defined, now locate the file correctly.
2018-07-24 11:34:00 +01:00
Sergei Trofimov
e4a856ad03 fw/config: preserve included config files
Save included config files, along with the explicitly-specified config
that included them, under run output's __meta/raw_config/.
2018-07-23 16:47:10 +01:00
Sergei Trofimov
7d833ec112 fw/config: add includes
Add the ability to include other YAML files inside agendas and config
files using "include#:" entries.
2018-07-23 16:47:10 +01:00
Marc Bonnici
b729f7c9e4 fw/parsers: Ensure plug-in names are converted to an identifier
Ensure that a plug-ins config entry is converted to an identifier before being
stored in the PluginCache so that the relevant configuration can be
retrieved appropriately. For example this allows for both 'trace-cmd' and
'trace_cmd' to be used as config entries to provide configuration for the
'trace-cmd' plugin.
2018-07-19 17:15:26 +01:00
Marc Bonnici
fbfd81caeb commands/revent: Fix missing target initialization
In commit 8da911 the initialization of the target was split into a
separate method of the TargetManger. Ensure that we call the relevant
 method after creating the manager.
2018-07-19 12:13:14 +01:00
Marc Bonnici
0e69a9808d commands/record: Fix argument validation
When ensuring that at least one stage for a workload recording was
present there was a missing check to see if recording for a workload was
specified.
2018-07-19 12:13:14 +01:00
Sergei Trofimov
6d9ec3138c In lint we trust
Quieten pylint with regard to import order.
2018-07-18 11:20:48 +01:00
Sergei Trofimov
e8f545861d fw: cache target info
Cache target info after pulling it from the device. Attempt to retrieve
from cache before querying target.
2018-07-13 15:53:01 +01:00
Sergei Trofimov
770d2b2f0e fw: add cache subdir under $WA_USER_DIRECTORY
Add a sub-directory for caching stuff.
2018-07-13 15:53:01 +01:00
Sergei Trofimov
dacb350992 fw/target: add system_id to TargetInfo
Add target's system_id to TargetInfo. This ID is intended to be unique
of the combination of hardware and software on the target.
2018-07-13 13:28:50 +01:00
Marc Bonnici
039758948e workloads/androbench: Update uiauto apk with fix 2018-07-11 17:32:08 +01:00
Sergei Trofimov
ce93823967 fw/execution: write config after installing augs
Add Context.write_config() to write the combined config into run output
__meta. Use it after instruments and result processors get installed to
make sure their configuration gets serialized in the output.
2018-07-11 13:28:04 +01:00
Sergei Trofimov
7755363efd fw/config: add get_config() to ConfigManager
Add a method to allow obtaining the combined config after config
manager has been finalized.
2018-07-11 13:28:04 +01:00
Sergei Trofimov
bcea1bd0af fw/config: add resource getter to run config
Track resource getter configuration as part of the run config.
2018-07-11 13:28:04 +01:00
Sergei Trofimov
a062a39f78 fw/config: add installed aug configs to run config
Track configuration used for installed augmentations inside RunConfig.
2018-07-11 13:28:04 +01:00
Sergei Trofimov
b1a01f777f fw/execution: rename things for clarity
- Rename "instrument_name" to "instrument" inside do_execute(), as
  ConfigManger.get_instrument() returns a list of Instrument objects,
  not names.
- To avoid name clash, rename the imported instrument module to
  "instrumentation".
2018-07-11 13:28:04 +01:00
Sergei Trofimov
96dd100b70 utils/toggle_set: fix merge behavior
- Change how "source" and "dest" are handled inside merge() to be more
  sane and less confusing, ensuring that disabling toggles are merged
  correctly.
- Do not drop disabling values during merge, to ensure that merging
  is a transitive operation.
- Add unit tests for the above fixes.
2018-07-11 10:48:00 +01:00
Marc Bonnici
e485b9ed39 utils/version: do not decode bytes
Check that the resulting output inside get_commit() is a str before
attempting to decode it when running on Python 3.
2018-07-11 10:39:38 +01:00
Marc Bonnici
86dcfbf595 workloads/androbench: Fix Formatting 2018-07-10 15:57:18 +01:00
Marc Bonnici
1b58390ff5 workloads/androbench: Fix for devices running Android 8.1
On some devices running Android 8.1 the start benchmark button was
failing to be clicked, this is a workaround to click on the coordinates
of the button instead of the UiObject iteslf.
2018-07-10 15:57:18 +01:00
Marc Bonnici
5714c8e6a1 wa: Additional pylint fixes 2018-07-10 12:56:51 +01:00
Marc Bonnici
791d9496a7 wa: Pylint Fixes for Travis
Pylint has trouble using imports from the distutils module in
virtualenvs so we need to explicitly ignore these imports.
2018-07-10 12:56:51 +01:00
Marc Bonnici
e8b0d42758 wa: PEP8 Fixes 2018-07-10 12:56:51 +01:00
Sergei Trofimov
fd1dd789bf fw/output: update internal state on write_config()
Update the internal _combined_config object with the one that
has been written to ensure that the serialized and run time states are
the same.
2018-07-09 16:00:07 +01:00
Sergei Trofimov
c410d2e1a1 I lint, therefore I am
Implement fixes for the most recent pylint version.
2018-07-09 15:59:40 +01:00
Marc Bonnici
925bc8b719 wa: pep8 fixes 2018-07-06 14:39:41 +01:00
Sergei Trofimov
4b86fa5aee commands/show: disable pylint
Disable pylint for wa/commands/show.py. Due to changes in recent
versions of pylint, it now takes an excessively long time to
process this file.
2018-07-06 14:39:41 +01:00
Sergei Trofimov
03eafe6b33 framework: pep8 fixes
Fix issues reported by flake8.
2018-07-06 14:39:41 +01:00
Marc Bonnici
dbea1d7d09 wa/commands: pylint fixes 2018-07-06 14:39:41 +01:00
Marc Bonnici
c6ec7af665 wa/commands: pep8 fixes 2018-07-06 14:39:41 +01:00
Marc Bonnici
6afd710bd1 wa/instruments: pylint/fixes 2018-07-06 14:39:41 +01:00
Marc Bonnici
0b8501e010 wa/instruments: pep8 fixes 2018-07-06 14:39:41 +01:00
Marc Bonnici
30471613de wa/output_processors: pylint fixes 2018-07-06 14:39:41 +01:00
Marc Bonnici
7f9737a844 wa/output_processors: Fix pep8 2018-07-06 14:39:41 +01:00
Marc Bonnici
9b2bc1369c wa/workloads: pylint fixes 2018-07-06 14:39:41 +01:00
Marc Bonnici
6e94cbd36b wa/workloads: pep8 fixes 2018-07-06 14:39:41 +01:00
Marc Bonnici
185bff9029 wa/utils: Fix pylint errors 2018-07-06 14:39:41 +01:00
Marc Bonnici
1550e9a788 wa/utils: Remove unrequired imports 2018-07-06 14:39:41 +01:00
Marc Bonnici
4d1c03cc5c utils/types: Rename cls argument 2018-07-06 14:39:41 +01:00
Marc Bonnici
cbc7b2647f utils/types: Ignore import errors 2018-07-06 14:39:41 +01:00
Marc Bonnici
1a08b2a6c7 utils: pep8 fixes 2018-07-06 14:39:41 +01:00
Sergei Trofimov
f74b7ae78c framework: fix pylint issues
Fix/disable checks for issues reported by pylint under wa/framework.
2018-07-06 14:39:41 +01:00
Sergei Trofimov
8878cc20d4 Update copyright headers.
- Add copyright headers to files that did not already have them
- Update the year to the last year the file was modified in files with
  existing headers.
2018-07-04 16:33:31 +01:00
Marc Bonnici
5892b1de18 commands/revent: Fix missing import 2018-07-04 16:33:08 +01:00
Marc Bonnici
452d91b2d6 output_processors/sqlite: Fix incorrect error type and import 2018-07-04 16:33:08 +01:00
Marc Bonnici
c9ff15ca53 wa/workloads: Fix missing imports 2018-07-04 16:33:08 +01:00
Marc Bonnici
3fd40e5f19 utils/types: Fix correct arguments for join
Ensure that the join method for a ``str`` is passed a single list
instead of 2 arguments.
2018-07-04 16:33:08 +01:00
Marc Bonnici
cbb8fdab28 utils/diff: Fix missing import for logging 2018-07-04 16:33:08 +01:00
Marc Bonnici
f4838b4466 utils/android: Fix typo in variable assignment 2018-07-04 16:33:08 +01:00
Marc Bonnici
5231bbcf71 fw/exception: Add 'message' property to SerializerSyntaxError
Allow for the fact that Exceptions do not have a message attribute in
Python3 so mimic the functionality.
2018-07-04 11:54:17 +01:00
Marc Bonnici
9d34fc0a4d utils/serializer: Fix exception handling in Python3
Allow for the fact that exceptions do not have a 'message' attribute in
Python3.
2018-07-04 11:54:17 +01:00
Marc Bonnici
1648a58c11 framework/workload: Add check for platform
Remove unused ``platform`` attributes and add ``supported_platforms``
along with check so that workloads can fail early when attempting to run
on an incorrect platform.
2018-07-02 12:11:00 +01:00
Marc Bonnici
60b37995e0 workloads/jankbench: Update to check if running in a container.
Instead of using the os to determine whether the screen state should
be checked, use target flag to see if running inside a container.
2018-07-02 10:59:18 +01:00
scott
68e7fc0b99 workloads: fix mongoperf
Mongoperf currently has a non-ASCII character in the file that causes a failure.

This commit rewords the description to remove the incriminating character.
2018-07-02 10:02:01 +01:00
Sergei Trofimov
e55f48089b fw/output: expose metadata
Expose result.metadata as a property of the output.
2018-06-29 17:25:29 +01:00
Marc Bonnici
edfbee291b workloads/jankbench: Fix typo in method name
Fix incorrect method name.
2018-06-29 17:25:09 +01:00
Marc Bonnici
04cbf51a15 workloads/jankbench: Fix screen state for ChromeOS
We cannot currently determine the screen state from cannot android
containter so only check on android systems.
2018-06-29 17:25:09 +01:00
Marc Bonnici
d016318a32 workloads: Bump known working version of workloads. 2018-06-29 14:46:16 +01:00
Sergei Trofimov
c69a0f69e6 workloads: add mongoperf
Add a workload that runs mongoperf benchmark that measures I/O
performance on a MongoDB server. This workload assumes that mongoperf
is already installed.
2018-06-29 12:39:36 +01:00
Sergei Trofimov
06d351f054 utils/misc: fix write_table column widths
Consider headers when calculating column widths. This will ensure proper
alignment in cases where the column header is wider than any of the
column values.
2018-06-28 10:32:36 +01:00
Marc Bonnici
98de37807d fw/version: Change format of version to conform with PEP440
When installing from source WA attempts to include the commit ID in the
version of the installed pacakge however this caused issues with package
managers like pip. PEP440 specifies that local identifiers must be in the
form `<public version identifier>[+<localversion label>]` so update the
version to conform.

https://www.python.org/dev/peps/pep-0440/#local-version-identifiers
2018-06-27 11:41:24 +01:00
Sergei Trofimov
d3872716ed workloads/deepbench: lengthen timeout
Lengthen timeout for gemm and conv tests to be the same as for sparse
test. While the former two usually take a lot less time, their execution
time will vary significantly depending on the target and the runtime
environment (e.g. cpu frequencies might be forced to lowest values).
2018-06-27 10:24:57 +01:00
Sergei Trofimov
3c0f1968c5 workloads/apache: fix for Python 3
urllib2 does not exist in Python 3, and its methods have been moved into
urllib.request. Use future library to create aliases that work across
both 2 and 3.
2018-06-26 09:55:29 +01:00
Marc Bonnici
22fcc42903 fw/core: Correct parameter description 2018-06-25 18:19:30 +01:00
Marc Bonnici
1c60f47440 commands/record: Fix record command description.
All stages are now optional for recording however the record description
has not been updated to reflect this.
2018-06-25 18:19:30 +01:00
Marc Bonnici
df076c68da templates: Add parameter example to UiAutomator template.
Add additional information to the UiAutomator template for retrieving
parameters.
2018-06-25 18:19:30 +01:00
Marc Bonnici
d3cb350461 commands/templates: Update to add optional setup_rerun method 2018-06-25 18:19:30 +01:00
Sergei Trofimov
af95b5c990 workloads/lmbench: doc fix
Add missing blank lines around the URL indent block.
2018-06-25 17:11:47 +01:00
scott
29174912dd workloads: add lmbench
Add a workload for lat_mem_rd and bw_mem tests of LMbench benchmark, a suite of
portable ANSI/C microbenchmarks for UNIX/POSIX.

This is a port of corresponding workload from WA2.
2018-06-25 14:52:22 +01:00
Sergei Trofimov
687d09cd53 utils/types: fix typos 2018-06-25 14:14:00 +01:00
Marc Bonnici
c255576fd7 fw/core: Allow for a user_directory to be specified using ~
Previously if a path for the `user_directory` was specified using `~`
this would not be expanded causing issues due to incorrect path joining.
2018-06-25 13:45:43 +01:00
Sergei Trofimov
3ecc46b662 fw/exec: ensure correct state on early abort
Ensure the serialized state gets written out in case of early abort
(before the run has been fully initialized and job execution has
started), and  that the appropriate final output is generated.

This requires that ExecutionContext is created much earlier (in order
for postamble to be possible), and that KeyboardInteruptException is
caught and handled properly by the Executor.
2018-06-22 18:04:16 +01:00
Sergei Trofimov
d0dd6c1e04 fw/exec: context: add write_job_specs
Add a method to encapsulate the writing of ConfigManager's job specs
into run_output.
2018-06-22 18:04:16 +01:00
Sergei Trofimov
861dff75d4 fw/exec: context: add write_output()
Add a convenience method for invoking write_info(), write_state(), and
write_result() of run_output. This will make it easier to call it from
multiple places.
2018-06-22 18:04:16 +01:00
Sergei Trofimov
1b498fa42d fw/exec: context: make target_info a property
TargetManger.get_target_info() gets invoked twice: first on context
creation, and then a second lime shortly afterwards to populate
RunOutput. Change target_info attribute inside the context to be a
property that redirects to run_output. This will allow the context to be
created earlier, before a target connection  is available.
2018-06-22 18:04:16 +01:00
Sergei Trofimov
6486378c89 commands/run: add run.log as an Artifact
Add run.log as an Artifact to the output, once it has been created.
Every file outsize of __meta (excepting result.json) should have an
associated artifact to describe it.
2018-06-22 18:04:16 +01:00
Sergei Trofimov
8da911e9d5 fw/target: add initialize() to TargetManger
Add explicit initialization to TargetManger in order to separate the
creation of the TargetManger form connection to the target.
2018-06-22 18:04:16 +01:00
scott
3b322a36c9 Speedometer: Changing workload to use Speedometer 2.0 by default 2018-06-22 14:55:39 +01:00
Waleed El-Geresy
ae0b7c9894 output_processor/sqlite: Fix typo in function name
Correct the word connecton to connection.
2018-06-22 09:53:19 +01:00
Joe Savage
f05a64ef95 workloads/googlemaps: Add googlemaps workload 2018-06-20 17:23:49 +01:00
Sergei Trofimov
35f644ba76 workloads/chrome: fix docs
- Escape asterisk (otherwise, it is interpreted as "open emphasis")
- Use monospace formatting for paths.
- Trim to 79 columns wide
2018-06-20 17:01:48 +01:00
Marc Bonnici
b85665fa12 workloads/androbench: Fix directory structure
Correct the location of the UiAutomator code from `adobereader` to
`androbench`.
2018-06-20 16:39:07 +01:00
Marc Bonnici
d6c853ce59 workloads: Fix incorrect attribute name
Correct setting of attribute `clean_assets` to `cleanup_assets`
2018-06-20 14:39:40 +01:00
Sergei Trofimov
0f2bd28284 fw/output: record wa/devlib version in output
Add wa and devlib versions to RunOutput's metadata on creation. They
already get logged, but this will make them readily accessible to
scripts and output processors.
2018-06-20 10:04:18 +01:00
Marc Bonnici
7cb9f05bbe commands/revent: Add dummy method to LightContext
Add a dummy method to the LightContext to satisfy the API as we
do not record metadata when performing revent recordings.
2018-06-19 18:36:23 +01:00
Sergei Trofimov
9f06950fb1 fw/target: account for platform_target_defaults
When iterating over PLATFORMS tuples, account for the
platform_target_defaults introduced by 7470fb5ee.

Also, correct the tuple description in the comments.
2018-06-19 11:23:12 +01:00
Waleed El-Geresy
578d2d3a16 utils/serializer: Handle empty file extensions
The ValueError does not given enough information in the case of an empty file
extension. Add a special case to handle files with no extension and
prompt the user.
2018-06-18 20:46:56 +01:00
Sergei Trofimov
88731fe489 command/revent: Fix resolver call
Call resolver's get() method, rather than get_resource(), incorrectly
introduced in the previous commit. Also add get() alias to the context
to allow it to be used as a resolver.
2018-06-18 17:47:44 +01:00
Sergei Trofimov
4a06c13738 commands/revent: add get_resource to LightContext
Since 2ff06af63, resources are obtained via context.get_resource, rather
than context.resolve.get_resource. LightContext used by the record
command was not updated to implement that method. This fixes the issue
2018-06-18 15:16:02 +01:00
Joe Savage
9e9c84958d workloads/chrome: Add chrome workload 2018-06-18 12:04:25 +01:00
Sergei Trofimov
67631cfa6d workloads: add apache benchmark
Add a benchmark that load-tests Apache server installed on the target.
2018-06-18 10:55:44 +01:00
Joe Savage
915465c744 workloads/gmail: Add offline mode 2018-06-18 10:51:32 +01:00
Joe Savage
6cc1ac147c framework/workload: Add rerun infrastructure 2018-06-18 10:51:32 +01:00
Sergei Trofimov
dfa55c1322 commands/list: add "augmentations" and "all"
Allow specifying "augmentations" and "all" as the plugin kind to lost.
In the case of of the former, instruments and output processors get
listed. In the case of the latter, every plugin kind gets listed.
2018-06-15 12:09:23 +01:00
Sergei Trofimov
bab5f89283 commands/list: add blank line at the end 2018-06-15 12:09:23 +01:00
Sergei Trofimov
21784d1351 command/process: write job_output result
Write job_output result to make sure the serialized version gets
updated.
2018-06-15 10:53:32 +01:00
Sergei Trofimov
bcbde9a197 fw/entrypoint: log devlib version
Log devlib version alongside WA version.
2018-06-15 08:58:39 +01:00
Sergei Trofimov
26c38d3ae3 Implement PEP396
Add __version__, as per PEP396. Additionally, add __full_version__ which
contains the get commit ID, if available.
2018-06-15 08:58:39 +01:00
scott
ce6ea663a3 Youtube: Updating to reflect changes in accessing options menu 2018-06-14 15:08:09 +01:00
Waleed El-Geresy
488bd57659 framework/version: Redirect git stderr output
Add an stderr argument to redirect errors ('fatal not a git repository'
is the most common) to PIPE so that errors do not output to STDOUT.
2018-06-14 15:07:18 +01:00
Waleed El-Geresy
71a32dd724 framework/command: Fix subparsers in Python3
Make subcommands required arguments in the ComplexCommand class, which
is used by the 'wa create' command.
2018-06-14 15:06:50 +01:00
Sergei Trofimov
6ee40c2170 utils/types: implement __ne__ for level
This should have been handled by the @total_ordering decorator, but
isn't due to

        https://bugs.python.org/issue25732

(briefly, total_ordering is back-ported from Python 3, where the base
object provides the default implementation of __ne__ based on __eq__, so
total_ordering did not override it; this, however does not happen in
Python 2).

Also update unit tests to catch this edge case.
2018-06-14 15:04:56 +01:00
Sergei Trofimov
64f9cf79e4 utils/diff: fix diff_interrupt_files on Python 2
During Python 3 migration, the izip call inside diff_interrupt_files has
been replaced with a zip call (zip returning an iterator in Python 3).
Import zip from builtins to ensure that it also produces an iterator in
Python 2.

Also fix the associated unit test by importing the correct function.
2018-06-14 15:04:56 +01:00
Sergei Trofimov
d64ab6f099 workloads: add deepbench
Add automation for Baidu's DeepBench benchmark for deep learning
operations.
2018-06-14 12:31:43 +01:00
Waleed El-Geresy
7470fb5ee9 Add target-params to Platform Tuple
Added support for specifying target parameters in the Platform tuple.
2018-06-14 12:06:33 +01:00
Sascha Bischoff
7fb85261da instruments/serialmon: Add an instrument to monitor serial traffic
This instrument will log serial traffic to a file. The idea is to
assist with debugging development boards, as otherwise there is a
chance that crash reports, for example, are lost when the device is
reset by WA.

It logs the pre-run and post-run traffic to preamble_serial.log and
postamble_serial.log , respectively, in the top-level output
directory. Serial logs for each workload are stored in the appropriate
workload directory as serial.log.

As we are tying up the serial port, we stop the logging when the
device is reset to allow board such as the Arm Juno to be reset via
the serial connection.
2018-06-13 14:36:46 +01:00
Sergei Trofimov
0ca29bb337 fw/entrypoint: make command mandatory for Python 3
Python 3 has changed the behavior of subparsers so that they are no
longer mandatory by default. As a result, executing just "wa" under
Python 3 results in a random error, rather than a help message.

Fix this by making the subparsers mandatory.
2018-06-13 11:08:18 +01:00
scott
503005ba5f Googleplaybooks: Adding support for night reading dialogues.
Certain devices present a night time reading popup alert when opening the books workload.
This can throw off the workload so I've added a function to check for this and dismiss if neccessary.
2018-06-12 22:54:43 +01:00
Sergei Trofimov
2cb1f47e11 fw/exec: pass context to run started/completed signals
To be consistent with the rest of exec signals.
2018-06-12 16:07:53 +01:00
Sergei Trofimov
ea97372ece fw/exec: add JOB_QUEUE_EXECUTION signals
Add signals just before and just after commencing the execution of the
job queue.
2018-06-12 16:07:53 +01:00
Sergei Trofimov
5f7fde206d fw/instrument: add hostside decorator
Add a decorator to indicate that a callback runs entirely host-side and
does not rely on a connection to the target. This  means it will be
invoked even if the target was detected to be unresponsive.
2018-06-12 16:07:53 +01:00
Sergei Trofimov
2f99137ad5 fw/target: fix signals reboot on unresponsive
- Add "hard" parameter to TargetManager's reboot().
- Pass in context to TargetManager's reboot() and
  verify_target_responsive() -- this is needed for signal dispatch.
- Call self.reboot() instead of self.target.reboot() when attempting a
  reset for unresponsive targets inside TargetManager, in order to
  ensure that appropriate signals are dispatched.
2018-06-12 16:07:53 +01:00
Sergei Trofimov
e816980471 fw/execution: add missing sender in signal
Add the missing sender for RUN_OUTPUT_PROCESSED signal wrap call.
2018-06-12 16:07:53 +01:00
Sergei Trofimov
c4838b4021 utils/serializer: add basestring to POD_TYPES
Was replaced with str during Python 3 porting.
2018-06-12 13:30:39 +01:00
Sergei Trofimov
657a10c09d utils/serializer: fix level deserialization
Fix a regression introduced with Python 3 port -- JSON deserializer
should check for basestring rather than str when deciding whether to try
to decode a custom type.
2018-06-12 13:27:19 +01:00
Sascha Bischoff
b6531feb52 framework/instrument: Fix typo for on_job_failure 2018-06-11 15:59:53 +01:00
Marc Bonnici
1879dd62f1 fw/core: Fix description of 'label' CongfigPoint
Update reference of result processors to output processors.
2018-06-11 08:10:07 +01:00
Sergei Trofimov
b3de85455a Add support for Python 3
Add support for running under Python 3, while maintaining compatibility
with Python 2.

See http://python-future.org/compatible_idioms.html for more details
behind these changes.
2018-06-07 14:48:40 +01:00
Marc Bonnici
c3ddb31d4d fw/entrypoint: Fix help information for '--help' argument
In a previous commit we filtered parameters so that '-h' is never passed
to 'parse_known_commands' to ensure our own custom help message is displayed,
now also filter for '--help' for the same reason.
2018-06-07 11:04:29 +01:00
Marc Bonnici
6d9ae419c2 framework/signal: Remove JOB_FINALIZED signal
Remove the currenlty unused JOB_FINALIZED signal as we already have a
WORKLOAD_FINALIZED signal.
2018-06-06 08:38:54 +01:00
Marc Bonnici
baf570fc62 fw/signal: Rename and implement signal for RUN_OUTPUT_PROCESSED
Rename the OVERALL_RESULTS_PROCESSING signal to be called
RUN_OUTPUT_PROCESSED and provide implementation.
2018-06-06 08:38:54 +01:00
Marc Bonnici
b15b937863 fw/parsers: Ensure that a section is a valid dict
Ensure that all section entries are valid dicts otherwise raise an error
informing the user.
2018-06-05 17:54:34 +01:00
Sergei Trofimov
aee8b10f26 doc/delay: fix warning.
Add space between a note admonition and the preceding paragraph.
2018-06-01 17:18:43 +01:00
Marc Bonnici
2cd355195f fw/rt_config: Fix validation checks
Remove unnecessary validation checks and fix remaining so they don't fail
under certain combinations of parameters.
2018-06-01 15:33:10 +01:00
Marc Bonnici
9035c654bd fw/rt_config: Allow for auto determine 'max' and 'min' for other freqs
Allow users to specify 'max' and 'min' for the maximum and minimum
frequencies to be set for a cpu as well as the current frequency.
2018-06-01 15:33:10 +01:00
Marc Bonnici
e1518e8c5d fw/rt_config: Refactor and fix method calls to resolve 'max'/'min'
Previously incorrect method calls were used to try and convert 'max' and
'min' into their corresponding frequencies, now call the correct methods
and refactor the conversion into a separate method.
2018-06-01 15:33:10 +01:00
Sergei Trofimov
ee3c01418f fw/execution: fix get_resource with strict=False
If strict=False, resolver.get_resource will return None, rather
than raising NotFoundError. Do not attempt to record the md5 hash in
that case.
2018-06-01 14:01:57 +01:00
Marc Bonnici
ba717bbcd1 instrument/delay: Remove breakpoint 2018-05-30 12:25:58 +01:00
Marc Bonnici
b14c3d8868 framework/instrument: Fix lefover references to instrument proiorities
Update instrument proiorities to use signal proiorities instead.
2018-05-30 12:23:15 +01:00
Marc Bonnici
703e32e511 framework/signals: Remove unnecessary job signals
Remove overlap of signals between jobs and workload.
2018-05-30 12:23:15 +01:00
Marc Bonnici
ceadb36880 instruments/delay: Port instrument to WA3
Port the delay instrument to WA3.
2018-05-30 12:22:46 +01:00
Sergei Trofimov
864ded60ae fw/instrument: use signal priorities
Use signal priorities to define priority decorators, rather than
defining own priority enum.
2018-05-30 12:02:28 +01:00
Sergei Trofimov
d79e8324f0 fw/signal: use enum to define priorities
Use an enum rather than a random class to define the priority levels
for the signals.
2018-05-30 12:02:28 +01:00
Sergei Trofimov
42bae98d50 fw/instrument: remove commented code
Remove the commented out mappings from WA2.
2018-05-29 11:56:39 +01:00
Sergei Trofimov
673b61342d fw/instrument: add mappings for job/run signals
Add missing mappings for job and run signals.
2018-05-29 11:56:39 +01:00
Sergei Trofimov
2cad2dbb10 fw/execution: implement abnormal job status signals
Implement signals for failed/aborted jobs.
2018-05-29 11:56:39 +01:00
Sergei Trofimov
e90b12e984 fw/instrument: add job output mappings
Add method name mappings for JOB_OUTPUT_PROCESSED signals.
2018-05-29 11:56:39 +01:00
Sergei Trofimov
b593b7ed59 fw/execution: wrap processors' process_job_output.
Modify execution so that output processors' process_job_output() (but
not export_job_output()) is wrapped by the JOB_OUTPUT_PROCESSED signals.

This makes sense conceptually, and is more useful in practice, as there
are already WORKLOAD_RESULT_EXTRACTION and WORKLOAD_OUTPUT_UPDATE
signals sent by the job, if it's desirable to run before output
processors, but after the job results have been collected.
2018-05-29 11:56:39 +01:00
Sergei Trofimov
43d047eeb5 fw: implement reboot signals
- Wire up reboot signals via the TargetManager
- Add instrument mappings for the same.
2018-05-29 11:56:39 +01:00
Sergei Trofimov
3a6fcd688e fw/signal: rename "boot" to "reboot"
Rename "boot" signals to "reboot", as it would more accurately reflect
how they are used.
2018-05-29 11:56:39 +01:00
Sergei Trofimov
9f36d543e1 fw/instrument: Add log signal maps
Add method name mappings for ERROR_LOGGED and WARNING_LOGGED signals.
2018-05-29 11:56:39 +01:00
Sergei Trofimov
573c6abcb5 fw/signal: add job signals
Add matched signals for before-after job execution. These are the
equivalent of "spec" signals in WA2.
2018-05-29 11:56:39 +01:00
Sergei Trofimov
18bf314592 doc: fix missing reference to daq_setup
Since daq-server has been split out into a separate package, daq setup
is no longer part of WA documentation. This resulted in a warning when
building the docs.
2018-05-25 15:27:14 +01:00
Sergei Trofimov
a865d8f30c utils/serializer: add cpu_mask to POD types 2018-05-25 15:27:14 +01:00
Sergei Trofimov
ec9605603e workloads/openssl: save binary's hash and version
Store the hash and the version of the openssl executable used by the
workload in the result metadata.
2018-05-25 10:21:06 +01:00
Sergei Trofimov
2ff06af632 fw/execution: record resource hashes in metadata
As part of resolving a resource, record its MD5 hash in the output
metadata. In order to enable this, resource resolution is now done via
the context, rather than directly via the ResourceResolver (in order not
to introduce a context dependency in the Gui object, context now
emulates the resolver interface).
2018-05-25 10:21:06 +01:00
Sergei Trofimov
79141582e9 fw/workload: record app version in metadata
Add the package version for an ApkWorkload to the metadata for that job.
2018-05-25 10:21:06 +01:00
Sergei Trofimov
9257a787f9 fw/output: add metadata attribute to Result
Metadata is a key-value mapping for arbitrary data, similar to
classifiers. Unlike classifiers, metadata does not directly relate to
the results of the execution, but to the execution itself, and typically
would not be processed by Output Processors in the same way as
classifiers. Metadata can also be a lot more free-form in it's value
structure; while classifier values are simple scalars, metadata values
can be arbitrary POD structures.
2018-05-25 10:21:06 +01:00
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
0a549bd28e 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
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
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