summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite
Commit message (Collapse)AuthorAgeFilesLines
* Avoid dirtying the source tree in breakpoint command testsPavel Labath2018-02-204-92/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The paralelization patch exposed a bunch of cases where we were still touching the source tree (as these tests were now stepping on each others toes and being flaky). This patch removes such issues from breakpoint command tests. Since the only reason they were creating files was to indirectly test whether the breakpoint commands got executed (and plumbing the full build tree path to all places that needed it would be messy) I decided to modify the tests to check for a different side effect instead: modification of a global variable. This also makes the code simpler as checking the value of the global variable is easier, and there is nothing to clean up. As the tests aren't really doing anything debug-info related, I took the opportunity to also mark them as NO_DEBUG_INFO_TESTCASEs. Reviewers: jingham, aprantl Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D43464 llvm-svn: 325570
* Two more dosep-paralellization fallout fixesPavel Labath2018-02-191-32/+14
| | | | | | | | | | | | | | | | The first issue is about the flaky test rerun logic. This was grouping tests by subdir and passing them into walk_and_invoke in the incorrect form. This part can be just deleted as its not needed anymore. The second problem (which I noticed while investigating the first one) was that the "-p" switch was not working in multiprocessing mode. This happened because we were returning None from process_file instead of a tuple full of empty values for tests that did not match the -p regex. Both of these would be caught earlier if python was a more strongly typed language. :/ llvm-svn: 325519
* Add SBDebugger::GetBuildConfiguration and use it to skip an XML testPavel Labath2018-02-192-1/+9
| | | | | | | | | | | | | | | | | | | | | Summary: This adds a SBDebugger::GetBuildConfiguration static function, which returns a SBStructuredData describing the the build parameters of liblldb. Right now, it just contains one entry: whether we were built with XML support. I use the new functionality to skip a test which requires XML support, but concievably the new function could be useful to other liblldb clients as well (making sure the library supports the feature they are about to use). Reviewers: zturner, jingham, clayborg, davide Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D43333 llvm-svn: 325504
* Make gdb-client tests generate binaries in the build treePavel Labath2018-02-191-7/+1
| | | | | | | | | | | These were missed in the great refactor because they were added concurrently with it. Since we started running tests in a more parallel fashion they started to be flaky. This should fix it. Now that we are no longer polluting the source tree, I also delete the bit of custom cleanup code specific to these tests. llvm-svn: 325495
* Shorten socket names in TestPlatformProcessConnectPavel Labath2018-02-161-3/+3
| | | | | | | | | | | The test was generating long unix socket names, and the addition of a new folder in the previous patch pushed it over the limit (although linux has a fairly generous limit for path names, this does not apply to unix sockets). Modify the test to use a shorter name instead. llvm-svn: 325340
* Re-enable lang/objc/modules/TestObjCModulesJonas Devlieghere2018-02-161-4/+0
| | | | | | | | The reason this test was disabled is no longer relevant. However, it didn't turn into an unexpected success because of a syntax error in the test itself. This commit fixes that and re-enables the test. llvm-svn: 325339
* Fix paralelization of remote testsPavel Labath2018-02-161-1/+1
| | | | | | | | | | Since we now can run multiple tests from the same directory at once, we need to include the test name in the remote test directory instead. I'm not sure if the test_number in the remote path is necessary anymore (or even if it was ever necessary), but I choose to leave it in for now. llvm-svn: 325334
* [dosep] Run tests in a more parallel fashionPavel Labath2018-02-162-61/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Due to in-tree builds, we were parallelizing the tests at the directory level. Now that the tests are built out-of-tree, we can remove this limitation and paralelize at file level instead. This decreases test suite time by about 10% for me, which is not world-shattering, but it makes the code slightly simpler and will also allow us to merge tests which were artificially spread over multiple folders (TestConcurrentEvents...) to work-around this limitation. To make this work, I've also needed to include the test file name in the build directory name, as just the test method name is not unique enough (plenty of tests have a test method called "test" or similar). While doing this, I've found a couple of tests that are taking waaay longer then they ought to (TestBreakpointCaseSensitivity -- 90 seconds), which I plan to look into in the future. Reviewers: aprantl Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D43335 llvm-svn: 325322
* @skipIfRemote TestTargetXMLArchPavel Labath2018-02-151-0/+1
| | | | | | The test does not actually connect to any remote targets. llvm-svn: 325250
* Remove vestigial remnants of the test crash info hookPavel Labath2018-02-142-8/+0
| | | | llvm-svn: 325137
* [testsuite] Reintroduce test to check leaking.Davide Italiano2018-02-123-0/+141
| | | | | | | It wasn't python leaking, it was lldb. Thanks to Pavel for the explanation. Pointy-hat to me. llvm-svn: 324919
* Skip TestTargetXMLArch on non-darwin OSsPavel Labath2018-02-121-0/+1
| | | | | | | | | | | | | This test uses XML packets, but libxml is an optional dependency of lldb, and this test fails if it is not present. I'm leaving this enabled on mac, as thats the only platform that's likely to have libxml always available, but ideally we should have a way to skip this based on build configuration. I'll see if I can whip something like that up soon, but for the time being, this unblocks the buildbots. llvm-svn: 324870
* Looks like this fails when built i386 on linux bots, possible targetJason Molenda2018-02-101-0/+1
| | | | | | | | | arch incompat with spec in file so it's rejected and the test fails. will look into this later, will be a test case issue not a test issue; test case may only be valid when lldb is built for/running on an x86_64 system. llvm-svn: 324795
* Add test case for x86_64 architecture recognition in theJason Molenda2018-02-102-1/+122
| | | | | | target.xml packet if it is included. llvm-svn: 324792
* Make LLDB's clang module cache path customizableAdrian Prantl2018-02-092-6/+13
| | | | | | | | | | | This patch makes LLDB's clang module cache path customizable via settings set target.clang-modules-cache-path <path> and uses it in the LLDB testsuite to reuse the same location inside the build directory for LLDB and clang. Differential Revision: https://reviews.llvm.org/D43099 llvm-svn: 324775
* [lldb-mi] This test now passes consistently, unXFAIL it.Davide Italiano2018-02-091-1/+0
| | | | llvm-svn: 324768
* [Testsuite] Remove leak tests, it's not useful anymore.Davide Italiano2018-02-093-141/+0
| | | | | | | | | This only worked on MacOS, which now ships a newer version of python without this bug. As such, we don't leak the fd, and this test is not needed anymore (as it also hardcoded the python version in the check). llvm-svn: 324743
* Only throw -fPIC when building a shared libraryAaron Smith2018-02-0819-36/+15
| | | | | | | | | | | | | | | | | | Summary: Update makefiles to specify -fPIC in Makefile.rules and only throw -fPIC when building a shared library. This change is necessary to allow building the lldb tests on Windows where -fPIC is not a valid option. Update a few places to Python 3.x syntax Reviewers: zturner, lldb-commits Reviewed By: zturner Subscribers: stella.stamenova, labath, llvm-commits Differential Revision: https://reviews.llvm.org/D42994 llvm-svn: 324671
* Rewrite testcase to not depend on Foundation implementation details.Adrian Prantl2018-02-087-31/+22
| | | | | | | | TODO: Add a separate testcase testing *only* Foundation implementation details! <rdar://problem/37252738> llvm-svn: 324655
* Rewrite the flaky test_restart_bug test in a more deterministic wayPavel Labath2018-02-083-88/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The test was trying to reproduce a bug in handling of two concurrent events, which was impossible to do reliably in a black-box style test. In practice, this meant the test was only ever failing on remote targets, as these were slow enough to trigger this. Fortunately, we now have the ability to mock the server side of the connection, which means we can simulate the failure deterministically, so I rewrite the test to use the new gdb-client framework. I've needed to add a couple of new packets to the mock server to be able to do this. Instead of trying to guess how a "typical" gdb-client test will want to handle this, I throw an exception in the implementation to force the user to override them (the packets are only sent if the test explicitly performs some action which will trigger them, so a basic test which e.g. does not need the "continue" functionality will not need to implement them). Reviewers: owenpshaw Subscribers: srhines, lldb-commits Differential Revision: https://reviews.llvm.org/D42959 llvm-svn: 324590
* Deactivate TestTargetSymbolsBuildidCase if host is windowsEugene Zemtsov2018-02-082-1/+2
| | | | | | Makefile has unix magic and thus not working on windows. llvm-svn: 324558
* [test] Don't drop existing categories for methods.Jonas Devlieghere2018-02-071-7/+10
| | | | | | | | | The change in r324488 dropped the existing category attribute in for instance methods. This patch corrects that. Differential revision: https://reviews.llvm.org/D43024 llvm-svn: 324492
* [test] Enable setting category for inline tests.Jonas Devlieghere2018-02-071-2/+7
| | | | | | | | | Inlined tests have a test function that is actually an instance method, which requires a slightly different approach when it comes to setting the category attribute. The attribute must be set on the actual function, rather than on a particular instance. llvm-svn: 324488
* Remove obsolete fileAdrian Prantl2018-02-062-208/+0
| | | | llvm-svn: 324400
* Build each testcase variant in its own subdirectory and remove the srcdir ↵Adrian Prantl2018-02-0613-148/+131
| | | | | | | | | | | | | | lock file This patch creates a <test>.dwarf, <test>.dwo, etc., build directory for each testcase variant. Most importantly, this eliminates the need for the per-test lock file in the source directory. Tests that are marked as NO_DEBUG_INFO_TESTCASE and build with buildDefault() are built in a <test>.default build directory. Differential Revision: https://reviews.llvm.org/D42763 llvm-svn: 324368
* [testsuite] Skip a flakey test.Davide Italiano2018-02-051-0/+1
| | | | llvm-svn: 324293
* Disable test_restart_bug failing on AndroidEugene Zemtsov2018-02-051-0/+1
| | | | llvm-svn: 324288
* [lang/Objc] UNXFAIL a test. Nullability has been implemented in clang.Davide Italiano2018-02-051-1/+0
| | | | | | | | (a while ago). <rdar://problem/20416388> llvm-svn: 324280
* Skip TestTargetSymbolsSepDebugSymlink on remote targetsPavel Labath2018-02-051-0/+1
| | | | | | | Currently, our behavior when installing symlinks on the remote target is broken (pr36237). llvm-svn: 324236
* TestLinuxCore -- add a check for thread namePavel Labath2018-02-051-10/+19
| | | | | | | We've had a bug (fixed by https://reviews.llvm.org/D42828) where the thread name was being read incorrectly. Add a test for this behavior. llvm-svn: 324230
* [test] Un-XFAIL TestRaise.RaiseTestCase.test_restart_bugJonas Devlieghere2018-02-051-4/+0
| | | | | | | | This test was marked as an expected failure because of PR20231 but it seems to consistently result in an unexpected success across the bots. Let's try to re-enable this test again. llvm-svn: 324227
* [dotest] make debug info variant accessible in setUp()Pavel Labath2018-02-055-41/+29
| | | | | | | | | | | | | | | | | | | | | | | Summary: This changes the way we store the debug info variant to make it available earlier in the test bringup: instead of it being set by the test wrapper method, it is set as a *property* of the wrapper method. This way, we can inspect it as soon as self.testMethodName is initialized. The retrieval is implemented by a new function TestBase.getDebugInfo(), and all that's necessary to make it work is to change self.debug_info into self.getDebugInfo(). While searching for debug_info occurences i noticed that TestLogging is being replicated for no good reason, so I removed the replication there. Reviewers: aprantl, jingham Subscribers: eraman, JDevlieghere, lldb-commits Differential Revision: https://reviews.llvm.org/D42836 llvm-svn: 324226
* Resolve binary symlinks before finding its separate .debug fileJan Kratochvil2018-02-053-0/+45
| | | | | | | | | | | | | | | | | | | | | | I have found LLDB cannot find separate debug info of Fedora /usr/bin/gdb. It is because: lrwxrwxrwx 1 root root 14 Jan 25 20:41 /usr/bin/gdb -> ../libexec/gdb* -rwxr-xr-x 1 root root 10180296 Jan 25 20:41 /usr/libexec/gdb* ls: cannot access '/usr/lib/debug/usr/bin/gdb-8.0.1-35.fc27.x86_64.debug': No such file or directory -r--r--r-- 1 root root 29200464 Jan 25 20:41 /usr/lib/debug/usr/libexec/gdb-8.0.1-35.fc27.x86_64.debug FYI that -8.0.1-35.fc27.x86_64.debug may look confusing, it was always just .debug before. Why is /usr/bin/gdb a symlink is offtopic for this bugreport, Fedora has it so for some reasons. It is always safest to look at the .debug file only after resolving all symlinks on the binary file. Differential revision: https://reviews.llvm.org/D42853 llvm-svn: 324224
* Fix upper->lower case for /usr/lib/debug/.build-id/**.debugJan Kratochvil2018-02-053-0/+44
| | | | | | | | | | | | | I have found the lookup by build-id (when lookup by /usr/lib/debug/path/name/exec.debug failed) does not work as LLDB tries the build-id hex string in uppercase but Fedora uses lowercase. xubuntu-16.10 also uses lowercase during my test: /usr/lib/debug/.build-id/6c/61f3566329f43d03f812ae7057e9e7391b5ff6.debug Differential revision: https://reviews.llvm.org/D42852 llvm-svn: 324222
* Add the ability to restrict the breakpoint to a moduleJim Ingham2018-02-021-4/+13
| | | | | | for run_to_{source,name}_breakpoint. llvm-svn: 324119
* Use an alternative approach to prevent Spotlight from indexing the build ↵Adrian Prantl2018-02-022-9/+1
| | | | | | directory. llvm-svn: 324115
* Create a marker for Spotlight to never index $BUILD_DIR.Adrian Prantl2018-02-011-2/+11
| | | | | | | | | | LLDB queries Spotlight to locate .dSYM bundles based on the UUID embedded in a binary, and because the UUID is a hash of filename and .text section, there *will* be conflicts inside $BUILD_DIR. This should fix the broken green dragon bots. llvm-svn: 324019
* Added lldbutil.run_to_name_breakpoint and use it in one test.Jim Ingham2018-02-012-52/+58
| | | | | | | | Using the "run_to_{source,name}_breakpoint will allow us to remove a lot of boiler-plate from the testsuite. We mostly use source breakpoints, but some tests use by name ones so this was needed. llvm-svn: 324010
* Extend windows->android XFAIL on TestLoadUnloadPavel Labath2018-02-011-2/+0
| | | | | | | This fails regardless of the android architecture or compiler used. The important bit is the mismatch in path separators. llvm-svn: 323974
* mock_gdb_server: rectify ack handling codePavel Labath2018-02-011-11/+3
| | | | | | | | | | | | | | | | | The mock server was sending acks back in response to spurious acks from the client, but the client was not prepared to handle these. Most of the time this would work because the only time the client was sending unsolicited acks is after the initial connection, and there reply-ack would get ignored in the "flush all packets from the server" loop which came after the ack. However, this loop had only a 10ms delay, and sometimes this was not enough to catch the reply (which meant the connection got out of sync, and test failed). Since this behavior not consistent with how lldb-server handles this situation (it just ignores the ack), I fix the mock server to do the same. llvm-svn: 323953
* replace os.mkdirs with lldbutil.mkdir_p (NFC)Adrian Prantl2018-01-312-4/+2
| | | | llvm-svn: 323917
* Fix TestMixedDwarfBinary.pyPavel Labath2018-01-311-1/+1
| | | | | | | As of yesterday, tests need to use self.getBuildArtifact() to get the built executable. llvm-svn: 323884
* [lldb] Enable debugging of binaries with mixed (splitted/regular) dwarfDavide Italiano2018-01-314-0/+70
| | | | | | | This recommits the patch, now that I verified that the bot instability is due to something else. Sorry for the noise. llvm-svn: 323879
* Fix TestTargetSymbolsAddCommand makefilePavel Labath2018-01-311-4/+5
| | | | | | | | | We started passing the "all" target to make, which rendered the "localall" trick in this Makefile inoperable. I implement the strip step differently, and also reformat the Makefile. llvm-svn: 323855
* Revert "[lldb] Enable debugging of binaries with mixed (splitted/regular) dwarf"Davide Italiano2018-01-314-70/+0
| | | | | | It might have caused some instability on the bots. llvm-svn: 323845
* [lldb] Enable debugging of binaries with mixed (splitted/regular) dwarfAlexander Shaposhnikov2018-01-304-0/+70
| | | | | | | | | | | | | | Initialize the default value of SymbolFileDWARF uuid with the appropriately shifted DW_INVALID_OFFSET constant. This change fixes the collision in the computation of DIE uid (inside DIERef::GetUID) and incorrect CompileUnit lookup (because of the misleading cu_offset value). Test plan: make check-lldb Differential revision: https://reviews.llvm.org/D42563 llvm-svn: 323832
* Enforce that NO_DEBUG_INFO_TESTCASEs build using buildDefault().Adrian Prantl2018-01-304-6/+18
| | | | | | This is a prerequisite for building each test variant in its own subdirectory. llvm-svn: 323830
* XUnit Formatter: Handle UTF-8 decode errors on invalid XMLVedant Kumar2018-01-301-1/+3
| | | | | | | | | Strings which contain garbage data can trigger an exception in the XUnit plugin at the UTF-8 decode step because the decode is strict. Use a lax mode to avoid an exception. See: https://ci.swift.org/job/oss-lldb-incremental-osx/780 llvm-svn: 323817
* PR25934: Skip EventAPITestCase. It still SEGV's on Darwin.Vedant Kumar2018-01-301-0/+1
| | | | | | | | See: https://ci.swift.org/job/swift-lldb-PR-osx/39 llvm.org/PR25934 llvm-svn: 323809
* Add more diagnostics to help diagnose flaky testAdrian Prantl2018-01-302-5/+7
| | | | llvm-svn: 323808
OpenPOWER on IntegriCloud