summaryrefslogtreecommitdiffstats
path: root/lldb/test
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix ResourceWarning about unclosed file in use_lldb_suite_root.py.Zachary Turner2016-01-151-3/+6
| | | | llvm-svn: 257945
* Add a symbolic link from the test directory to the actual - elsewhere ↵Enrico Granata2015-12-161-0/+1
| | | | | | | | | | located - path that contains the test cases - and teach the test suite driver to resolve paths that contain symbolic links to test cases This is meant to reduce the typing that one needs to do to get from the test subdirectory to actual test cases. Now one can just do $ ./dotest.py ./testcases/<yaddayaddayadda> llvm-svn: 255741
* Remove `lldb.root` and just look for the file we care about.Zachary Turner2015-11-201-1/+1
| | | | llvm-svn: 253679
* Move go expression tests to the new location.Ryan Brown2015-11-022-134/+0
| | | | llvm-svn: 251835
* Create an expression parser for Go.Ryan Brown2015-11-022-0/+134
| | | | | | | | | | | The Go interpreter doesn't JIT or use LLVM, so this also moves all the JIT related code from UserExpression to a new class LLVMUserExpression. Differential Revision: http://reviews.llvm.org/D13073 Fix merge llvm-svn: 251820
* Add check for __main__ in dotest.py to ensure problems with multiprocessing ↵Adrian McCarthy2015-10-281-3/+4
| | | | | | on some Windows machines. llvm-svn: 251549
* Try to fix the linux buildbot.Zachary Turner2015-10-281-0/+2
| | | | | | | | It's complaining that it doesn't under the "import" command, so I guess I need this hashbang at the beginning so that it knows it's a Python script. llvm-svn: 251544
* Move lldb/test to lldb/packages/Python/lldbsuite/test.Zachary Turner2015-10-281489-99952/+2
| | | | | | | | | | | This is the conclusion of an effort to get LLDB's Python code structured into a bona-fide Python package. This has a number of benefits, but most notably the ability to more easily share Python code between different but related pieces of LLDB's Python infrastructure (for example, `scripts` can now share code with `test`). llvm-svn: 251532
* Changes for Bug 17384Ravitheja Addepally2015-10-282-6/+9
| | | | | | | | | | | | | | | | | | | | | | | Summary: Virtual dynamic shared objects, or vdso files were not loaded for Linux OS.In Bug 17384 the call stack could not be unwinded from functions residing in the vdso object. This commit adds support for loading such files by reading the Aux vectors since a vdso is invisibily mapped to the inferiors address space and the actual file is not present in the filesystem. The presence of the vdso is detected by inspecting the Aux vector for AT_SYSINFO_EHDR tag. Reviewers: lldb-commits, ovyalov, tberghammer Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D14118 llvm-svn: 251505
* Preparation for turning lldbsuite into a Python package.Zachary Turner2015-10-274-157/+64
| | | | | | | | | | | The idea behind this patch is to expose the meat of LLDB's Python infrastructure (test suite, scripts, etc) as a single package. This makes reusability and code sharing among sub-packages easy. Differential Revision: http://reviews.llvm.org/D14131 llvm-svn: 251460
* Rename `lldb_shared` to `use_lldb_suite`.Zachary Turner2015-10-27393-394/+394
| | | | llvm-svn: 251444
* Deprecate -m/+m dotest options in favor of test categoriesPavel Labath2015-10-2723-171/+29
| | | | | | | | | | | | | | | | | | | Summary: This change deprecates -m/+m dotest options (the options are still recognized but they print an error message pointing to the new options) and adds a new lldb-mi test category instead. To just run lldb-mi tests, use '-G lldb-mi'. To skip lldb-mi tests, use '--skip-category lldb-mi'. All lldb-mi tests are marked as such using the getCategories method on the base MiTestCaseBase class and the @lldbmi_test decorator is not needed. In case one still needs to annotate a specific test function as an lldb-mi test, one can use the @add_test_categories(['lldb-mi']) decorator to achieve that. Reviewers: tfiala, dawn, ki.stfu, abidh Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D14060 llvm-svn: 251400
* Fix race condition in process resumePavel Labath2015-10-271-1/+0
| | | | | | | | | | | | | | | | | | Summary: Gdb-remote's async thread sent out the eBroadcastBitRunPacketSent message *before* actually sending out the continue packet. Since it's this message the actually triggers the public state transition, it could happen (and it did happen in TestAttachResume, which does an "process interrupt" right after a continue) that we attempt to stop the inferior before it was actually started (which obviously did not end well). This fixes the problem by moving the broadcast after the packet was actually sent. Reviewers: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D14083 llvm-svn: 251399
* Change TestTypeCompletion to not rely on std::stringEnrico Granata2015-10-262-22/+43
| | | | | | On some combination of platform and c++ library, this dependency was causing the test to fail for reasons tangential to its real objective llvm-svn: 251368
* Python 3: Convert uses of `callable(x)` to `six.callable(x)`.Zachary Turner2015-10-264-9/+13
| | | | llvm-svn: 251329
* Remove use of octal literals.Zachary Turner2015-10-266-14/+14
| | | | | | | | | | | Python 3 has a different syntax for octal literals than Python 2 and they are incompatible with each other. Six doesn't provide a transparent wrapper around this, so the most sane thing to do is to not use octal literals. If you need an octal literal, use a decimal literal and if it's not obvious what the value is, provide the value in octal as a comment. llvm-svn: 251328
* Fixed the test suite on MacOSX so that ↵Greg Clayton2015-10-265-30/+18
| | | | | | | | | | "test/api/multithreaded/TestMultithreaded.py" works without errors. The problem was that the @skipIfNoSBHeaders on darwin was trying to use self.lib_dir when it hadn't been set yet. I looked at the code and places were required to set "self.lib_dir" for no real reason as all places that used it just used the LLDB_LIB_DIR environment variable. So I removed all uses of self.lib_dir and replaced them to use 'os.environ["LLDB_LIB_DIR"]'. Did the same for self.implib_dir. llvm-svn: 251315
* Wrap call to zip() in list()Zachary Turner2015-10-261-1/+1
| | | | llvm-svn: 251307
* Python3 - Change sys.maxint to sys.maxsize.Zachary Turner2015-10-264-7/+7
| | | | | | | | | Python3 has no analogue to sys.maxint since ints in Python 3 have arbitrary size. However, the distinction was not actually important in any of these cases, and in a few cases using maxint was already a bug to begin with. llvm-svn: 251306
* Convert `long` to `int`, and portably detect all integral types.Zachary Turner2015-10-265-9/+13
| | | | llvm-svn: 251305
* Python3 - Change `dict.has_key(x)` to `x in dict`Zachary Turner2015-10-262-2/+2
| | | | llvm-svn: 251304
* Convert deprecated unittest method names.Zachary Turner2015-10-2619-55/+55
| | | | | | | Plural methods were long deprecated, and in Python 3 they are gone. Convert to the actual supported method names. llvm-svn: 251303
* Fix usages of range() and xrange() for Python 3.Zachary Turner2015-10-268-16/+16
| | | | llvm-svn: 251302
* Port the python api decorator to use test categoriesPavel Labath2015-10-2696-262/+235
| | | | | | | | | | | | | | | | | | Summary: Per discussions on the mailing list, I have implemented a decorator which annotates individual test methods with categories. I have used this framework to replace the '-a' and '+a' command-line switches (now '-G pyapi' and '--skip-category pyapi') and the @python_api_test decorator (now @add_test_categories('pyapi')). The test suite now gives an error message suggesting the new options if the user specifies the deprecated +/-a switches. If the general direction is good, I will follow this up with other switches. Reviewers: tberghammer, tfiala, granata.enrico, zturner Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D14020 llvm-svn: 251277
* [lldb-mi] Fix expansion of anonymous structures and unionsDawn Perchik2015-10-242-0/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A variable of type: struct S { union { int i1; unsigned u1; }; union { int i2; unsigned u2; }; }; had been impossible to evaluate in lldb-mi, because MI assigns '??' as the variable name to each of the unnamed unions after "-var-list-children" command. Also '??' incorrectly goes to 'exp' field which is treated by IDE as a structure field name and is displayed in watch window. The patch fixes this returning empty string as type name for unnamed union and assigning $N to variable name, where N is the field number in the parent entity. Patch from evgeny.leviant@gmail.com Reviewed by: clayborg, abidh Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D13947 llvm-svn: 251176
* Lower the depth of the recursion in this test since it would on occasion ↵Enrico Granata2015-10-241-1/+1
| | | | | | timeout and add noise to test runs llvm-svn: 251161
* [TestBreakpointCommand] Fix after r251121Siva Chandra2015-10-231-3/+3
| | | | | | | | | | | | | | | Summary: "from __future__ import print_function" was added to the test file but not to the embedded interpreter. This change uses file.write instead to avoid all problems with print. Reviewers: zturner Subscribers: zturner, lldb-commits Differential Revision: http://reviews.llvm.org/D14029 llvm-svn: 251150
* Make uses of unicode literals portable.Zachary Turner2015-10-234-17/+27
| | | | | | | | | Six provides six.u() which resolves to either u"" or "" depending on Python version, and and six.unichr() which resolves to either unichr() or chr() depending on Python version. Use these functions anywhere where we were relying on u"" or unichr(). llvm-svn: 251139
* Python3 - Wrap more statements in calls to list()Zachary Turner2015-10-2311-21/+21
| | | | llvm-svn: 251129
* Remove argparse_compat.Zachary Turner2015-10-232-95/+7
| | | | | | We don't support versions of Python less than 2.7 llvm-svn: 251128
* Add from __future__ import print_function everywhere.Zachary Turner2015-10-23404-470/+1269
| | | | | | | | | | | | | Apparently there were tons of instances I missed last time, I guess I accidentally ran 2to3 non-recursively. This should be every occurrence of a print statement fixed to use a print function as well as from __future__ import print_function being added to every file. After this patch print statements will stop working everywhere in the test suite, and the print function should be used instead. llvm-svn: 251121
* Enable the libc++ tests on linuxPavel Labath2015-10-239-18/+18
| | | | | | | | | | | | | | | Summary: The list of loaded modules which skip_if_library_missing is depending on is not available on linux until after we run the target. This causes the tests to be wrongfully skipped. This commit moves the skip call after the run command. Reviewers: granata.enrico, tfiala Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D13985 llvm-svn: 251102
* [lldb-mi] display summary for simple types + refactor (use lldb formatting ↵Dawn Perchik2015-10-232-8/+8
| | | | | | | | | | | | | | | for all cases) Previously, lldb did not use type summaries for simple types with no children (like function pointers). This patch enables MI to use lldb type summaries for evaluation of all types of objects, so MI own formatters are no longer needed. Patch from evgeny.leviant@gmail.com Reviewed by: abidh Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D13799 llvm-svn: 251082
* Python 3 porting - Wrap returns from map() in list()Zachary Turner2015-10-224-11/+11
| | | | | | | | Under Python 2 this has no effect, since map() returns a list. In Python 3 map() returns an iterable, so wrapping in a list is necessary to keep the same semantics. llvm-svn: 251060
* Update every test to import `lldb_shared`.Zachary Turner2015-10-22396-2790/+774
| | | | | | | | | | | | | | | | | | | | | This is necessary in order to allow third party modules to be located under lldb/third_party rather than under the test folder directly. Since we're already touching every test file anyway, we also go ahead and delete the unittest2 import and main block wherever possible. The ability to run a test as a standalone file has already been broken for some time, and if we decide we want this back, we should use unittest instead of unittest2. A few places could not have the import of unittest2 removed,because they depend on the unittest2.expectedFailure or skip decorators. Removing all those was orthogonal in spirit to the purpose of this CL, so the import of unittest2 remains in those files that were using it for its test decorators. Those can be addressed separately. llvm-svn: 251055
* Remove special case logic for finding 3rd party libsZachary Turner2015-10-221-5/+0
| | | | llvm-svn: 251047
* Move third party libraries to lldb/third_partyZachary Turner2015-10-2268-17936/+0
| | | | llvm-svn: 251046
* Fix libstdc++ data formatters on Ubuntu 15.10 x86_64Todd Fiala2015-10-223-15/+17
| | | | | | See http://reviews.llvm.org/D13964 for details. llvm-svn: 250965
* Fix typo so that "./dotest.py --results-formatter=curses_results.Curses ↵Greg Clayton2015-10-211-1/+1
| | | | | | --results-file=/dev/stdout" works again. llvm-svn: 250952
* [SBValue] Add a method GetNumChildren(uint32_t max)Siva Chandra2015-10-213-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Along with this, support for an optional argument to the "num_children" method of a Python synthetic child provider has also been added. These have been added with the following use case in mind: Synthetic child providers currently have a method "has_children" and "num_children". While the former is good enough to know if there are children, it does not give any insight into how many children there are. Though the latter serves this purpose, calculating the number for children of a data structure could be an O(N) operation if the data structure has N children. The new method added in this change provide a middle ground. One can call GetNumChildren(K) to know if a child exists at an index K which can be as large as the callers tolerance can be. If the caller wants to know about children beyond K, it can make an other call with 2K. If the synthetic child provider maintains state about it counting till K previosly, then the next call is only an O(K) operation. Infact, all calls made progressively with steps of K will be O(K) operations. Reviewers: vharron, clayborg, granata.enrico Subscribers: labath, lldb-commits Differential Revision: http://reviews.llvm.org/D13778 llvm-svn: 250930
* Use six to portably handle module renames in Python 2 and 3Zachary Turner2015-10-2116-46/+68
| | | | llvm-svn: 250915
* Skip TestMultithreaded on Windows.Adrian McCarthy2015-10-211-14/+11
| | | | | | Differential Revision: http://reviews.llvm.org/D13923 llvm-svn: 250899
* Clean up more .dwo files after the tests runPavel Labath2015-10-214-6/+3
| | | | llvm-svn: 250896
* [DataFormatters] Make libc++ list loop detection linearPavel Labath2015-10-213-0/+91
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: Loop detection code is being called before every element access. Although it tries to cache some of the data by remembering the loop-free initial segment, every time it needs to increase this segment, it will start from scratch. For the typical usage pattern, where one accesses the elements in order, the loop detection will need to be run after every access, resulting in quadratic behavior. This behavior is noticable even for the default 255 element limit. In this commit, I rewrite the algorithm to be truly incremental -- it maintains the state of its loop-detection runners between calls, and reuses them when it needs to check another segment. This way, each part of the list is scanned only once, resulting in linear behavior. Also note that I have changed the operator== of ListEntry to do the comparison based on the value() function (instead of relying on ValueObjectSP equality). In my experiments, I kept getting different ValueObjectSPs when going through the same element twice. Reviewers: granata.enrico Subscribers: lldb-commits, sivachandra Differential Revision: http://reviews.llvm.org/D13902 llvm-svn: 250890
* Use six to portably assign metaclasses in Python 2 and 3.Zachary Turner2015-10-202-6/+7
| | | | llvm-svn: 250859
* Introduce a mechanism for reusing Python modules out of tree.Zachary Turner2015-10-202-0/+26
| | | | | | | | | | | | | | | | | | Right now our Python code does not all share a common root. Tests and scripts both contain python code that cannot take advantage of reusability since they are unrelated siblings of each other. In particular, this presents a problem for wanting to use third party packages from both sides, since it does not make sense to copy the module into both places. This patch solves this by introducing a script lldb_shared.py which is a very lightweight script that just searches up the tree until it finds a root, and then imports a module from there. That module knows how to find all of the shared code that LLDB uses, and adjusts sys.path accordingly to make them all visible. llvm-svn: 250858
* Increase default memory cache line size for androidPavel Labath2015-10-203-0/+58
| | | | | | | | | | | | | | | | Summary: ADB packets have a maximum size of 4k. This means the size of memory reads does not affect speed too much (as long as it fits in one packet). Therefore, I am increasing the default memory read size for android to 2k. This value is used only if the user has not modified the default memory-cache-line-size setting. Reviewers: clayborg, tberghammer Subscribers: tberghammer, danalbert, srhines, lldb-commits Differential Revision: http://reviews.llvm.org/D13812 llvm-svn: 250814
* Adjust TestCompletion.py and TestDumpDynamic.py after recent changes.Siva Chandra2015-10-202-2/+2
| | | | | | | | | | Reviewers: zturner, spyffe Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D13882 llvm-svn: 250782
* Convert print statements to print function calls.Zachary Turner2015-10-1911-168/+191
| | | | | | | | | This patch was generating by running `2to3` on the files in the lldb/test directory. This patch should be NFC, but it does introduce the `from __future__ import print_function` line, which will break future uses of the print statement. llvm-svn: 250763
* Add a flakey category for flakey testsEnrico Granata2015-10-191-1/+2
| | | | llvm-svn: 250750
OpenPOWER on IntegriCloud