Commit Graph

20353 Commits

Author SHA1 Message Date
Raphael Isemann d6f097eeb8 [lldb][NFC] Remove lldbcurses.py
Summary: This doesn't seem to be used anymore (at least I can't find any reference to this in the LLDB repo and it doesn't seem to be a standalone script). Git says this was once some new curses mode for viewing test results.

Reviewers: clayborg, JDevlieghere

Reviewed By: JDevlieghere

Subscribers: JDevlieghere, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D67064

llvm-svn: 370804
2019-09-03 18:11:54 +00:00
Raphael Isemann b187eef616 [lldb][NFC] Remove unused overload of File::Read
Summary: It's neither used or tested here and in swift-lldb, so let's get rid of it.

Reviewers: #lldb, davide

Reviewed By: #lldb, davide

Subscribers: davide, JDevlieghere, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D67116

llvm-svn: 370802
2019-09-03 18:11:14 +00:00
Jonas Devlieghere e44f2eb315 [test] Addres TestConcurrentMany*.py flakiness on macOS
On "fast" macOS machines, the TestConcurrentMany*.py tests would fail
randomly with different numbers of breakpoints, watchpoints, etc. This
seems to be avoidable by giving the threads a little time to breath
after the passing the synchronization barrier. This is far from a
structural fix but it reduces the flakiness.

llvm-svn: 370785
2019-09-03 17:04:04 +00:00
Jonas Devlieghere 063aac6cf3 [test] Remove print statements and verify that the symbol exists
This removes some (commented out) print statements and adds a line that
verifies that uses image list to check the symbol.

llvm-svn: 370777
2019-09-03 16:26:44 +00:00
Raphael Isemann f792054fd2 [lldb][NFC] Disable added frame select and all log option test on windows
llvm-svn: 370776
2019-09-03 16:21:57 +00:00
Michal Gorny 3276fffc17 [lldb] Replace std::call_once() with llvm::call_once()
Remove the single instance of std::call_once() in lldbTarget library
with llvm::call_once().  The former fails to build on NetBSD when
combined with llvm::once_flag (which replaced std::once_flag
in r369618), and combining the two is probably generally incorrect
anyway.

llvm-svn: 370748
2019-09-03 12:31:24 +00:00
Raphael Isemann 607c92afda [lldb] Test 'frame select -r' and fix that INT32_MIN breaks the option parser
llvm-svn: 370734
2019-09-03 10:15:45 +00:00
Raphael Isemann 99f9f1f2d8 [lldb][NFC] Test 'command delete'
llvm-svn: 370733
2019-09-03 10:13:45 +00:00
Raphael Isemann 07ae1bd711 [lldb][NFC] Test that enabling all log options doesn't crash anything
llvm-svn: 370724
2019-09-03 09:40:25 +00:00
Raphael Isemann 253eecf525 [lldb][NFC] Remove unnecessary constructors from invalid-args tests
llvm-svn: 370719
2019-09-03 09:25:02 +00:00
Raphael Isemann b78900e0ab [lldb][NFC] Simplify script_alias test
llvm-svn: 370718
2019-09-03 09:21:47 +00:00
Raphael Isemann e76113347d [lldb][NFC] Also test unaliasing in nested_alias test
llvm-svn: 370717
2019-09-03 09:19:51 +00:00
Raphael Isemann d77ea5b297 [lldb] Test 'command' commands and fix the found crashes
llvm-svn: 370712
2019-09-03 09:06:12 +00:00
Raphael Isemann b10a433da8 [lldb][NFC] Unify log files in commands/log/basic
llvm-svn: 370706
2019-09-03 08:30:17 +00:00
Raphael Isemann 13edbbe2fa [lldb][NFC] Remove setup boilerplate from types/ tests
This code doesn't seem to be necessary anymore.

llvm-svn: 370702
2019-09-03 07:33:32 +00:00
Pavel Labath eafede2afe [dotest] Add @skipIfCursesSupportMissing and annotate the new gui test
Summary:
The gui command requires curses support, which can be disabled at
compile time. This patch adds the ability to detect this situation in
the test suite and skip the test accordingly.

Reviewers: teemperor, jankratochvil

Subscribers: lldb-commits

Differential Revision: https://reviews.llvm.org/D67073

llvm-svn: 370658
2019-09-02 13:33:12 +00:00
Pavel Labath 3f3673ead9 NativeProcessLinux: Remove some register context boilerplate
Summary:
This patch follows the spirit of D63594, and removes some null checks
for things which should be operating invariants. Specifically
{Read,Write}[GF]PR now no longer check whether the supplied buffers are
null, because they never are. After this, the Do*** versions of these
function no longer serve any purpose and are inlined into their callers.

Other cleanups are possible here too, but I am taking this one step at a
time because this involves a lot of architecture-specific code, which I
don't have the hardware to test on (I did do a build-test though).

Reviewers: mgorny, jankratochvil, omjavaid, alexandreyy, uweigand

Subscribers: nemanjai, javed.absar, kbarton, lldb-commits

Differential Revision: https://reviews.llvm.org/D66744

llvm-svn: 370653
2019-09-02 12:50:18 +00:00
Raphael Isemann 9bc338b89e [lldb][NFC] Add test for invalid gui command
llvm-svn: 370647
2019-09-02 12:10:16 +00:00
Raphael Isemann 65d386eac5 [lldb][NFC] Remove unused imports from TestIntegerTypesExpr.py
llvm-svn: 370645
2019-09-02 11:58:03 +00:00
Omair Javaid 1da33fd4ef [ARM64] Simplify RegisterInfos_arm64.h with macro based RegisterInfo array
This patches paves way for upcoming SVE RegisterInfo definitions. This is cosmetic change which allows us to define ARM64 RegisterInfo using macros.

In future we ll have define two different RegisterInfos to choose between SVE vs non-SVE RegisterInfo with decision being made at thread creation.

Differential Revision: https://reviews.llvm.org/D66934

llvm-svn: 370644
2019-09-02 11:53:29 +00:00
Raphael Isemann da496363bf [lldb][NFC] Remove unused imports from TestIntegerTypes.py
llvm-svn: 370641
2019-09-02 11:30:00 +00:00
Raphael Isemann 1aab62762f [lldb][NFC] Add test for source info
llvm-svn: 370638
2019-09-02 10:55:52 +00:00
Raphael Isemann 6897a814e6 [lldb] Add description to option completions.
Summary:
Right now our argument completions are rather cryptic for command options as they only list the letters:

```
(lldb) breakpoint set -
Available completions:
	-G
	-C
	-c
	-d
	-i
	-o
	-q
	-t
	-x
[...]
```

With the new completion API we can easily extend this with the flag description so that it looks like this now:

```
(lldb) breakpoint set -
Available completions:
	-G -- The breakpoint will auto-continue after running its commands.
	-C -- A command to run when the breakpoint is hit, can be provided more than once, the commands will get run in order left to right.
	-c -- The breakpoint stops only if this condition expression evaluates to true.
	-d -- Disable the breakpoint.
	-i -- Set the number of times this breakpoint is skipped before stopping.
	-o -- The breakpoint is deleted the first time it stop causes a stop.
	-q -- The breakpoint stops only for threads in the queue whose name is given by this argument.
	-t -- The breakpoint stops only for the thread whose TID matches this argument.
	-x -- The breakpoint stops only for the thread whose index matches this argument.
```

The same happens with --long-options now.

Reviewers: #lldb, labath

Reviewed By: labath

Subscribers: labath, JDevlieghere, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D67063

llvm-svn: 370628
2019-09-02 08:34:57 +00:00
Raphael Isemann 254150982b [lldb][NFC] Add basic test for GUI command
Summary:
This adds a basic test for the GUI command. Just tests that it starts up, that we can quit the gui
and help window, and that the basic UI elements are rendered. Mostly testing the waters how
testing this command will do on the bots or if that will cause some serious issues when we do
fancy ncurses stuff.

Reviewers: labath, clayborg

Reviewed By: labath

Subscribers: JDevlieghere, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D67018

llvm-svn: 370625
2019-09-02 08:00:59 +00:00
Raphael Isemann 250c495a7c [lldb][NFC] Remove unnecessary lldb_enable_attach in TestMultilineCompletion
We don't actually need to call this for this test.

llvm-svn: 370623
2019-09-02 07:40:06 +00:00
Raphael Isemann 434b81d0a2 [lldb] Test and fix invalid log command invocations
llvm-svn: 370619
2019-09-01 19:29:01 +00:00
Raphael Isemann d63ddee5ab [lldb][NFC] Add test for invalid expression command args
llvm-svn: 370618
2019-09-01 18:59:40 +00:00
Raphael Isemann c98fc5a793 [lldb][NFC] Fix failing tests on macOS after restructuring test folder
llvm-svn: 370616
2019-09-01 16:30:06 +00:00
Jan Kratochvil 5341193537 [lldb] Small optimization of FormatMap::Delete
llvm-svn: 370612
2019-09-01 15:08:33 +00:00
Raphael Isemann 3e15a7a147 [lldb][NFC] Fix failing tests after restructuring test folder
Just adjusts all the relative paths in the Makefiles (and
the breakpoint test which seems to rely on the name of its
folder).

llvm-svn: 370611
2019-09-01 13:36:44 +00:00
Raphael Isemann 29872606d2 [lldb] Restructure test folders to match LLDB command hierarchy
Summary:
As discussed on lldb-dev, this patch moves some LLDB tests into a hierarchy that more closely
resembles the commands we use in the LLDB interpreter. This patch should only move tests
that use the command interpreter and shouldn't touch any tests that primarily test the SB API.

Reviewers: #lldb, jfb, JDevlieghere

Reviewed By: #lldb, JDevlieghere

Subscribers: dexonsmith, arphaman, JDevlieghere, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D67033

llvm-svn: 370605
2019-09-01 09:12:37 +00:00
Raphael Isemann 04a4c0910b [lldb] Unify target checking in CommandObject
Summary:
We currently have several CommandObjects that manually reimplement the checking for a selected target
or a target in the execution context (which is the selected target when they are invoked). This patch removes
all these checks and replaces them by setting the eCommandRequiresTarget flag that Pavel suggested. With
this flag we are doing the same check but without having to duplicate this code in all these CommandObjects.

I also added a `GetSelectedTarget()` variant of the `GetSelectedOrDummyTarget()` function to the
CommandObject that checks that the flag is set and then returns a reference to the target. I didn't rewrite
all the `target` variables from `Target *` to `Target &` in this patch as last time this change caused a lot of merge
conflicts in Swift and I would prefer having that in a separate NFC commit.

Reviewers: labath, clayborg

Reviewed By: labath, clayborg

Subscribers: clayborg, JDevlieghere, jingham, amccarth, abidh, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D66863

llvm-svn: 370571
2019-08-31 09:41:25 +00:00
Raphael Isemann d4df363b14 [lldb][NFC] Remove unused prompt variable in TestMultilineCompletion.py
llvm-svn: 370570
2019-08-31 09:40:26 +00:00
Jonas Devlieghere 1ea909270c [test] Make sys.stdout compatible with both Python 2 & 3
This time's the charm.

llvm-svn: 370552
2019-08-30 23:54:13 +00:00
Jonas Devlieghere d8c20b9443 [lit] Only set DYLD_LIBRARY_PATH for shared builds
In r370135 I committed a temporary workaround for the sanitized bot to
not set (DY)LD_LIBRARY_PATH when (DY)LD_INSERT_LIBRARIES was set.
Setting (DY)LD_LIBRARY_PATH is only necessary for (standalone)
shared-library builds, so a better solution is to only set the
environment variable when necessary.

Differential revision: https://reviews.llvm.org/D67012

llvm-svn: 370549
2019-08-30 23:16:02 +00:00
Jonas Devlieghere d5dc73d2c2 [test] Fix 'argument must be str, not bytes' for Python 3.
Use `sys.stdout.buffer` instead of `sys.stdout` in lldbpexpect.py.

llvm-svn: 370545
2019-08-30 22:53:38 +00:00
Jonas Devlieghere c847cf31b0 [test] Make sure PROMPT is a string
Currently tests using expect_prompt are failing on the Python 3 bot with
an error saying "argument must be str, not bytes". I don't have a Python
3 build handy, but I suspect this might fix that.

llvm-svn: 370526
2019-08-30 20:46:55 +00:00
Raphael Isemann 80840c1b33 [lldb][NFC] More tests for invalid register command invocations
llvm-svn: 370503
2019-08-30 19:19:25 +00:00
Jonas Devlieghere a053ae0fae [lit] Fix my earlier bogus fix to not set DYLD_LIBRARY_PATH with Asan.
My follow-up commit to mess with DYLD_LIBRARY_PATH was bogus for two
reasons:

 - The condition was inverted.
 - We were checking the OS's environment, instead of the config's.

Two wrongs don't make a right, but the second mistake meant that the
sanitizer bot passed.

llvm-svn: 370483
2019-08-30 15:56:14 +00:00
Pavel Labath 9bad66393b [dotest] Finish removing -q
One usage of this option remained, and caused dotest to error out if one
happened to pass the -v flag.

llvm-svn: 370462
2019-08-30 11:02:58 +00:00
Pavel Labath 12a7e6c09c dotest: improvements to the pexpect tests
Summary:
While working on r370054, i've found it frustrating that the test output
was compeletely unhelpful in case of failures. Therefore I've decided to
improve that. In this I reuse the PExpectTest class, which was one of
our mechanisms for running pexpect tests, but which has gotten orhpaned
in the mean time.

I've replaced the existing send methods with a "expect" method, which
I've tried to design so that it has a similar interface to the expect
method in regular non-pexpect dotest tests (as it essentially does
something very similar). I've kept the ability to dump the transcript of
the pexpect communication to stdout in the "trace" mode, as that is a
very handy way to figure out what the test is doing. I've also removed
the "expect_string" method used in the existing tests -- I've found this
to be unhelpful because it hides the message that would be normally
displayed by the EOF exception. Although vebose, this message includes
some important information, like what strings we were searching for,
what were the last bits of lldb output, etc. I've also beefed up the
class to automatically disable the debug info test duplication, and
auto-skip tests when the host platform does not support pexpect.

This patch ports TestMultilineCompletion and TestIOHandlerCompletion to
the new class. It also deletes TestFormats as it is not testing anything
(definitely not formats) -- it was committed with the test code
commented out (r228207), and then the testing code was deleted in
r356000.

Reviewers: teemperor, JDevlieghere, davide

Subscribers: aprantl, lldb-commits

Differential Revision: https://reviews.llvm.org/D66954

llvm-svn: 370449
2019-08-30 09:07:42 +00:00
Raphael Isemann b0ca908808 [lldb][NFC] Move Clang-specific flags to ClangUserExpression
LLVMUserExpression doesn't use these variables and they are all specific to Clang.

Also removes m_const_object as this was actually never used by anyone (and Clang
didn't report it as we assigned it in the constructor which seems to count as use).

llvm-svn: 370440
2019-08-30 07:44:29 +00:00
Jonas Devlieghere 86955ecd6a [lit] Print exit code in for unresolved (lldb)tests.
A test is marked unresolved when we're unable to find PASSED or FAILED
in the dotest output. Usually this is because we crashed and when that
happens the exit code can give a clue as to why. This patch adds the
exit code to the lit output to make it easier to investigate those
issues.

Differential revision: https://reviews.llvm.org/D66975

llvm-svn: 370413
2019-08-29 22:02:28 +00:00
Raphael Isemann b859168ec9 [lldb][NFC] Document options parameter in ClangUserExpression constructor
Somehow this option was only documented in the swift branch.

llvm-svn: 370395
2019-08-29 18:53:20 +00:00
Jonas Devlieghere ff5982aa91 [test] Fix various module cache bugs and inconsistencies
Currently, lit tests don't set neither the module cache for building
inferiors nor the module cache used by lldb when running tests.
Furthermore, we have several places where we rely on the path to the
module cache being always the same, rather than passing the correct
value around. This makes it hard to specify a different module cache
path when debugging a a test.

This patch reworks how we determine and pass around the module cache
paths and fixes the omission on the lit side. It also adds a sanity
check to the lit and dotest suites.

Differential revision: https://reviews.llvm.org/D66966

llvm-svn: 370394
2019-08-29 18:37:05 +00:00
Jonas Devlieghere e1327e696e [dotest] Remove deprecated loggin through env variables.
It used to be possible to enable logging through environment variables
read by dotest. This approach is deprecated, as stated in the dotest
help output. Instead --channel should be used.

Differential revision: https://reviews.llvm.org/D66920

llvm-svn: 370387
2019-08-29 17:19:00 +00:00
Jonas Devlieghere 16624b8ca6 [dotest] Remove the curses result formatter.
This removes the curses result formatter which appears to be broken.
Passing --curses to dotest.py screws up my terminal and doesn't run any
tests. It even crashes Python on occasion.

Differential revision: https://reviews.llvm.org/D66917

llvm-svn: 370386
2019-08-29 17:18:57 +00:00
Davide Italiano 6347aa5d16 Revert "[TSanRuntime] Upstream thread swift race detector."
Sometimes it's easier to resolve merge conflict than arguing.

llvm-svn: 370385
2019-08-29 17:14:25 +00:00
Pavel Labath f07b4aff06 Fix GetDIEForDeclContext so it only returns entries matching the provided context
Currently, we return all the entries such that their decl_ctx pointer >= decl_ctx provided.
Instead, we should return only the ones that decl_ctx pointer == decl_ctx provided.

Differential Revision: https://reviews.llvm.org/D66357
Patch by Guilherme Andrade <guiandrade@google.com>.

llvm-svn: 370374
2019-08-29 15:30:52 +00:00
Pavel Labath ef82098a80 Remove DWARFExpression::LocationListSize
Summary:
The only reason for this function's existance is so that we could pass
the correct size into the DWARFExpression constructor. However, there is
no harm in passing the entire data extractor into the DWARFExpression,
since the same code is performing the size determination as well as the
subsequent parse. So, if we get malformed input or there's a bug in the
parser, we'd compute the wrong size anyway.

Additionally, reducing the number of entry points into the location list
parsing machinery makes it easier to switch the llvm debug_loc(lists)
parsers.

While inside, I added a couple of tests for invalid location list
handling.

Reviewers: JDevlieghere, clayborg

Subscribers: aprantl, javed.absar, kristof.beyls, lldb-commits

Differential Revision: https://reviews.llvm.org/D66789

llvm-svn: 370373
2019-08-29 15:21:26 +00:00
Raphael Isemann 250cef2c7d [lldb][NFC] Try fixing TestCompletion.py on Windows
llvm-svn: 370316
2019-08-29 09:57:02 +00:00
Raphael Isemann a884a06c92 [lldb][NFC] Also test operator new/new[]/delete/delete[]/comma/addr-of
llvm-svn: 370315
2019-08-29 09:39:33 +00:00
Sylvestre Ledru c6e825efc7 use https for llvm.org in the doc
llvm-svn: 370303
2019-08-29 07:20:08 +00:00
Sylvestre Ledru 2831d1aedd fix the bugzilla url
llvm-svn: 370302
2019-08-29 07:19:14 +00:00
Sylvestre Ledru d07de02291 Provide a real link to the doc and remove old information
llvm-svn: 370301
2019-08-29 07:14:09 +00:00
Davide Italiano 54b3aa91d0 [python] remove testsuite vestiges.
llvm-svn: 370287
2019-08-29 01:45:10 +00:00
Davide Italiano a633d29ba1 [TSanRuntime] Upstream thread swift race detector.
Summary:
This is self-contained, and doesn't need anything in the
compiler to work. Mainly to reduce the diff between upstream
and downstream.

Patch by Kuba Mracek!

Reviewers: kubamracek

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D66915

llvm-svn: 370286
2019-08-29 01:39:26 +00:00
Jonas Devlieghere 5c04497217 [dotest] Make dotest.py invocation repeatable
This removes support for reading the LLDB_TEST_ARGUMENTS environment
variable and instead requires all arguments to be specified as part of
the invocation. This ensures that dotest.py invocations are easily
repeatable.

Differential revision: https://reviews.llvm.org/D66912

llvm-svn: 370278
2019-08-28 23:54:23 +00:00
Jonas Devlieghere 311ae45228 [dotest] Remove --event-add-entries
This argument was used by dosep.py to pass information around from the
workers. With dosep.py gone, I'm fairly sure we don't need this any
longer.

llvm-svn: 370266
2019-08-28 21:31:53 +00:00
Jonas Devlieghere 5970076466 [dotest] Remove --rerun-max-file-threshold
This variable corresponding to this argument is set but never read.

llvm-svn: 370264
2019-08-28 21:24:41 +00:00
Jonas Devlieghere 3331fd8228 [dotest] Centralize and simplify session dir logic (NFC)
I was looking at the session directory logic for unrelated reasons and
noticed that the logic spread out across dotest. This simplifies things
a bit by moving the logic together.

llvm-svn: 370259
2019-08-28 20:54:17 +00:00
Alex Langford 3e45e3ba95 [Core] Use GetAPInt instead of constructing APInts in place
GetAPInt should be able to handle all cases. I have plans to generalize
the float dumping logic and this makes it easier to do later.

llvm-svn: 370255
2019-08-28 20:15:57 +00:00
Jonas Devlieghere ff2e965ad0 [test] Temporarily disable two tests on Windows
Disable the two failing tests until Raphael has a chance to investigate:

Failing Tests (2):
    lldb-Suite :: functionalities/completion/TestCompletion.py
    lldb-Suite :: functionalities/target_command/TestTargetCommand.py

llvm-svn: 370237
2019-08-28 18:04:14 +00:00
Jonas Devlieghere b18f11eeea [dotest] Remove outdates TODO
The referenced function `find_test_files_in_dir_tree` no longer exists.

llvm-svn: 370235
2019-08-28 17:38:50 +00:00
Jonas Devlieghere dfc34efa6b [dotest] Don't try to guess the lldb binary & python dir.
Now that all supported build systems create a valid dotest.py
invocation, we no longer need to guess the location of the lldb binary
and Python directory.

Differential revision: https://reviews.llvm.org/D66896

llvm-svn: 370234
2019-08-28 17:38:48 +00:00
Jonas Devlieghere 165d47969a [dotest] Don't try to guess the llvm binary dir.
Now that all supported build systems create a valid dotest.py
invocation, we no longer need to guess the directory where any of the
llvm tools live. Additionally, the current logic is incomplete: it
doesn't try to find any other tools than FileCheck, such as dsymutil for
example.

If no FileCheck is provided, we should print a warning and skip the
tests that need it, but that's not part of this patch.

Differential revision: https://reviews.llvm.org/D66893

llvm-svn: 370232
2019-08-28 17:06:28 +00:00
Jonas Devlieghere 0a114b3571 [dotest] Don't spend time replacing spaces in print output.
Replacing all spaces with dashes seems like a lot of needless work for a
string that's just printed.

llvm-svn: 370231
2019-08-28 17:06:26 +00:00
Jonas Devlieghere f48ebacfcc [TestCppOperators] Enable TestCppOperators on Windows.
This test is passing on the Windows bot:

Unexpected Passing Tests (1):
    lldb-Suite :: lang/cpp/operators/TestCppOperators.py

llvm-svn: 370227
2019-08-28 16:29:00 +00:00
Jonas Devlieghere b543c16869 [dotest] Remove -q (quiet) flag.
This patch removes the -q (quiet) flag and changing the default
behavior. Currently the flag serves two purposes that are somewhat
contradictory, as illustrated by the difference between the argument
name (quiet) and the configuration flag (parsable). On the one hand it
reduces output, but on the other hand it prints more output, like the
result of individual tests. My proposal is to guard the extra output
behind the verbose flag and always print the individual test results.

Differential revision: https://reviews.llvm.org/D66837

llvm-svn: 370226
2019-08-28 16:28:58 +00:00
Raphael Isemann 2f323fc790 [lldb][NFC] Refactor and document ClangASTContext::IsOperator
Should make it clearer what actually is going on in there.

llvm-svn: 370201
2019-08-28 13:46:01 +00:00
Raphael Isemann 4046e1ee21 [lldb][NFC] Test named operators like new and function names that might confuse LLDB
llvm-svn: 370199
2019-08-28 13:33:52 +00:00
Raphael Isemann 95686fa898 [lldb][NFC] Actually run all expects in lang/cpp/operators
Apparently inline tests stop running anything after an empty line
behind an self.expect, which is a very good approach that could
never cause people to write tests that never run.

This patch removes all the empty lines so that all this test
is actually run. Also fixes the broken expects that only passed
because they weren't run before.

llvm-svn: 370195
2019-08-28 12:32:58 +00:00
Raphael Isemann 05e2e290c0 [lldb][NFC] Extend operator test case with conversion operators
llvm-svn: 370194
2019-08-28 12:14:39 +00:00
Raphael Isemann f0ad3e4093 [lldb][NFC] Test custom C++ operators
llvm-svn: 370186
2019-08-28 11:18:47 +00:00
Raphael Isemann efb8b7b1ec [lldb] Fix and test completion for ambiguous long options
The refactoring patch for the option completion broke the completion
for ambiguous long options. As this feature was also untested (as
testing ambiguous options with the current test methods is impossible),
I just noticed now. This patch restores the old behavior and adds a
test for this feature.

llvm-svn: 370185
2019-08-28 10:17:23 +00:00
Raphael Isemann ac5a475b53 [lldb][NFC] Get rid of C-strings in HandleOptionCompletion
llvm-svn: 370179
2019-08-28 09:32:30 +00:00
Raphael Isemann 9774a2ba27 [lldb][NFC] Update documentation of Handle[Argument]Completion
We no longer have return values or any of the mentioned arguments
in these functions since the introduction of CompletionRequest.

llvm-svn: 370174
2019-08-28 09:02:32 +00:00
Jason Molenda deeda85f3f Update name of objc runtime SPI function we call for class names.
A new SPI was added to the objc runtime to get class names without
any demangling; AppleObjCRuntimeV2::ParseClassInfoArray was using
the original prototype name but had not been updated for the final
name yet, so lldb was falling back to the old function and doing
extra work for classes that were demangled.  This commit fixes that.

llvm-svn: 370152
2019-08-28 02:14:07 +00:00
Jonas Devlieghere eb0df9b285 [lit] Fix the way we check if an environment var is set
The old method would throw a KeyError.

llvm-svn: 370138
2019-08-28 00:52:08 +00:00
Jonas Devlieghere de37c444ef [test] Disable TestConcurrentManySignals on Darwin.
This test is flaky on GreenDragon. Disable it until we figure out why.

llvm-svn: 370136
2019-08-28 00:35:37 +00:00
Jonas Devlieghere 1fcdcd09bc [lit] Don't set DYLD_LIBRARY_PATH when DYLD_INSERT_LIBRARIES is set.
Setting DYLD_INSERT_LIBRARIES to the Asan runtime and DYLD_LIBRARY_PATH
to the LLVM shared library dir causes the test suite to crash with a
segfault. We see this on the LLDB sanitized bot [1] on GreenDragon. I've
spent some time investigating, but I'm not sure what's going on (yet).

Originally I thought this was because we were building compiler-rt and
were loading an incompatible, just-built Asan library. However, the
issue persists even without compiler-rt. It doesn't look like the Asan
runtime is opening any other libraries that might be found in LLVM's
shared library dir and talking to the team confirms that. Another
possible explanation is that we're loading lldb form a place we don't
expect, but that doesn't make sense either, because DYLD_LIBRARY_PATH is
always set without the crash. I tried different Python versions and
interpreters but the issue persist.

As a (temporary?) workaround I propose not setting DYLD_LIBRARY_PATH
when DYLD_INSERT_LIBRARIES is set so we can turn the Asan bot on again
and get useful results.

[1] http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake-sanitized/

Differential revision: https://reviews.llvm.org/D66845

llvm-svn: 370135
2019-08-28 00:32:19 +00:00
Adrian Prantl 29db51dad4 Revert "[lldb] Move redundant persistent variable counter to ClangPersistentVariables"
This reverts commit r367842 since it wasn't quite as NFC as advertised
and broke Swift support.  See https://reviews.llvm.org/D46083 for the
rationale behind the original functionality.

rdar://problem/54619322

llvm-svn: 370126
2019-08-27 22:50:40 +00:00
Jonas Devlieghere 50c094a368 [dotest] Remove check for LLDB_TESTSUITE_FORCE_FINISH
llvm-svn: 370120
2019-08-27 21:59:24 +00:00
Nathan Lanza 0c01d92051 [Platform/Android] Read the adb server from an env variable if set
Summary:
The environment variable ANDROID_ADB_SERVER_PORT can be defined to have
adbd litsen on a different port. Teach lldb how to understand this via
simply checking the env var.

Reviewers: xiaobai, clayborg

Subscribers: srhines

Differential Revision: https://reviews.llvm.org/D66689

llvm-svn: 370106
2019-08-27 20:00:02 +00:00
Jonas Devlieghere 2d247359cc [dotest] Remove results port
The results port was used by dosep.py to deal with test results coming
form different processes. With dosep.py gone, I don't think we need this
any longer.

Differential revision: https://reviews.llvm.org/D66811

llvm-svn: 370090
2019-08-27 18:18:46 +00:00
Tatyana Krasnukha 900f9ba217 [lldb] Fix x86 compilation
Differential Revision: https://reviews.llvm.org/D66655

Patch by Leonid Mashinskiy

llvm-svn: 370078
2019-08-27 17:22:03 +00:00
Raphael Isemann eb5a8afbdd [lldb][NFC] Add missing invalid_core_file to TestTargetCommand test
llvm-svn: 370057
2019-08-27 13:34:15 +00:00
Pavel Labath 4f91faa965 Stabilize TestIOHandlerCompletion
pexpect gives as raw data going to a terminal. This means that if the
completed line does not fit the emulated line, the returned data will
contain line breaks. On my machine these line breaks happened to be
inside the "iohandler/completion" string that the test was searching
for.

Work around this by telling pexpect to emulate a very wide terminal.

llvm-svn: 370054
2019-08-27 13:09:40 +00:00
Raphael Isemann 2bdbb6a046 [lldb][NFC] Add some tests for the target subcommands
llvm-svn: 370050
2019-08-27 11:57:26 +00:00
Raphael Isemann 73f01068a7 [lldb][NFC] Give added test method a unique name
Otherwise dotest doesn't run the test and just lets it always pass.
Also update the comment to explain that we do directory and not
file completion.

llvm-svn: 370047
2019-08-27 11:43:54 +00:00
Gabor Marton f035b75d8f [ASTImporter] Fix name conflict handling with different strategies
There are numorous flaws about the name conflict handling, this patch
attempts fixes them. Changes in details:

* HandleNameConflict return with a false DeclarationName

Hitherto we effectively never returned with a NameConflict error, even
if the preceding StructuralMatch indicated a conflict.
Because we just simply returned with the parameter `Name` in
HandleNameConflict and that name is almost always `true` when converted to
`bool`.

* Add tests which indicate wrong NameConflict handling

* Add to ConflictingDecls only if decl kind is different

Note, we might not indicate an ODR error when there is an existing record decl
and a enum is imported with same name.  But there are other cases. E.g. think
about the case when we import a FunctionTemplateDecl with name f and we found a
simple FunctionDecl with name f. They overload.  Or in case of a
ClassTemplateDecl and CXXRecordDecl, the CXXRecordDecl could be the 'templated'
class, so it would be false to report error.  So I think we should report a
name conflict error only when we are 100% sure of that.  That is why I think it
should be a general pattern to report the error only if the kind is the same.

* Fix failing ctu test with EnumConstandDecl

In ctu-main.c we have the enum class 'A' which brings in the enum
constant 'x' with value 0 into the global namespace.
In ctu-other.c we had the enum class 'B' which brought in the same name
('x') as an enum constant but with a different enum value (42). This is clearly
an ODR violation in the global namespace. The solution was to rename the
second enum constant.

 * Introduce ODR handling strategies

Reviewers: a_sidorin, shafik

Differential Revision: https://reviews.llvm.org/D59692

llvm-svn: 370045
2019-08-27 11:36:10 +00:00
Raphael Isemann 5edee822d2 [lldb] Allow partial completions to fix directory completion.
On the command line we usually insert a space after a completion to indicate that
the completion was successful. After the completion API refactoring, this also
happens with directories which essentially breaks file path completion (as
adding a space terminates the path and starts a new arg). This patch restores the old
behavior by again allowing partial completions. Also extends the iohandler
and SB API tests as the implementation for this is different in Editline
and SB API.

llvm-svn: 370043
2019-08-27 11:32:22 +00:00
Pavel Labath e588b8b664 DWARFExpression: Simplify class interface
Summary:
The DWARFExpression methods have a lot of arguments. This removes two of
them by removing the ability to slice the expression via two offset+size
parameters. This is a functionality that it is not always needed, and
when it is, we already have a different handy way of slicing a data
extractor which we can use instead.

Reviewers: JDevlieghere, clayborg

Subscribers: aprantl, lldb-commits

Differential Revision: https://reviews.llvm.org/D66745

llvm-svn: 370027
2019-08-27 07:49:41 +00:00
Pavel Labath 3131aed59b Fix an unused variable warning in no-assert builds
llvm-svn: 370026
2019-08-27 07:46:07 +00:00
Pavel Labath 8a915f6b2e Fix TestStdCXXDisassembly.py
missing decorator import.

llvm-svn: 370020
2019-08-27 06:43:45 +00:00
Pavel Labath 365b30a3fa CommandObjectExpression: Fix a misleading-indentation warning
llvm-svn: 370019
2019-08-27 06:42:42 +00:00
Jonas Devlieghere 828a3a974f [test] Disable two of the recently (re)enabled tests on Windows.
This disables two tests on Windows that I re-enabled in r369995.

llvm-svn: 370003
2019-08-27 01:34:19 +00:00
Jonas Devlieghere ece176e0f6 [ConnectionFileDescriptor] Add shutdown check in ::Write.
The disconnect method sets the shutdown flag to true. This currently
only prevents any reads from happening, but not writes, which is
incorrect. Presumably this was just an oversight when adding
synchronization to the class. This adds the same shutdown check to the
Write method.

Over-the-shoulder reviewed by Jim!

llvm-svn: 370002
2019-08-27 01:34:16 +00:00
Jonas Devlieghere 27cb29a596 [dotest] Remove long running test "decorator" and re-enable tests.
Today I discovered the skipLongRunningTest decorator and to my surprise
all the tests were passing without the decorator. They don't seem to be
that expensive either, they take a few seconds but we have tests that
take much longer than that. As such I propose to remove the decorator
and enable them by default.

Differential revision: https://reviews.llvm.org/D66774

llvm-svn: 369995
2019-08-27 00:18:22 +00:00
Jason Molenda fe64323fd5 Send error message on failed attach from debugerserver.
Instead of using a magic return error code from debugserver to
indicate that an attach failed because of SIP being enabled in
RNBRemote::HandlePacket_v, use the extended error reporting that
Pavel added to lldb/lldb-server in https://reviews.llvm.org/D45573


<rdar://problem/39398385> 

llvm-svn: 369990
2019-08-27 00:08:27 +00:00