Commit Graph

52 Commits

Author SHA1 Message Date
Jim Ingham
39fdae7f6a Fix a bug where if we stop but nobody says there was a reason for the stop, we would return
control to the user anyway.  This was put in to handle monitors that would say there was no
stop reason when you first attached to them.  But it broke the case where you hit a thread specific
breakpoint on many threads, but NOT the one specified in the breakpoint.  I work around this
by only doing the junky override when the StopID is 0 - i.e. on first attach.

This commit also adds a test for thread specific breakpoints.

llvm-svn: 199290
2014-01-15 03:32:42 +00:00
Greg Clayton
4570d3eba0 Massive test suite cleanup to stop everyone from manually having to compute "mydir" inside each test case.
This has led to many test suite failures because of copy and paste where new test cases were based off of other test cases and the "mydir" variable wasn't updated.

Now you can call your superclasses "compute_mydir()" function with "__file__" as the sole argument and the relative path will be computed for you. 

llvm-svn: 196985
2013-12-10 23:19:29 +00:00
Ed Maste
1d981a9606 test: Update decorators for FreeBSD failures with threaded inferior support
llvm.org/pr18190
llvm.org/pr18191

llvm-svn: 196792
2013-12-09 17:27:18 +00:00
Ed Maste
a4786e0d92 Add decorator for FreeBSD watchpoint failure
llvm.org/pr16706

llvm-svn: 196781
2013-12-09 14:24:09 +00:00
Greg Clayton
1251456028 Added two new test case decorator functions: @skipIfRemote and @skipIfRemoteDueToDeadlock.
@skipIfRemote is used to decorate test cases that don't make sense to run remotely.

@skipIfRemoteDueToDeadlock indicates these tests need to be looked at and currently deadlock the running of the test suite when run on remote systems. These issues should be fixed soon.

llvm-svn: 196543
2013-12-05 22:22:32 +00:00
Ed Maste
094e1653cb test: Decorators for pr17910
A number of tests fail to build on FreeBSD because the test build script
defaults to libstdc++ for clang.  On FreeBSD the libstdc++ is rather old
and libc++ should be used instead.

(These tests previously had an @expectedFailureFreeBSD decorator for
pr16696, the umbrella PR for the lack of threaded inferior support on
FreeBSD.  The work to add that support will be committed soon.)

llvm-svn: 196101
2013-12-02 14:26:57 +00:00
Ed Maste
0d092a446b Add decorator for FreeBSD failing test due to pr18061
The test code locks mutexes from one thread and unlocks them from a
different one, which is not valid (it's either undefined behaviour or is
required to return an error).

See http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_lock.html

llvm-svn: 195707
2013-11-26 01:11:14 +00:00
Enrico Granata
03e474bcef This only fails on Darwin ; thanks Jim for pointing that out
llvm-svn: 193843
2013-11-01 00:57:53 +00:00
Enrico Granata
3a48185f79 Thread::SetState() is not being called upon hitting the breakpoint
Given that, this test will never pass
Marking as expected failure pending a fix

llvm-svn: 193830
2013-10-31 23:36:47 +00:00
Matt Kopec
cc64cc1773 Fix the thread jump test case for 32-bit inferiors. A jump was going back to a function call using a source line number. However, the parameters being passed to the function were setup before the instruction we jumped to. In other words, the source line was associated with assembly after the function parameters had been setup for the function to be called.
llvm-svn: 191457
2013-09-26 20:54:17 +00:00
Daniel Malea
105b2a4bc3 Make threading tests not depend on the currently selected thread
- tests are now anostic to the currently selected thread, as that is a frontend (i.e. driver) decision
- this is in preparation to a fix to POSIXThread::BreakNotify that will be committed shortly

Reviewed by: Matt Kopec

llvm-svn: 191041
2013-09-19 22:00:07 +00:00
Ed Maste
34bdbbdf97 test: Update FreeBSD failure decorators
llvm.org/pr15261 missing size for static arrays
llvm.org/pr15278 expressions generating signals
llvm.org/pr15824 thread states aren't properly maintained
llvm.org/pr16696 threaded inferior debugging not yet on FreeBSD
llvm.org/pr17214 inline stepping fails on FreeBSD
llvm.org/pr17225 Clang assertion failure
llvm.org/pr17226 frame info lost after failed expression evaluation
llvm.org/pr17228 test timeout

The first three are existing Linux issues that also affect FreeBSD.

llvm-svn: 190698
2013-09-13 15:34:59 +00:00
Richard Mitton
f86248d9ba Added a 'jump' command, similar to GDBs.
This allows the PC to be directly changed to a different line.
It's similar to the example python script in examples/python/jump.py, except implemented as a builtin.

Also this version will track the current function correctly even if the target line resolves to multiple addresses. (e.g. debugging a templated function)

llvm-svn: 190572
2013-09-12 02:20:34 +00:00
Daniel Malea
4a204d26c5 Disabling tests affected by llvm.org/pr16170 on Linux
- occasional lldb hangs are causing noisy buildbots and trouble in the (Debian/Ubuntu) package builder

llvm-svn: 190355
2013-09-09 21:28:44 +00:00
Daniel Malea
65b4b97f1b Re-enable check previously disabled due to llvm.org/pr16603
llvm-svn: 187890
2013-08-07 15:21:08 +00:00
Daniel Malea
adaaec9aea Centralizing Intel compiler detection logic in lldbtest.py to avoid duplication in the future.
- Addresses review comments from Stefanus!

llvm-svn: 187816
2013-08-06 20:51:41 +00:00
Daniel Malea
433299d015 Support one more flavour of Intel compiler in TestThreadStepOut
- Thanks to Matt Kopec for noticing the failure!

llvm-svn: 187815
2013-08-06 20:39:27 +00:00
Daniel Malea
14b3d361f8 Test compatibility improvements for ICC
- update TestThreadStepOut.py to work with Intel compilers
- fix typo in TestConcurrentEvents

llvm-svn: 187801
2013-08-06 15:00:23 +00:00
Daniel Malea
7dadf4999a Assorted test suite fixes as a result of GCC 4.8 validation efforts
- disable some TestConcurrentEvents cases (which are affected by llvm.org/pr16714 -- watchpoints in multithreaded programs)
- relax number-of-bp-locations check in TestUniqueTypes/TestUnsignedTypes
- skip TestDataFormatterStdVector cases with GCC 4.8 (known failure due to llvm.org/pr15301)
- workaround for race condition in TestHelloWorld.py
- update TestSettings.py to work on distros (like Fedora) that have /bin/cat hardlinked to /usr/bin/cat

After these changes, the test suite should run cleanly against GCC 4.8 (with DWARF v4)!

llvm-svn: 187451
2013-07-30 21:34:44 +00:00
Daniel Malea
4d3de853a2 Fix TestConcurrentEvents to behave nicely with GCC 4.8
- newer gcc generates additional debuginfo for function exit (stack object desctruction) which was causing tests to fail
- work-around consists of not declaring any stack objects in main()

llvm-svn: 187389
2013-07-29 23:13:08 +00:00
Ed Maste
861fc207a9 tests: Mark expected FreeBSD failures due to pr16706
Watchpoints are not yet working on FreeBSD

llvm-svn: 187134
2013-07-25 17:23:10 +00:00
Ed Maste
d6107f2968 tests: Mark expected FreeBSD failures due to pr16696
Live debugging for threaded inferiors is not yet implemented on FreeBSD

llvm-svn: 187131
2013-07-25 17:17:15 +00:00
Ed Maste
fac86fd06f tests: Mark expected FreeBSD failures due to pr16696
Live debugging of threaded inferiors is currently unimplemented for
FreeBSD.

llvm-svn: 187077
2013-07-24 21:09:24 +00:00
Ashok Thirumurthi
073842bde1 Updating tests that fail with ICC 13.1 because of the different mapping of assembly to DWARF.
llvm-svn: 187035
2013-07-24 13:24:06 +00:00
Daniel Malea
7987088a8a Add tests for 'thread step out' for multithreaded programs
- test with python API
- test with command interpreter
- test stepping a single (selected) thread
- test stepping all threads in the program

llvm-svn: 186446
2013-07-16 19:41:37 +00:00
Daniel Malea
687d94571c Work-around for GCC issue where setting a breakpoint on a vector definition also adds a breakpoint on the d'tor call
llvm-svn: 186193
2013-07-12 19:46:47 +00:00
Daniel Malea
829942585d Fix gcc buildbot failures, re-enable tests disabled due to llvm.org/pr16575
llvm-svn: 186166
2013-07-12 16:02:25 +00:00
Jim Ingham
f1715ab270 Get debugserver to call task_set_state to prime the control registers so that watchpoints
take for threads created while the program is running.  Remove the testcase skips from TestConcurrentEvents.py,
since they all pass now, and fix TestWatchpointMultipleThreads.py - which should have caught this problem -
so it doesn't artificially break on new thread creation before the watchpoint triggers.

llvm.org/pr16566
<rdar://problem/14383244>

llvm-svn: 186132
2013-07-11 23:20:35 +00:00
Daniel Malea
37002ad30e Tentatively re-enabling TestBreakAfterJoin on Linux
- Unable to reproduce llvm.org/pr16170 locally

llvm-svn: 186129
2013-07-11 22:40:52 +00:00
Daniel Malea
10691b1d36 Enable Mac OS X tests disabled due to llvm.org/pr16567
- thread count remains correct now that we use pthread_kill() instead of kill() to deliver signals

llvm-svn: 186126
2013-07-11 22:28:17 +00:00
Daniel Malea
7df860a629 Improve TestConcurrentEvents.py
- code cleanup, improved reporting when failures take place
- ensure known thread is interrupted by using pthread_kill() instead of kill() in the signal worker thread
- above should avoid llvm.org/pr16567 on Mac OS X (though kill() could still cause threads to pop out of existance temporarily)
- added an additional check that all threads have exited after worker threads are all join()ed
- logged llvm.org/pr16603 for the new Linux bug discovered

llvm-svn: 186124
2013-07-11 22:14:47 +00:00
Daniel Malea
6c4a0f0816 Cleanup in TestConcurrentEvents.py
- re-enable tests fixed by Matt's commit this morning (addressed llvm.org/pr16567)
- disabled tests affected by new bug llvm.org/pr16575
- removed some commented out code in inferior

llvm-svn: 185951
2013-07-09 17:36:18 +00:00
Daniel Malea
b3d41a278b Add TestConcurrentEvents test for LLDB's handling of inferior threads
- Test verifies LLDB's handling of inferiors with threads that: hit breakpoints,
  modfiy variables that have watchpoints set, generate user signals, and crash.
- Add a few "stress tests" (with ~100 threads) -- run these with "-l" dotest.py
  flag.
- Fix stop_reason_to_str helper in lldbutil to handle eStopReasonThreadExited.
- Add sort_stopped_threads helper to lldbutil to separate thread lists based
  on stop reason.

Logged llvm.org/pr16566 and llvm.org/pr16567 for bugs exposed.

llvm-svn: 185889
2013-07-09 00:08:01 +00:00
Ed Maste
09617a5d03 Skip tests that hang on FreeBSD
There's still significant work to do in the FreeBSD port, so no point
in a pr for these yet.

llvm-svn: 184871
2013-06-25 19:11:36 +00:00
Matt Kopec
36e5a7db2a Fix single whitespace before breakpoint filename in some tests due to r183932.
llvm-svn: 184104
2013-06-17 19:00:31 +00:00
Ashok Thirumurthi
ec000b6714 Revert r183281, adds a comment about how to reproduce the hang.
llvm-svn: 183569
2013-06-07 20:58:47 +00:00
Daniel Malea
692074622c Add test cases for attaching to a process after fork
- one test case is due to llvm.org/pr16229
- other test case uses a Linux workaround for above by using os.fork() instead of subprocess module

Patch by Andy Kaylor!

llvm-svn: 183340
2013-06-05 21:07:02 +00:00
Andrew Kaylor
912a710a8a Re-enabling a test that is no longer failing
llvm-svn: 183281
2013-06-04 23:38:51 +00:00
Daniel Malea
4a01e59354 Improve TestExitDuringStep to verify thread behaviour during step-over, step-in in addition to step-inst
Patch by Brian Minard!

llvm-svn: 182961
2013-05-30 21:14:31 +00:00
Matt Kopec
03da5167cd Remove extraneous files from test directory.
llvm-svn: 182943
2013-05-30 17:59:36 +00:00
Andrew Kaylor
baa14e852b Fixing problems with thread create during step test.
llvm-svn: 182888
2013-05-29 22:40:17 +00:00
Andrew Kaylor
93132f504f Adding support for stopping all threads of multithreaded inferiors on Linux. Also adding multithreaded test cases.
llvm-svn: 182809
2013-05-28 23:04:25 +00:00
Daniel Malea
e8bdd1f5c0 Clean up linux test decorators and add links to known bugs
- s/skipOnLinux/skipIfLinux/ to match style of every other decorator
- linkify bugizilla/PR numbers in comments

No intended change in functionality.

llvm-svn: 181913
2013-05-15 18:48:32 +00:00
Andrew Kaylor
29d65744c9 Adding support for setting thread stop state when a process stops.
This re-submission of this patch fixes a problem where the code sometimes caused a deadlock.  The Process::SetPrivateState method was locking the Process::m_private_state variable and then later calling ThreadList::DidStop, which locks the ThreadList mutex.  Other methods in ThreadList which were being called from other threads lock the ThreadList mutex and then call Process::GetPrivateState which locks the Process::m_private_state mutex.  To avoid deadlocks, Process::SetPrivateState now locks the ThreadList mutex before locking the Process::m_private_state mutex.

llvm-svn: 181609
2013-05-10 17:19:04 +00:00
Daniel Malea
e347243061 Revert r181482 as it causes occasional hangs in LLDB buildbots
llvm-svn: 181526
2013-05-09 17:34:40 +00:00
Andrew Kaylor
14263f31ae Adding code to set thread state to stopped when the process stops.
llvm-svn: 181482
2013-05-08 23:15:46 +00:00
Andrew Kaylor
9f6c535b0d Refactoring thread state tests to show individual failures
llvm-svn: 180828
2013-04-30 23:39:14 +00:00
Andrew Kaylor
a5d0f84694 Removing invalid test cases from thread state test
llvm-svn: 180613
2013-04-26 17:47:10 +00:00
Daniel Malea
ef2a53af71 Fix missing module name in expectedFailure calls
llvm-svn: 180158
2013-04-23 22:59:31 +00:00
Andrew Kaylor
dbbe36b2ce Adding basic test for thread state (See PR-15824)
llvm-svn: 180149
2013-04-23 21:42:03 +00:00