summaryrefslogtreecommitdiffstats
path: root/lldb/test/functionalities/data-formatter
Commit message (Collapse)AuthorAgeFilesLines
...
* Extend synthetic children to produce synthetic values (as in, those that ↵Enrico Granata2014-10-085-0/+134
| | | | | | | | | | | | | | | | | GetValueAsUnsigned(), GetValueAsCString() would return) The way to do this is to write a synthetic child provider for your type, and have it vend the (optional) get_value function. If get_value is defined, and it returns a valid SBValue, that SBValue's value (as in lldb_private::Value) will be used as the synthetic ValueObject's Value The rationale for doing things this way is twofold: - there are many possible ways to define a "value" (SBData, a Python number, ...) but SBValue seems general enough as a thing that stores a "value", so we just trade values that way and that keeps our currency trivial - we could introduce a new level of layering (ValueObjectSyntheticValue), a new kind of formatter (synthetic value producer), but that would complicate the model (can I have a dynamic with no synthetic children but synthetic value? synthetic value with synthetic children but no dynamic?), and I really couldn't see much benefit to be reaped from this added complexity in the matrix On the other hand, just defining a synthetic child provider with a get_value but returning no actual children is easy enough that it's not a significant road-block to adoption of this feature Comes with a test case llvm-svn: 219330
* Change this test case so that it no longer fails in the face of Bug 21190. ↵Enrico Granata2014-10-071-6/+10
| | | | | | The failure and the bug are entirely unrelated, and it's trivial to write a repro case for that bug anyway, so no need to use this complicated test case llvm-svn: 219248
* These two tests were failing on the FreeBSD bot - one has to assume because ↵Enrico Granata2014-10-032-0/+2
| | | | | | FreeBSD comes with libc++. Skip them llvm-svn: 219032
* These tests all seem to pass on my machine, marking them as non-Xfail on ↵Enrico Granata2014-10-033-7/+0
| | | | | | Darwin, or clang where applicable. Non-Apple folks, if these fail for you, maybe we can put some more helpful markers on them llvm-svn: 219020
* Stop enabling the std::vector<bool> data formatter for libstdc++, and for ↵Enrico Granata2014-10-031-0/+2
| | | | | | that matter, also skip running the test on Darwin. libstdc++ is more relevant on non-Apple platforms llvm-svn: 218952
* Make this test case a little more resilient to class name changesEnrico Granata2014-10-021-1/+1
| | | | llvm-svn: 218896
* Enable libcxx map test on FreeBSD againEd Maste2014-09-211-1/+0
| | | | | | | | | | The test used to trigger an assertion failure "Cannot get layout of forward declarations!", but it no longer fails when built with Clang 3.4.1 (system compiler) or 3.5 from SVN on FreeBSD. llvm.org/pr17231 llvm-svn: 218196
* Add some tests to be skipped when run remotely and also fixed a test to be ↵Greg Clayton2014-09-182-0/+5
| | | | | | more reliable when it comes to stopping on a specific line. llvm-svn: 218079
* More categories could be added, and having an explicit list in this test ↵Enrico Granata2014-09-161-10/+1
| | | | | | case is a fairly bullet-proof recipe for disaster. Use the * enabling feature to workaround this. Fixes rdar://18358649 llvm-svn: 217927
* Modify call-function and rdar-12437442 tests to clean up all files produced ↵Todd Fiala2014-09-081-0/+4
| | | | | | during test run. llvm-svn: 217387
* There seems to be no sane reason for a test case to enable logging every ↵Enrico Granata2014-08-261-2/+0
| | | | | | time it runs.. probably leftover from when I was debugging it llvm-svn: 216502
* Add decorators for tests failing to build on the lab.llvm.org FreeBSD buildbotEd Maste2014-08-065-0/+5
| | | | | | llvm.org/pr20548 llvm-svn: 214960
* On FreeBSD skip test that produces bogus outputEd Maste2014-08-051-0/+1
| | | | | | | | | | The test produces lines that start with "<word>: " which confuses the buildbot log parser. Disable the test until either the test is fixed or the buildbot can deal with the undesired output. llvm.org/pr20545 llvm-svn: 214900
* Make the test runner understand Windows command shell execution.Zachary Turner2014-07-221-1/+1
| | | | | | | | | | | | | | | | Currently, the test runner makes the assumption that it will run commands through /bin/sh. This is obviously not true on Windows, so this patch abstracts this logic out somewhat. Instead of having the caller build the command string himself, the caller will now pass in argument list of the form [[a, b], [c, d], ...] which will get converted into a string of the form a b; c d or a b && c d, depending on the platform. Reviewed by: Todd Fiala Differential Revision: http://reviews.llvm.org/D4590 llvm-svn: 213669
* TestDataFormatterStdVector.test_with_dsym_and_run_command marked XFAIL on DarwinTodd Fiala2014-07-091-0/+1
| | | | | | See http://llvm.org/bugs/show_bug.cgi?id=20264 llvm-svn: 212646
* Disable TestDataFormatterStdMap.test_with_dsym_and_run_command on DarwinTodd Fiala2014-07-091-0/+1
| | | | | | See http://llvm.org/bugs/show_bug.cgi?id=20263 llvm-svn: 212645
* Mark failing tests in TestDataFormatterObjC on Darwin as XFAILTodd Fiala2014-07-091-0/+2
| | | | | | See http://llvm.org/bugs/show_bug.cgi?id=20260 for more details. llvm-svn: 212639
* __arm64__ and __aarch64__ #ifdef adjustmentsTodd Fiala2014-07-091-1/+1
| | | | | | | | Change by Paul Osmialowski See http://reviews.llvm.org/D4379 for details. llvm-svn: 212583
* Mark Radar9974002DataFormatterTestCase test XFAIL on Linux.Todd Fiala2014-07-071-0/+1
| | | | | | See http://llvm.org/bugs/show_bug.cgi?id=20232 for details. llvm-svn: 212489
* TestPtrRef2Typedef.py change - take 2.Todd Fiala2014-04-211-2/+6
| | | | | | | | | Our build is still getting this test to fail with the presence of const in '(Foo &const) y = 0x' and '(Foo &&const) z = 0x'. This change simply changes the match substrings to ignore the portion after the final '&' and before the closing ')'. This should cover the presence (or absence) of the const qualifier. llvm-svn: 206762
* Remove decorator for now-passing testEd Maste2014-04-211-1/+0
| | | | | | | | | I am not sure if this is due to an LLDB change, or the fact that FreeBSD now has Clang 3.4. llvm.org/pr19075 llvm-svn: 206757
* Revert "Fix TestPtrRef2Typedef with new const adornment on expected ref type."Ed Maste2014-04-211-2/+2
| | | | | | | | | | The additional "const" breaks the FreeBSD buildbot, and does not appear to be due to a LLVM or Clang change. Revert the change while investigating further. This reverts revision 206619. llvm-svn: 206751
* Fix TestPtrRef2Typedef with new const adornment on expected ref type.Todd Fiala2014-04-181-2/+2
| | | | llvm-svn: 206619
* <rdar://problem/12055586>Enrico Granata2014-04-103-0/+94
| | | | | | | | Enable data formatters to see-through pointers/references to typedefs For instance, if Foo is a typedef to Bar, and there is a formatter for any/all of Bar*, Bar&, Bar&&, then Foo*, Foo&, and Foo&& should pick these up if Foo-specific formatters don't exist llvm-svn: 205939
* lldb arm64 import.Jason Molenda2014-03-291-1/+1
| | | | | | | | | | | | | | | | These changes were written by Greg Clayton, Jim Ingham, Jason Molenda. It builds cleanly against TOT llvm with xcodebuild. I updated the cmake files by visual inspection but did not try a build. I haven't built these sources on any non-Mac platforms - I don't think this patch adds any code that requires darwin, but please let me know if I missed something. In debugserver, MachProcess.cpp and MachTask.cpp were renamed to MachProcess.mm and MachTask.mm as they picked up some new Objective-C code needed to launch processes when running on iOS. llvm-svn: 205113
* Add a test case for the previous commitEnrico Granata2014-03-253-0/+83
| | | | llvm-svn: 204763
* Make sure this test has a looser dependency on the exact class generated ↵Enrico Granata2014-03-251-1/+1
| | | | | | here.. it is going to be some sort of NS-provided String, but let's not bet on the details llvm-svn: 204761
* Adapt test to avoid short string types.Jim Ingham2014-03-201-9/+9
| | | | llvm-svn: 204295
* Remove unnecessary dependence on vecLib.Jim Ingham2014-03-192-2/+1
| | | | llvm-svn: 204281
* Add decorator for recent FreeBSD failureEd Maste2014-03-071-0/+1
| | | | | | llvm.org/pr19075 llvm-svn: 203245
* <rdar://problem/16006373>Enrico Granata2014-02-151-7/+7
| | | | | | | Revert the spirit of r199857 - a convincing case can be made that overriding a summary's format markers behind its back is not the right thing to do This commit reverts the behavior of the code to the previous model, and changes the test case to validate the opposite of what it was validating before llvm-svn: 201455
* Remove FreeBSD decorator for llvm.org/pr17499 (no longer fails)Ed Maste2014-02-112-2/+0
| | | | llvm-svn: 201168
* <rdar://problem/15776874>Enrico Granata2014-01-273-0/+82
| | | | | | | | ValueObjectPrinter could enter an infinite loop while trying to display an aptly formed ValueObject: a reference, with a child of some pointer type, such that the pointees chain ended up pointing back to some part of itself - a pointer to itself being the simplest such case Fixed here by only setting a pointer depth when needed, and ensuring that we won't overflow and wrap the pointer depth when it's zero. llvm-svn: 200247
* If a user specifies a format option to frame variable or expression, that ↵Enrico Granata2014-01-233-0/+99
| | | | | | | | format should prevail over whatever format(s) a summary specifies (see test case for an example) llvm-svn: 199857
* Add a new way to bind a format to a type: by enum typeEnrico Granata2013-12-283-0/+98
| | | | | | | | | | | The "type format add" command gets a new flag --type (-t). If you pass -t <sometype>, upon fetching the value for an object of your type, LLDB will display it as-if it was of enumeration type <sometype> This is useful in cases of non-contiguous enums where there are empty gaps of unspecified values, and as such one cannot type their variables as the enum type, but users would still like to see them as-if they were of the enum type (e.g. DWARF field types with their user-reserved ranges) The SB API has also been improved to handle both types of formats, and a test case is added llvm-svn: 198105
* Massive test suite cleanup to stop everyone from manually having to compute ↵Greg Clayton2013-12-1043-43/+43
| | | | | | | | | | "mydir" inside each test case. This has led to many test suite failures because of copy and paste where new test cases were based off of other test cases and the "mydir" variable wasn't updated. Now you can call your superclasses "compute_mydir()" function with "__file__" as the sole argument and the relative path will be computed for you. llvm-svn: 196985
* Fix test to compile and run on iOS.Greg Clayton2013-12-032-31/+53
| | | | llvm-svn: 196313
* <rdar://problem/15144376>Enrico Granata2013-10-291-1/+1
| | | | | | | | | | | | This commit reimplements the TypeImpl class (the class that backs SBType) in terms of a static,dynamic type pair This is useful for those cases when the dynamic type of an ObjC variable can only be obtained in terms of an "hollow" type with no ivars In that case, we could either go with the static type (+iVar information) or with the dynamic type (+inheritance chain) With the new TypeImpl implementation, we try to combine these two sources of information in order to extract as much information as possible This should improve the functionality of tools that are using the SBType API to do extensive dynamic type inspection llvm-svn: 193564
* <rdar://problem/15235492>Enrico Granata2013-10-151-1/+1
| | | | | | | | | Extend DummySyntheticProvider to actually use debug-info vended children as the source of information Make Python synthetic children either be valid, or fallback to the dummy, like their C++ counterparts This allows LLDB to actually stop bailing out upon encountering an invalid synthetic children provider front-end, and still displaying the non synthetized ivar info llvm-svn: 192741
* Mark tests failing on FreeBSD after r191996Ed Maste2013-10-072-0/+2
| | | | llvm-svn: 192134
* xfail for gcc tests due to pr17499 (regressions due to r191966).Ashok Thirumurthi2013-10-072-0/+2
| | | | llvm-svn: 192132
* <rdar://problem/12042982>Enrico Granata2013-10-049-35/+33
| | | | | | | | | | | | | | | | | | | This radar extends the notion of one-liner summaries to automagically apply in a few interesting cases More specifically, this checkin changes the printout of ValueObjects to print on one-line (as if type summary add -c had been applied) iff: this ValueObject does not have a summary its children have no synthetic children its children are not a non-empty base class without a summary its children do not have a summary that asks for children to show up the aggregate length of all the names of all the children is <= 50 characters you did not ask to see the types during a printout your pointer depth is 0 This is meant to simplify the way LLDB shows data on screen for small structs and similarly compact data types (e.g. std::pair<int,int> anyone?) Feedback is especially welcome on how the feature feels and corner cases where we should apply this printout and don't (or viceversa, we are applying it when we shouldn't be) llvm-svn: 191996
* <rdar://problem/14393032>Enrico Granata2013-09-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DumpValueObject() 2.0 This checkin restores pre-Xcode5 functionality to the "po" (expr -O) command: - expr now has a new --description-verbosity (-v) argument, which takes either compact or full as a value (-v is the same as -vfull) When the full mode is on, "po" will show the extended output with type name, persistent variable name and value, as in (lldb) expr -O -v -- foo (id) $0 = 0x000000010010baf0 { 1 = 2; 2 = 3; } When -v is omitted, or -vcompact is passed, the Xcode5-style output will be shown, as in (lldb) expr -O -- foo { 1 = 2; 2 = 3; } - for a non-ObjectiveC object, LLDB will still try to retrieve a summary and/or value to display (lldb) po 5 5 -v also works in this mode (lldb) expr -O -vfull -- 5 (int) $4 = 5 On top of that, this is a major refactoring of the ValueObject printing code. The functionality is now factored into a ValueObjectPrinter class for easier maintenance in the future DumpValueObject() was turned into an instance method ValueObject::Dump() which simply calls through to the printer code, Dump_Impl has been removed Test case to follow llvm-svn: 191694
* Skip tests that segfault or are inconsistent on FreeBSDEd Maste2013-09-131-0/+1
| | | | | | | | | | | | | I now see no unexpected failures on FreeBSD on a local run of the test suite. llvm.org/pr17214 llvm.org/pr17225 llvm.org/pr17231 llvm.org/pr17232 llvm.org/pr17233 llvm-svn: 190709
* <rdar://problem/14071463>Enrico Granata2013-09-123-0/+167
| | | | | | | | SVN r189964 provided a sample Python script to inspect unordered(multi){set|map} with synthetic children, contribued by Jared Grubb This checkin converts that sample script to a C++ provider built into LLDB A test case is also provided llvm-svn: 190564
* test: Handle libc++ shared lib name on FreeBSDEd Maste2013-09-095-5/+5
| | | | | | | (I didn't take a guess at the Linux names, as these tests are currently skipped with the comment "No standard locations for libc++ on Linux.") llvm-svn: 190307
* Re-enable some locally passing tests on Linux and see how they behave on the ↵Matt Kopec2013-09-061-1/+0
| | | | | | buildbots. llvm-svn: 190214
* merge lldb-platform-work branch (and assorted fixes) into trunkDaniel Malea2013-08-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This merge brings in the improved 'platform' command that knows how to interface with remote machines; that is, query OS/kernel information, push and pull files, run shell commands, etc... and implementation for the new communication packets that back that interface, at least on Darwin based operating systems via the POSIXPlatform class. Linux support is coming soon. Verified the test suite runs cleanly on Linux (x86_64), build OK on Mac OS X Mountain Lion. Additional improvements (not in the source SVN branch 'lldb-platform-work'): - cmake build scripts for lldb-platform - cleanup test suite - documentation stub for qPlatform_RunCommand - use log class instead of printf() directly - reverted work-in-progress-looking changes from test/types/TestAbstract.py that work towards running the test suite remotely. - add new logging category 'platform' Reviewers: Matt Kopec, Greg Clayton Review: http://llvm-reviews.chandlerc.com/D1493 llvm-svn: 189295
* Mark additional ICC failing tests as expected fail.Matt Kopec2013-07-314-0/+5
| | | | llvm-svn: 187507
* Assorted test suite fixes as a result of GCC 4.8 validation effortsDaniel Malea2013-07-301-0/+2
| | | | | | | | | | | | - disable some TestConcurrentEvents cases (which are affected by llvm.org/pr16714 -- watchpoints in multithreaded programs) - relax number-of-bp-locations check in TestUniqueTypes/TestUnsignedTypes - skip TestDataFormatterStdVector cases with GCC 4.8 (known failure due to llvm.org/pr15301) - workaround for race condition in TestHelloWorld.py - update TestSettings.py to work on distros (like Fedora) that have /bin/cat hardlinked to /usr/bin/cat After these changes, the test suite should run cleanly against GCC 4.8 (with DWARF v4)! llvm-svn: 187451
OpenPOWER on IntegriCloud