tree 646bf6611ff20725b4754c63e58f58c15f498634
parent 3e647a63cb9b9a70d967643d86c711b530fb4e73
author Luke Drummond <luke.drummond@codeplay.com> 1466439069 +0100
committer Luke Drummond <luke.drummond@codeplay.com> 1466439069 +0100

Bring lldb testsuite up to date with codeplay internal

- Make source python2/3 compatible (win32 lldb with debug symbols requires python3)
- Reduce testsuite footprint by merging duplicated tests across jni,
  cpp, and java tests. This code reduction required the addition of
  new app-type decorators in tests/harness/decorators. Separate
  directories for each bundle type are no longer required.
- Improve wimpy test logic: @wimpy decorator added. `harness.TestBase`
  now take wimpy argument which is an attribute on all test-cases
  objects.
- Bundle type is now printed in the logs.
- Revise the test breakpoint coordinate test, and fix problem with
  incorrectly numbered breakpoints in
  `test_breakpoint_coordinate_3d_add_half_kernel()`
- Support better test descovery with multiple `test_*` methods per
  `TestBase` object, and multiple TestBase objects per module.
- Added single source tests.
- Added `--fail-fast` command line switch to bail out after first failure.
- Added basic progress metering
- Deprecate running the emulator from the testsuite; this required the
  addition of the `decorators.deprecated` decorator.
- Added `--app-type` command line argument to specify a subset of tests
  to run.
- Clean up naming conventions in the tested apps.

Change-Id: Ifc34a9c2a2666152760a261333a20d585cfb3162
Signed-off-by: Luke Drummond <luke.drummond@codeplay.com>
