Previously when retrieving apks only it's name would be used to choose
an apk. Now the native code reported by the apk is used to determine
the correct version to run for the specific device. It tries to
match the primary abi of device with native code before falling back to
using a compatible apk.
When using the check_abi parameter it no longer relies on naming convention
and only allows apks with native code supporting a devices primary abi to be
used.
Updated the relevant documentation.
Changed termination signal to interrupt signal to prevent code exiting too early.
Added exit handler to ensure revent exits correctly as previously was
crashing and therefore not running final code.
Fixed error in writing input event where half of timestamp seconds was missing.
Fixed typo in documentation for revent file structure.
- Updated documentation for revent format to reflect the new
format.
- Moved format documentation below state verification section, to the
bottom of the document,as generally this will be the least-sought
section.
- Updated usage to document -g option
- Corrected code highlighting and phase names in documentation
- Fixed check_states paremeter not being honoured
- Moved state dependencies check to happen earlier in execution
and to be a user facing error
APK Resolution is now handled a bit differently to try maximise the likelyhood
of a workload running.
Like before `force_install` will always try to install the host version, if it
is not present or is not a correct version, it will error.
`check_apk` has changed so that when it is `True` it will prefer to use the host
side APK. If it is not there, or not a suitable version and/or abi and the target
already has a correct version of the app, the target app will be used. When it is
to `False` WA will prefer the target version of the app so long as it is a valid
version, if it is not then it will fallback to the host side APK.
- Added statedetect.py in utils which is a standalone module that
contains all the methods needed for state detection
- Modified the setup() and run() methods of the GameWorkload class
in common/android/workload.py to have a parameter that enables
state checks and run the check after setup and run if requested.
State detection uses the template matching method available in
OpenCV to determine the state of the workload by detecting
predefined unique elements on a screenshot from the device.
Added two commands to WA to record and replay input events using revent.
As part of this also added the ability to get a device model from
android and linux device. This may need to be improved in the future.
Failed jobs will now be automatically retired. This is controlled by two
new settings:
retry_on_status - a list of statuses which will be consided failures and
result in a retry
max_retries - number of retries before giving up
Mention in the documentation that Android SDK is optional for
users who plan to run WA on Linux devices only, and how they
would only be able to start running a limited number of workloads.
Also included a few trivial fixes such as spelling errors and
moving sentences around to improve flow.
Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
Add the uninstall and upgrade commands for users to remove or
upgrade Workload Automation for future reference.
Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
A copy/paste of the documentation example results in a python
backtrace because the dict keys cannot be quoted:
wlauto.exceptions.ConfigError: Sytax error in config: keyword can't be an expression (config.py, line XYZ)
Fix by removing the quotes from the keys in the example.
Signed-off-by: Kevin Hilman <khilman@linaro.org>