94 Commits

Author SHA1 Message Date
Zachary Turner
778cec3e30 On non-Windows platforms, asm int 3 generates an eStopReasonSignal.
llvm-svn: 257959
2016-01-15 23:44:45 +00:00
Zachary Turner
fa0b4b271a Fix TestDebugBreak.py.
We can't assume that the main thread of an inferior has index 0,
even in a single-threaded app.

llvm-svn: 257946
2016-01-15 22:22:40 +00:00
Pavel Labath
0771b18257 Fix decoration of TestConcurrentEvents
TestConcurrentEvents was marked with a XFAIL decorator at class level, which actually does not
work, and causes the class to be silently skipped everywhere. It seems that making it work at
class level is quite a difficult task, so I will just move it to the individual test methods. I
will follow this up with a commit which makes the decorator blow up in case someone tries to
apply it to a class in the future.

llvm-svn: 257901
2016-01-15 16:20:01 +00:00
Zachary Turner
1d89df0998 Resubmit the fixes for TestProcessLaunch.py.
I was calling the base class tearDown() function the wrong way
which for some reason is ok on Python 3 but not on Python 2.

llvm-svn: 257788
2016-01-14 19:14:02 +00:00
Tamas Berghammer
f84df99520 Update some XFAILs after the 3.8->3.9 version change
llvm-svn: 257761
2016-01-14 12:49:48 +00:00
Tamas Berghammer
3fa2395aa5 XFAIL TestCommandScriptImmediateOutput on Linux
llvm-svn: 257755
2016-01-14 10:56:56 +00:00
Zachary Turner
400767af54 Revert changes to TestProcessLaunch.py as they are breaking a build.
llvm-svn: 257690
2016-01-13 22:32:31 +00:00
Zachary Turner
19e2ea8fb6 Fix TestProcessLaunch for Python 3.
There were a number of problems preventing this from working:

1. The SWIG typemaps for converting Python lists to and from C++
   arrays were not updated for Python 3.  So they were doing things
   like PyString_Check instead of using the PythonString from
   PythonDataObjects.
2. ProcessLauncherWindows was ignoring the environment completely.
   So any test that involved launching an inferior with any kind
   of environment variable would have failed.
3. The test itself was using process.GetSTDOUT(), which isn't
   implemented on Windows.  So this was changed to save the
   value of the environment variable in a local variable and
   have the debugger look at the value of the variable.

llvm-svn: 257669
2016-01-13 21:21:49 +00:00
Enrico Granata
983ad65220 Mark these tests on FreeBSD and Linux as non-flakey. We don't know that they are
llvm-svn: 257656
2016-01-13 19:29:52 +00:00
Enrico Granata
744959b9c9 Fix an issue where scripted commands would not actually print any of their output if an immediate output file was set in the result object via a Python file object
Fixes rdar://24130303

llvm-svn: 257644
2016-01-13 18:11:45 +00:00
Siva Chandra
b4f94aaf9b [TestThreadJump] Adjust match sub-string after recent change.
Reviewers: zturner

Subscribers: zturner, lldb-commits

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

llvm-svn: 257531
2016-01-12 22:33:19 +00:00
Zachary Turner
9d59306528 Fix TestThreadJump on Windows.
The system can create threads for a system threadpool, so there is
no guarantee that the thread that is stopped is thread 1.  So use
a more robust check.

llvm-svn: 257513
2016-01-12 20:45:29 +00:00
Ravitheja Addepally
49982f5773 Fix for TestNoreturnUnwind.py on i386
Summary:
The testcase TestNoreturnUnwind.py was failing
because the unwind from the vdso library was not
successful for clang compiler while it was passing
for gcc. It was passing for gcc since the unwind plan
used was the assembly plan and the ebp register was
set by the main function in case of gcc and was not
used by the functions in the call flow to the vdso, whereas
clang did not emit assembly prologue for main and so
 the assembly unwind was failing. Normally in case of
failure of assembly unwind, lldb switches to EH CFI frame
based unwinding, but this was not happening for
the first frame. This patch tries to fix this behaviour by
falling to EH CFI frame based unwinding in case of assembly
unwind failure even for the first frame.
The test is still marked as XFAIL since it relys on the fix
of another bug.

Reviewers: lldb-commits, jingham, zturner, tberghammer, jasonmolenda

Subscribers: jasonmolenda

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

llvm-svn: 257465
2016-01-12 10:08:41 +00:00
Omair Javaid
baa07490bc Xfail some Arm-Linux specific failures
Updated expectedFailureLinux decorator to reflect architecture

Marked some triaged failures as xfails on arm with updated expectedFailureLinux decorator

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

llvm-svn: 257405
2016-01-11 22:52:18 +00:00
Dimitry Andric
9a3a6ab3b6 Replace accidental DOS (and mixed) line endings in a few text files
Summary:
Similar to rL256704 and rL256707, fix a few text files which were
accidentally checked in with DOS line endings, or mixed line endings.

Reviewers: jingham, emaste

Subscribers: lldb-commits

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

llvm-svn: 257361
2016-01-11 18:07:47 +00:00
Adrian McCarthy
b06107707d Fix TestMiniDump.py for Python 2/3 (and for a change to debug info)
Differential Revision: http://reviews.llvm.org/D16017

llvm-svn: 257342
2016-01-11 16:35:30 +00:00
Pavel Labath
d0f89cd721 Centralize the handling of attach permissions on linux in tests
Summary:
On linux we need the process to give us special permissions before we can attach to it.
Previously, the code for this was copied into every file that needed it. This moves the code to a
central place to reduce code duplication.

Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 257319
2016-01-11 10:24:50 +00:00
Ying Chen
d7a2ecb681 Fix TestDebugBreak.py failure with gcc, for loop declarations are not allowed by default with gcc
- fix buildbot breakage after r257186
- move declaration outside of for loop

llvm-svn: 257228
2016-01-08 23:10:56 +00:00
Zachary Turner
c29de82956 Remove XFAIL from a few tests that have been fixed on Windows.
llvm-svn: 257219
2016-01-08 22:21:40 +00:00
Zachary Turner
cb0c122ed7 Remove XFAIL from TestThreadStates on Windows.
llvm-svn: 257207
2016-01-08 21:08:19 +00:00
Adrian McCarthy
6788b62f09 Treat an embedded int3/__debugbreak() as a breakpoint on Windows, includes a cross-platform test.
llvm-svn: 257186
2016-01-08 18:28:03 +00:00
Ed Maste
7637905318 Add expectedFailureFreeBSD to an additional thread state test failing on FreeBSD
This new failure has been noted in the existing PR, llvm.org/pr15824

llvm-svn: 256268
2015-12-22 19:08:46 +00:00
Adrian McCarthy
c2961ab889 Improve error handling for frame select command when there are too many arguments.
Bug:  https://llvm.org/bugs/show_bug.cgi?id=25847

It now gives a more specific error message and then returns instead of trying to select the wrong frame.

llvm-svn: 256251
2015-12-22 16:50:28 +00:00
Enrico Granata
828eb2173b Add a test case that validates that my change in r255603 does the right thing
llvm-svn: 256034
2015-12-18 21:35:21 +00:00
Enrico Granata
f85b008de8 Enable the 'type X list' formatters commands to list formatters in language categories
llvm-svn: 255687
2015-12-15 22:20:19 +00:00
Tamas Berghammer
0ecdae1bdc Merge ENABLE_THREADS and ENABLE_STD_THREADS markers
Both of these markers are used in the test suit for annotating when a
test needs multi threaded support. Previously they had slightly
different meening but they converged to the point where they are used
interchangably. This CL removes the ENABLE_STD_THREADS one to simplify
the test suite and avoid some confusion.

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

llvm-svn: 255641
2015-12-15 12:11:00 +00:00
Kate Stone
2a83045ab1 [Test] Addresses failing test when path to make contains spaces
llvm-svn: 255568
2015-12-14 22:59:26 +00:00
Zachary Turner
f098e4fb19 Make debug info specification use categories system.
Reviewed By: Tamas Berghammer, Pavel Labath
Differential Revision: http://reviews.llvm.org/D15428

llvm-svn: 255525
2015-12-14 18:49:16 +00:00
Mohit K. Bhakkad
1951f719df [LLDB][MIPS] Mark TestConcurrentEvents.py expected failure, as MIPS atomic sequences are yet to be supported in LLDB
Reviewers: jaydeep.
Subscribers: lldb-commits.
Differential Revision: http://reviews.llvm.org/D15488

llvm-svn: 255488
2015-12-14 10:26:18 +00:00
Adrian McCarthy
cf6177131a Add some tests for stack and local variable inspection for mini dumps.
Differential Revision: http://reviews.llvm.org/D15435

llvm-svn: 255379
2015-12-11 22:27:57 +00:00
Tamas Berghammer
e43482b626 Create test for llvm.org/pr25806
LLDB don't detect the loading of a shared object file linked against the
main executable before the static initializers are executed for the
given module. Because of this it is not possible to get breakpoint hits
in these static initializers and to display proper debug info in case of
a crash in these codes.

llvm-svn: 255342
2015-12-11 16:24:14 +00:00
Pavel Labath
734a0b3f81 XFAIL TestLoadUnload for Windows->Android
llvm-svn: 255341
2015-12-11 16:16:51 +00:00
Pavel Labath
35b952ac3e Correctly XFAIL TestReturnValue
android is not an "os", use the target triple to match it.

llvm-svn: 255118
2015-12-09 15:49:40 +00:00
Pavel Labath
7ead0b937c XFAIL TestReturnValue for remote Windows->Android tests
this also adds the ability to match the host platform to the expectedFailureAll decorator.

llvm-svn: 255105
2015-12-09 10:54:18 +00:00
Zachary Turner
d865c6b707 Remove the -c option from dotest.py.
This seems to be a legacy relic from days gone by where the
remote test suite runner operated completely differently than it
does today.  git blames and comments traced this functionality
back to about 2012, and nobody seems to know anything about it
now.

llvm-svn: 255060
2015-12-08 22:15:48 +00:00
Tamas Berghammer
4fbd67ac11 Add a new option to Platform::LoadImage to install the image
This change introduce 3 different working mode for Platform::LoadImage
depending on the file specs specified.
* If only a remote file is specified then the remote file is loaded on
  the target (same behavior as before)
* If only a local file is specified then the local file is installed to
  the current working directory and then loaded from there.
* If both local and remote file is specified then the local file is
  installed to the specified location and then loaded from there.

The same options are exposed on the SB API with a new method LoadImage
method while the old signature presers its meaning.

On the command line the installation of the shared library can be specified
with the "--install" option of "process load".

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

llvm-svn: 255014
2015-12-08 13:43:59 +00:00
Zachary Turner
606e3a5221 Get rid of global variables in dotest.py
This moves all the global variables into a separate module called
`configuration`.  This has a number of advantages:

1. Configuration data is centrally maintained so it's easy to get
   a high level overview of what configuration data the test suite
   makes use of.
2. The method of sharing configuration data among different parts
   of the test suite becomes standardized.  Previously we would
   put some things into the `lldb` module, some things into the
   `lldbtest_config` module, and some things would not get shared.
   Now everything is shared through one module and is available to
   the entire test suite.
3. It opens the door to moving some of the initialization code into
   the `configuration` module, simplifying the implementation of
   `dotest.py`.

There are a few stragglers that didn't get converted over to using
the `configuration` module in this patch, because it would have grown
the size of the patch unnecessarily.  This includes everything
currently in the `lldbtest_config` module, as well as the
`lldb.remote_platform` variable.  We can address these in the future.

llvm-svn: 254982
2015-12-08 01:15:30 +00:00
Kamil Rytarowski
faca93e407 Add NetBSD in platform specific logging of the specified category in RegisterCommandsTestCase()
Summary: NetBSD soon will reuse this feature while running tests.

Reviewers: emaste, tfiala, clayborg

Subscribers: lldb-commits, joerg

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

llvm-svn: 254949
2015-12-07 21:26:56 +00:00
Pavel Labath
19da1f16c2 Recommit "Fix race during process interruption"
This is a resubmit of r254403, see that commit's message for context. This fixes an issue in the
original commit, where we would incorrectly interrupt the process if the interrupt request came
just as we were about to send the stopped event to the public.

llvm-svn: 254902
2015-12-07 12:36:52 +00:00
Pavel Labath
cb8ea4bd23 Make TestThreadStates more stable
Summary:
Because of the large number of XFAILs TestThreadStates has decayed quite a bit. This commit does
the following:
- removes the "breakpoint list" expectations. Most tests have been failing on this, because the
  command output changed quite a while back. I remove it, because run_break_set_by_file_and_line
  already does a decent amount of checking
- fixup test_state_after_expression: this was calling the wrong function by mistake. As now the
  function actually tests something (which we know is broken), I needed to XFAIL it as well.
- replaces the sleep() with a proper wait-for-event functionality in parts which use async mode,
  to stabilize the one function that actually tests something.

Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 254901
2015-12-07 11:09:14 +00:00
Mohit K. Bhakkad
f083b9fa97 [LLDB][MIPS] Marking some expected failures
Reviewers: clayborg, zturner.
Subscribers: jaydeep, bhushan, sagar, nitesh.jain, tberghammer,lldb-commits.
Differential Revision: http://reviews.llvm.org/D14944

llvm-svn: 254892
2015-12-07 05:47:35 +00:00
Zachary Turner
3e9e7d2822 Make TestThreadSpecificBreakpoint.py more focused.
This test would fail before if conditional breakpoints weren't
working correctly, and the nature of the test (spinning up 10
threads, etc) opens the door to raciness.

This patch vastly simplifies the test, removes the need for relying
on conditional expression evaluation, and as a result makes the
correctness of the test vastly easier to reason about and reduces
flakiness.

Differential Revision: http://reviews.llvm.org/D15241
Reviewed By: Jim Ingham

llvm-svn: 254792
2015-12-04 22:59:41 +00:00
Jaydeep Patil
56cb5ebae8 [LLDB][MIPS] XFAIL TestCrashDuringStep.py for MIPS
SUMMARY:
    Marked TestCrashDuringStep.py as XFAIL for MIPS. The test generates IO error due to breakpoint at invalid address.
    
    Reviewers: clayborg, labath
    Subscribers: nitesh.jain, mohit.bhakkad, sagar, bhushan and lldb-commits
    Differential Revision: http://reviews.llvm.org/D15182

llvm-svn: 254710
2015-12-04 09:56:36 +00:00
Zachary Turner
abb4420f57 Un XFAIL some tests that are now passing on Windows.
llvm-svn: 254633
2015-12-03 19:20:05 +00:00
Tamas Berghammer
f9a52f044c Fix TestLoadUnload for Windows -> POSIX remote debugging
Previously we used sys.os.path for appending target pathes what failed
when cased dlopen to fail on the target because of the '\'.

The fix won't work for local Windows tests but dlopen don't available
on Windows anyway so the test don't make sense in that context.

llvm-svn: 254602
2015-12-03 11:02:10 +00:00
Tamas Berghammer
2a7043cd70 XFAIL TestReturnValue for linux i386 clang 3.5-3.6
The test failing most likely because clang 3.5 and 3.6 uses an incorrect
ABI for returning small structs from  a function.

llvm-svn: 254507
2015-12-02 13:36:17 +00:00
Tamas Berghammer
3cb132a0f4 Fix "process load/unload" on android
On android the symbols exposed by libdl (dlopen, dlclose, dlerror)
prefixed by "__dl_". This change moves the handling of process
load/unload to the platform object and override it for android to
handle the special prefix.

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

llvm-svn: 254504
2015-12-02 11:58:51 +00:00
Abhishek Aggarwal
296e063d8f PTRACE ABI to read FXSAVE area for 32-bit inferior
Summary:
 - Problem occurs when:
    -- 32-bit inferiors run on x86_32 machine and
       the architecture doesn't have AVX feature

    -- This causes FPRType to be set to eFPRTypeFXSAVE

    -- PTRACE_GETFPREGS was being used to read FXSAVE area

    -- For 32-bit inferiors running on x86_32 machine,
       PTRACE_GETFPREGS reads FSAVE area and not FXSAVE area

 - Changed ptrace API to PTRACE_GETREGSET for 32-bit inferiors
    -- This reads FPR data in FXSAVE format.
    -- For 64-bit inferiors, no change has been made.

 - Modified XFAIL for TestReturnValue.py
    -- Earlier, this test was passing for Linux OS
    -- Now, it passes for Android OS as well

Change-Id: Ieed72bc969b79516fc7b263b32493aa1e7a1a2ac
Signed-off-by: Abhishek Aggarwal <abhishek.a.aggarwal@intel.com>

Reviewers: ovyalov, jingham, lldb-commits, tberghammer, labath

Subscribers: jevinskie, labath, tberghammer, danalbert

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

llvm-svn: 254499
2015-12-02 09:40:17 +00:00
Pavel Labath
00fea63627 Revert "Fix race during process interruption"
The android buildbot gets quite flaky after this change. I'm reverting it while I investigate.

llvm-svn: 254430
2015-12-01 17:59:56 +00:00
Pavel Labath
df55f522bd Fix race during process interruption
Summary:
The following situation was occuring in TestAttachResume:
- we did a "continue" from a breakpoint (which involves a private start-stop to step over the
  breakpoint)
- after receiving the stop-reply from the step-over, we issue a "detach" (which requires a
  process interrupt)
- at this moment, the public state is "running", private state is "about-to-be-stopped" (the
  stopped event was broadcast, but it was not received yet)
- StopForDestroyOrDetach (public thread) notes the public state is running, sends an interrupt
  request to the private thread
- private thread gets the eBroadcastBitInterrupt (before the eStateStopped message), and asks the
  process plugin to stop (via Halt())
- process plugin says it has nothing to do as the process is already stopped
- private thread shrugs and carries on. receives the stop event, restores the breakpoint and
  resumes the process.
- after a while, the public thread times out and says it failed to stop the process

This patch does the following:
- splits Halt() into two functions, private and public, their usage depends on the context
  - public Halt(): sends eBroadcastBitInterrupt to the private thread and waits for the Stop
    event
  - HaltPrivate(): asks the plugin to stop and makes a note that the halt was requested. When the
    next stop event comes it sets the interrupt flag on it.
- removes HijackPrivateProcessEvents(), as the only user (old Halt()) has gone away
- removes the m_currently_handling_event hack, as the new Halt() does not need it
- adds a use_run_lock parameter to public Halt() and WaitForProcessToStop(). This was needed
  because RunThreadPlan uses Halt() while holding the run lock and we don't want Halt() to take
  it away from him.

Reviewers: clayborg, jingham

Subscribers: lldb-commits

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

llvm-svn: 254403
2015-12-01 11:28:47 +00:00