Commit Graph

2401 Commits

Author SHA1 Message Date
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
Zachary Turner 045fde58d1 Fixes a number of issue related to test portability on Windows.
99% of this CL is simply moving calls to "import pexpect" to a more
narrow scope - i.e. the function that actually runs a particular
test.  This way the test suite can run on Windows, which doesn't have
pexpect, and the individual tests that use pexpect can be disabled on
a platform-specific basis.

Additionally, this CL fixes a few other cases of non-portability.
Notably, using "ps" to get the command line, and os.uname() to
determine the architecture don't work on Windows.  Finally, this
also adds a stubbed out builder_win32 module.

The full test suite runs correctly on Windows after this CL, although
there is still some work remaining on the C++ side to fix one-shot
script commands from LLDB (e.g. script print "foo"), which currently
deadlock.

Reviewed by: Todd Fiala

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

llvm-svn: 213343
2014-07-18 01:02:02 +00:00
Greg Clayton 26a15efa77 Fixed the objective C symbol parsing in ObjectFileMachO.
This fixes all of the hidden ivar test cases and any case where we try to find the full definition of an objective C class.

This also means hidden ivars show up again.

<rdar://problem/15458957>
llvm.org/pr20270
llvm.org/pr20269
llvm.org/pr20272

llvm-svn: 213328
2014-07-17 22:51:31 +00:00
Todd Fiala f9ad21d22a gdb-remote test noise suppression on MacOSX.
This change adds a member to the base test case for gdb-remote that
indicates whether a stub makes two X stop notification reports on kill
commands.  This is set to true for debugserver tests.

The test for killing an attached process after it's first stop notification
has been modified to look at that flag and add an extra X packet matcher
so the "unmatched packet warning" doesn't get emitted for the second X on
MacOSX with debugserver.

I also broke those tests out of the monolithic TestLldbGdbServer mega test
case and put it in its own, new TestGdbRemoteKill.py file and test case.

Tested:
Ubuntu 14.04 x86_64, clang-3.5 built lldb, no test failures.
MacOSX 10.9.4, Xcode 6.0 Beta 3 built lldb, no test failures.

llvm-svn: 213166
2014-07-16 16:15:42 +00:00
Greg Clayton 2c156f852c Fixed the an objective C test case so it passes correctly.
Fixed the test case to use a runtime function prototype that will be correct ([NSString stringWithCString: "new"]) instead of one that won't (expression str = [NSString stringWithFormat: @"%cew", 'N']). The runtime doesn't track vararg functions correctly so we can't reconstitute the function correctly.

Also fixed some expressions that used "str_id" whose type was "id" and do the necessary casting since "id" doesn't have any methods.

llvm-svn: 213113
2014-07-16 00:42:06 +00:00
Greg Clayton 0d830b4226 TestObjCMethods.FoundationTestCase was failing due to an error, fixed now.
<rdar://problem/16322133>
llvm.org/pr20267

llvm-svn: 213111
2014-07-16 00:39:15 +00:00
Greg Clayton 325948cc48 Fix compile warning.
llvm-svn: 213106
2014-07-15 23:27:56 +00:00
Todd Fiala 24189d4c86 Modified gdb-remote tests to run with automatically-chosen ports.
Now that llgs supports communicating the 0-port choose-a-port
mechanism and can communicate that back to a caller via the
--named-pipe option (at parity with debugserver), we use this
mechanism to always start llgs and debugserver gdb-remote
protocol tests without needing to use some port arbitration
mechanism.  This eliminates some potential intermittent failures vs. the
previous random port and collision-avoidance strategy used.

llvm-svn: 212923
2014-07-14 06:24:44 +00:00
Ed Maste 78d117eb63 Add FreeBSD failure decorator for TestCallStopAndContinue
The testrun now completes successfully on my FreeBSD 11.0-CURRENT
laptop.  There are some intermittent failures on the FreeBSD buildbot
still, which should be addressed in later commits.

llvm.org/pr20274

llvm-svn: 212878
2014-07-12 15:41:03 +00:00
Ed Maste 8abef69ad9 Add FreeBSD decorator for TestMultipleDebuggers
llvm.org/pr20282

llvm-svn: 212877
2014-07-12 15:21:55 +00:00
Todd Fiala 289ca249f0 llgs: implement --setsid.
The --setsid (-S) option changes the session id for the lldb-gdbserver process.
This is used by tools such as lldb-platform and allows the user to prevent
llgs from being in the same session as a calling terminal session.
This will prevents terminal group control signals from affecting
lldb-gdbserver.

See also:
https://github.com/tfiala/lldb/issues/38

llvm-svn: 212873
2014-07-12 01:12:44 +00:00
Todd Fiala 67041194b9 Added llgs --named-pipe support and program_name-version_number printout support.
Added a unit test to test debugserver and llgs compliance on --named-pipe support.

Modified llgs to implement --named-pipe support.  (Note: need to revisit with
new generic pipe support).

llvm-svn: 212854
2014-07-11 22:50:13 +00:00
Todd Fiala 57cacb013f Flipped intermittent test failures from skip to XFAIL.
The following intermittently-failing tests have been flipped from
skip to XFAIL on some combo of Linux and MacOSX:

TestCallStopAndContinue.py (Linux, MacOSX)
TestCallWithTimeout.py (Linux)
TestConvenienceVariables.py (Linux)
TestStopHookMultipleThreads.py (Linux)

The following new tests have been marked XFAIL but are just
intermittently failing:

TestMultipleDebug.py (definitely intermittent on MacOSX, not sure I've seen
it pass yet on Linux)

llvm-svn: 212762
2014-07-10 20:52:08 +00:00
Jason Molenda 3b9a93498b Get the inferior binary's name via the command line argument instead
of hardcoding it.

llvm-svn: 212698
2014-07-10 10:23:01 +00:00
Jason Molenda 91c2a99740 Fix test name.
llvm-svn: 212694
2014-07-10 09:55:19 +00:00
Jason Molenda 277335f9b2 Add a new 'stresstest' category, set the api/multiple-debuggers test case as a stresstest.
llvm-svn: 212673
2014-07-10 02:21:16 +00:00
Jason Molenda 8c07401504 Add a new test in api/multiple-debuggers which tries to create 50
debug sessions simultaneously to expose race conditoin/locking
issues.

This directory has an inferior program, testprog.cpp that has a
couple of functions we can put breakpoints on.

It has a driver program, multi-process-driver.cpp, which links
against the LLDB solib and uses the SB APIs.  It creates 50 pthreads,
creates a debugger on all of them, launches a debug session of the
inferior testprog, hits a couple breakpoints, walks the stack,
continues, etc., and then kills the inferior and ends the debug
session.

A pass is if all fifty debug sessions complete successfully
in the alloted time (~60 seconds).

We may need to tweak this one to work correctly on different
platforms/targets but I wanted to get it checked in to start.

llvm-svn: 212671
2014-07-10 02:17:31 +00:00
Todd Fiala 9e2d329818 Skip tests that are intermittent on Linux, fix gdb-remote port-grabbing code.
Marked skipped for Linux:
TestCallStopAndContinue
TestConvenienceVariables
TestStopHookMultipleThreads

Fixed up gdb-remote port-grabbing code to use a random port in a wide range,
and to allow that to fail more gracefully.  This appears to have solved some
gdb-remote intermittent failing behavior.

llvm-svn: 212662
2014-07-09 23:10:43 +00:00
Todd Fiala 8a4ee50e58 Skip TestCallStopAndContinue and TestCallThatRestarts on Darwin.
These are failing intermittently.

See http://llvm.org/bugs/show_bug.cgi?id=19246 for TestCallThatRestarts.  Also applies to Linux.
See http://llvm.org/bugs/show_bug.cgi?id=20274 for TestCallStopAndContinue.

llvm-svn: 212660
2014-07-09 22:03:30 +00:00
Todd Fiala fb17762ee5 Marked TestTargetAPI.test_launch_new_process_and_redirect_stdout_with_* as XFAIL on Darwin.
See http://llvm.org/bugs/show_bug.cgi?id=20273

llvm-svn: 212659
2014-07-09 21:24:41 +00:00
Todd Fiala 8f694d92f9 TestRealDefinition tests marked XFAIL on Darwin.
http://llvm.org/bugs/show_bug.cgi?id=20272

llvm-svn: 212657
2014-07-09 21:21:39 +00:00
Todd Fiala 2efa5655a9 Marked failing TestObjCDynamicValue tests as XFAIL on Darwin.
See http://llvm.org/bugs/show_bug.cgi?id=20271

llvm-svn: 212656
2014-07-09 21:19:03 +00:00
Todd Fiala 7a7dbb8a6c Marked failing TestObjCDynamicSBType tests XFAIL on Darwin.
See http://llvm.org/bugs/show_bug.cgi?id=20270

llvm-svn: 212655
2014-07-09 21:15:46 +00:00
Todd Fiala 51452ed75b Marked failing TestHiddenIvars tests as XFAIL on Darwin.
See http://llvm.org/bugs/show_bug.cgi?id=20269

llvm-svn: 212654
2014-07-09 21:10:13 +00:00
Todd Fiala 532d8a709b Marked TestObjCMethods failing tests XFAIL, fixed cleanup code, removed now-passing expected failure markers.
All tests matching '-p TestObjCMethods' now are marked correctly for MacOSX, and some
error classes have been removed in cleanup code looking for files that
might not exist due to previous failure.

See http://llvm.org/bugs/show_bug.cgi?id=20267

llvm-svn: 212650
2014-07-09 21:02:52 +00:00
Todd Fiala 046ca1faec Marked failing test XFAIL for TestRegisterVariables.test_with_dsym_and_run_command on Darwin
See http://llvm.org/bugs/show_bug.cgi?id=20266

llvm-svn: 212648
2014-07-09 20:45:09 +00:00
Todd Fiala 90198a81e0 Marked failing Darwin TestProcessLaunch tests as XFAIL
See http://llvm.org/bugs/show_bug.cgi?id=20265

llvm-svn: 212647
2014-07-09 20:42:14 +00:00
Todd Fiala 6667e1192a TestDataFormatterStdVector.test_with_dsym_and_run_command marked XFAIL on Darwin
See http://llvm.org/bugs/show_bug.cgi?id=20264

llvm-svn: 212646
2014-07-09 20:38:27 +00:00
Todd Fiala 1928c9bd53 Disable TestDataFormatterStdMap.test_with_dsym_and_run_command on Darwin
See http://llvm.org/bugs/show_bug.cgi?id=20263

llvm-svn: 212645
2014-07-09 20:33:51 +00:00
Todd Fiala c0b1eae6b4 Mark failing tests in TestDataFormatterObjC on Darwin as XFAIL
See http://llvm.org/bugs/show_bug.cgi?id=20260 for more details.

llvm-svn: 212639
2014-07-09 19:00:21 +00:00
Todd Fiala 013434e547 __arm64__ and __aarch64__ #ifdef adjustments
Change by Paul Osmialowski

See http://reviews.llvm.org/D4379 for details.

llvm-svn: 212583
2014-07-09 01:29:05 +00:00
Bruce Mitchener aaa0ba31a9 Fix typos.
llvm-svn: 212553
2014-07-08 18:05:41 +00:00