Commit Graph

2432 Commits

Author SHA1 Message Date
Ed Maste da7c5b253f Enable libcxx map test on FreeBSD again
The test used to trigger an assertion failure "Cannot get layout of
forward declarations!", but it no longer fails when built with
Clang 3.4.1 (system compiler) or 3.5 from SVN on FreeBSD.

llvm.org/pr17231

llvm-svn: 218196
2014-09-21 02:24:01 +00:00
Greg Clayton 615eb7e609 Test suite runs better again after recent fixes that would select a platform if a "file a.out" auto selected a different platform than the selected one.
Changes include:
- fix it so you can select the "host" platform using "platform select host"
- change all callbacks that create platforms to returns shared pointers
- fix TestImageListMultiArchitecture.py to restore the "host" platform by running "platform select host"
- Add a new "PlatformSP Platform::Find(const ConstString &name)" method to get a cached platform
- cache platforms that are created and re-use them instead of always creating a new one

llvm-svn: 218145
2014-09-19 20:11:50 +00:00
Enrico Granata 47caf9a956 Extend the member function discovery APIs to also support Objective-C as well as C++
For the Objective-C case, we do not have a "function type" notion, so we actually end up wrapping the clang ObjCMethodDecl in the Impl object, and ask function-y questions of it
In general, you can always ask for return type, number of arguments, and type of each argument using the TypeMemberFunction layer - but in the C++ case, you can also acquire a Type object for the function itself, which instead you can't do in the Objective-C case

llvm-svn: 218132
2014-09-19 18:21:05 +00:00
Greg Clayton ee3be91995 Add some tests to be skipped when run remotely and also fixed a test to be more reliable when it comes to stopping on a specific line.
llvm-svn: 218079
2014-09-18 21:32:05 +00:00
Enrico Granata 6389a7da08 More categories could be added, and having an explicit list in this test case is a fairly bullet-proof recipe for disaster. Use the * enabling feature to workaround this. Fixes rdar://18358649
llvm-svn: 217927
2014-09-16 22:53:30 +00:00
Enrico Granata 6c42cb11d6 Change SBType.GetMemberFunctionAtIndex() to return an object describing the member function in more detail. A type was really quite vague. This now has function name, kind, as well as function type
llvm-svn: 217828
2014-09-15 21:30:36 +00:00
Enrico Granata 735152e3b0 Add a --help (-h) option to "command script add" that enables users to define a one-liner short help for their command
Also, in case they don't define any, change the default from "Run Python function <blah>" into "For more information run help <blah>"

The core issue here is that Python only allows one docstring per function, so we can't really attach both a short and a long help to the same command easily
There are alternatives but this is not a pressing enough concern to go through the motions quite yet

Fixes rdar://18322737

llvm-svn: 217795
2014-09-15 17:52:44 +00:00
Todd Fiala 7206c6d11f llgs: fix thread names broken by recent native thread changes.
* Fixes the local stack variable return pointer usage in NativeThreadLinux::GetName().
* Changes NativeThreadProtocol::GetName() to return a std::string.
* Adds a unit test to verify thread names don't regress in the future.  Currently only run on Linux since I know default thread names there.

llvm-svn: 217717
2014-09-12 22:51:49 +00:00
Enrico Granata 190064ad0d Add logic to LLDB to figure out the types of member functions of C++ classes. Add plumbing for that all the way up to the SB layer
llvm-svn: 217701
2014-09-12 18:45:43 +00:00
Todd Fiala 511e5cdce4 llgs: fix Ctrl-C inferior interrupt handling to do the right thing.
* Sends a SIGSTOP to the process.
* Fixes busted SIGSTOP handling.  Now builds a list of non-stopped
  that we wait for the PTRACE group-stop for.  When the final must-stop
  tid gets its group stop, we propagate the process state change.
  Only the signal receiving the notification of the pending SIGSTOP
  is marked with the SIGSTOP signal.  All the rest, if they weren't
  already stopped, are marked as stopped with signal 0.
* Fixes a few broken tests.
* Marks the Linux test I added earlier as expect-pass (no longer XFAIL).

Implements fix for http://llvm.org/bugs/show_bug.cgi?id=20908.

llvm-svn: 217647
2014-09-11 23:29:14 +00:00
Todd Fiala 65b3cff1f2 gdb-remote tests: added test to verify thread stop info when multi-threaded app is interrupted.
The Linux version is marked XFAIL for the moment, fixing next.

Related to http://llvm.org/bugs/show_bug.cgi?id=20908.

llvm-svn: 217613
2014-09-11 17:51:35 +00:00
Todd Fiala 1109ed4245 llgs: implement qThreadStopInfo.
This change implements this ticket:
http://llvm.org/bugs/show_bug.cgi?id=20899

Adds the qThreadStopInfo RSP command for llgs and includes a test that
verifies both debugserver and llgs respond with something reasonable
on a multithreaded app.

llvm-svn: 217549
2014-09-10 21:28:38 +00:00
Kuba Brecka ea65e37bee Fix test failure for test/functionalities/connect_remote/TestConnectRemote.py when port 12345 is already in use
Reviewed at http://reviews.llvm.org/D5221

llvm-svn: 217388
2014-09-08 17:06:54 +00:00
Todd Fiala 3d3e2c72ec Modify call-function and rdar-12437442 tests to clean up all files produced during test run.
llvm-svn: 217387
2014-09-08 16:44:17 +00:00
Kuba Brecka a51ea3822a Implement ASan history threads in SB API
Reviewed at
http://reviews.llvm.org/D5219
and
http://lists.cs.uiuc.edu/pipermail/lldb-commits/Week-of-Mon-20140901/012809.html

llvm-svn: 217300
2014-09-06 01:33:13 +00:00
Kuba Brecka beed821ffb ASan malloc/free history threads
Reviewed at http://reviews.llvm.org/D4596

llvm-svn: 217116
2014-09-04 01:03:18 +00:00
Todd Fiala 5412524025 Fix a test broken by r216564.
llgs Linux is no longer doing the translation to some gdb fixed signal
numbers.  This change modifies the test method to take in the signo
expected for a segfault.  The debugserver test uses the fixed gdb number,
and everything else uses signal.SIGSEGV for the platform.

Sidenote: I somehow did not see this reported in multicore tests.
I will need to verify that we aren't missing test failures in that
script.  I need to verify why this wasn't more obvious with
test/dosep.py.

llvm-svn: 216770
2014-08-29 20:32:18 +00:00
Jim Ingham b5796cb40e Allow "breakpoint command add" to add commands to more than one breakpoint at a time.
<rdar://problem/13314462>

llvm-svn: 216747
2014-08-29 17:34:17 +00:00
Jason Molenda 33a3017a7d Clean up after the multithreaded test case finishes.
Patch by Sean Callanan.
<rdar://problem/18140875> 

llvm-svn: 216504
2014-08-26 23:31:00 +00:00
Enrico Granata 689cdb1894 There seems to be no sane reason for a test case to enable logging every time it runs.. probably leftover from when I was debugging it
llvm-svn: 216502
2014-08-26 23:27:51 +00:00
Todd Fiala 6c9053ef20 Added a couple more gdb-remote tests to ensure qProcessInfo on darwin is not defining triple.
And likewise for qProcessInfo on Linux, but ensures cputype/cpusubtype is not defined.  The
Apple case is the more important one, since we take a slightly different path to initialize
ProcessGDBRemote-related remote host/process info if triple is present.

Related to http://llvm.org/bugs/show_bug.cgi?id=20755.

llvm-svn: 216473
2014-08-26 18:40:56 +00:00
Todd Fiala c540dd0daf Fix llgs to send triple for non-Apple platforms and lldb to interpret correctly.
This change addresses this bug:
http://llvm.org/bugs/show_bug.cgi?id=20755

This change:
* Modifies llgs to send triple instead of cputype and cpusubtype when not on Apple platforms in qProcessInfo.
* Modifies lldb's GDBRemoteCommunicationClient to handle the triple returned from qProcessInfo if given.
  When given, it will prefer to use triple over cputype and cpusubtype.
* Adds gdb-remote protocol tests to verify that cputype and cpusubtype are specified on darwin, and that triple is specified on Linux.

llvm-svn: 216470
2014-08-26 18:21:02 +00:00
Todd Fiala f76a891299 Refactored existing gdb-remote qProcessInfo tests into separate python file.
I'm about to add some more qProcessInfo tests so I wanted to first pull them out
of the monolithic TestLldbGdbServer test case class.

Related to http://llvm.org/bugs/show_bug.cgi?id=20755

llvm-svn: 216465
2014-08-26 17:19:10 +00:00
Greg Clayton 21405a86d9 Added a test case to ensure lldb::SBHostOS::GetLLDBPath() doesn't return lldb::SBFileSpec objects with the filename filled in for directory paths.
llvm-svn: 216399
2014-08-25 18:30:00 +00:00
Ed Maste 6bc862dcf5 Use consistent capitalization for ENABLE_THREADS in tests
llvm-svn: 215565
2014-08-13 18:27:12 +00:00
Zachary Turner c7826524ac Get test executables compiling on Windows.
Many of the test executables use pthreads directly.  This isn't
portable on Windows, so this patch converts these test to use
C++11 threads and mutexes.  Since Windows' implementation of
std::thread classes throw and catch from header files, this patch
also disables exceptions when compiling with clang on Windows.

Reviewed by: Todd Fiala, Ed Maste

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

llvm-svn: 215562
2014-08-13 17:44:53 +00:00
Todd Fiala 58a2f6692b llgs: corrected Linux signal reception notification for SIGABRT, SIGSEGV and their ilk.
Added llgs/debugserver gdb-remote tests around SIGABRT and SIGSEGV signal reception
notification.  Found a few bugs in exception signal handling in Linux llgs.  Fixed those.

llvm-svn: 215458
2014-08-12 17:02:07 +00:00
Zachary Turner e96838e304 Fix some python shutdown / ordering issues.
Differential Revision: http://reviews.llvm.org/D4826

Reviewed by: Enrico Granata

llvm-svn: 215256
2014-08-08 23:20:25 +00:00
Ed Maste a11da0c8cd Add decorators for tests failing to build on the lab.llvm.org FreeBSD buildbot
llvm.org/pr20548

llvm-svn: 214960
2014-08-06 11:43:54 +00:00
Ed Maste 6e496338e6 Force trace on system() failure on FreeBSD while tracking down buildbot issues
llvm-svn: 214922
2014-08-05 20:33:17 +00:00
Ed Maste 2efa42c937 On FreeBSD skip test that produces bogus output
The test produces lines that start with "<word>: " which confuses the
buildbot log parser.  Disable the test until either the test is fixed
or the buildbot can deal with the undesired output.

llvm.org/pr20545

llvm-svn: 214900
2014-08-05 17:50:04 +00:00
Greg Clayton 4184c79975 Don't hand compute mydir, do it using "TestBase.compute_mydir(__file__)".
llvm-svn: 214575
2014-08-01 22:10:13 +00:00
Ed Maste 362f5de276 Add decorator for FreeBSD test failure - malloc() breakpoint issue
llvm.org/pr20476

llvm-svn: 214527
2014-08-01 17:04:31 +00:00
Ed Maste 098a40180c Fix test execution: the cmake keyword is CACHE, not CACHED
llvm-svn: 214522
2014-08-01 16:57:46 +00:00
Zachary Turner 7c1bc2b8ae Make CMake choose the target architecture according to the build.
Previously, CMake was invoking the test runner and not specifying
what architecture to use when building test executables.  The
Makefiles for the test executables then had logic to choose x64
by default.  This doesn't work on Windows because the test compiler
would then try to link against the 64-bit MSVCRT and not find them
since only the 32-bit MSVCRT was in the path.

This patch addresses this by figuring out, at CMake time, whether
or not you are building LLDB with a 64 or 32-bit toolchain.  Then,
it explicitly passes this value to the test runner, causing the
test runner to build tests whose architecture matches that of LLDB
itself.  This can still be overridden by setting the CMake variable
LLDB_TEST_EXECUTABLE_ARCH=(x64|x86)

llvm-svn: 214443
2014-07-31 21:07:41 +00:00
Zachary Turner 7d186c0152 Remove shell-globbing from all test makefiles.
llvm-svn: 214441
2014-07-31 21:03:11 +00:00
Ed Maste c82dd2b058 Add decorator for TestStopHookMultipleThreads failing on FreeBSD
llvm.org/pr15037

llvm-svn: 214402
2014-07-31 14:02:32 +00:00
Zachary Turner 31dd2c125f Disable test on Windows. script print deadlocks on Windows.
llvm-svn: 214351
2014-07-30 22:08:17 +00:00
Todd Fiala 7306cf3cb7 Add $vAttach support to llgs.
Also adds a new test case for vAttach;{pid} for llgs and debugserver.

llvm-svn: 214236
2014-07-29 22:30:01 +00:00
Greg Clayton 82625d3a5f Use the most up to date dsymutil on Darwin, not the one in /usr/bin/dsymutil.
llvm-svn: 214207
2014-07-29 20:10:59 +00:00
Todd Fiala ef7150925f Fixup TestStepNoDebug to cleanup properly on shutdown.
This was causing core dumps on MacOSX and was not properly
cleaning up the state of the inferior before exiting.

The test was overriding def tearDown(), but failed to
call the base class after doing its own cleanup.  This
essentially eliminated normal clean-up activity.

llvm-svn: 214138
2014-07-28 22:53:49 +00:00
Todd Fiala 31bde322f3 llgs: add --reverse-connect support.
Also includes --reverse-connect tests for llgs and debugserver.

llvm-svn: 214031
2014-07-26 20:39:17 +00:00
Jim Ingham a9b498955c We were turning off all these tests on OSX and FreeBSD because of a known (and fairly unimportant) bug.
Keep a test for that bug, but let the useful parts of the test run anyway.

llvm-svn: 213875
2014-07-24 16:56:19 +00:00
Enrico Granata d75303581f Ensure that if some unspecified person were to pass in an invalid architecture when trying to create a target, that it would fail, but not cause LLDB to crash.
llvm-svn: 213781
2014-07-23 18:18:38 +00:00
Todd Fiala 002fb104bd Add kalimba architecture checking to TestImageListMultiArchitecture
Verify that ObjectFileELF's kalimba detection works regardless
of the host platform.

Change by Matthew Gardiner.

llvm-svn: 213763
2014-07-23 15:16:35 +00:00
Zachary Turner 9ef307bfc1 Make the test runner understand Windows command shell execution.
Currently, the test runner makes the assumption that it will run
commands through /bin/sh.  This is obviously not true on Windows,
so this patch abstracts this logic out somewhat.  Instead of
having the caller build the command string himself, the caller
will now pass in argument list of the form [[a, b], [c, d], ...]
which will get converted into a string of the form a b; c d or
a b && c d, depending on the platform.

Reviewed by: Todd Fiala

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

llvm-svn: 213669
2014-07-22 16:19:29 +00:00
Zachary Turner 07b21d7a69 Rename dosep.ty to dosep.py
llvm-svn: 213555
2014-07-21 16:16:31 +00:00
Greg Clayton 759e7441af LLDB now correctly handles virtual inheritance.
Test case added as well.

<rdar://problem/16785904>

llvm-svn: 213433
2014-07-19 00:12:57 +00:00
Zachary Turner 2f12195b1d Allow the user to override the LLDB_TEST_COMPILER at CMake level.
llvm-svn: 213421
2014-07-18 22:46:22 +00:00
Zachary Turner c9bf0c70b5 Make lldb -P work on Windows.
lldb -P, which outputs its python path, works by using Host-layer
facilities to get information about the loaded python module.  This
Host functionality was unimplemented on Windows, so this patch
implements it.  Additionally, it removes a pexpect dependency from
the test runner and uses an equivalent invocation of subprocess.

Reviewed by: Todd Fiala

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

llvm-svn: 213410
2014-07-18 20:36:08 +00:00