• Home
  • History
  • Annotate
  • only in /external/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/
History log of /external/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
3990c278c5f4f6ce1373ee3e6d5b984883cf4318 05-Jun-2013 Enrico Granata <egranata@apple.com> <rdar://problem/13125225>

Adding data formatters for std::set, std::multiset and std::multimap for libc++
The underlying data structure is the same as std::map, so this change is very minimal and mostly consists of test cases



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@183323 91177308-0d34-0410-b5e6-96231b3b80d8
ap/TestDataFormatterLibccMap.py
ultimap/Makefile
ultimap/TestDataFormatterLibccMultiMap.py
ultimap/main.cpp
ultiset/Makefile
ultiset/TestDataFormatterLibcxxMultiSet.py
ultiset/main.cpp
et/Makefile
et/TestDataFormatterLibcxxSet.py
et/main.cpp
6bc4dcdfbcdfa455299d2123011b82a77351ee72 15-May-2013 Daniel Malea <daniel.malea@intel.com> Clean up linux test decorators and add links to known bugs
- s/skipOnLinux/skipIfLinux/ to match style of every other decorator
- linkify bugizilla/PR numbers in comments

No intended change in functionality.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181913 91177308-0d34-0410-b5e6-96231b3b80d8
terator/TestDataFormatterLibccIterator.py
ist/TestDataFormatterLibcxxList.py
ap/TestDataFormatterLibccMap.py
tring/TestDataFormatterLibcxxString.py
bool/TestDataFormatterLibcxxVBool.py
ector/TestDataFormatterLibcxxVector.py
8c0c20a43f6231945d2d09d44df57f5516d681cb 09-May-2013 Enrico Granata <egranata@apple.com> Changing the std::map test case to use source breakpoints instead of relying on the nexting always "getting it right" to stop at the locations of interest
This should make us more robust in the face of changing compiler line tables and other library modifications



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181497 91177308-0d34-0410-b5e6-96231b3b80d8
ap/TestDataFormatterLibccMap.py
ap/main.cpp
32d7ee3d2969211e104a27fcfcd636f249b26559 21-Feb-2013 Enrico Granata <egranata@apple.com> <rdar://problem/4529976>

Adding data formatters for iterators for std::map and std::vector (both libc++ and libstdcpp)
This does not include reverse iterators since they are both trickier (due to requirements the standard imposes on them) and much less useful



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175787 91177308-0d34-0410-b5e6-96231b3b80d8
terator/Makefile
terator/TestDataFormatterLibccIterator.py
terator/main.cpp
689696c19cbf0fa8a09e2461f0aaa37409782e3b 04-Feb-2013 Enrico Granata <egranata@apple.com> <rdar://problem/12953018>

Synthetic children and summary for std::vector<bool> (for both libcxx and libstdcpp).
std::vector<bool> is a special case and is custom-implemented to be a vector of bits, which means we failed to handle it with the standard std::vector<T> formatter.
This checkin provides custom formatters that work correctly



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174333 91177308-0d34-0410-b5e6-96231b3b80d8
bool/Makefile
bool/TestDataFormatterLibcxxVBool.py
bool/main.cpp
b6985793ce97364e6fa86643b942326b218dcb3d 12-Jan-2013 Enrico Granata <egranata@apple.com> <rdar://problem/12239827>

Providing a data formatter for libc++ std::wstring
In the process, refactoring the std::string data formatter to be written in C++ so that commonalities between the two can be exploited
Also, providing a new API on the ValueObject to navigate a hierarchy by index-path
Lastly, an appropriate test case is included



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@172282 91177308-0d34-0410-b5e6-96231b3b80d8
tring/Makefile
tring/TestDataFormatterLibcxxString.py
tring/main.cpp
b3ce032bc514c40442929f5eb982584341dc8119 19-Dec-2012 Andrew Kaylor <andrew.kaylor@intel.com> Skip libc++ data formatter tests on Linux because there is no standard location for the makefile to find libc++.

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170575 91177308-0d34-0410-b5e6-96231b3b80d8
ist/TestDataFormatterLibcxxList.py
ap/TestDataFormatterLibccMap.py
ector/TestDataFormatterLibcxxVector.py
6475c42148a8ea1ca86e5db465db7eca742d897d 04-Dec-2012 Greg Clayton <gclayton@apple.com> <rdar://problem/12798131>

Cleaned up the option parsing code to always pass around the short options as integers. Previously we cast this down to "char" and lost some information. I recently added an assert that would detect duplicate short character options which was firing during the test suite.

This fix does the following:
- make sure all short options are treated as "int"
- make sure that short options can be non-printable values when a short option is not required or when an option group is mixed into many commands and a short option is not desired
- fix the help printing to "do the right thing" in all cases. Previously if there were duplicate short character options, it would just not emit help for the duplicates
- fix option parsing when there are duplicates to parse options correctly. Previously the option parsing, when done for an OptionGroup, would just start parsing options incorrectly by omitting table entries and it would end up setting the wrong option value



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169189 91177308-0d34-0410-b5e6-96231b3b80d8
ist/TestDataFormatterLibcxxList.py
ap/TestDataFormatterLibccMap.py
251729ef30fde23e4b1256690fbb60962390e560 24-Oct-2012 Enrico Granata <egranata@apple.com> <rdar://problem/12523238> Commit 3 of 3

Changed all relevant test cases to verify that MightHaveChildren() works correctly for objects of interest
Added a bunch of convenience methods for test cases to use: target(), process(), thread() and frame() which mimic the lldb.X convenience variables
As a bonus, edited the documentation on the website to describe the new method available for synthetic children providers writers to implement!

That's all folks!



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166535 91177308-0d34-0410-b5e6-96231b3b80d8
ist/TestDataFormatterLibcxxList.py
ap/TestDataFormatterLibccMap.py
431d839a33e9a274e705f7a268a1c9de2ffc2da2 22-Sep-2012 Jim Ingham <jingham@apple.com> Fix all the test case breakages caused by folks writing tests all over the place that depended explicitly
on the output of "break set". Please don't do this sort of thing!!!!!


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164433 91177308-0d34-0410-b5e6-96231b3b80d8
ist/TestDataFormatterLibcxxList.py
ap/TestDataFormatterLibccMap.py
ector/TestDataFormatterLibcxxVector.py
79bdaddc38c5d20bf347fe98b4c129746bb66291 24-Apr-2012 Enrico Granata <egranata@apple.com> Removing the @expectedFailurei386 decorator from test cases that now work as a result of the latest changes to Value.cpp

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@155419 91177308-0d34-0410-b5e6-96231b3b80d8
ist/TestDataFormatterLibcxxList.py
ap/TestDataFormatterLibccMap.py
ector/TestDataFormatterLibcxxVector.py
67130e42592e68c3055e7ab5b7a368d89a06f05e 19-Apr-2012 Johnny Chen <johnny.chen@apple.com> Add expected failure decorators for test cases which are failing for i386 architecture.
Plus fix some test cases to skip/succeed for i386.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@155087 91177308-0d34-0410-b5e6-96231b3b80d8
ist/TestDataFormatterLibcxxList.py
ap/TestDataFormatterLibccMap.py
ector/TestDataFormatterLibcxxVector.py
a3ed7d834b0e0c6924ac95629e740682bbcd15ba 06-Apr-2012 Johnny Chen <johnny.chen@apple.com> Add a new option to the test driver, -N dsym or -N dwarf, in order to exclude tests decorated with
either @dsym_test or @dwarf_test to be executed during the testsuite run. There are still lots of
Test*.py files which have not been decorated with the new decorator.

An example:

# From TestMyFirstWatchpoint.py ->
class HelloWatchpointTestCase(TestBase):

mydir = os.path.join("functionalities", "watchpoint", "hello_watchpoint")

@dsym_test
def test_hello_watchpoint_with_dsym_using_watchpoint_set(self):
"""Test a simple sequence of watchpoint creation and watchpoint hit."""
self.buildDsym(dictionary=self.d)
self.setTearDownCleanup(dictionary=self.d)
self.hello_watchpoint()

@dwarf_test
def test_hello_watchpoint_with_dwarf_using_watchpoint_set(self):
"""Test a simple sequence of watchpoint creation and watchpoint hit."""
self.buildDwarf(dictionary=self.d)
self.setTearDownCleanup(dictionary=self.d)
self.hello_watchpoint()


# Invocation ->
[17:50:14] johnny:/Volumes/data/lldb/svn/ToT/test $ ./dotest.py -N dsym -v -p TestMyFirstWatchpoint.py
LLDB build dir: /Volumes/data/lldb/svn/ToT/build/Debug
LLDB-137
Path: /Volumes/data/lldb/svn/ToT
URL: https://johnny@llvm.org/svn/llvm-project/lldb/trunk
Repository Root: https://johnny@llvm.org/svn/llvm-project
Repository UUID: 91177308-0d34-0410-b5e6-96231b3b80d8
Revision: 154133
Node Kind: directory
Schedule: normal
Last Changed Author: gclayton
Last Changed Rev: 154109
Last Changed Date: 2012-04-05 10:43:02 -0700 (Thu, 05 Apr 2012)



Session logs for test failures/errors/unexpected successes will go into directory '2012-04-05-17_50_49'
Command invoked: python ./dotest.py -N dsym -v -p TestMyFirstWatchpoint.py
compilers=['clang']

Configuration: arch=x86_64 compiler=clang
----------------------------------------------------------------------
Collected 2 tests

1: test_hello_watchpoint_with_dsym_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
Test a simple sequence of watchpoint creation and watchpoint hit. ... skipped 'dsym tests'
2: test_hello_watchpoint_with_dwarf_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
Test a simple sequence of watchpoint creation and watchpoint hit. ... ok

----------------------------------------------------------------------
Ran 2 tests in 1.138s

OK (skipped=1)
Session logs for test failures/errors/unexpected successes can be found in directory '2012-04-05-17_50_49'
[17:50:50] johnny:/Volumes/data/lldb/svn/ToT/test $


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154154 91177308-0d34-0410-b5e6-96231b3b80d8
ist/TestDataFormatterLibcxxList.py
ap/TestDataFormatterLibccMap.py
ector/TestDataFormatterLibcxxVector.py
dba1de8d585f27601162f674d30ab71d9c83ccde 27-Mar-2012 Enrico Granata <egranata@apple.com> Synthetic values are now automatically enabled and active by default. SBValue is set up to always wrap a synthetic value when one is available.
A new setting enable-synthetic-value is provided on the target to disable this behavior.
There also is a new GetNonSyntheticValue() API call on SBValue to go back from synthetic to non-synthetic. There is no call to go from non-synthetic to synthetic.
The test suite has been changed accordingly.
Fallout from changes to type searching: an hack has to be played to make it possible to use maps that contain std::string due to the special name replacement operated by clang
Fixing a test case that was using libstdcpp instead of libc++ - caught as a consequence of said changes to type searching


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153495 91177308-0d34-0410-b5e6-96231b3b80d8
ap/TestDataFormatterLibccMap.py
ap/main.cpp
dc0a38c5a727cae5362b218a3180d0f4265a619d 27-Mar-2012 Greg Clayton <gclayton@apple.com> <rdar://problem/11113279>

Fixed type lookups to "do the right thing". Prior to this fix, looking up a type using "foo::bar" would result in a type list that contains all types that had "bar" as a basename unless the symbol file was able to match fully qualified names (which our DWARF parser does not).

This fix will allow type matches to be made based on the basename and then have the types that don't match filtered out. Types by name can be fully qualified, or partially qualified with the new "bool exact_match" parameter to the Module::FindTypes() method.

This fixes some issue that we discovered with dynamic type resolution as well as improves the overall type lookups in LLDB.




git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153482 91177308-0d34-0410-b5e6-96231b3b80d8
ap/TestDataFormatterLibccMap.py
cf09f885c201becf51acc4a5cfac00b3df53f2a8 19-Mar-2012 Enrico Granata <egranata@apple.com> Massive enumeration name changes: a number of enums in ValueObject were not following the naming pattern
Changes to synthetic children:
- the update(self): function can now (optionally) return a value - if it returns boolean value True, ValueObjectSyntheticFilter will not clear its caches across stop-points
this should allow better performance for Python-based synthetic children when one can be sure that the child ValueObjects have not changed
- making a difference between a synthetic VO and a VO with a synthetic value: now a ValueObjectSyntheticFilter will not return itself as its own synthetic value, but will (correctly)
claim to itself be synthetic
- cleared up the internal synthetic children architecture to make a more consistent use of pointers and references instead of shared pointers when possible
- major cleanup of unnecessary #include, data and functions in ValueObjectSyntheticFilter itself
- removed the SyntheticValueType enum and replaced it with a plain boolean (to which it was equivalent in the first place)
Some clean ups to the summary generation code
Centralized the code that clears out user-visible strings and data in ValueObject
More efficient summaries for libc++ containers


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153061 91177308-0d34-0410-b5e6-96231b3b80d8
ist/main.cpp
ector/main.cpp
66205ce5381ab6db1f9bff83c483a4dc5854afc7 12-Mar-2012 Enrico Granata <egranata@apple.com> Added formatters for libc++ (http://libcxx.llvm.org):
std::string has a summary provider
std::vector std::list and std::map have both a summary and a synthetic children provider
Given the usage of a custom namespace (std::__1::classname) for the implementation of libc++, we keep both libstdcpp and libc++ formatters enabled at the same time since that raises no conflicts and enabled for seamless transition between the two
The formatters for libc++ reside in a libcxx category, and are loaded from libcxx.py (to be found in examples/synthetic)

The formatters-stl test cases have been divided to be separate for libcxx and libstdcpp. This separation is necessary because
(a) we need different compiler flags for libc++ than for libstdcpp
(b) libc++ inlines a lot more than libstdcpp and some code changes were required to accommodate this difference


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@152570 91177308-0d34-0410-b5e6-96231b3b80d8
ist/Makefile
ist/TestDataFormatterLibcxxList.py
ist/main.cpp
ap/Makefile
ap/TestDataFormatterLibccMap.py
ap/main.cpp
ector/Makefile
ector/TestDataFormatterLibcxxVector.py
ector/main.cpp