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
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
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
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
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
04fe3768af doc: Misc fixes
Fix typos, formatting and irrelevant information.
2018-05-21 10:26:28 +01:00
Marc Bonnici
52b2df427e doc/show_cmd: Reword description and add settings option 2018-05-21 10:26:28 +01:00
Sergei Trofimov
5291e389dc fw/output: implement __str__ JobOutput
Implement a __str__ method for JobOutput to make it easier to format it
into messages.
2018-05-18 17:52:49 +01:00
Sergei Trofimov
887cdcc411 commands/show: change man section to 7
Change the man page section from 1 7. "Misc. information" is more
appropriate for plugin documentation than "Executable commands".
2018-05-18 16:50:48 +01:00
Sergei Trofimov
b1b2131b0c doc: fix build warnings 2018-05-18 10:32:08 +01:00
scott
3f7f0b38f5 PCMark: Porting to WA3 2018-05-15 16:09:38 +01:00
Marc Bonnici
6754ecd6d7 wa/workloads: Update to consistently use timeout parameter 2018-05-14 17:07:49 +01:00
Marc Bonnici
a23c896647 wa/workloads: Update to use threads parameter
Update workloads to use `threads` parameter to try and keep
configuration more consistent across workloads.
2018-05-14 17:07:49 +01:00
Marc Bonnici
47ec0c7720 workloads/meabo: Update parameter names to be more consistent
Rename `nrow` and `ncol` to `num_rows` and `num_cols` respectively to be
more consistent with the other parameter names.
2018-05-14 17:07:49 +01:00
Marc Bonnici
6f5fca36df wa/workloads: Change to use 'loops' parameter.
Change to consistently use 'loops' parameter instead of 'iterations'
etc.
2018-05-14 17:07:49 +01:00
Marc Bonnici
8d7d32d180 wa/workloads: Update to use new cpu_mask type
Update workloads that allow for specifying which cpus to be ran on to
all use the same interface while maintaining backwards compatibility with
the existing configuration options.
2018-05-14 17:07:49 +01:00
Marc Bonnici
670fe6fb83 wa/types: Add cpu_mask type
Add a cpu_mask type to allow for users to use a consistent way of representing a
cpus mask with properties to provide conversions between the various required
forms. The mask can be specified directly as a mask, as a list of cpus indexes
or a sysfs-style string.
Also add support for the type to be serialized/deserialzed for the json
and yaml serializers.
2018-05-14 17:07:49 +01:00
Sergei Trofimov
a2b0705ff0 processors: add cpustates
Add cpustates output processor. This is more-or-less a port of the
cpustates processor from WA, however there are some differences:

- Idle states are now tracked individually per-CPU. This will fix
  processing traces from targets that have different number of idle
  states on different clusters.
- Simplify the parameter list for report_power_stats:
    - Replace paths to individual report files with a path to a single
      directory. A subdirectory will be created under it which will
      contain all the reports.
    - Replace the individual bits bits of information about CPUs (core
      names, idle states, etc) with a list of CpuInfo objects.
- Clean up and simplify the code a bit:
    - Make all reports mandatory -- the marginal cost of generating
      an additional report is minimal compared to tracking power states
      in the first place.
    - Standardize the interface for Reporters and Reports.
- Rename some of the reports to something a bit more meaningful.
- The stand-alone command line interface is not ported for now, as it
  is now possible to run this offline on existing results using
  "wa process".
2018-05-14 17:05:06 +01:00
Sergei Trofimov
e7e272cd03 utils/trace_cmd: add trace_has_marker()
Add a function to check whether a trace file contains start/stop markers
(actually only check for start marker -- stop marker is assumed).
2018-05-14 17:05:06 +01:00
Sergei Trofimov
795b3485ce utils/trace_cmd: move params to __init__()
Move the check_for_markers and events parameters from parser() to
__init__(). These parameters control the behavior of the parser, and do
not relate to a particular trace file, so it makes more sense to have
them there.
2018-05-14 17:05:06 +01:00
Sergei Trofimov
ed1553816b commands/process: write result in the end
Running additional processors will generate new metrics and artifacts.
Update the serialized metadata with the new artifacts/metrics after
running all processors.
2018-05-14 17:05:06 +01:00
Sergei Trofimov
8a219d0e5a commands/process: improve logging
- Add a logging to indicate what is being processed.
- Log to file.
2018-05-14 17:05:06 +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
ec66ae2f6f instrument/trace_cmd: Log the pulling of trace
Extracting trace and pulling the trace file from the target can take a
relatively long time, as the trace file can be tens, and even hundreds,
of MB. Add an info-level log message to inform the user why WA execution
appears to have paused for a few seconds.
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
32701e7783 command/run: remove version/args logging.
This was moved to wa/framework/entrypoint.py but was kept here due to a
botched merge during a rebase.
2018-05-09 15:41:04 +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
c1a0f842d0 utils/log: maintain indent for buffered records
Ensure buffered records are indented properly by saving the indent level
at the time the record was generated as part of the record, and
preferring that over the current indent level inside LineFormatter.
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
1e750c659b utils/log: add early record buffering
Buffer early log records until a log file becomes available, flush
records to said file afterwards. This ensures that early log output,
which, among other things, contains plugin discovery logging, is not
lost. Buffer capacity is configurable via an environment variable.
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
9093477f1b utils/types: fix toggle_set merge methods
- The merge_with and merge_into implementation was reversed. Fix this, so that
  it is implemented correctly, i.e. that
  	a.merge_with(b) === merge(a, b)
	a.merge_into(b) === merge(b, a)
- Ensure that in case of merge_into(), a toggle_set is always returned.
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
a0dfac78c3 utils/doc: Add function to generate a line break 2018-04-30 09:14:22 +01:00
Marc Bonnici
f4b47bf65a Fix typos 2018-04-30 09:14:11 +01:00
sergei Trofimov
6965c05707 instruments/energy_measurement: add missing docs
- Add missing descriptions to backends.
- Describe how to get instrument-specific parameter descriptions in the
  help for instrument_parameters param of EnergyMeasurementInstrument
2018-04-27 18:10:02 +01:00
Marc Bonnici
1b557e5c5a commands/show: Add missing identifiers
Ensure that plugin names are converted to identifiers when searching for
plugins.
2018-04-27 16:29:53 +01:00
Sascha Bischoff
99f8efbaf5 workloads/stress-ng: Port stress-ng from WA2
stress-ng will stress test a computer system in various selectable
ways.  It was designed to exercise various physical subsystems of a
computer as well as the various operating system kernel interfaces.
2018-04-27 16:29:33 +01:00
Sascha Bischoff
7c1ed6487b workload/rt-app: Better JSON processing error reporting
The rt-app workload parses the rt-app JSON file in order to override
some options (specifically duration). Previously, if the JSON was
syntactically incorrect, an uninformative ValueError was raised. Now
we raise a ConfigError with appropriate message prompting the user to
fix the file.
2018-04-27 15:47:18 +01:00
sergei Trofimov
b8343e545b workloads: add meabo
Add automation for meabo micro-benchmark.
2018-04-25 17:16:53 +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
Sascha Bischoff
3b7debe676 instruments: Add screencap
Add an instrument which wraps the devlib screencapture poller, which
allows us to capture a screenshot from the device every `period`. The
`period` is configurable based on the user requirements.

All captured screenshots are named according to the timestamp on the
device, and are placed into an output directory (screen-capture)
within the job directory.
2018-04-24 10:04:22 +01:00
Marc Bonnici
98bed3822a utils/docs: Update format of parameter type rst output 2018-04-24 09:59:57 +01:00
Marc Bonnici
3ddb1272aa utils/doc: Add support for dicts to format literal
Now supports cleaner outputing of python dicts
2018-04-24 09:59:57 +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
Sergei Trofimov
f326cd26de workloads: add sysbench
Port sysbench workload from WA2.

sysbench is a modular, cross-platform and multi-threaded benchmark tool
for evaluating OS parameters that are important for a system running a
database under intensive load.
2018-04-16 11:52:02 +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
5664d312eb commands/revent: Add error message if not specifying workload stage
Ensure that if a workload is chosen for recording the user also
specifies which stages they wish to record for.
2018-04-10 18:07:20 +01:00
Marc Bonnici
f343f3a7ec wa/commands: Fix typo in create templates 2018-04-10 18:07:20 +01:00
Marc Bonnici
0a88c32502 commands/list: Display plugins in alphabetical order 2018-04-10 18:07:20 +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
c34b219941 commands/create: Add missing workload templates 2018-04-10 18:07:20 +01:00
Marc Bonnici
66b40b25e5 commands/create: Rename workload type names
Remove underscores from `apk_revent` and `apk_uiauto` so the names are
consistent with the workload type names.
2018-04-10 18:07:20 +01:00
Marc Bonnici
1832648add Framework/workload: Fix typo 2018-04-10 18:07:20 +01:00
Marc Bonnici
4f1c1d3b38 processors/uxperf: Adds description to processor 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
3fe7305c6e workloads: add recentfling
Port recentfling from WA2.

Fixes #705.
2018-04-06 16:56:58 +01:00
matthew
b71639b2ed commands/process create initial version
Add process command to run output processors over data produced by
a previous run.

Default processing is to skip the processors that were used during
the run and to process the specified directory only. Options to
use additional processors, force reprocessing and allow a directory
walk to discover additional output directories.
2018-04-06 14:46:25 +01:00
Marc Bonnici
8fa32cfd9d workloads/hwuitest: Do not try to process output if none present.
If the workload is abnormally terminated and no output is collected do
not attempt to process the output.
2018-04-06 09:55:25 +01:00
Marc Bonnici
4260139a7c workloads/rt_app: Do not try to process output if none present.
If the workload is abnormally terminated and no output is collected do
not attempt to process the output.
2018-04-06 09:55:25 +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
5a67aabcbd workloads: Add manual workload
Port manual workload from WA2. This workload allows using WA to
configure and instrument the target, while letting the user perform
arbitrary actions in place of running a fixed workload.
2018-04-05 10:17:44 +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
Vincent Guittot
33cfb7bae2 rt-app: fix description
since Linaro's modification have been merged in upstream version,
we can remove this comment

Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2018-04-03 08:36:36 +01:00
Vincent Guittot
741193c441 daq: fix resistor_values and sample_rate_hz parameters list
resistor_values is an array of float and not int as the shunt resistors
are most of the time lower than 1 Ohm.
With kind=list_of_ints, all resistor values are rounded to 0. Replace it
by list_of_numbers

sample_rate_hz is an int used to get sample period and to compute energy.
Changes its type from str to int

With these 2 fixes, the daq instrument has been successfully tested with
NI DAQ6211

Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2018-04-03 08:36:06 +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
Vincent Guittot
06fc361f47 aep: fix variable typo
something wrong has happened when preparing the patch to add
arm-probe AEP support

Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2018-03-29 19:41:23 +01:00
Sergei Trofimov
723b24306b proc/sqlite: fix writing runtime/boot_params
Make sure runtime_params and boot_params are to_pod()'d when they get
written, as they are obj_dict's that json serializer does not know how
to handle otherwise.
2018-03-29 18:01:28 +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
Vincent Guittot
ec316eab03 Add arm energy probe instrument
Arm Energy Probe with arm_probe has been recently added in devlib's
instrument.
Add the arm_energy_probe in the WA list of Energy measurement instruments

Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2018-03-28 09:29:08 +01:00
Vincent Guittot
3c1369c268 Add meta directory to get_instruments function
energy instruments might need to save platform specific configurations in
order to help to reproduce the use case. Such configuration should be saved in
__meta directory.
Add the directory path as a parameter of get_instruments() to save such
informations

Suggested-by: setrofim@gmail.com
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2018-03-28 09:29:08 +01:00
Marc Bonnici
120ea20ea0 workloads/dhrystone: Fix crash if workload did not complete
Only try to process output from the workload if it is available.
2018-03-26 14:08:33 +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
Sergei Trofimov
67ea7c8ee1 utils/types: toggle_set: TypeError on string
Strings are iterable, so can be used to instantiate sets (resulting in a
set of chars). This is never what we want for toggle_set's though, and
may result in difficult-to-interpret errors when parsing configuration,
so raise a TypeError if attempting to create a toggle_set with a string.
2018-03-22 12:28:48 +00:00
Marc Bonnici
7464010677 workloads/geekbench: Fix formatting
Add missing newline to description in order to display correctly in
the show command and remove extra spaces.
2018-03-21 15:37:55 +00:00
Marc Bonnici
2371364ce4 utils/doc: Adds support for showing aliases when formatting parameters
Now displays all available local and global aliases when generating the
rst for a parameter.
2018-03-21 13:27:31 +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
c1cc18df2f instruments/DAQBackend: Add global aliases 2018-03-20 08:24:58 +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
f5ed4e317a utils/misc: Fix missing import 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
Sergei Trofimov
e93199a0a0 fw/execution: add record_ui_state() to context
Add a method to record UI state (take a screen shot, and, for Android
devices, dump the UI tree structure) to ExecutionContext.
2018-03-19 09:06:21 +00:00
Sergei Trofimov
c0049d0a86 fw/job: only finalize if initialized
Only run finalize() for a job if initialize has succeed. finalize()
should be able to assume that initialize() has succeed, without needing
to check that that file have been created, variables set, etc.
2018-03-19 09:06:21 +00:00
Sergei Trofimov
f946f13838 fw/job: add workload to INFO logging
Add workload label to the INFO-level log messages produced by the job.
2018-03-16 15:38:09 +00:00
Sergei Trofimov
5b15b115a7 framework/output: add list_workloads to RunOutput
Add a convenience method to list which workloads (as per their label)
were involved in a run.
2018-03-16 15:38:09 +00:00
Marc Bonnici
2b0b6ed3db commands/show: Adds support for showing global settings 2018-03-16 14:05:19 +00:00
Marc Bonnici
5e4a9311f2 workloads/gmail: Fix attaching files
Ensure the workload uses the passed working directory for attaching
images instead of a hard coded name and allow for finding of the attach
button by description as well as name.
2018-03-16 07:57:00 +00:00
Sergei Trofimov
2b7d1de9f1 workloads: add hwuitest
Port automation for hwuitest (Android's libhwui microbenchmark) from
WA2.
2018-03-15 17:42:25 +00:00
Sascha Bischoff
dd7ff641f3 fw/workload: Fix installed apk info
Fix an issue where AndroidWorkload.pull_apk would sometimes get the
wrong package if the desired package name is a substring of another
package name. Rather than using a regex to match the package name, use
the new get_package_info method to match the name exactly.
2018-03-15 17:06:23 +00:00
Marc Bonnici
758abedd1f workloads/antutu: Fix location of AndroidManifest.xml 2018-03-15 12:33:17 +00:00
Marc Bonnici
6742c5c8ad workloads/antutu: Allow for unsupported tests
Not all benchmarks are available on all phones and will report "Not
supported" To allow for this update the regexes and if not a valid score
set any unsupported results to 'NaN'
2018-03-15 12:33:17 +00:00
Marc Bonnici
811dfbe5af workloads/exoplayer: Fix splitting of format in incorrect location
Split the desired format outside of for loop as this may not be
executed.
2018-03-14 15:51:03 +00:00
scott
cfe4c18b71 Speedometer: Adding in the missing build files 2018-03-13 14:20:13 +00:00
scott
cb958d668e Androbench: Adding missing build files 2018-03-13 14:20:03 +00:00
scott
f5a00bf4fd Antutu: Adding the missing build files 2018-03-13 14:19:47 +00:00
Sergei Trofimov
5ed5b6f819 workloads: add jankbench
Add automation for Google's jankbench workload.
2018-03-12 17:46:14 +00:00
Sergei Trofimov
e6f7d3fcde output_processors: add sqlite processor
This is WA2 sqlite result processor ported to WA3 output processor API.
It is schema-compatible with the WA2 version (in fact, there are *no*
schema changes).

Note: There is a medium-term goal of adding a more generic SQL database
exporter with a more complete schema sitting on top of something like
sqlalchemy to make it agnostic of DBMS implementations. At point, this
will likely be deprecated.
2018-03-12 17:12:53 +00:00
Marc Bonnici
71f0452b73 commands/record: Add checking for android targets
Update the 'package' argument description to specify it is for android
packages and add error checking to ensure that if specified, the target
supports android.
2018-03-09 11:57:00 +00:00
Marc Bonnici
8729702ee5 commands/record: Make recording of run stage optional
Change the recording of the run stage during workload recording mode to be
optional as the user may want to use the command to re-record a specific
stage of a workload without affecting the workload recording.
2018-03-09 11:57:00 +00:00
Marc Bonnici
d253fd07e6 workloads/templerun2: Add missing package name 2018-03-08 11:46:40 +00:00
Sergei Trofimov
9689420cff fw/execution: fix Exception on abort
Hitting CTRL-C will abort execution of the current job, but will still
trigger run finalization, and possibly, post-processing and teardown of
the current job. If an exception is raised during this
post-process/teardown, the previous exception state (for the
KeybardInterrupt) will be clobbered. That means that, after the new
exception has been handled, WA would attempt to execute the next job,
rather than go to finalization of the run.

To avoid this, set a flag in the context upon catching KeybardInterrupt,
and check this flag before attempting to execute the next job in the
queue.
2018-03-08 11:18:12 +00:00
Sergei Trofimov
fda418093d fw/execution: change how error events get added
Rather than relying on a custom Logger with a context to add events when
they are logged, have the runner register hooks for corresponding
signals that do that.

The issue with the previous approach is that the event ended up
being added too late -- after the current job was already cleared, so
all events were added at run level.

With the new approach, the event will be added when it is first logged,
while there is still a current job being set. There will be no
duplication for Exceptions being re-raised and handled at different
levels because log_error() will ensure that each Exception is logged
only once.
2018-03-08 11:18:12 +00:00
Sergei Trofimov
d20422ac15 workloads/rt-app: only initialize once
Only initialize/finalize once per run to avoid reinstalling the binary
and recreating the working directory needlessly.
2018-03-08 11:18:12 +00:00
Sergei Trofimov
eacc319239 wa: export target descriptor API
- Add exports for target descriptor API.
- Arrange exports alphabetically
2018-03-08 11:18:12 +00:00
Sergei Trofimov
10f79c37c2 fw/target/descriptor: add usability functions
- Add SimpleTargetDescriptor that simply returns a global list of target
  descriptions.
- Add create_target_description function to populate that list with a
  description crated from the specified components.
- Add add_description_for_target helper function to create a description
  for the specified target class, and specified components. For
  components that are not explicitly specified, attempt to guess
  sensible defaults based on the target class' bases.
2018-03-08 11:18:12 +00:00
Sergei Trofimov
9303c70727 fw/target/descriptor: fixes
- fix TargetDescription._set to set lists rather than dicts for params
  to be consistent with how params are set after creation (should
  probably get rid of this entirely...)
- fix the comment describing the structure of TARGETS
2018-03-08 11:18:12 +00:00
Sergei Trofimov
879dfc7700 framework/output: output fixes
- Get events from the result
- Correctly handle pending jobs
2018-03-08 11:18:12 +00:00
Sergei Trofimov
79aaef9986 fw/execution: abort and unresponsive target handling
Make sure KeyboardInterrupt's and unresponsive target errors are caught
and handled at appropriate points in the execution.
2018-03-08 11:18:12 +00:00
Sergei Trofimov
04ab336afc fw: fix error logging
- Keep track of logged exceptions inside log_error itself.
- signal: log the exception, if there is one  in the finally clause of
  the  signal wrapper; this will ensure that the error will be logged
  closer to the command that originated.
- entrypoint: use log.log_error for top-level error logging, rather than
  the  entrypoint logger directly; this will ensure that errors are not
  repeated unnecessarily.
- Log CTRL-C message at zeroth indent level to make it easier to see in
  the  non-verbose output where it occurred.
2018-03-08 11:18:12 +00:00
Sergei Trofimov
6fe31d6cad fw/execution: Handle unresponsive targets
If a target error occurs, check whether the target is unresponsive. If
it is, attempt to hard reset it if possible, or gracefully terminate
execution if not.
2018-03-08 11:18:12 +00:00
Sergei Trofimov
fdb872d9cd fw/target/manager: Add verify_target_responsive()
Add a method to check that the target is still responsive, and cache
the value so that the target does not need to be repeatedly probed
during various stages of wrapping up execution.
2018-03-08 11:18:12 +00:00
Sergei Trofimov
a9329554d1 wa: fix exception exports 2018-03-08 11:18:12 +00:00
Sergei Trofimov
1b9ac9236a framework/exception: add ExecutionError
Add an exception class to represent an error from within the execution
framework (rather than a plugin).
2018-03-08 11:18:12 +00:00
Marc Bonnici
05b726db09 commands/create: Add support for creating packages to WA3 2018-03-08 10:36:29 +00:00
scott
b204e9c22a Antutu: New antutu workload for the 7.0.4 version 2018-03-08 10:17:13 +00:00
scott
7e0e7456a9 Androbench: Migrating to WA3 and modifying to extract results instead of taking a screenshot 2018-03-08 10:16:27 +00:00
scott
87541c647a Speedometer: Creating a wa3 speedometer workload 2018-03-08 10:16:02 +00:00
Sascha Bischoff
e82fa48826 rt-app: remove requirement for rooted device
We remove the requirement for rt-app to run on a rooted device as this
does not appear to be required. We make sure that we run the workload
from a directory where we have write permissions by first changing the
directory before executing the workload (in_directory argument of
invoke).

In the case that the device is rooted, we run rt-app as
root. Otherwise, we simply run the workload.
2018-03-01 15:42:20 +00:00
Sascha Bischoff
39925d3f79 rt-app: redirect stdout to stderr
By default rt-app writes to stderr, not to stdout. Therefore, if we
only sample the stdout, we get no output from the workload itself.

With this change, we redirect stderr to stdout to allow us to get the
workload output.
2018-03-01 15:42:20 +00:00
Sergei Trofimov
d44c2ff919 framework/execution: end_run() fix part 2
Missed some "output" references in the previous commit.
2018-02-23 12:38:50 +00:00
Sergei Trofimov
0728f35cbe framwork/target: parameterize disabling of SELinux
Add a parameter to optionally not attempt to disable SELinux as that can
cause problems on some platforms.
2018-02-22 11:20:35 +00:00
Sergei Trofimov
cec3eaa375 framework/execution: fix end_run() on crash
ExecutionContext.end_run() does final updates to the run info in the run
output (final status, run duration, etc). This was previously accessed
via self.output in the context. Typically, this would correctly resolve
to the run output, as there would be no current job. However, in the
event of a crash, current_job would be set, and this would resolve to
the job output itself, resulting in run info not being updated. Use
run_output to avoid this.
2018-02-22 11:20:35 +00:00
Sergei Trofimov
bbbe1c7814 workloads/hackbench: rename param duration -> timeout
Rename the parameter to better reflect its usage.
2018-02-22 08:41:04 +00:00
Sergei Trofimov
12a33c8aeb framework: move instruments -> instrument
Use the singular to be consistent with other modules in wa.framework.
2018-02-22 08:41:04 +00:00
Marc Bonnici
b7aa7d68b5 config/plugin_cache: Add specific error for global and config entries
Add a special error for finding `global` or `config``  entries in
configuration to provide a more helpful error message.
2018-02-16 15:32:41 +00:00
Marc Bonnici
a52187a114 workloads/rt_app: Fix incorrect reference to context.result
Fix `context.result` to `context.output` leftover from WA2
2018-02-16 14:43:52 +00:00
Marc Bonnici
b103ae34ce configuration/core: Add missing initialization for classifiers 2018-02-16 14:43:52 +00:00
Sergei Trofimov
7313ed5cb5 framework/output: load job_specs
- Load job_specs from jobsfile on reload of RunOutput
- Attach the corresponding spec to a JobOutput
2018-02-16 13:56:03 +00:00
Sergei Trofimov
03328f0456 framework/output: improve access to config
Make it easier to access a run's configuration but automatically
deserializing it on reload of RunOutput, and exposing it via appropriate
settings.
2018-02-16 13:56:03 +00:00
Sergei Trofimov
e3b3799737 utils/misc: remove unused to_identifier
This has been moved to devlib, but, it appears, never removed from WA.
2018-02-16 13:56:03 +00:00
Sergei Trofimov
8466b77d5b framework/config: fix deserialization
- RebootPolicy: correctly handle being passed another instance of
  RebootPolicy on creation; this a requirement for it to be usable as a
  ConfigurationPoint kind.
- RebootPolicy: move static method to above __init__ (consistency).
- RunConfiguration: handle deserialization of 'device_config' entry.
- RunConfiguration: move static method to above __init__ (consistency).
2018-02-16 13:56:03 +00:00
Sergei Trofimov
1e21bd2ca8 framework/output: save classifiers in Result
Save classifiers at Result as well as Metric level. Reason: when
processing output, one might want to filter complete results, as well as
individual metrics. While it is in theory possible to get the
classifiers for a job by simply extracting the common classifiers
between all metrics, this fails when there are no metrics generated for
a job (note that one might still want to process the output in this
case, e.g. for the artifacts).
2018-02-16 13:56:03 +00:00
Marc Bonnici
c5659d51f1 commands/create: Update agenda sections to use augmentations 2018-02-15 13:42:48 +00:00
Marc Bonnici
4b6297e7ea configuration/plugin_cache: Fix incorrect parmeter name 2018-02-15 13:42:48 +00:00
Marc Bonnici
ed75764445 configuration/plugin_cache: Add target names as allowed plugin configs
Allow setting of device configuration by specifying target name.
2018-02-15 13:42:48 +00:00
Marc Bonnici
52dca17fef target/descriptor: Fix generate target default config
Was previously expecting a dictionary of parameter attributes however the
actual type is a list.
2018-02-15 13:42:48 +00:00
Sergei Trofimov
2158dd047e workloads/hackbench: fix target_binary
Set target_binary as a class, rather than instance, attribute. This
happens only only once per run, and setting it as instance attribute the
first time, makes it unavailable for subsequent instances of the same
workload.
2018-02-15 10:14:40 +00:00
Marc Bonnici
4703dc616a framework/agenda: Remove unused code 2018-02-14 17:03:21 +00:00
Marc Bonnici
ad5fd0076c configuration/core: Add missing parameter alias for workload_parmeters 2018-02-14 17:03:21 +00:00
Sergei Trofimov
3dbba732f0 workloads/hackbench: fixes
- Only install/uninstall the executable once per run
- Add results file as a raw artifact
2018-02-14 11:48:07 +00:00
Sergei Trofimov
ea64630f57 workloads/rt-app: fix
Change "pull_file" to "pull" when exacting results. "pull_file" was WA2
API which somehow got missed.
2018-02-14 11:46:30 +00:00
Sergei Trofimov
2a712cd3bb workloads: add hackbench
Add hackbench kernel scheduler benchmark, which is part of the Linux
rt-tests suite. See:

	https://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rt-tests.git/tree/src/hackbench/hackbench.8
2018-02-14 11:13:05 +00:00
Sergei Trofimov
b1b379982c framework/output: fix job status
After loading (or attempting to load) job output, update the status from
the state, as that will be more accurate.
2018-02-14 11:13:05 +00:00
Sergei Trofimov
c87d016025 framework/output: handle missing/corrupt result files.
Do not explode if a result file for a job is missing when loading a
RunOutput. Specify job status as "UNKNOWN" and add the exception from
attempting to load the file to the events.
2018-02-14 11:13:05 +00:00
scott
d616d30ee1 Geekbench: Updating result processing to handle GB5 files 2018-02-14 09:29:56 +00:00
Marc Bonnici
0543982f29 framework/host: Generate default config.yaml upon first init 2018-02-14 09:13:04 +00:00
Marc Bonnici
dfce5ca7ba configuration/default: Update to use augmentation terminology 2018-02-14 09:13:04 +00:00
Marc Bonnici
73416d40c2 configuration/core: Remove unused RTParam code 2018-02-14 09:13:04 +00:00
Marc Bonnici
1ec1bd14a5 configuration/core: Remove unnecessary config point
`Augmentations` configuration point should be used instead of `output_processors`
entry which is already specified elsewhere.
2018-02-14 09:13:04 +00:00
Marc Bonnici
965f8e2218 configuration/core: Make generic_android default device 2018-02-14 09:13:04 +00:00
Marc Bonnici
d7f28da71e configuration/core: Add missing description to doc string 2018-02-14 09:13:04 +00:00
Sergei Trofimov
b33defbfea framework/workload: fix "no matching package" error
Fix an issue introduced by commit 42fb3eb

	framework/workload: make "no matching package" message more useful

PackageHandler was incorrectly passing self.name into the error message
instead of self.owner.name.
2018-02-12 11:45:03 +00:00
Sergei Trofimov
42fb3eb148 framework/workload: make "no matching package" message more useful
Make the error message reported when no matching Android app package
could be found more useful by including the workload name, and, if
applicable, sought version.
2018-02-09 17:45:04 +00:00
Sergei Trofimov
0d225dc128 workloads/exoplayer: add view
Add view for the workload, so that SurfaceFlinger frame data can be
collected for it.
2018-02-09 12:30:51 +00:00
scott
6e946a53dd Updating Geekbench workload to support the latest versions of both the standard and corporate application 2018-02-09 12:17:27 +00:00
Marc Bonnici
efc7dc9326 commands/create: Remove global section of generated agenda
Move the iterations parameter into `config`so the `global` section
can be removed.
2018-02-08 18:01:56 +00:00
Sergei Trofimov
ff5e5821d0 workloads/exoplayer: handle no orig rotation
Do not attempt to reset rotation in teardown if target did not specify
it before workload execution.
2018-02-08 15:01:03 +00:00
Marc Bonnici
fbf1bbb1cf workloads/exoplayer: Update supported versions
Adds '2.5' and '2.6' to the supported versions of the workload.
2018-02-08 14:58:39 +00:00
Marc Bonnici
5f1145a41f workloads/exoplayer: Prepend file format to downloaded filepath
Always prepend the format for the file into the downloaded filepath to
ensure matching is correctly performed. Previously the ogg file did not
specify this causing it to be re-downloaded for each run.
2018-02-08 14:58:39 +00:00
Marc Bonnici
22a2ccf7d6 target/logcatpoller: Make capitalisation consistent 2018-02-07 10:01:12 +00:00
Marc Bonnici
728057dbba target/androidassistant: Fix Logcat poller creation
Threads cannot be restarted therfore we need to create a new polling
thread for each time the poller is started.
2018-02-07 10:01:12 +00:00
Marc Bonnici
07cd770288 framework/plugin_cache: Fix missing assistant parameters 2018-02-07 10:01:12 +00:00
Marc Bonnici
9941b9a92a commands/show: Add missing assistant parameters and RT param note. 2018-02-07 10:01:12 +00:00
Marc Bonnici
9eca168c55 commands/show: Remove individual headings from output 2018-02-07 10:01:12 +00:00
Marc Bonnici
36309a4cf2 target/assistant: Fix logcat poller
Rename the `start` method to `run` as this is what is what is called
by the threading module's `start` method, otherwise this causes the
polling to be done in the main thread blocking execution.
2018-02-07 10:01:12 +00:00
Sergei Trofimov
c5df74eb56 framework/config: load plugins from extra packages
Add support for loading plugins from packages that register themselves
with WA by writing their names into $WA_USER_DIRECTORY/packages.

This is functionality that existed in WA2 and was omitted in WA3 until
now.
2018-02-06 17:30:49 +00:00
Sergei Trofimov
58c4ae609c framework/output_processor: fix get_output_processor()
Output processor names are converted to identifiers when they are
loaded. Ensure the same thing happens when looking up installed output
processors with get_output_processor().
2018-02-06 09:49:58 +00:00
Marc Bonnici
019e5da79e workloads/thechase: Port workload to WA3
Updated default view to run on Android N
2018-02-01 14:27:45 +00:00
Marc Bonnici
ed77855949 instruments/trace-cmd: Only insert trace markers if enabled
Check to see if the instrument is enabled before adding start and stop
trace markers.
2018-02-01 14:26:08 +00:00
Marc Bonnici
9a556721b6 Augmentations: Allow configuring of augmentations per workload
Add support for enabling and disabling of augmentations (instruments and
output processors) on a per workload basis.
2018-02-01 14:26:08 +00:00
Marc Bonnici
557d62ce86 framework/configuration: Fix disabling of augmentations
Previously disabling of augmentaions via using the `--disable`
flag or by using the "~" notation in agendas was ignored.
2018-02-01 14:26:08 +00:00
Marc Bonnici
d9a7e1c475 utils/types: Add add method to toggle_set
Allows adding of elements that will respect the state of an existing
element in the toggle set.
2018-02-01 14:26:08 +00:00
Marc Bonnici
2699bceba3 workloads/googleslides: Fix unable to locate image on chromebook 2018-01-31 19:16:51 +00:00
Marc Bonnici
cba773b5e6 workloads/gmail: Fix to use passed working directory parameter
In devlib the default working directory has changed causing the workload
to look in the wrong directory, now the workload should use the passed
working directory and extract the relevant name from there.
2018-01-31 19:16:51 +00:00
Marc Bonnici
e5ed64d8d5 trace_cmd: Rename trace-cmd to trace_cmd
Both the instrument and utility functions were called `trace-cmd.py`.
`"-"`'s are not valid python identifiers therefore when trying to import
the `trace-cmd` module this causes an error.
2018-01-25 16:28:51 +00:00
Sergei Trofimov
902c3c6ace instruments/poller: add ftrace marker support
- Add an option to the poller binary insert a marker into ftrace that
  aligns with the first output entry. The option is exposed as an
  instrument parameter.
- If this parameter is set, the resulting .csv will be post-processed to
  update the timestamps to align with trace-cmd output.
- Change poller artifact names to use - instead of _ to be consistent
  with trace-cmd artifact naming.
2018-01-25 10:50:02 +00:00
Sergei Trofimov
dae4d9a934 framework/execution: add context to job signals
Pass the execution context to job execution signal callbacks.
2018-01-25 10:50:02 +00:00
Sergei Trofimov
a2c113e0f9 framework/signal: log on connect/disconnect
Add debug level logging for connect() and disconnect() functions.
2018-01-25 10:50:02 +00:00
Sergei Trofimov
fc56de8842 framework/instruments: add ManagedCallback __repr__
Add a __repr__ for ManagedCallback callback to prove a useful
representation in logging.
2018-01-25 10:50:02 +00:00
Marc Bonnici
1101c358d0 framework/rt_config: Add support for chromeos for some AndroidRTConfig
Allows setting of select android runtime configuration for devices running
chromeos and which support android. Currently only 'brightness' is functioning
correctly therefore the other parameters are only enable for standard android devices.
2018-01-25 06:32:37 +00:00
Marc Bonnici
320da77ac0 framework/workload: Adds support for ChromeOs Targets
Adds a check if the target is running ChromeOs and if so only use the
Android Container portion for running thr workload.
2018-01-25 06:32:37 +00:00
Marc Bonnici
b4d6017dd4 framework/descriptor: Add ChromeOsTarget 2018-01-25 06:32:37 +00:00
Marc Bonnici
a7bf5c2df9 ChromeOsAssistant: Add assistant for ChromeOS 2018-01-25 06:32:37 +00:00
Marc Bonnici
776a4d850b framework/rt_config: Remove over cautious error checking.
Previously when validating cpufreq runtime parameters it would check too
early whether the cpu was online, not allowing for the fact that the cpu
might be being onlined before the parameter was committed to the device.
2018-01-18 16:16:45 +00:00
Marc Bonnici
3cf789e352 framework/rt_config: Fix not being able to turn off all cpus in cluster
Add missing equality sign in constraint for runtime parameters.
2018-01-18 16:16:45 +00:00
Marc Bonnici
60c16c802f framework/rt_config: Fix typo in hotplug big.LITTLE RT Params 2018-01-18 16:16:45 +00:00
Marc Bonnici
7100165376 configuration/core: Fix alias for 'results_processors'
Adds missing 's' for alias name.
2018-01-17 16:41:49 +00:00
Marc Bonnici
cf39d6c8d3 workloads/memcpy: Fix typos 2018-01-15 15:42:26 +00:00
Marc Bonnici
4b8d8d62c5 workloads/memcpy: Adds once decorators to workload
Ensure that the binary is only installed and uninstalled only once for
this workload.
2018-01-15 15:42:26 +00:00
Marc Bonnici
f26d819aad utils/exec_control: Fix once decorator implementation
Ensures that the once decorator does not affect classes in a parallel
inheritance hierarchy.
2018-01-15 15:42:26 +00:00
Patrick Bellasi
b0262e5103 Exoplayer: Add support for Landscape mode
To improve reproducibility of tests, it could help to ensure that the
same screen orientation is used on media playback.
This adds a new workload parameter which allows to ensure a LANDSCAPE
mode, which can be useful to better represent video playback scenarios.
When not enforced by the agenda, we enforce a PORTRAIT orientation.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
2018-01-15 13:52:11 +00:00
Marc Bonnici
446a1cfbb0 wa: Rename Instrumentation to Instruments
To be maintain a consistent naming scheme, rename all instances of
`Instrumentation` to `Instruments`
2018-01-15 10:24:03 +00:00
Marc Bonnici
987f4ec4f1 wa: Rename update_results reference to update_output
To be consistant with the rename of output_processors, old references
to `update_results` have now been changed to `update_output`.
2018-01-15 10:24:03 +00:00
Marc Bonnici
538cd8d332 wa: Rename results_processors to output_processors
For clarity and to better reflect their purpose, rename
`results_processors` to `output_processors`.
2018-01-15 10:24:03 +00:00
Marc Bonnici
a688c9120e framework/configuration: Fix missing return statements for Jobspec properties 2018-01-12 17:28:56 +00:00
Marc Bonnici
bd9189f26a framework/getters: Fix missing return in Filer Getter 2018-01-12 17:28:56 +00:00
Marc Bonnici
58131c1a6d framework/plugin: Fix clearing of loaded plugin
`self.plugins` should be a dictionary and when being cleared was being
reinitialized as a list.
2018-01-12 17:28:56 +00:00
Marc Bonnici
4fc39dedbc framework/execution: Fix message parameter order 2018-01-12 17:28:56 +00:00
Marc Bonnici
0047ce31d7 commands/run: Fix formatting 2018-01-12 17:28:56 +00:00
Marc Bonnici
937d417a42 framework/parsers: Fix whitespace 2018-01-12 17:28:56 +00:00
Marc Bonnici
ad530a8925 framework/parsers: Fix incorrect method name 2018-01-12 17:28:56 +00:00
Sergei Trofimov
fbb1a125fd framework/target: fix caseless runtime params
Fix the setting of runtime parameters when the casing of the parameter in
the agenda does not match the "canonical" casing.

To make the writing of agendas easier, the casing of the parameters is
supposed to be ignored. To achieve this, parameter names are converted to
caseless_string type before they are looked up.

caseless_string's do not work with dicts. Both __contains__ (used for
the "in" operator) and __getitem__ (used for the [] operator) implement
hash-based look up, and it is not possible to have a caseless_string
match against multiple hashes to cover the different casing
possibilities.

So instead, iterate over the items in parameters dict, comparing the
caseless_string name to the key, and returning the value if it matches.
2018-01-11 11:04:25 +00:00
Sergei Trofimov
fabdcc5e30 workloads: port shellscript workload from WA2
Port shellscript workload that allows running an arbitrary shellscript
as a WA workload from WA2.
2018-01-10 09:16:44 +00:00
Marc Bonnici
51794c99e9 framework/workload: Fix incorrect regex matching apk filepath
On some devices an installed apk filepath can contain an '=' character
which was previously used to end the regex match. Now match with the
package name as well to ensure the file path is extracted correctly.
2018-01-09 10:45:58 +00:00
Marc Bonnici
d4f78afc30 workloads/rt-app: Port workload from WA2 2018-01-08 10:40:36 +00:00
Marc Bonnici
2dc1d2e54e confirguration/core: Add parameter default to MetaConfig
Uses os.eviron as the default environment for creation of a
MetaConfiguration object, this allows an instance to be created without
providing any parameters and fixes re-creating an instance from pod.
2018-01-08 10:36:57 +00:00
Marc Bonnici
6511db1559 framework/output: Fix RunOutput read_config
Fixes trying to deserialize wrong class type.
2018-01-08 10:36:57 +00:00
Marc Bonnici
950427f478 utils/revent: Refactor ReventRecording to avoid duplicate target calls
Changed location of revent binary on target to be a class attribute so that
it is shared across all instances. Also changed discovery method to a
static method which can be memoized to prevent the target being queried
unnecessarily.
2018-01-08 10:36:02 +00:00
Marc Bonnici
b1a15b3458 workloads/angrybirds_rio: Add missing package name 2018-01-08 10:34:51 +00:00
Marc Bonnici
635ebc1f4d commands/show: Improved formatting of show command 2018-01-08 10:34:32 +00:00
Sergei Trofimov
833c3dd0a0 framework/target: manager: use get_target_description
use the new get_target_description() when initializing the target inside
TargetManager, instead of manually searching through results of
list_target_descriptions().
2017-12-15 17:07:34 +00:00
Sergei Trofimov
d11165b703 framework/target: add get_target_descriptor()
Add a function to get a TargetDescriptor by its name.
2017-12-15 17:07:34 +00:00
Sergei Trofimov
0a67e94709 framework/target: rename get_target_descriptions
Rename get_target_descriptions to list_target_descriptions.
2017-12-15 17:07:34 +00:00
Marc Bonnici
7bd99637c1 Target/AndroidAssistant: Try to disable selinux
If the target is rooted, attempt to disable selinux as this can cause
issues during runtime.
2017-12-14 17:56:29 +00:00
Marc Bonnici
38e11f6777 commands/show: Adds show command
The show command will try to use pandoc and man to display the relevant
information and will fall back to printing the markdown if pandoc is not
available.
2017-12-14 09:50:26 +00:00
Marc Bonnici
103368415b target/descriptor: Fix sudo_cmd parameter description 2017-12-14 09:50:26 +00:00
Marc Bonnici
9832db9fa5 utils/doc: Rename get_rst_from_extension for consistency 2017-12-14 09:50:26 +00:00
Marc Bonnici
346ce2fb15 framework/workload: Fix typo and formatting 2017-12-14 09:50:26 +00:00
Marc Bonnici
adb14442c8 utils/doc: Change get_params_rst to be more flexible
Instead of taking an extension as a parameter and assuming there it has
an attribute 'parameters' instead take a list of parameters directly
which allows the method to be used with parameter lists with different
names.
2017-12-14 09:50:26 +00:00
Marc Bonnici
6df498b4bd framework/workload: Fix path of deployed asset
Get pushed file basename to ensure the assets deployed path is correct.
2017-12-14 08:15:39 +00:00
Sergei Trofimov
f498f0acdc wa: export RunOutput and discover_wa_outputs
Export RunOutput and discover_wa_outputs from the main __init__.py
allowing them to be directly imported from wa.
2017-12-13 15:55:38 +00:00
Sergei Trofimov
d1a42f6e64 framework/output: add discover_wa_outputs
Add a function that traverses a directory structure looking for WA
output directory and yielding corresponding RunOutput objects.
2017-12-13 15:55:38 +00:00
Sergei Trofimov
bb9f735cd4 framework/target: assistant: fix import
Import Parameter from the module that defines it rather than from wa to
avoid circular import errors.
2017-12-13 15:55:38 +00:00
Sergei Trofimov
c1319ce8cb framework/output: load jobs on RunOutput creation
Populate RunOutput's jobs attribute with job outputs on its creation.
2017-12-13 15:55:38 +00:00
Sergei Trofimov
4a239790d2 framework/output: add target_info to RunOutput
Make TargetInfo an attribute of run output, replacing the read/write
methods for the targetfile. Instead, always load it on creation, if
targetfile exists (useful for external scripts), and have a method to
set it after creation (uselful during WA run, where the output is
created before connecting to the target).
2017-12-13 15:55:38 +00:00
Sergei Trofimov
3ab0aa04de framework/target: fix TargetInfo deserialization
Fix TargetInfo.from_pod(). As part of creating the POD, some of devlib's
classes such as Cpuinfo, get serialized. Since they are from devlib,
they do not implement WA's serialization interface, and are instead
serialized by extracting their internal structures. They are then not
deserialized properly, since their __init__'s expect text rather than
parsed structures.

This implements deserialization functions for these classes which
initialize them properly from TargetInfo POD.
2017-12-13 15:55:38 +00:00
Sergei Trofimov
f9df5195b9 instrument/energy: add support for Juno on-board measurement
Add support for JunoEnergyInstrument backend that utilizes the on-board
Juno sensors.
2017-12-12 10:07:04 +00:00
Sergei Trofimov
ed691a5335 framework/target: add shell_prompt target param.
Add a Parameter to specify a regex that matches the shell prompt on the
target. This used in establishing serial tty connections (e.g. VExpress
UART).
2017-12-12 10:07:04 +00:00
Sergei Trofimov
e0fd44ed6b processors: add targz processor
Add an output processor to create a tarball of WA output directory.
2017-12-11 10:07:21 +00:00
Marc Bonnici
7a8492031e commands/workload_templates: Fix validate method in template
Remove incorrect parameter for super 'validate' call.
2017-12-11 08:04:49 +00:00
Marc Bonnici
6308f99b9d commands/revent: Fix revent for non android based workloads
Previously recording an revent workload would assume an android based
revent workload with an apk. Now only deploy apk if present for
workload.
2017-12-11 08:04:49 +00:00
Sascha Bischoff
45738dfffe workloads/dhrystone: Remove trailing whitespace 2017-12-08 10:46:29 +00:00
Sascha Bischoff
3544b716d2 workloads/dhrystone: do initialize/finalize once per run
Add in the "once" decorator for the initialize and finalize methods to
ensure that they only run once per run.
2017-12-08 10:46:29 +00:00
Sergei Trofimov
4069e37f6b workloads/dhrystone: fix run with num loops and delay
Fix output when running for a specified number of loops (rather than
duration) and adding delay to threads. Previously, the output for the
last thread was not printed due to a missing check for a negative
duration.
2017-12-08 09:39:40 +00:00
Marc Bonnici
5729df0a5b instrumentaion/file_poller: Port instrument from WA2 2017-12-08 08:51:16 +00:00
Marc Bonnici
6022c38ae2 commands/revent: Fix revent command
Update revent commands to supply output directory when creating
TargetManager and fix ignoring any additional device config provided.
2017-12-08 08:40:38 +00:00
Marc Bonnici
0d45fa3b27 Revert "DO NOT MERGE: stub out broken method"
This reverts commit 7a3503775d.
2017-12-07 15:45:38 +00:00
Brendan Jackman
07243740d6 framework/plugin: Calm pylint 2017-12-07 15:37:49 +00:00
Brendan Jackman
56674aa3a9 framework/plugin: Satisfy pylint's nitpicks 2017-12-07 15:37:49 +00:00
Brendan Jackman
feabecd19d framework/workload: Calm pylint 2017-12-07 15:37:49 +00:00
Brendan Jackman
69f52f3359 framework/workload: Remove unused imports 2017-12-07 15:37:49 +00:00
Brendan Jackman
d8a44adde8 framework/run: Calm pylint 2017-12-07 15:37:49 +00:00
Brendan Jackman
c8d1b0e4fb framework/job: Calm pylint 2017-12-07 15:37:49 +00:00
Brendan Jackman
8032abc805 framework/run: Store RunInfo attributes from constructor 2017-12-07 15:37:49 +00:00
Brendan Jackman
3337cd477e framework/run: Whitespace 2017-12-07 15:37:49 +00:00
Brendan Jackman
cf67a7784c framework/getters: Calm pylint 2017-12-07 15:37:49 +00:00
Brendan Jackman
4d7b76fd98 framework/getters: Whitespace 2017-12-07 15:37:49 +00:00