The beginnings of a gtest-based test framework.

Makes use of LLVM gtest support.  This does *not* run as part of
the lldb test suite.

I'm using it to start testing some components that
I'll be adding to the inner guts of NativeThreadLinux to more
maintainably handle thread states and deferred thread state notification.

Runs with default Makefile target "test" using gmake within a given
test directory (currently only test/c++/native_process/thread_state_coordinator).

The Makefile.rules currently assume it is using the LLVM gtest.  It works on
a canonical MacOSX dir structture (i.e. lldb, lldb/llvm, lldb/llvm/tools/clang).
It also works on Ubuntu assuming the standard dir layout of llvm, llvm/tools/clang,
llvm/tools/lldb.  In this case, it expects a directory called build-debug parallel
to the llvm source dir.  All directory assumptions can be overridden with
environment variables.  See test/c++/make/Makefile.rules for details.

We'll want to make this smarter in the future, particularly around finding the LLVM build
output dir.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218422 91177308-0d34-0410-b5e6-96231b3b80d8
Moved PlatformDarwin::GetEnvironment() to PlatformPOSIX to fix Linux/llgs issue.

See http://reviews.llvm.org/D5486 for more details.

I was tracking a problem where llgs on linux would not pick up any environment variables. On OSX there is a virtual function PlatformDarwin::GetEnvironment() which correctly sets up the list of environment variables. On linux llgs it defaults to a base class default implementation which clears the list.

I moved the OSX implementation down to PlatformPOSIX. This fixes my problem on linux still works properly on OSX.

Change by Shawn Best.
Slight tweak to convert 'virtual' to 'override' in PlatformDarwin.h virtual method override by Todd.

Tested:
Ubuntu 14.04 x86_64, cmake/ninja build + tests.
MacOSX 10.9.5 x86_64, Xcode 6.1 Beta build + tests.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218424 91177308-0d34-0410-b5e6-96231b3b80d8
Fixup gtest layout, add Linux ThreadStateCoordinator.cpp.

This change does the following:
* Remove test/c++/...
* Add gtest.
* Add gtest/unittest directory for unittesting individual classes.
* Add an initial Plugins/Process?linux/ThreadStateCoordinatorTest.cpp.
  - currently failing a test (intentional).
  - added a bare-bones ThreadStateCoordinator.cpp to Plugins/Process/Linux,
    more soon. Just enough to prove out running gtest on Ubuntu and MacOSX.
* Added recursive make machinery so that doing a 'make' in gtest/ is
  sufficient to kick off the existing test several directories down.
  - Caveat - I currently short circuit from gtest/unittest/Makefile directly to
    the one and only gtest/unittest/Plugins/Process/Linux directory.  We'll need
    to add the intervening layers.  I haven't done this yet since to fix the
    Xcode test failure correspondence, I may need to add a python layer which
    might just handle the directory crawling.
* Added an Xcode project to the lldb workspace for gtest.
  - Runs the recursive make system in gtest/Makefile.
  - Default target is 'test'.  test and clean are supported.
  - Currently does not support test failure file/line correspondence.
    Requires a bit of text transformation to hook that up.




git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218460 91177308-0d34-0410-b5e6-96231b3b80d8
gtest: remove recursive make, add python driver + Xcode error hook-up.

This change does the following:
* Removes the gtest/Makefile recursive-make-based calling strategy
  for gtest execution.
* Adds the gtest/do-gtest.py call script.
  - This handles finding and calling the Makefiles that really
    run tests.
  - This script also transforms the test output into something
    that Xcode can place a failure marker on when a test fails.
* Modifies the Xcode external build command target for gtest.
  It now calls the gtest/do-gtest.py script.

There is still room for improvement on Xcode integration of
do-gtest.py.  Essentially the next several lines of error reporting
from the gtest output should be coalesced into a single line so that
Xcode can tell more about the error directly in the editor.  Right now
it just puts a red mark and says "failure" but doesn't give any
details.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218470 91177308-0d34-0410-b5e6-96231b3b80d8
gtest: modified Xcode integration so gtest assert/expect failure now shows error content in the error marker at the line of failure.

This change modifies the python test runner to combine lines starting with a
failure report including up to 3 more lines, terminated by the next
"[  FAILED  ]" line.  These are all emitted on the same line as the file:line
indication, which allows Xcode's failure marker code to pick it up and display
it along with the error badge in the Xcode editor window.  Makes for a nice
gtest development experience.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218518 91177308-0d34-0410-b5e6-96231b3b80d8
gtest: tweaked test runner to fix an extra comma, added more tdd-based thread coordinator behavior.

Starting to flesh out the thread state coordinator class that will be used
by Linux/llgs.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218537 91177308-0d34-0410-b5e6-96231b3b80d8
thread state coordinator: handle when prerequisite pending stop is already stopped.

Change includes new gtest and functionality.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218555 91177308-0d34-0410-b5e6-96231b3b80d8
thread state coordinator: added test for notify after two pending thread stops.

Glad I did - caught a bug where the auto variable was not a reference
to a set and instead was a copy.  I need to review rules on that!


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218558 91177308-0d34-0410-b5e6-96231b3b80d8
thread state coordinator: added thread death support and more tests.

Tested two pending stops before notification, where one of the pending stop
requirements was already known to be stopped.

Tested pending thread stop before notification, then reporting thread with
pending stop died and verifies pending notification is made.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218559 91177308-0d34-0410-b5e6-96231b3b80d8
Enable llgs to build against experimental Android AOSP lldb/llvm/clang/compiler-rt repos.

See http://reviews.llvm.org/D5495 for more details.

These are changes that are part of an effort to support building llgs, within the AOSP source tree, using the Android.mk
build system, when using the llvm/clang/lldb git repos from AOSP replaced with the experimental ones currently in
github.com/tfiala/aosp-{llvm,clang,lldb,compiler-rt}.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218568 91177308-0d34-0410-b5e6-96231b3b80d8
thread state coordinator: added new thread support.

A new thread arriving while a pending signal notification
is outstanding will (1) add the new thread to the list of
stops expected before the deferred signal notification is
fired, (2) send a stop request for the new thread, and
(3) track the new thread as currently running.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218578 91177308-0d34-0410-b5e6-96231b3b80d8
Included cstdarg for compilation of va_start and va_end.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218594 91177308-0d34-0410-b5e6-96231b3b80d8
Very minimal support 24-bit kalimbas. Vanilla "memory read" for data sections
works, as do breakpoints, run and pause, display zeroth frame.

See
http://reviews.llvm.org/D5503

for a fuller description of the changes in this commit.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218596 91177308-0d34-0410-b5e6-96231b3b80d8
Android.mk files