summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/tools
Commit message (Collapse)AuthorAgeFilesLines
* Fix -break-insert not working when using absolute paths (MI)Ilia K2016-07-291-1/+0
| | | | | | | | | | | | | | Summary: When trying to parse the -break-insert arguments as a named location, the string parsing was not configured to allow directory paths. This patch adds a constructor to allow the parsing of string as directory path along with the other parameters. This fixes https://llvm.org/bugs/show_bug.cgi?id=28709 Patch from malaperle@gmail.com Reviewers: clayborg, ki.stfu Subscribers: lldb-commits, ki.stfu Differential Revision: https://reviews.llvm.org/D22902 llvm-svn: 277117
* Support loading files even when incorrect file name specified by the linkerTamas Berghammer2016-07-221-1/+1
| | | | | | | | | | | | | | | "Incorrect" file name seen on Android whene the main executable is called "app_process32" (or 64) but the linker specifies the package name (e.g. com.android.calculator2). Additionally it can be present in case of some linker bugs. This CL adds logic to try to fetch the correct file name from the proc file system based on the base address sepcified by the linker in case we are failed to load the module by name. Differential revision: http://reviews.llvm.org/D22219 llvm-svn: 276411
* Fix -break-enable/-break-disable commands (MI)Ilia K2016-07-141-0/+45
| | | | | | | | | | | | | * Previously -break-enable mistakenly set BP's enabled flag to false. * These commands print fake =breakpoint-modified messages, what's not needed anymore because that events are come in normal way. * Add tests for -break-enable/-break-disable commands Initial patch from xuefangliang@hotmail.com. The test case was improved by me. Differential Revision: http://reviews.llvm.org/D21757 llvm-svn: 275381
* Enable test log collection from remote debug servers (take 2)Pavel Labath2016-07-041-8/+0
| | | | | | | | | | | | | | | | | | Summary: This is a slightly reworked version of D16322, which I had reverted because it did not do what it advertised. Differences from the previous version are: - moved the code for cleaning up the remote working dir to a later point as it was removing the log file before we could get to it. - specialised log downloading code for gdb-remote tests is not needed, as this will cover that use case as well. Reviewers: tfiala Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D21898 llvm-svn: 274491
* Removed the redundant "%d errors parsing expression" error. Nobody keeps score.Sean Callanan2016-06-301-2/+2
| | | | | | <rdar://problem/24306284> llvm-svn: 274254
* Add missing qRegisterInfo option to gdbremote testcaseFrancis Ricci2016-04-251-0/+1
| | | | | | | | | | | | | | Summary: "gcc" is equivalent to "ehframe" in ProcessGDBRemote, but only "ehframe" was a valid response in the test suite. Reviewers: tfiala, jasonmolenda, clayborg Subscribers: lldb-commits, sas Differential Revision: http://reviews.llvm.org/D18807 llvm-svn: 267459
* [test] Relax stderr expectations on targets with chatty outputPavel Labath2016-04-145-10/+19
| | | | | | | | | | | | | | | Summary: On some android targets, a binary can produce additional garbage (e.g. warning messages from the dynamic linker) on the standard error, which confuses some tests. This relaxes the stderr expectations for targets known for their chattyness. Reviewers: tfiala, ovyalov Subscribers: tberghammer, danalbert, srhines, lldb-commits Differential Revision: http://reviews.llvm.org/D19114 llvm-svn: 266326
* Fix test cases for big-endian systemsUlrich Weigand2016-04-141-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A number of test cases were failing on big-endian systems simply due to byte order assumptions in the tests themselves, and no underlying bug in LLDB. These two test cases: tools/lldb-server/lldbgdbserverutils.py python_api/process/TestProcessAPI.py actually check for big-endian target byte order, but contain Python errors in the corresponding code paths. These test cases: functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py functionalities/data-formatter/data-formatter-smart-array/TestDataFormatterSmartArray.py functionalities/data-formatter/synthcapping/TestSyntheticCapping.py lang/cpp/frame-var-anon-unions/TestFrameVariableAnonymousUnions.py python_api/sbdata/TestSBData.py (first change) could be fixed to check for big-endian target byte order and update the expected result strings accordingly. For the two synthetic tests, I've also updated the source to make sure the fake_a value is always nonzero on both big- and little-endian platforms. These test case: python_api/sbdata/TestSBData.py (second change) functionalities/memory/cache/TestMemoryCache.py simply accessed memory with the wrong size, which wasn't noticed on LE but fails on BE. Differential Revision: http://reviews.llvm.org/D18985 llvm-svn: 266315
* Support Linux on SystemZ as platformUlrich Weigand2016-04-142-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for Linux on SystemZ: - A new ArchSpec value of eCore_s390x_generic - A new directory Plugins/ABI/SysV-s390x providing an ABI implementation - Register context support - Native Linux support including watchpoint support - ELF core file support - Misc. support throughout the code base (e.g. breakpoint opcodes) - Test case updates to support the platform This should provide complete support for debugging the SystemZ platform. Not yet supported are optional features like transaction support (zEC12) or SIMD vector support (z13). There is no instruction emulation, since our ABI requires that all code provide correct DWARF CFI at all PC locations in .eh_frame to support unwinding (i.e. -fasynchronous-unwind-tables is on by default). The implementation follows existing platforms in a mostly straightforward manner. A couple of things that are different: - We do not use PTRACE_PEEKUSER / PTRACE_POKEUSER to access single registers, since some registers (access register) reside at offsets in the user area that are multiples of 4, but the PTRACE_PEEKUSER interface only allows accessing aligned 8-byte blocks in the user area. Instead, we use a s390 specific ptrace interface PTRACE_PEEKUSR_AREA / PTRACE_POKEUSR_AREA that allows accessing a whole block of the user area in one go, so in effect allowing to treat parts of the user area as register sets. - SystemZ hardware does not provide any means to implement read watchpoints, only write watchpoints. In fact, we can only support a *single* write watchpoint (but this can span a range of arbitrary size). In LLDB this means we support only a single watchpoint. I've set all test cases that require read watchpoints (or multiple watchpoints) to expected failure on the platform. [ Note that there were two test cases that install a read/write watchpoint even though they nowhere rely on the "read" property. I've changed those to simply use plain write watchpoints. ] Differential Revision: http://reviews.llvm.org/D18978 llvm-svn: 266308
* Bump up timeout in TestGdbRemoteProcessInfoPavel Labath2016-04-121-1/+1
| | | | | | | the process info packet is slow, and sometimes it does not arrive on time when run on the android emulator. llvm-svn: 266058
* Fix makefile for TestMiThreadInfo after rL265858 (2nd try)Tamas Berghammer2016-04-111-0/+2
| | | | llvm-svn: 265921
* Fix makefile for TestMiThreadInfo after rL265858Tamas Berghammer2016-04-111-2/+0
| | | | | | | The makefile was explicitly setting LDFLAGS what is breaking some rules in the global makefile. llvm-svn: 265920
* -thread-info in lldbmi does not conform to protocol. Should end with current ↵Chuck Ries2016-04-083-0/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | thread id -thread-info in lldbmi does not conform to protocol. Should end with current thread id as described here: https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Thread-Commands.html#GDB_002fMI-Thread-Commands When printing all threads, the current thread id should be printed afterwards. Example: -thread-info ^done,threads=[ {id="2",target-id="Thread 0xb7e14b90 (LWP 21257)", frame={level="0",addr="0xffffe410",func="__kernel_vsyscall", args=[]},state="running"}, {id="1",target-id="Thread 0xb7e156b0 (LWP 21254)", frame={level="0",addr="0x0804891f",func="foo", args=[{name="i",value="10"}], file="/tmp/a.c",fullname="/tmp/a.c",line="158"}, state="running"}], current-thread-id="1" (gdb) Patch from jacdavis@microsoft.com Reviewers: zturner, chuckr Differential Revision: http://reviews.llvm.org/differential/revision/edit/18880/ llvm-svn: 265858
* [NFC] Cleanup the code used to run shell commands from testsTamas Berghammer2016-04-052-27/+9
| | | | | | | | | | | | Previously we had 3 different method to run shell commands on the target and 4 copy of code waiting until a given file appears on the target device (used for syncronization). This CL merges these methods to 1 run_platform_command and 1 wait_for_file_on_target functions located in some utility classes. Differential revision: http://reviews.llvm.org/D18789 llvm-svn: 265398
* Fix TestPlatformProcessConnect after rL265357Tamas Berghammer2016-04-051-1/+5
| | | | llvm-svn: 265392
* Don't vary debug info for lldb-server testsPavel Labath2016-03-311-0/+2
| | | | | | | | | | | | | | | | | | Summary: Debug info is used only by the client and lldb-server tests do not even have the client component running, as they communicate with the server directly. Therefore, running the tests for each debug info type is unnecessarry. This adds general ability to mark a test class as not dependent on debug info, and marks all lldb-server tests as such. Reviewers: tberghammer, tfiala Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D18598 llvm-svn: 265017
* Add a DiagnosticManager replace error streams in the expression parser.Sean Callanan2016-03-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We want to do a better job presenting errors that occur when evaluating expressions. Key to this effort is getting away from a model where all errors are spat out onto a stream where the client has to take or leave all of them. To this end, this patch adds a new class, DiagnosticManager, which contains errors produced by the compiler or by LLDB as an expression is created. The DiagnosticManager can dump itself to a log as well as to a string. Clients will (in the future) be able to filter out the errors they're interested in by ID or present subsets of these errors to the user. This patch is not intended to change the *users* of errors - only to thread DiagnosticManagers to all the places where streams are used. I also attempt to standardize our use of errors a bit, removing trailing newlines and making clients omit 'error:', 'warning:' etc. and instead pass the Severity flag. The patch is testsuite-neutral, with modifications to one part of the MI tests because it relied on "error: error:" being erroneously printed. This patch fixes the MI variable handling and the testcase. <rdar://problem/22864976> llvm-svn: 263859
* Mark an LLGS test as flakyPavel Labath2016-03-161-0/+1
| | | | | cause: Async output arrival over pty llvm-svn: 263631
* [test] Persist packets between expect_gdbremote_sequence invocationsPavel Labath2016-03-163-30/+41
| | | | | | | | | | | | | | | | | | | | | | Summary: Some tests (Hc_then_Csignal_signals_correct_thread, at least) were sending a "continue" packet in one expect_gdbremote_sequence invocation, and "expecting" the stop-reply in another call. This posed a problem, because the were packets were not persisted between the two invocations, and if the stub was exceptionally fast to respond, the packet would be received in the first invocation (where it would be ignored) and then the second invocation would fail because it could not find the packet. Since doing matching in two invocations seems like a reasonable use of the packet pump, instead of fixing the test, I make sure the packet_pump supports this usage by making the list of captured packets persistent. Reviewers: tfiala Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D18140 llvm-svn: 263629
* [test] Correctly retry connections on android targetsPavel Labath2016-03-141-5/+31
| | | | | | | | | | | | | | | | | Summary: Normally, when the remote stub is not ready, we will get ECONNREFUSED during the connect() attempt. However, due to the way how ADB forwarding works, on android targets the connect() will always be successful, but the connection will be immediately dropped if ADB could not connect on the remote side. This commit tries to detect this situation, and report it as "connection refused" so that the upper test layers attempt the connection again. Reviewers: tfiala, tberghammer Subscribers: tberghammer, danalbert, srhines, lldb-commits Differential Revision: http://reviews.llvm.org/D18146 llvm-svn: 263439
* Add a log statementPavel Labath2016-03-041-0/+1
| | | | llvm-svn: 262715
* Resumbit "Fetch remote log files from LLGS tests"Pavel Labath2016-03-041-5/+29
| | | | | | | | The problem with the original patch (and my first attempt to fix) was that the value debug monitor flags could persist from one test to another. Resetting the value in the setUp() function fixes the problem. llvm-svn: 262713
* Revert "Fetch remote log files from LLGS tests"Pavel Labath2016-03-031-29/+5
| | | | | | | Even after the last fixup, there still seems to be one failure left. Revert until I figure out what is going on. llvm-svn: 262622
* Fix OSX breakage caused by r262597Pavel Labath2016-03-031-0/+1
| | | | llvm-svn: 262602
* Fetch remote log files from LLGS testsPavel Labath2016-03-031-5/+28
| | | | | | | | | | | | | | | | | Summary: this enables download of remote log files for llgs and debugserver tests (previously we were just passing the host file name which obviously did not work). Note this also changes the debugserver logging to work only when logging has been requested on the command line, whereas previously it would log unconditionally. I can change it back if anyone is relying on this, but I thought I'd make this consistent. Reviewers: tfiala Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D17798 llvm-svn: 262597
* Slightly improve logging in LLGS testsPavel Labath2016-03-011-1/+1
| | | | | | we're sometimes getting an exception here, and I want to see why... llvm-svn: 262333
* Make TestPlatformProcessConnect to support abstract/domain sockets.Oleksiy Vyalov2016-02-261-4/+20
| | | | llvm-svn: 261974
* Mark TestMiBreak.test_lldbmi_break_insert_function_pending as flaky on linuxPavel Labath2016-02-221-0/+1
| | | | | | | Test has become flaky again. Attempts to investigate the triggering commit have failed, so I suspect it was flaky all along.. llvm-svn: 261519
* Remove expectedFailureFreeBSD decoratorEd Maste2016-02-191-1/+1
| | | | | | | | All invocations are updated to use the generic expectedFailureAll. Differential Revision: http://reviews.llvm.org/D17455 llvm-svn: 261355
* Mark TestLldbGdbServer.test_software_breakpoint_set_and_remove_work_llgs as ↵Pavel Labath2016-02-191-0/+1
| | | | | | | | flaky on linux The problem is the asynchronous arrival of inferior stdio (pr25652). llvm-svn: 261313
* Mark TestLldbGdbServer.test_written_M_content_reads_back_correctly as flaky ↵Pavel Labath2016-02-161-0/+1
| | | | | | | | on linux I believe the root cause is the asynchronous arrival of inferior stdio (pr25652). llvm-svn: 260950
* Remove expectedFailureLinux decorator.Zachary Turner2016-02-107-8/+8
| | | | llvm-svn: 260422
* Delete all the xfail / skip decorators for specific compilers.Zachary Turner2016-02-091-2/+2
| | | | | | Ported everything over to using expectedFailureAll. llvm-svn: 260289
* Remove skip and xfail decorators for target architecture.Zachary Turner2016-02-091-1/+1
| | | | | | | | | | | | | | | | This removes the following decorators: * skipIfI386 * expectedFailureI386 * expectedFailurex86_64 * skipIfArch * skipUnlessArch * skipUnlessI386 And other related decorators. All code using those decorators is updated to use expectedFailureAll and skipIf llvm-svn: 260178
* Remove expectedFailureWindows decorator.Zachary Turner2016-02-082-11/+11
| | | | | | | | | | | | | | | expectedFailureWindows is equivalent to using the general expectedFailureAll decorator with oslist="windows". Additionally, by moving towards these common decorators we can solve the issue of having to support decorators that can be called with or without arguments. Once all decorators are always called with arguments, and this is enforced by design (because you can't specify the condition you're decorating for without passing an argument) the implementation of the decorators can become much simpler Differential Revision: http://reviews.llvm.org/D16936 llvm-svn: 260134
* Show real error message in -data-evaluate-expressionEugene Leviant2016-02-081-1/+1
| | | | llvm-svn: 260082
* Revert "Enable test_lldbmi_settings_set_target_run_args_before on linux"Pavel Labath2016-02-081-0/+1
| | | | | | Test is still flaky. llvm-svn: 260081
* Bump up the packet timeout for gdbremote testsPavel Labath2016-02-051-1/+1
| | | | | | | Log confirmed that the we are sometimes timing out on the receive, even though the server is sending the correct packets. llvm-svn: 259878
* Move the rest of the tests over to using the new decorator module.Zachary Turner2016-02-0434-18/+73
| | | | llvm-svn: 259838
* Move some of the common decorators to decorators.py.Zachary Turner2016-02-041-1/+2
| | | | | | | | | | | | This doesn't attempt to move every decorator. The reason for this is that it requires touching every single test file to import decorators.py. I would like to do this in a followup patch, but in the interest of keeping the patches as bite-sized as possible, I've only attempted to move the underlying common decorators first. A few tests call these directly, so those tests are updated as part of this patch. llvm-svn: 259807
* Enable test_lldbmi_settings_set_target_run_args_before on linuxPavel Labath2016-02-041-1/+0
| | | | | | Test has passed last 200 runs of the build bot. llvm-svn: 259777
* Add verbose logging support to gdb-remote testsPavel Labath2016-02-041-7/+39
| | | | | | | | | | | | | | | | | | Summary: gdb-remote tests are not able to use the same logging mechanisms as the rest of our tests, and currently we get no host logs from them, even though the tests themselves have logging capability. This commit changes that. When user specifies that he would like to log the gdb-remote channel (--channel gdb-remote argument to dotest.py), we write detailed logs to the <TEST_ID>-host.log file, just like we would in the case of regular tests. If this argument is not specified, we only log the serious messages to stderr, which matches the existing behaviour. Reviewers: tfiala, tberghammer Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D16858 llvm-svn: 259774
* Always write the session file in UTF-8.Zachary Turner2016-02-011-1/+2
| | | | | | | | | | | | | | | | | | This patch attempts to solve the Python 2 / Python 3 incompatibilities by introducing a new `encoded_file` abstraction that we use instead of `io.open()`. The problem with the builtin implementation of `io.open` is that `read` and `write` accept and return `unicode` objects, which are not always convenient to work with in Python 2. We solve this by making `encoded_file.open()` return the same object returned by `io.open()` but with hooked `read()` and `write()` methods. These hooked methods will accept binary or text data, and conditionally convert what it gets to a `unicode` object using the correct encoding. When calling `read()` it also does any conversion necessary to convert the output back into the native `string` type of the running python version. Differential Revision: http://reviews.llvm.org/D16736 llvm-svn: 259379
* Fix crash in lldb-mi when stack variable name is nullptr. This always ↵Eugene Leviant2016-01-292-0/+28
| | | | | | happens when execution stops in try scope with unnamed catch clause llvm-svn: 259189
* Mark arm/aarch64 specific xfails with expectedFailureLinux decoratorOmair Javaid2016-01-202-3/+6
| | | | | | | | | | | | | This patch marks some known failures and puts on expectedFailureLinux decorator to have testsuite xfail them. Affected tests are: test/functionalities/watchpoint/step_over_watchpoint.py test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py test/tools/lldb-server/TestGdbRemoteSingleStep.py test/tools/lldb-server/TestGdbRemote_vCont.py llvm-svn: 258315
* Centralize the handling of attach permissions on linux in testsPavel Labath2016-01-111-14/+1
| | | | | | | | | | | | | | | 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
* XFAIL TestMiSymbol on linuxPavel Labath2016-01-061-0/+1
| | | | | | new test introduced in r256863 fails on linux. llvm-svn: 256925
* Apply missed changes from svn r256863 "Add support for "source info" and use ↵Dawn Perchik2016-01-061-3/+3
| | | | | | | | | it to fix MI's -symbol-list-lines.". Patch is part of Differential Revision: http://reviews.llvm.org/D15593 Differential Revision: http://reviews.llvm.org/D15904 llvm-svn: 256877
* Add support for "source info" and use it to fix MI's -symbol-list-lines.Dawn Perchik2016-01-052-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support the command 'source info' as follows: (lldb) help source info Display source line information (as specified) based on the current executable's debug info. Syntax: source info <cmd-options> Command Options Usage: source info [-c <count>] [-s <shlib-name>] [-f <filename>] [-l <linenum>] [-e <linenum>] source info [-c <count>] [-s <shlib-name>] [-n <symbol>] source info [-c <count>] [-a <address-expression>] -a <address-expression> ( --address <address-expression> ) Lookup the address and display the source information for the corresponding file and line. -c <count> ( --count <count> ) The number of line entries to display. -e <linenum> ( --end-line <linenum> ) The line number at which to stop displaying lines. -f <filename> ( --file <filename> ) The file from which to display source. -l <linenum> ( --line <linenum> ) The line number at which to start the displaying lines. -n <symbol> ( --name <symbol> ) The name of a function whose source to display. -s <shlib-name> ( --shlib <shlib-name> ) Look up the source in the given module or shared library (can be specified more than once). For example: (lldb) source info --file x.h Lines for file x.h in compilation unit x.cpp in `x [0x0000000100000d00-0x0000000100000d10): /Users/dawn/tmp/./x.h:10 [0x0000000100000d10-0x0000000100000d1b): /Users/dawn/tmp/./x.h:10 The new options are used to fix the MI command: -symbol-list-lines <file> which didn't work for header files because it called: target modules dump line-table <file> which only dumps line tables for a compilation unit. The patch also fixes a bug in the error reporting when no files were supplied to the command. Previously you'd get: (lldb) target modules dump line-table error: Syntax: error: no source filenames matched any command arguments Now you get: error: file option must be specified. Reviewed by: clayborg, jingham, ki.stfu Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D15593 llvm-svn: 256863
* Mark a test_lldbmi_gdb_set_target_async_on as flaky on linuxPavel Labath2016-01-051-0/+1
| | | | | | Test fails in about 1% of buildbot runs. Marking as flaky to avoid the noise. llvm-svn: 256835
OpenPOWER on IntegriCloud