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
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
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