Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py @@ -1,6 +1,57 @@ -import lldbinline +""" +Test lldb data formatter subsystem. +""" + +import os, time +import unittest2 +import lldb from lldbtest import * +import lldbutil + +class InitializerListTestCase(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + @skipUnlessDarwin + @dsym_test + def test_with_dsym(self): + """Test data formatter commands.""" + self.buildDsym() + self.data_formatter_commands() + + @skipIfWindows # libc++ not ported to Windows yet + @skipIfGcc + @expectedFailureLinux # fails on clang 3.5 and tot + @dwarf_test + def test_with_dwarf(self): + """Test data formatter commands.""" + self.buildDwarf() + self.data_formatter_commands() + + def setUp(self): + # Call super's setUp(). + TestBase.setUp(self) + + def data_formatter_commands(self): + """Test that that file and class static variables display correctly.""" + self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) + + bkpt = self.target().FindBreakpointByID(lldbutil.run_break_set_by_source_regexp (self, "Set break point at this line.")) + + self.runCmd("run", RUN_SUCCEEDED) + + # The stop reason of the thread should be breakpoint. + self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT, + substrs = ['stopped', + 'stop reason = breakpoint']) + + self.expect("frame variable ili", substrs = ['[1] = 2','[4] = 5']) + self.expect("frame variable ils", substrs = ['[4] = "surprise it is a long string!! yay!!"']) + + self.expect('image list', substrs = self.getLibcPlusPlusLibs()) -# added decorator to mark as XFAIL for Linux -# non-core functionality, need to reenable and fix later (DES 2014.11.07) -lldbinline.MakeInlineTest(__file__, globals(),expectedFailureLinux) +if __name__ == '__main__': + import atexit + lldb.SBDebugger.Initialize() + atexit.register(lambda: lldb.SBDebugger.Terminate()) + unittest2.main() Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/main.cpp =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/main.cpp +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/main.cpp @@ -16,6 +16,6 @@ std::initializer_list ili{1,2,3,4,5}; std::initializer_list ils{"1","2","3","4","surprise it is a long string!! yay!!"}; - return 0; //% self.expect("frame variable ili", substrs = ['[1] = 2','[4] = 5']) - //% self.expect("frame variable ils", substrs = ['[4] = "surprise it is a long string!! yay!!"']) + return 0; // Set break point at this line. } + Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/Makefile =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/Makefile +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/Makefile @@ -2,7 +2,6 @@ CXX_SOURCES := main.cpp +USE_LIBCPP := 1 include $(LEVEL)/Makefile.rules - -CXXFLAGS += -stdlib=libc++ -O0 -LDFLAGS += -stdlib=libc++ \ No newline at end of file +CXXFLAGS += -O0 Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py @@ -19,7 +19,7 @@ self.buildDsym() self.data_formatter_commands() - @skipIfLinux # No standard locations for libc++ on Linux, so skip for now + @skipIfGcc @skipIfWindows # libc++ not ported to Windows yet @dwarf_test def test_with_dwarf_and_run_command(self): Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/list/Makefile =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/list/Makefile +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/list/Makefile @@ -2,7 +2,6 @@ CXX_SOURCES := main.cpp +USE_LIBCPP := 1 include $(LEVEL)/Makefile.rules - -CXXFLAGS += -stdlib=libc++ -O0 -LDFLAGS += -stdlib=libc++ \ No newline at end of file +CXXFLAGS += -O0 Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py @@ -19,7 +19,7 @@ self.buildDsym() self.data_formatter_commands() - @skipIfLinux # No standard locations for libc++ on Linux, so skip for now + @skipIfGcc @skipIfWindows # libc++ not ported to Windows yet @dwarf_test def test_with_dwarf_and_run_command(self): Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/map/Makefile =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/map/Makefile +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/map/Makefile @@ -2,4 +2,6 @@ CXX_SOURCES := main.cpp +USE_LIBCPP := 1 include $(LEVEL)/Makefile.rules +CXXFLAGS += -O0 Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py @@ -19,7 +19,7 @@ self.buildDsym() self.data_formatter_commands() - @skipIfLinux # No standard locations for libc++ on Linux, so skip for now + @skipIfGcc @skipIfWindows # libc++ not ported to Windows yet @dwarf_test def test_with_dwarf_and_run_command(self): Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/Makefile =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/Makefile +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/Makefile @@ -2,4 +2,6 @@ CXX_SOURCES := main.cpp +USE_LIBCPP := 1 include $(LEVEL)/Makefile.rules +CXXFLAGS += -O0 Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py @@ -19,8 +19,8 @@ self.buildDsym() self.data_formatter_commands() - @skipIfLinux # No standard locations for libc++ on Linux, so skip for now @skipIfWindows # libc++ not ported to Windows yet + @skipIfGcc @dwarf_test def test_with_dwarf_and_run_command(self): """Test data formatter commands.""" Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/Makefile =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/Makefile +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/Makefile @@ -2,7 +2,6 @@ CXX_SOURCES := main.cpp +USE_LIBCPP := 1 include $(LEVEL)/Makefile.rules - -CXXFLAGS += -stdlib=libc++ -O0 -LDFLAGS += -stdlib=libc++ \ No newline at end of file +CXXFLAGS += -O0 Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py @@ -19,7 +19,7 @@ self.buildDsym() self.data_formatter_commands() - @skipIfLinux # No standard locations for libc++ on Linux, so skip for now + @skipIfGcc @skipIfWindows # libc++ not ported to Windows yet @dwarf_test def test_with_dwarf_and_run_command(self): Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/set/Makefile =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/set/Makefile +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/set/Makefile @@ -2,7 +2,6 @@ CXX_SOURCES := main.cpp +USE_LIBCPP := 1 include $(LEVEL)/Makefile.rules - -CXXFLAGS += -stdlib=libc++ -O0 -LDFLAGS += -stdlib=libc++ \ No newline at end of file +CXXFLAGS += -O0 Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py @@ -19,7 +19,7 @@ self.buildDsym() self.data_formatter_commands() - @skipIfLinux # No standard locations for libc++ on Linux, so skip for now + @skipIfGcc @skipIfWindows # libc++ not ported to Windows yet @dwarf_test def test_with_dwarf_and_run_command(self): Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/string/Makefile =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/string/Makefile +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/string/Makefile @@ -2,7 +2,6 @@ CXX_SOURCES := main.cpp +USE_LIBCPP := 1 include $(LEVEL)/Makefile.rules - -CXXFLAGS += -stdlib=libc++ -O0 -LDFLAGS += -stdlib=libc++ \ No newline at end of file +CXXFLAGS += -O0 Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py @@ -20,7 +20,7 @@ self.buildDsym() self.data_formatter_commands() - @skipIfLinux # No standard locations for libc++ on Linux, so skip for now + @skipIfGcc @skipIfWindows # libc++ not ported to Windows yet @dwarf_test def test_with_dwarf_and_run_command(self): Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/Makefile =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/Makefile +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/Makefile @@ -2,7 +2,6 @@ CXX_SOURCES := main.cpp +USE_LIBCPP := 1 include $(LEVEL)/Makefile.rules - -CXXFLAGS += -stdlib=libc++ -O0 -std=c++11 -LDFLAGS += -stdlib=libc++ \ No newline at end of file +CXXFLAGS += -O0 Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py @@ -8,7 +8,7 @@ from lldbtest import * import lldbutil -class LibcxxMultiMapDataFormatterTestCase(TestBase): +class LibcxxUnorderedDataFormatterTestCase(TestBase): mydir = TestBase.compute_mydir(__file__) @@ -19,8 +19,8 @@ self.buildDsym() self.data_formatter_commands() - @skipIfLinux # No standard locations for libc++ on Linux, so skip for now @dwarf_test + @skipIfGcc def test_with_dwarf_and_run_command(self): """Test data formatter commands.""" self.buildDwarf() Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/Makefile =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/Makefile +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/Makefile @@ -1,8 +1,7 @@ LEVEL = ../../../../../make CXX_SOURCES := main.cpp - +USE_LIBCPP := 1 include $(LEVEL)/Makefile.rules +CXXFLAGS += -O0 -CXXFLAGS += -stdlib=libc++ -O0 -LDFLAGS += -stdlib=libc++ \ No newline at end of file Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py @@ -19,7 +19,7 @@ self.buildDsym() self.data_formatter_commands() - @skipIfLinux # No standard locations for libc++ on Linux, so skip for now + @skipIfGcc @skipIfWindows # http://llvm.org/pr21800 @dwarf_test def test_with_dwarf_and_run_command(self): Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/Makefile =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/Makefile +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/Makefile @@ -2,7 +2,6 @@ CXX_SOURCES := main.cpp +USE_LIBCPP := 1 include $(LEVEL)/Makefile.rules - -CXXFLAGS += -stdlib=libc++ -O0 -LDFLAGS += -stdlib=libc++ \ No newline at end of file +CXXFLAGS += -O0 Index: test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py =================================================================== --- test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py +++ test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py @@ -19,7 +19,7 @@ self.buildDsym() self.data_formatter_commands() - @skipIfLinux # No standard locations for libc++ on Linux, so skip for now + @skipIfGcc @skipIfWindows # libc++ not ported to Windows yet @dwarf_test def test_with_dwarf_and_run_command(self): Index: test/lldbtest.py =================================================================== --- test/lldbtest.py +++ test/lldbtest.py @@ -1713,7 +1713,7 @@ return self.lib_dir def getLibcPlusPlusLibs(self): - if sys.platform.startswith('freebsd'): + if sys.platform.startswith('freebsd') or sys.platform.startswith('linux'): return ['libc++.so.1'] else: return ['libc++.1.dylib','libc++abi.dylib'] Index: test/make/Makefile.rules =================================================================== --- test/make/Makefile.rules +++ test/make/Makefile.rules @@ -237,6 +237,10 @@ ifneq (,$(findstring clang,$(CC))) CXXFLAGS += -stdlib=libc++ LDFLAGS += -stdlib=libc++ + ifeq "$(OS)" "Linux" + # This is the default install location on Ubuntu 14.04 + CXXFLAGS += -I/usr/include/c++/v1 + endif endif endif