Commit Graph

3186 Commits

Author SHA1 Message Date
Adrian McCarthy 1406f9154e Update Makefile to reflect that TestNumThreads now uses std::thread instead of pthreads.
llvm-svn: 237919
2015-05-21 17:47:58 +00:00
Tamas Berghammer a98788d17e Add bug number for TestEvents
llvm-svn: 237904
2015-05-21 14:04:17 +00:00
Tamas Berghammer b5f4e6dd53 XFAIL TestEvents on Linux bacuse it is flaky
llvm-svn: 237888
2015-05-21 10:16:55 +00:00
Pavel Labath f249efa7e9 XFAILing TestRaise on darwin due to an apparent bug
llvm-svn: 237887
2015-05-21 10:15:57 +00:00
Pavel Labath 39036ac31d [NativeProcessLinux] Fix handling of SIGSTOP
Summary:
Previously, NPL tried to reinject SIGSTOP into the inferior in an attempt to get the process to
start in the group-stop state. This was:
a) wrong (reinjection should be controlled by "process handle" lldb setting)
b) racy (it should use Resume for transparent resuming instead of RequestResume)
c) broken (llgs crashed on inferior SIGSTOP)

With this change, SIGSTOP is handled just like any other signal delivered to the inferior: we
stop all threads and report signal reception to lldb. SIGSTOP reinjection does not behave the
same way as it would outside the debugger, but simulating this is a hard problem and is not
normally necessary.

Test Plan: I have added a test which verifies we get SIGSTOP reports and we do not crash.

Reviewers: ovyalov, chaoren

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D9852

llvm-svn: 237880
2015-05-21 08:32:18 +00:00
Vince Harron a7959f6585 trivial log print fix
llvm-svn: 237878
2015-05-21 05:57:28 +00:00
Chaoren Lin 36758cf16a Using -pthread instead of -lpthread to appease GCC.
llvm-svn: 237864
2015-05-21 00:19:15 +00:00
Adrian McCarthy 58443f2429 Have TestNumThreads use std::thread instead of pthreads so that it can work cross-platform.
llvm-svn: 237844
2015-05-20 22:32:44 +00:00
Ilia K 38810f430b Fix handling of hijacked events in synchronous mode
Summary:
This patch includes the following changes:
* Fix Target::Launch to handle hijacked event in synchronous mode
* Improve MiStartupOptionsTestCase tests to expect *stopped (MI)
* Add SBProcess::GetStopEventForStopID
* Add ProcessModID::SetStopEventForLastNaturalStopID/GetStopEventForStopID
* Add const qualifier to ProcessModID::GetLastNaturalStopID
* Add SBProcess::GetStopEventForStopID
* Don't broadcast hijacked event in Target::Launch
* Add CMICmnLLDBDebugger::CheckIfNeedToRebroadcastStopEvent/RebroadcastStopEvent

Test Plan: ./dotest.py -v --executable $BUILDDIR/bin/lldb tools/lldb-mi/startup_options/

Reviewers: zturner, jingham, clayborg, abidh

Reviewed By: clayborg

Subscribers: abidh, zturner, lldb-commits, clayborg, jingham

Differential Revision: http://reviews.llvm.org/D9371

llvm-svn: 237781
2015-05-20 10:15:47 +00:00
Tamas Berghammer 0d0ec9f2d7 Mark TestEvents as XTIMEOUT on Linux
llvm-svn: 237679
2015-05-19 10:49:40 +00:00
Ilia K 5e47696da2 Don't print =breakpoint-created if BP info was emitted in the result record (MI)
llvm-svn: 237676
2015-05-19 09:57:56 +00:00
Vince Harron d347f27f45 dotest - minor doc fix
llvm-svn: 237665
2015-05-19 05:10:22 +00:00
Vince Harron 0c6160156a Make it possible to run dotest on Linux without any parameters
dotest will select clang-3.5 by default and fall back on clang/gcc
dotest will look for the lldb executable in the typical cmake
output locations:
{lldb}/../../../build/bin (next to llvm directory)
{lldb}/../../../build/host/bin (next to llvm directory)
{lldb}/../build/bin (next to lldb directory)
{lldb}/../build/host/bin (next to lldb directory)

llvm-svn: 237632
2015-05-18 23:07:18 +00:00
Vince Harron 7b6039d456 Fixes errors in remote tests
llvm-svn: 237603
2015-05-18 19:44:19 +00:00
Vince Harron f8b9a1da2b Refactored dotest arg parser so that it's accessible from dosep
This allows dosep to understand an act on dotest arguments

Differential Revision: http://reviews.llvm.org/D9820

llvm-svn: 237602
2015-05-18 19:40:54 +00:00
Vince Harron f1518f5981 dotest - Refactored some code into loops
Renamed 'base' to 'lldbRootDirectory'
Renamed 'lldbPath' to 'lldbPythonDir'
Added cmake output directories to lldb executable search locations
Fixed invocation of lldb -P to ignore 'Cannot read termcap database'

Differential Revision: http://reviews.llvm.org/D9818

llvm-svn: 237601
2015-05-18 19:40:00 +00:00
Vince Harron 790d95cbec Refactored lldb executable name discovery
The lldb executable was referenced through the code by 7 different
(effectively) global variables.

global lldbExecutablePath
global lldbExecutable
os.environ['LLDB_EXEC']
os.environ['LLDB_TEST']
dotest.lldbExec
dotest.lldbHere
lldbtest.lldbExec

This change uses one global variable lldbtest_config.lldbExec to
replace them all.

Differential Revision: http://reviews.llvm.org/D9817

llvm-svn: 237600
2015-05-18 19:39:03 +00:00
Vince Harron 0f173ac130 XTIMEOUT TestThreadSpecificBreakpoint.py on darwin
Differential Revision: http://reviews.llvm.org/D9815

llvm-svn: 237599
2015-05-18 19:36:33 +00:00
Tamas Berghammer 45176c2341 Fix test expectation in TestThreadExit after r237566
llvm-svn: 237578
2015-05-18 16:08:06 +00:00
Pavel Labath 8dd974f735 Update the failure reason of TestConvenienceVariables and tighten the XFAIL
llvm-svn: 237577
2015-05-18 15:48:48 +00:00
Pavel Labath 482b9d0ef8 Fix typo in previous commit
llvm-svn: 237575
2015-05-18 15:41:50 +00:00
Pavel Labath dc3ecf4c88 Update TestMiVar with a bug id
llvm-svn: 237571
2015-05-18 15:35:42 +00:00
Ilia K 055ad9beba Add --move-to-nearest-code / target.move-to-nearest-code options (attempt 2)
This patch initially was committed in r237460 but later it was reverted (r237479) due to 4 new failures:
* TestExitDuringStep.py
* TestNumThreads.py
* TestThreadExit.py
* TestThreadStates.py

This patch also fixes these tests.

llvm-svn: 237566
2015-05-18 13:41:01 +00:00
Vince Harron a0c955251f XFAIL'd some flakey tests on Darwin
llvm-svn: 237543
2015-05-17 15:32:14 +00:00
Vince Harron 41b94d9bfc XFAIL'd some tests that fail very, very rarely
llvm-svn: 237515
2015-05-16 07:05:15 +00:00
Enrico Granata bb642e5456 Constant result ValueObjects are - well - constant
And they also do not have a thread/frame attached to them

That makes dynamic and synthetic values attached to them impossible to update - which, among other things, makes it impossible to properly display persistent variables of types that could have such dynamic/persistent values

Fix this by making it so that a ValueObject can control its constantness (hint: dynamic and synthetic values cannot be constant) and whether it wants to let itself be updated when an invalid thread is around

llvm-svn: 237504
2015-05-16 01:27:00 +00:00
Vince Harron fc872b205a XFAIL'd MiVarTestCase.test_lldbmi_eval on gcc-4.9/i386
It times out on TestMyVar:113

self.expect("\^done,value=\"0x[0-9a-f]+\"")

llvm-svn: 237480
2015-05-15 21:54:02 +00:00
Vince Harron a66c695340 Reverting r237460 to fix test failures introduced on OSX & Linux
TestExitDuringStep.py
TestNumThreads.py
TestThreadExit.py
TestThreadStates.py

llvm-svn: 237479
2015-05-15 21:43:26 +00:00
Robert Flack 4629c4b9cb Choose stdlib for test suite based on target platform.
When compiling programs for the test suite we currently choose which stdlib to
use based on the host platform, but should be basing this on the target
platform.

Test Plan: ./dotest.py $DOTEST_OPTS -t -p TestThreadExit.py
This test previously failed mac->linux most of the time due to using the mac
host's atomic declaration.

Differential Revision: http://reviews.llvm.org/D9797

llvm-svn: 237466
2015-05-15 18:54:32 +00:00
Ilia K d9f1a78aa0 Add --move-to-nearest-code / target.move-to-nearest-code options
Summary:
This option forces to only set a source line breakpoint when there is an exact-match

This patch includes the following commits:
# Add the -m/--exact-match option in "breakpoint set" command
## Add exact_match arg in BreakpointResolverFileLine ctor
## Add m_exact_match field in BreakpointResolverFileLine
## Add exact_match arg in BreakpointResolverFileRegex ctor
## Add m_exact_match field in BreakpointResolverFileRegex
## Add exact_match arg in Target::CreateSourceRegexBreakpoint
## Add exact_match arg in Target::CreateBreakpoint
## Add -m/--exact-match option in "breakpoint set" command
# Add target.exact-match option to skip BP if source line doesn't match
## Add target.exact-match global option
## Add Target::GetExactMatch
## Refactor Target::CreateSourceRegexBreakpoint to accept LazyBool exact_match (was bool)
## Refactor Target::CreateBreakpoint to accept LazyBool exact_match (was bool)
# Add target.exact-match test in SettingsCommandTestCase
# Add BreakpointOptionsTestCase tests to test --skip-prologue/--exact-match options
# Fix a few typos in lldbutil.check_breakpoint_result func
# Rename --exact-match/m_exact_match/exact_match/GetExactMatch to --move-to-nearest-code/m_move_to_nearest_code/move_to_nearest_code/GetMoveToNearestCode
# Add exact_match field in BreakpointResolverFileLine::GetDescription and BreakpointResolverFileRegex::GetDescription, for example:
was:
```
1: file = '/Users/IliaK/p/llvm/tools/lldb/test/functionalities/breakpoint/breakpoint_command/main.c', line = 12, locations = 1, resolved = 1, hit count = 2
  1.1: where = a.out`main + 20 at main.c:12, address = 0x0000000100000eb4, resolved, hit count = 2
```
now:
```
1: file = '/Users/IliaK/p/llvm/tools/lldb/test/functionalities/breakpoint/breakpoint_command/main.c', line = 12, exact_match = 0, locations = 1, resolved = 1, hit count = 2
  1.1: where = a.out`main + 20 at main.c:12, address = 0x0000000100000eb4, resolved, hit count = 2
```

Test Plan:
./dotest.py -v --executable $BUILDDIR/bin/lldb functionalities/breakpoint/
./dotest.py -v --executable $BUILDDIR/bin/lldb settings/
./dotest.py -v --executable $BUILDDIR/bin/lldb tools/lldb-mi/breakpoint/

Reviewers: jingham, clayborg

Reviewed By: clayborg

Subscribers: lldb-commits, clayborg, jingham

Differential Revision: http://reviews.llvm.org/D9273

llvm-svn: 237460
2015-05-15 18:16:15 +00:00
Ilia K 236714c67a Improve the MiVarTestCase.test_lldbmi_var_list_children test (MI)
llvm-svn: 237454
2015-05-15 16:13:51 +00:00
Robert Flack 6e1fd35bfe Skip TestPluginCommands.py if host lldb library is incompatible with remote.
TestPluginCommands.py attempts to build a library which links against the host
built lldb library. This will only work if the remote is compatible with
binaries produced by the host.

Test Plan:
./dotest.py $DOTEST_OPTS -v -t -p TestPluginCommands.py
Test is skipped if remote platform is incompatible with host platform (i.e. mac
-> linux).

Differential Revision: http://reviews.llvm.org/D9770

llvm-svn: 237444
2015-05-15 12:39:33 +00:00
Ilia K 3ac979c4da Fix CMICmdArgValPrintValues::Validate & enable 4 tests that were XFAIL'ed in r237437 (MI)
llvm-svn: 237443
2015-05-15 12:33:04 +00:00
Ilia K fbc88aa1dd XFAIL 4 lldb-mi tests to get Linux build green back (MI)
llvm-svn: 237437
2015-05-15 11:51:52 +00:00
Ilia K 27e2c058c9 Fix parsing of print-values arg (MI)
# Add CMICmdArgValPrintValues argument
# Rework -stack-list-arguments/-stack-list-locals/-stack-list-variables/-var-update/-var-list-children
  commands to use the CMICmdArgValPrintValues argument instead of usage of pair of non-mandatory
  arguments like: CMICmdArgValNumber(0) || CMICmdArgValLongOptions("no-values")

llvm-svn: 237429
2015-05-15 09:46:28 +00:00
Ilia K 06d2855fb3 Fix a reason of *stopped notifications due to SIGINT/SIGSTOP signals (MI)
# Add SBProcess::GetInterruptedFromEvent
# Add vrEvent arg in CMICmnLLDBDebuggerHandleEvents::HandleProcessEventStateStopped
  and CMICmnLLDBDebuggerHandleEvents::HandleProcessEventStopSignal
# Refactor CMICmnLLDBDebuggerHandleEvents::HandleProcessEventStopSignal
## Clean up and fix typos
## Remove vwrbShouldBrk arg
# Fix MiSignalTestCase.test_lldbmi_stopped_when_stopatentry_{local,remote}
  to expect SIGSTOP instead of SIGINT

llvm-svn: 237426
2015-05-15 09:29:09 +00:00
Oleksiy Vyalov 9953f0886b Reverting r237392 since it broke TestNumThreads on ubuntu builder.
llvm-svn: 237415
2015-05-15 02:05:10 +00:00
Adrian McCarthy d26b0c4d31 Enable multithreaded debugging on Windows.
llvm-svn: 237392
2015-05-14 21:07:59 +00:00
Siva Chandra b8c238c080 [TestSendSignal] Include signal.h instead of sys/signal.h in the test case.
Summary:
Android API-9 does not have sys/signal.h. However, all sys/signal.h
has when present is an include of signal.h.

Test Plan: dotest.py -p TestSendSignal on linux and Android.

Reviewers: chaoren

Reviewed By: chaoren

Subscribers: tberghammer, lldb-commits

Differential Revision: http://reviews.llvm.org/D9779

llvm-svn: 237381
2015-05-14 19:02:13 +00:00
Ed Maste 31bc506987 Avoid Linux-specific header in platform-independent tests
llvm-svn: 237371
2015-05-14 16:39:02 +00:00
Ed Maste 4dd8fba21e XTIMEOUT tests timing out on the FreeBSD buildbot
llvm-svn: 237369
2015-05-14 16:25:52 +00:00
Siva Chandra ff2b29d0ea [TestAttachDenied] Use a file instead of a pipe for synchronization.
Summary:
One cannot use mknod or mkfifo on user Android devices. This commit
changes the use of pipe to a file to synchronize between the inferior
and the test.

Test Plan: dotest.py -P TestAttachDenied

Reviewers: ovyalov, chaoren

Reviewed By: chaoren

Subscribers: tberghammer, lldb-commits

Differential Revision: http://reviews.llvm.org/D9768

llvm-svn: 237328
2015-05-14 01:36:47 +00:00
Vince Harron de92b52015 Added XTIMEOUT for TestAttachDenied.py
llvm-svn: 237319
2015-05-13 23:59:03 +00:00
Zachary Turner fb69dd8b64 Don't import lock on Windows.
lock imports fcntl, which doesn't exist on Windows.  If we need
to use this class on Windows, we will need to implement something
based on the CreateMutex API.

llvm-svn: 237292
2015-05-13 20:21:33 +00:00
Zachary Turner 535a69112b Fix broken test, this wasn't supposed to get committed.
llvm-svn: 237291
2015-05-13 20:21:22 +00:00
Robert Flack fa5ad65e5c Select expected remote libc++ library name based on remote platform.
Select expected remote libc++ library name based on remote platform. This is
used to verify libc++ is in the loaded image list by various tests which use it.

Test Plan:
Passes the following tests mac -> linux with this patch:
TestDataFormatterLibccIterator.py
TestDataFormatterLibccMap.py
TestDataFormatterLibccMultiMap.py
TestDataFormatterLibcxxMultiSet.py
TestDataFormatterLibcxxSet.py
TestDataFormatterUnordered.py

Differential Revision: http://reviews.llvm.org/D9759

llvm-svn: 237288
2015-05-13 20:17:34 +00:00
Zachary Turner ff33eefcc7 Fix an issue with finding python on Windows.
Someone must have changed the behavior of FileSpec slightly
relating to whether or not there is a trailing backslash when calling
GetPath() and GetDirectory().  This caused ScriptInterpreterPython
to find the wrong values when initializing sys.path, and as a result
we couldn't find the lldb module.

This patch fixes the issue, and also adds a test to make sure that
GetDirectory() does not return a string containing a trailing slash.

llvm-svn: 237282
2015-05-13 19:44:57 +00:00
Robert Flack 79e4a4b213 Check the host platform to determine logging channel to test in TestRegisters.py
Checks the host platform to determine logging channel to test in
TestRegisters.py as the logging runs host side.

Test Plan:
./dotest.py $DOTEST_OPTS -v -t -p TestRegisters.py
This passes mac -> linux as it's logging the correct channel.

Differential Revision: http://reviews.llvm.org/D9755

llvm-svn: 237271
2015-05-13 18:23:10 +00:00
Vince Harron 05df698d2b Darwin - fix intermitent crashes in import crashinfo
Summary:
"import crashinfo" was probably failing because multiple dotest invocations
are all trying to compile crashinfo.so at the same time.
    
I've put a mutex around the compile step to prevent this.
   
Reviewers: clayborg, chying
    
Subscribers: lldb-commits
    
Differential Revision: http://reviews.llvm.org/D9732

llvm-svn: 237230
2015-05-13 05:00:23 +00:00
Vince Harron e06a7a8e8f dosep can run tests in a specific subfolder
For example:

./dosep.py -o "$DOTEST_OPTS" lang/c/

Differential Revision: http://reviews.llvm.org/D9724

llvm-svn: 237207
2015-05-12 23:12:19 +00:00
Vince Harron 0638173750 Added support for XTIMEOUT to dosep
Ideally, this would be put in the individual test files.

Unfortunately, I'm not sure how to do that quickly/easily.
I'm open to suggestions.

In the meantime, I'll submit this to stabilze the build server.

llvm-svn: 237206
2015-05-12 23:10:36 +00:00
Vince Harron bef5ff3035 Revert accidental file checkin
llvm-svn: 237184
2015-05-12 21:19:39 +00:00
Vince Harron 5727e4cf05 XFAIL'd TestPersistObjCPointeeType.py
llvm-svn: 237182
2015-05-12 21:16:51 +00:00
Vince Harron 121fa77e92 Added minor comment
llvm-svn: 237174
2015-05-12 20:55:43 +00:00
Tamas Berghammer b31bf17236 XFAIL and Skip flaky test case on linux
llvm-svn: 237135
2015-05-12 14:25:43 +00:00
Ilia K feda0b7ea9 Disable GCC optimizations for builtin functions in lldb tests
This patch adds new default flag -fno-builtin which forces gcc to not optimize builtin functions.
For example, without this flag GCC replaces printf("hello\n") -> puts("hello") even if -O0 was specified

Also this patch fixes the MiDataTestCase.test_lldbmi_data_disassemble test on Linux/gcc.

llvm-svn: 237118
2015-05-12 12:13:12 +00:00
Ilia K 93df5d9c69 Fix MiDataTestCase.test_lldbmi_data_disassemble test on Linux (bug 23489)
llvm-svn: 237105
2015-05-12 09:24:24 +00:00
Ilia K b2b61a2422 Skip MiDataTestCase.test_lldbmi_data_disassemble test to get Linux build green
llvm-svn: 237098
2015-05-12 07:35:06 +00:00
Ilia K 56aa294652 Improve MiStartupOptionsTestCase.test_lldbmi_executable_option_file test (MI)
llvm-svn: 237096
2015-05-12 06:49:49 +00:00
Ilia K d84713bd86 Show error message from failed evaluation when doing -var-create
Summary:
When -var-create fails, we will now show the error message from the failed evaluation if it is available.

Patch from chuckr@microsoft.com

Test Plan: I fixed the MiVarTestCase.test_lldbmi_eval test to expect the new error string. All MI tests passing on OS X.

Reviewers: abidh, ChuckR

Subscribers: greggm, lldb-commits, paulmaybee

Differential Revision: http://reviews.llvm.org/D9691

llvm-svn: 237094
2015-05-12 06:15:16 +00:00
Ilia K f44ab29e05 Escape strings in disassembly comments.
Summary: Patch from chuckr@microsoft.com

Reviewers: abidh, ChuckR

Subscribers: paulmaybee, lldb-commits

Differential Revision: http://reviews.llvm.org/D9544

llvm-svn: 237092
2015-05-12 05:55:23 +00:00
Vince Harron a9c2a380b3 TestPublicAPIHeaders.py - Changed expectedFailureDarwin to skipIfDarwin
expectedFailure doesn't work if the failure is in a teardown step.

llvm-svn: 237089
2015-05-12 05:18:06 +00:00
Vince Harron 069391ac15 Working on getting the OSX build green
Added missing SBLanguageRuntime.h to lldb.xcodeproj, set to Public (fixed compile error in TestPublicAPIHeaders)
Removed reference to (temporarily) missing gtest.xcodeproj
Fixed TestDeadStrip compile error
XFAIL TestPublicAPIHeaders - test passes but teardown command 'settings remove target.env-vars DYLD_LIBRARY_PATH' fails
XFAIL TestCModules - use of undeclared identifier 'MIN'
XFAIL TestModulesAutoImport - clang: error: unknown argument: '-gmodules'
XFAIL TestObjCNewSyntax - expr -- @((char*)"Hello world" + 6) cannot box a string value because NSString has not been declared

http://reviews.llvm.org/D9643

llvm-svn: 237085
2015-05-12 02:20:27 +00:00
Vince Harron 19e300fbde Change session log filename pattern: test before arch
This is a very minor change.

Just reshuffle the elements of the log filename so that the test name
comes before the arch/compiler

Before:
Failure-x86_64-clang-TestCModules.CModulesTestCase.test_expr_with_dwarf.log

After:
Failure-TestCModules.CModulesTestCase.test_expr_with_dwarf-x86_64-clang.log

This way, results are grouped by test name, not by arch. I think this
is much more useful.

Differential Revision: http://reviews.llvm.org/D9648

llvm-svn: 237076
2015-05-12 00:50:54 +00:00
Siva Chandra 268efdd49b ["watch set" tests] Use default test case executable names.
Summary: This change similar to r236783.

Reviewers: chaoren

Reviewed By: chaoren

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D9630

llvm-svn: 237010
2015-05-11 18:49:59 +00:00
Chaoren Lin 3e2bdb4640 os.path.join does not always work for paths on remote platforms.
Summary:
Since we don't yet have remote windows debugging, it should be safe to assume
that the remote target uses unix path separators.

Reviewers: ovyalov, zturner, clayborg, vharron

Reviewed By: vharron

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D9633

llvm-svn: 237006
2015-05-11 17:53:39 +00:00
Tamas Berghammer 8841b03290 New test for llvm.org/pr23478
When there is two brekapoint on two consecutive instruction then
the second breakpoint is ignored by lldb. This test check for the
correct behaviour in this scenario.

Differential revision: http://reviews.llvm.org/D9661

llvm-svn: 236997
2015-05-11 14:42:09 +00:00
Ed Maste c4f4d6c437 XFAIL a test that fails on FreeBSD 11 (local and buildbot)
For some reason this happens only when running the full test suite
(e.g., via ninja check-lldb), but not when running the
TestStaticVariables.py tests in isolation. XFAIL for now while
investigating, in an attempt to bring the bot to green and reduce noise.

llvm.org/pr20550

llvm-svn: 236993
2015-05-11 13:38:59 +00:00
Tamas Berghammer 428447f625 Skip and XFAIL TestThreadStepOut as it times out on the Linux build bot
llvm-svn: 236986
2015-05-11 12:42:56 +00:00
Tamas Berghammer 88504598c3 Skip and XFAIL test occasionally timing out on the Linux build bot
llvm-svn: 236984
2015-05-11 10:32:16 +00:00
Vince Harron 6d3d0f11ea Fixed lldb-mi test failures introduced by r236956
Move enable/disableLogForCurrentTest from lldbtest.TestBase to
lldbtest.Base so they're accessible to Mi tests

llvm-svn: 236963
2015-05-10 22:01:59 +00:00
Vince Harron f1ff3c146d Remove unsupported lldb-server parameters from test
llvm-svn: 236958
2015-05-10 18:02:53 +00:00
Vince Harron d5fa102d44 We can't use sys.path[0] to determine the script directory because it doesn't work under a debugger
Test Plan: run tests with/without python debugger
Tested on OSX & Linux with PyCharm

Reviewers: chying, clayborg

Differential Revision: http://reviews.llvm.org/D9593

llvm-svn: 236957
2015-05-10 15:24:12 +00:00
Vince Harron 9753dd98b3 Add support for ./dotest.py --channel and --log-success
Summary:
New dotest options that allow arbitrary log channels and
categories to be enabled.  Also enables logging for locally run
debug servers.
    
Log messages are separated into separate files per test case.
(this makes it possible to log in dosep runs)
    
These new log files are stored side-by-side with trace files in the
session directory.
    
These files are deleted by default if the test run is successful.
    
If --log-success is specified, even successful logs are retained.
    
--log-success is useful for creating reference log files.
    
Test Plan:
add '--channel "lldb all" --channel "gdb-remote packets" --log-success'
to your dotest options

Tested on OSX and Linux
    
Differential Revision: http://reviews.llvm.org/D9594

llvm-svn: 236956
2015-05-10 15:22:09 +00:00
Ed Maste f5132e70cc Skip tests that are timing out on the FreeBSD buildbot
XFAILing these does not work because the timeout is caught by the
top-level test infrastucture instead.

Some might be llvm.org/pr22784

llvm-svn: 236924
2015-05-09 01:01:36 +00:00
Vince Harron a6ad6d3cc9 TestCModules was effectively skipped on Linux
Summary: I've removed the secret skip and added expectedFailureLinux
    
Test Plan: run tests
    
Reviewers: flackr
    
Subscribers: lldb-commits
    
Differential Revision: http://reviews.llvm.org/D9615

llvm-svn: 236914
2015-05-08 23:17:46 +00:00
Siva Chandra 2d7832e44b Bump the default timeout in dosep.py to 10m.
Summary:
This seems to be sufficient to get the tests taking longer than the
previous timeout of 5m to run to completion on Android to pass instead
of timing out.

Reviewers: chaoren

Reviewed By: chaoren

Subscribers: tberghammer, lldb-commits

Differential Revision: http://reviews.llvm.org/D9627

llvm-svn: 236913
2015-05-08 23:08:53 +00:00
Siva Chandra 09c4424994 [TestCreateAfterAttach] Add @skipIfRemote to the forking test.
Test Plan: dotest.py -p TestCreateAfterAttach

Reviewers: chaoren

Reviewed By: chaoren

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D9617

llvm-svn: 236903
2015-05-08 21:12:41 +00:00
Ed Maste 82d9f037fe Skip tests that are timing out on the FreeBSD buildbot
XFAILing these does not work because the timeout is caught by the
top-level test infrastucture instead.

Might be llvm.org/pr22784

llvm-svn: 236895
2015-05-08 19:51:44 +00:00
Ed Maste e5f9bf0da0 Add expectedFailureFreeBSD decorator for buildbot pexpect issue
I'm not yet sure what's wrong with pexpect and I cannot reproduce this
problem locally. XFAIL these tests for now to reduce buildbot noise so
I can track down the remaining buildbot failures.

llvm.org/pr22784

llvm-svn: 236857
2015-05-08 14:20:25 +00:00
Ed Maste 0cb96aaf2b Enable TestCallStopAndContinue on FreeBSD
It's reported to pass consistently on Linux now, and it passed for me
in local testing on FreeBSD. Remove the expectedFailureFreeBSD decorator
for now.

llvm.org/pr20274

llvm-svn: 236853
2015-05-08 13:52:22 +00:00
Ilia K fc6d66143f Improve MiBreakTestCase.test_lldbmi_break_insert_{function*,file_line*} tests (MI)
llvm-svn: 236840
2015-05-08 12:35:49 +00:00
Ilia K fd0325b81e Fix =breakpoint-created event after creation of BP (MI)
For example:
was:
```
$ bin/lldb-mi ~/p/hello
[...]
-break-insert main
^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000100000e2d",func="main",file="hello.cpp",fullname="/Users/IliaK/p/hello.cpp",line="14",times="0",original-location="main"}
(gdb)
=breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000100000e2d",func="main",file="hello.cpp",fullname="/Users/IliaK/p/hello.cpp",line="14",times="0",original-location="main"}
```

now:
```
$ bin/lldb-mi ~/p/hello
[...]
-break-insert main
^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000100000e2d",func="main",file="hello.cpp",fullname="/Users/IliaK/p/hello.cpp",line="14",times="0",original-location="main"}
(gdb)
=breakpoint-created,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000100000e2d",func="main",file="hello.cpp",fullname="/Users/IliaK/p/hello.cpp",line="14",times="0",original-location="main"}
```

llvm-svn: 236837
2015-05-08 12:18:11 +00:00
Ilia K 913b2d4fd3 Fix BP address for local symbols if target not launched (MI)
For example:
was:
```
$ bin/lldb-mi ~/p/hello
[...]
-break-insert -f main
^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0xffffffffffffffff",func="main",file="hello.cpp",fullname="/Users/IliaK/p/hello.cpp",line="14",pending=["main"],times="0",original-location="main"}
```

now:
```
$ bin/lldb-mi ~/p/hello
[...]
-break-insert -f main
^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000100000e2d",func="main",file="hello.cpp",fullname="/Users/IliaK/p/hello.cpp",line="14",pending=["main"],times="0",original-location="main"}
```

llvm-svn: 236830
2015-05-08 12:06:17 +00:00
Ilia K b9bfd969e3 Add support for Unicode strings in CMICmnLLDBUtilSBValue::GetValue (MI)
This patch includes the following changes:
# Add CMIUtilString::ConvertToASCII to convert unicode to ASCII (MI)
# Rework CMICmnLLDBUtilSBValue::GetSimpleValue to print wide/unicode char (MI)
## Add CMICmnLLDBUtilSBValue::GetSimpleValueChar
## Extend CMICmnLLDBUtilSBValue::IsCharType to accept char16_t/char32_t
## Don't ignore the fail_value in SBValue::GetValueAsUnsigned
# Rework CMIUtilString::ConvertToASCII (MI)
## Don't use templates
## Change the function signature to convert signle characters (was std::basic_string)
## Rename CMIUtilString::ConvertToASCII to CMIUtilString::ConvertToPrintableASCII
# Add CMIUtilString::ConvertToPrintableASCII for char (MI)
## Refactor CMIUtilString::Escape
## Simplify CMICmnLLDBUtilSBValue::GetSimpleValueChar for char
# Add char16_t* and char32_t* support in CMICmnLLDBUtilSBValue::GetSimpleValue (MI)
## Add CMICmnLLDBUtilSBValue::GetSimpleValueCStringPointer
## Add CMICmnLLDBUtilSBValue::ReadCStringFromHostMemory2
   (it's extended version of CMICmnLLDBUtilSBValue::ReadCStringFromHostMemory)
# Improve error checking in CMICmnLLDBUtilSBValue::GetSimpleValueChar (MI)
# Refactor CMICmnLLDBUtilSBValue (MI)
## Remove CMICmnLLDBUtilSBValue::ReadCStringFromHostMemory
   (use CMICmnLLDBUtilSBValue::ReadCStringFromHostMemory2 instead)
## Rename CMICmnLLDBUtilSBValue::ReadCStringFromHostMemory2 to
   CMICmnLLDBUtilSBValue::ReadCStringFromHostMemory
## Move CMICmnLLDBUtilSBValue::GetValueCString to private methods
## Rename CMICmnLLDBUtilSBValue::GetValueCString to
   CMICmnLLDBUtilSBValue::GetSimpleValueCStringArray
## Remove CMICmnLLDBUtilSBValue::GetChildValueCString
# Improve MiGdbSetShowTestCase.test_lldbmi_gdb_set_show_print_char_array_as_string test to check char16_t/char32_t (MI)
# Fix CMICmnLLDBUtilSBValue::GetSimpleValueCStringArray for Unicode (MI)
## Fix handling of char16_t and char32_t
## Improve CMICmnLLDBUtilSBValue::ReadCStringFromHostMemory to read
   variables of type char[]: add vnMaxLen argument
## Turn on few cases to check char16_t[] and char32_t[] output in
   MiGdbSetShowTestCase.test_lldbmi_gdb_set_show_print_char_array_as_string
# Remove unnecessary checks in CMICmnLLDBUtilSBValue (MI)

llvm-svn: 236827
2015-05-08 11:21:13 +00:00
Ilia K 24862eaca0 Fix -var-create for undefined variables (MI)
llvm-svn: 236825
2015-05-08 10:58:45 +00:00
Ilia K a4cfe98a86 Print process's output line by line (MI)
For example:
was:
```
@"'\r\n` - it's \\ni=1\r\nj=2\r\nx=3\r\ny=4\r\nargc: /Users/IliaK/p/hello\r\nargc: (null)\r\n"
```

now:
```
@"'\r\n"
@"` - it's \\ni=1\r\n"
@"j=2\r\n"
@"x=3\r\n"
@"y=4\r\n"
@"argc: /Users/IliaK/p/hello\r\n"
@"argc: (null)\r\n"
```

llvm-svn: 236824
2015-05-08 10:52:50 +00:00
Ilia K f1796dc669 Add MiExitTestCase.test_lldbmi_q that checks reduction of quit (MI)
llvm-svn: 236822
2015-05-08 10:42:11 +00:00
Ilia K 307b917696 Fix -var-list-children command (MI)
This patch incldues the following:
# Add from/to arguments in -var-list-children command (MI)
## Handle from and to args
## Don't print children=[] if numchild is 0
## A bit refactoring
## Add MiVarTestCase.test_lldbmi_var_list_children test
# Refactor -var-list-children (MI)
## Remove CMICmdCmdVarListChildren::VecMIValueResult_t
## Add CMICmdCmdVarListChildren::m_miValueList
## Remove CMICmdCmdVarListChildren::m_vecMiValueResult
   (use CMICmdCmdVarListChildren::m_miValueList instead)
## Print error message if value is invalid:
   ```
     ^error,msg="variable invalid"
   ```
## Refactor CMICmdCmdVarListChildren::Acknowledge and remove duplicated code
## Don't print children=[] if numchild is 0
## Add error checking
## Use CMICmnLLDBDebugSessionInfo::VariableInfoFormat_e for print-values
## Add few more empty-range test cases in MiVarTestCase.test_lldbmi_var_list_children
#Improve MiVarTestCase.test_lldbmi_var_list_children test (MI)

llvm-svn: 236820
2015-05-08 10:10:14 +00:00
Bruce Mitchener 3a6cc51cb9 Make LLDB-MI tests wait for LLDB-MI to start up before sending any MI commands
Summary:
This set of changes addresses the issue I described in [[ http://llvm.org/pr23403 | Bug 23403 ]], in short most LLDB-MI tests fail unexpectedly due to timeout on my Ubuntu 14.10 x86_64 VirtualBox VM. I have no idea why the Ubuntu buildbots don't seem to suffer from this issue. This patch just makes **MiTestCaseBase.spawnLldbMi()** block until the spawned LLDB-MI child process outputs the **(gdb)** prompt, which ensures that MI commands aren't sent to the LLDB-MI child process until it's ready.

Before these changes 52 LLDB-MI tests failed unexpectedly (all but one due to timeouts), after these changes no tests fail due to timeouts. I still get one unexpected failure in **test_lldbmi_source_option_start_script_error** in **TestMiStartupOptions.py**, but that's due to a file error, that test should be skipped on Linux just like the other two //start_script// tests until the file error is fixed.

Patch from Vadim Macagon. Thanks!

Test Plan: ./dotest.py -A x86_64 -C clang --executable $BUILDDIR/bin/lldb tools/lldb-mi/

Reviewers: abidh, domipheus, ki.stfu

Reviewed By: ki.stfu

Subscribers: brucem, lldb-commits

Differential Revision: http://reviews.llvm.org/D9595

llvm-svn: 236816
2015-05-08 09:28:11 +00:00
Ying Chen cd81914772 change comment symbol from // to #
llvm-svn: 236803
2015-05-08 01:47:17 +00:00
Ying Chen c5430525a6 Remove tailing " (deleted)" from executable name returned by readlink
Summary: When calling readlink, " (deleted)" is appended to executable path if it's deleted. Remove if it's there.

Reviewers: chaoren, sivachandra, vharron

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D9583

llvm-svn: 236802
2015-05-08 01:25:10 +00:00
Siva Chandra 8a1f76936c [TestEvents] Add a 'connected' state to include remote debugging.
Test Plan: dotest.py -p TestEvents

Reviewers: vharron, chaoren

Reviewed By: chaoren

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D9581

llvm-svn: 236800
2015-05-08 00:43:28 +00:00
Chaoren Lin 9c70ea4790 Pass Android device ID to TestStubReverseConnect.
llvm-svn: 236789
2015-05-07 22:32:40 +00:00
Siva Chandra e4583bd32b [TestWatchpointMultipleThreads] Use default test executable names.
Summary:
Android has limits on file name lengths. This commit reduces the names of
the test executables to satisfy these limits.

Test Plan: dotest.py -p TestWatchpointMultipleThreads

Reviewers: chaoren

Reviewed By: chaoren

Subscribers: tberghammer, lldb-commits

Differential Revision: http://reviews.llvm.org/D9540

llvm-svn: 236783
2015-05-07 21:56:08 +00:00
Enrico Granata 4878c87d5e Make it so that changing formats on a synthetic value object causes children to be invalidated and refetched when needed
This is required for supporting vector types formatting

llvm-svn: 236769
2015-05-07 20:33:31 +00:00
Ed Maste 19a05488e3 Extend r236708 to skip tests also failing on FreeBSD
llvm-svn: 236749
2015-05-07 17:14:56 +00:00
Pavel Labath f84d76fbf2 Increase the timeout limit for TestConcurrentEvents
After recent changes, TestConcurrentEvents began timing out. This increases the timeout limit to
7m for this test, ensure the Test has enough time to complete.

llvm-svn: 236725
2015-05-07 13:35:21 +00:00
Ilia K e4358b81e4 Skip few MiStartupOptionsTestCase tests to get Linux build green
llvm-svn: 236708
2015-05-07 08:31:12 +00:00
Ilia K 7bb59b360b Implement -target-attach and -target-detach
Summary:
This changes add -target-attach and -target-detach. 

-target-attach allows lldb-mi to attach to an existing process by it's process id, matching gdb mi's syntax of '-target-attach <pid'. Additionally, support has been added for attaching to a process by name using '-target-attach -n <name>'. Combining this with --waitfor will allow lldb mi to attach to a process by name when the process starts. 

-target-detach simply detaches from the current process

Patch from chuckr@microsoft.com

Test Plan: I have added three tests, one each for -target-attach <pid>, -target-attach -n <name>, and -target-attach -n <name> --waitfor

Reviewers: paulmaybee, abidh, ChuckR

Subscribers: greggm, lldb-commits

Differential Revision: http://reviews.llvm.org/D9484

llvm-svn: 236705
2015-05-07 07:38:49 +00:00
Ilia K 065397be00 Minor changes in the MiStartupOptionsTestCase (MI)
llvm-svn: 236704
2015-05-07 07:16:06 +00:00
Ilia K d3da77e84e Add -s/--source option support (MI)
Summary:
This patch adds -s/--source option to execute source file with prepared command.
For example:
```
$ cat start_script 
target create ~/p/hello
process launch -s
continue
$ bin/lldb-mi -s start_script 
(gdb)
target create ~/p/hello
Current executable set to '~/p/hello' (x86_64).
^done
(gdb)
process launch -s
=shlibs-added,shlib-info=[num="1",name="hello",dyld-addr="-",reason="dyld",path="/Users/IliaK/p/hello",loaded_addr="-",dsym-objpath="/Users/IliaK/p/hello.dSYM/Contents/Resources/DWARF/hello"]
Process 33289 launched: '/Users/IliaK/p/hello' (x86_64)
^done
(gdb)
continue
=thread-created,id="1",group-id="i1"
=thread-selected,id="1"
(gdb)
Process 33289 resuming
Process 33289 exited with status = 0 (0x00000000) 
^done
```

Test Plan: ./dotest.py -v --executable $BUILDDIR/bin/lldb tools/lldb-mi/

Reviewers: abidh

Reviewed By: abidh

Subscribers: lldb-commits, abidh

Differential Revision: http://reviews.llvm.org/D9278

llvm-svn: 236703
2015-05-07 06:51:46 +00:00
Bruce Mitchener 2873469ec0 Fix LLDB-MI -data-read-memory-bytes command to comply with GDB/MI spec
Summary:
- The address argument can now be an expression (e.g. &array), it's no longer restricted to being just a number literal.
- The -o (offset) option is now properly handled, not just silently ignored.
- The --thread option is now properly handled.
- A new --frame option has been added for consistency with GDB.
- Added a new test to verify old and new functionality.

Patch by Vadim Macagon. Thanks!

Test Plan: ./dotest.py -A x86_64 -C clang --executable $BUILDDIR/bin/lldb tools/lldb-mi/data

Reviewers: domipheus, abidh, ki.stfu

Reviewed By: abidh, ki.stfu

Subscribers: brucem, lldb-commits

Differential Revision: http://reviews.llvm.org/D9470

llvm-svn: 236694
2015-05-07 05:32:13 +00:00
Chaoren Lin 28b8ea1d55 Fix adb forward in gdbremote_testcase to support multiple devices.
Summary: Update to D9510.

Reviewers: chying, tberghammer, ovyalov

Reviewed By: ovyalov

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D9542

llvm-svn: 236688
2015-05-07 01:42:53 +00:00
Ed Maste 18461e5c87 Skip additional lldb-mi tests that failed on FreeBSD
llvm-svn: 236636
2015-05-06 20:42:03 +00:00
Adrian McCarthy c99d2fadb5 Don't attempt DSym tests on Windows.
llvm-svn: 236620
2015-05-06 18:19:51 +00:00
Ed Maste e7f46558a4 Restore TestRegisterVariables failure decorator for older Clang
The @expectedFailureClang decorator was removed in r236447, but it
seems to be fixed only with Clang 3.5+.

llvm-svn: 236614
2015-05-06 17:35:29 +00:00
Chaoren Lin f9c4c424ac Update gdbremote_testcase to accomodate new adb:// scheme.
Reviewers: chying, ovyalov

Reviewed By: chying, ovyalov

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D9510

llvm-svn: 236560
2015-05-06 01:28:04 +00:00
Oleksiy Vyalov 8a28b21fde Mark TestMultithreaded.test_sb_api_listener_resume as XFAIL with gcc 4.8 and higher.
llvm-svn: 236549
2015-05-05 22:02:56 +00:00
Chaoren Lin f62b7fc317 Fix typo. platfrom -> platform
llvm-svn: 236543
2015-05-05 20:34:36 +00:00
Pavel Labath 941b743fc9 Revert "Enable TestConvenienceVariables on Linux"
This reverts commit 193ac6993b64a502db6dc7f2d69dafc47c318407.

The buildbot says the test still fails. :)

llvm-svn: 236500
2015-05-05 14:54:23 +00:00
Pavel Labath 0d31df479f Enable TestConvenienceVariables on Linux
The test has passed in the last 300 runs for me, enabling to see what the buildbot says.

llvm-svn: 236498
2015-05-05 13:48:58 +00:00
Pavel Labath c23ba555c2 Enable TestChangeValueAPI on Linux
the test has passed in the last 300 runs, enabling to see what the build bot says. Also,
downgrading skipIfGcc to XFAIL, with plans of enabling it in the future if it shows to be
working.

llvm-svn: 236496
2015-05-05 12:10:13 +00:00
Pavel Labath 4647c5964b Enable TestCallStopAndContinue on Linux
This test has been working reliably for me in the last 300 test runs. Enabling to see what the
buildbot thinks...

llvm-svn: 236495
2015-05-05 11:08:08 +00:00
Siva Chandra a3747a9d31 [ValueObject] Do not return address of eValueTypeHostAddress values.
Summary:
This fixes TestRegisterVariables for clang and hence it is enabled in this commit.


Test Plan: dotest.py -C clang -p TestRegisterVariables

Reviewers: clayborg

Reviewed By: clayborg

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D9421

llvm-svn: 236447
2015-05-04 19:43:34 +00:00
Oleksiy Vyalov 19f731f0ea Mark TestTypedefArray as XFAIL with Gcc.
llvm-svn: 236425
2015-05-04 15:20:25 +00:00
Vince Harron f9900379b4 TestCModules - fixed for gcc
Changed restrict keyword to something understood by gcc

llvm-svn: 236410
2015-05-04 06:26:13 +00:00
Vince Harron 0da0d4a948 XFAILing a test that fails with gcc 4.9 x86_64
llvm-svn: 236407
2015-05-04 03:53:22 +00:00
Vince Harron 410a9e1e1e un-skipped a bunch of tests on Linux
Some have been marked as skipIfLinux for years.
The seem to be passing so I've enabled them.

Differential Revision: http://reviews.llvm.org/D9428

llvm-svn: 236403
2015-05-04 03:06:04 +00:00
Vince Harron c849267a69 Fixed skipIfLinuxClang to check the target architecture
Instead of the host architecture

This decorator isn't in use anywhere currently.
Add it to a test and run

llvm-svn: 236402
2015-05-04 02:59:19 +00:00
Vince Harron f2e3760ad8 Enabled libc++ formatter tests on Linux
Refactored TestInitializerList to not be an inline test.
Refactored Makefiles to use USE_LIBCPP instead of adding FLAGS directly
Fixed copy/paste error in TestDataFormatterUnordered class name

Differenttial Revision: http://reviews.llvm.org/D9426

llvm-svn: 236401
2015-05-04 02:56:32 +00:00
Vince Harron 026137628f TestMultithreaded improvements
These tests link against host lldb API. Compiler's target triple
must match liblldb triple. Instead of naively skipping i386, I added
a check of the liblldb arch against the compiler target arch.

This is useful for 32 bit API builds (planned for Windows)

Since remote is disabled, we can assume the os is the same.

Also, removed skipIfLinuxClang because it's passing

llvm-svn: 236396
2015-05-04 00:17:53 +00:00
Siva Chandra 6b921144ce Mark the other test of TestFdLeak also as xfail to keep the bot green.
Summary:
r235916 marked only one of the tests as xfail, but the other also has
been failing intermitantly on the buildbot.

Reviewers: chaoren

Reviewed By: chaoren

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D9452

llvm-svn: 236366
2015-05-02 00:37:12 +00:00
Sean Callanan 80c9759ef7 Added support for locating and importing functions
(including inline functions) from modules in the
expression parser.  We now have to retain a reference
to the code generator in ClangExpressionDeclMap so
that any imported function bodies can be appropriately
sent to that code generator.

<rdar://problem/19883002>

llvm-svn: 236297
2015-05-01 00:47:29 +00:00
Ilia K 70dd606f25 Fix MiLibraryLoadedTestCase.test_lldbmi_library_loaded test on Linux (MI)
llvm-svn: 236229
2015-04-30 12:37:05 +00:00
Ilia K 715eab12e5 Use \d+ pattern instead of hard-coded line number in MiBreakTestCase (MI)
llvm-svn: 236228
2015-04-30 12:28:26 +00:00
Pavel Labath 6884aa1b43 Enabling two watchpoint tests on linux
After recent changes, these tests should be stable. Please let me know if you still see failures.

llvm-svn: 236226
2015-04-30 11:28:06 +00:00
Ilia K ebb4dfd350 Rework =shlibs-added/=shlibs-removed
Summary:
This patch includes the following:
* Rename =shlibs-added/=shlibs-removed to standard =library-loaded/=library-unloaded
* Remove redundant fields
* Add extra symbols-loaded/symbols-path and loaded_addr fields
* Rename CMICmnMIOutOfBandRecord::eOutOfBand_TargetModulesLoaded/eOutOfBand_TargetModulesUnloaded to CMICmnMIOutOfBandRecord::eOutOfBand_TargetModuleLoaded/eOutOfBand_TargetModuleUnloaded

Test Plan: ./dotest.py -v --executable $BUILDDIR/bin/lldb tools/lldb-mi/

Reviewers: jasonmolenda, jingham, abidh

Reviewed By: abidh

Subscribers: lldb-commits, jingham, jasonmolenda, abidh

Differential Revision: http://reviews.llvm.org/D9280

llvm-svn: 236225
2015-04-30 11:08:31 +00:00
Pavel Labath ac8be96242 Add expectedFailureLinux to TestProcessAttach
The test is skipped anyway due to timeout, but adding XFAIL improves grepability.

llvm-svn: 236224
2015-04-30 11:00:15 +00:00
Ilia K 4ba3aee138 Add -data-info-line command (MI)
Summary: Add -data-info-line command + test

Test Plan: ./dotest.py -v --executable $BUILDDIR/bin/lldb tools/lldb-mi/

Reviewers: abidh

Reviewed By: abidh

Subscribers: lldb-commits, abidh

Differential Revision: http://reviews.llvm.org/D9276

llvm-svn: 236208
2015-04-30 07:14:24 +00:00
Hafiz Abid Qadeer fda237d09f Add support for -stack-list-variables.
This command is able to list both local variables and stack arguments for a specific thread/frame.
Args are denoted with 'arg="1"'.
Patch from Chuck Ries.

llvm-svn: 236090
2015-04-29 08:18:41 +00:00
Siva Chandra e6303cc3a1 [TestMiVar] Enable one of the tests for GCC.
Summary:
The "internal" name of vars is different between clang and GCC. All this
change does is to use a regex instead of the hardcoded internal name.

Test Plan: dotest.py -C <clang|gcc> -p TestMiVar

Reviewers: ki.stfu

Reviewed By: ki.stfu

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D9128

llvm-svn: 236024
2015-04-28 19:21:57 +00:00
Ilia K 7f83624222 Add language option in -gdb-show command (MI)
Summary:
Add language option in -gdb-show command + test:
```
$ bin/lldb-mi ~/p/hello
[...]
b main
[...]
r
[...]
(gdb)
-gdb-show language
^done,value="c++"
(gdb)
quit
```

Test Plan: ./dotest.py -v --executable $BUILDDIR/bin/lldb tools/lldb-mi/

Reviewers: abidh, granata.enrico, jingham, clayborg

Reviewed By: clayborg

Subscribers: lldb-commits, jingham, granata.enrico, clayborg, abidh

Differential Revision: http://reviews.llvm.org/D9279

llvm-svn: 235983
2015-04-28 12:51:16 +00:00
Pavel Labath bbaba96860 Skip TestProcessAttach.py on Linux
The test was already XFAILed. Changing this to skip, because the test timeouts and gets flagged
as an error anyway.

llvm-svn: 235979
2015-04-28 12:28:08 +00:00
Bruce Mitchener 41ad9c4128 LLDB-MI: -var-list-children with no children doesn't need a children value in the response.
Summary:
When using GDB with MI, if there aren't children for a variable,
it doesn't include a "children" value in the response. LLDB does
and sets it to "[]" while variables with children have an unquoted
list: children=[...].

This removes the children value entirely when there are no children
making this match GDB in behavior.

Test Plan: Ran tests on Mac OS X and they passed.

Reviewers: abidh, domipheus

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D9320

llvm-svn: 235974
2015-04-28 10:03:55 +00:00
Siva Chandra 0bbe4f2c8e [TestProcessAttach] Decorate with expectedFailureLinux
Summary: Link to PR: llvm.org/pr23360

Test Plan: dotest.py -p TestProcessAttach

Reviewers: sivachandra

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D9310

llvm-svn: 235947
2015-04-27 23:56:23 +00:00
Chaoren Lin cae516117a XFail flakey test.
llvm-svn: 235916
2015-04-27 20:57:24 +00:00
Pavel Labath 53ffb319d1 XFAIL two mi tests on gcc to stabilise build bots
llvm-svn: 235851
2015-04-27 09:10:30 +00:00
Ilia K cf0c0bce01 Disable MiGdbSetShowTestCase.test_lldbmi_gdb_set_show_print_char_array_as_string test on Linux
llvm-svn: 235808
2015-04-25 20:37:41 +00:00
Ilia K 94b8ebcacf Add -gdb-set/-gdb-show aggregate-field-names option (MI)
Use this option to print/skip field names (default is on):
```
-var-create var1 * complx
^done,name="var1",numchild="3",value="{i = 3, inner = {l = 3}, complex_ptr = 0x[0-9a-f]+}",type="complex_type",thread-id="1",has_more="0"
-var-create var2 * complx_array
^done,name="var2",numchild="2",value="{[0] = {i = 4, inner = {l = 4}, complex_ptr = 0x[0-9a-f]+}, [1] = {i = 5, inner = {l = 5}, complex_ptr = 0x[0-9a-f]+}}",type="complex_type [2]",thread-id="1",has_more="0"
-gdb-set print aggregate-field-names off
^done
-var-create var3 * complx
^done,name="var3",numchild="3",value="{3,{3},0x[0-9a-f]+}",type="complex_type",thread-id="1",has_more="0"
-var-create var4 * complx_array
^done,name="var4",numchild="2",value="{{4,{4},0x[0-9a-f]+},{5,{5},0x[0-9a-f]+}}",type="complex_type [2]",thread-id="1",has_more="0"
```

llvm-svn: 235807
2015-04-25 20:33:02 +00:00
Ilia K 81bd06d787 Add -gdb-set/-gdb-show expand-aggregates option (MI)
Use this option to expand complex types always:
```
-var-create var1 * complx
^done,name="var1",numchild="3",value="{...}",type="complex_type",thread-id="1",has_more="0"
-var-create var2 * complx_array
^done,name="var2",numchild="2",value="[2]",type="complex_type [2]",thread-id="1",has_more="0"
-gdb-set print expand-aggregates on
^done
-var-create var3 * complx
^done,name="var3",numchild="3",value="{i = 3, inner = {l = 3}, complex_ptr = 0x[0-9a-f]+}",type="complex_type",thread-id="1",has_more="0"
-var-create var4 * complx_array
^done,name="var4",numchild="2",value="{[0] = {i = 4, inner = {l = 4}, complex_ptr = 0x[0-9a-f]+}, [1] = {i = 5, inner = {l = 5}, complex_ptr = 0x[0-9a-f]+}}",type="complex_type [2]",thread-id="1",has_more="0"
```

llvm-svn: 235805
2015-04-25 20:10:02 +00:00
Ilia K aa82b4af84 Add -gdb-set/-gdb-show print char-array-as-string option (MI)
llvm-svn: 235804
2015-04-25 19:44:56 +00:00
Adrian McCarthy f60daf7ca2 Eliminate redundant Alias test and improve Common Short Spellings test http://reviews.llvm.org/D9268
llvm-svn: 235790
2015-04-24 23:18:15 +00:00
Ilia K 1107b015c2 Use self.fail() in MiGdbSetShowTestCase.test_lldbmi_gdb_set_target_async_off (MI)
llvm-svn: 235712
2015-04-24 11:41:42 +00:00
Ilia K afef49267a Fix CMICmnLLDBDebuggerHandleEvents::GetProcessStdout/GetProcessStderr to use stream-record (MI)
llvm-svn: 235711
2015-04-24 11:33:36 +00:00
Adrian McCarthy 2304b6ff44 Factor resolution of abbreviations and aliases so that they can be tested directly. http://reviews.llvm.org/D9033
llvm-svn: 235633
2015-04-23 20:00:25 +00:00
Ilia K 3b0494c304 MI fix allowing multiple logging instances of lldb-mi to run simultaneously.
Summary:
Currently if two instances of lldb-mi are running with logging enabled using '--log' the log file conflicts. This produces the following error 
MI: Error: File Handler. Error Permission denied opening 'C:\Users\Ewan\LLVM\build\Debug\bin\lldb-mi-log.txt'

Fixed in this patch by renaming lldb-mi-log.txt based on the date, e.g. lldb-mi-log.txt-20150316163631.log, and moving the file into the temp directory by using the --log-dir option.

Regrading previous review comments the P_tmpdir macro is defined in Windows but always points to "\", which doesn't help much. Also when using the Windows API for GetTempPath() dynamic memory seems much more messy.

Patch from ewan@codeplay.com

Reviewers: abidh, EwanCrawford

Subscribers: zturner, lldb-commits, deepak2427

Differential Revision: http://reviews.llvm.org/D9054

llvm-svn: 235589
2015-04-23 12:48:42 +00:00
Tamas Berghammer f959520efc Fix test expectation in TestNoreturnUnwind
The test case lookinhg for the abort function in the stack trace.
Previously it lookd for a function which ends with "abort" but on some
system there are multiple such functions (e.g.: on android abort calls
__libc_android_abort) what made the test fail. This CL change the
behaviour to look for the abort function based on a fix list of names.

llvm-svn: 235584
2015-04-23 10:54:27 +00:00
Ed Maste 5ff2140527 Add decorator for signal test failing on FreeBSD
llvm.org/pr23318

llvm-svn: 235523
2015-04-22 17:06:48 +00:00
Ed Maste 6078597370 Skip additional lldb-mi tests that failed on FreeBSD
llvm-svn: 235510
2015-04-22 14:55:34 +00:00