Michael137 created this revision. Michael137 added a reviewer: aprantl. Herald added a project: All. Michael137 requested review of this revision. Herald added a project: LLDB. Herald added a subscriber: lldb-commits.
This is in preparation for adding more gmodules tests. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D133876 Files: lldb/test/API/lang/cpp/gmodules-templates/TestGModules.py lldb/test/API/lang/cpp/gmodules-templates/a.h lldb/test/API/lang/cpp/gmodules-templates/b.h lldb/test/API/lang/cpp/gmodules-templates/main.cpp lldb/test/API/lang/cpp/gmodules-templates/memory.h lldb/test/API/lang/cpp/gmodules-templates/module.modulemap lldb/test/API/lang/cpp/gmodules/Makefile lldb/test/API/lang/cpp/gmodules/TestWithModuleDebugging.py lldb/test/API/lang/cpp/gmodules/basic/Makefile lldb/test/API/lang/cpp/gmodules/basic/TestWithModuleDebugging.py lldb/test/API/lang/cpp/gmodules/basic/main.cpp lldb/test/API/lang/cpp/gmodules/basic/pch.h lldb/test/API/lang/cpp/gmodules/main.cpp lldb/test/API/lang/cpp/gmodules/pch.h lldb/test/API/lang/cpp/gmodules/templates/TestGModules.py lldb/test/API/lang/cpp/gmodules/templates/a.h lldb/test/API/lang/cpp/gmodules/templates/b.h lldb/test/API/lang/cpp/gmodules/templates/main.cpp lldb/test/API/lang/cpp/gmodules/templates/memory.h lldb/test/API/lang/cpp/gmodules/templates/module.modulemap
Index: lldb/test/API/lang/cpp/gmodules-templates/module.modulemap =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/gmodules-templates/module.modulemap @@ -1,11 +0,0 @@ -module A { - header "a.h" -} - -module B { - header "b.h" -} - -module std { - header "memory.h" -} Index: lldb/test/API/lang/cpp/gmodules-templates/memory.h =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/gmodules-templates/memory.h @@ -1,8 +0,0 @@ -#ifndef MEMORY_H -#define MEMORY_H -namespace my_std { - template<class T> class unique_ptr { - T t; - }; -} -#endif Index: lldb/test/API/lang/cpp/gmodules-templates/main.cpp =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/gmodules-templates/main.cpp @@ -1,9 +0,0 @@ -#include "b.h" - -int main(int argc, const char * argv[]) -{ - Module m; - // Test that the type Module which contains a field that is a - // template instantiation can be fully resolved. - return 0; //% self.assertTrue(self.frame().FindVariable('m').GetChildAtIndex(0).GetChildAtIndex(0).GetChildAtIndex(0).GetName() == 'buffer', 'find template specializations in imported modules') -} Index: lldb/test/API/lang/cpp/gmodules-templates/b.h =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/gmodules-templates/b.h @@ -1,6 +0,0 @@ -#include "a.h" -#include "memory.h" - -class Module { - my_std::unique_ptr<MemoryBuffer> MBptr; -}; Index: lldb/test/API/lang/cpp/gmodules-templates/a.h =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/gmodules-templates/a.h @@ -1,7 +0,0 @@ -#include "memory.h" - -class MemoryBuffer { int buffer = 42; }; - -struct SrcBuffer { - my_std::unique_ptr<MemoryBuffer> Buffer; -}; Index: lldb/test/API/lang/cpp/gmodules-templates/TestGModules.py =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/gmodules-templates/TestGModules.py @@ -1,6 +0,0 @@ -import lldbsuite.test.lldbinline as lldbinline -from lldbsuite.test.decorators import * - -lldbinline.MakeInlineTest(__file__, globals(), [ - expectedFailureAll(oslist=["linux"], bugnumber="llvm.org/pr36107", - debug_info="gmodules")]) Index: lldb/test/API/lang/cpp/gmodules/pch.h =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/gmodules/pch.h @@ -1,17 +0,0 @@ -template<typename T> -class GenericContainer { - private: - T storage; - - public: - GenericContainer(T value) { - storage = value; - }; -}; - -typedef GenericContainer<int> IntContainer; - -struct Foo { - class Bar; - Bar *bar; -}; Index: lldb/test/API/lang/cpp/gmodules/main.cpp =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/gmodules/main.cpp @@ -1,8 +0,0 @@ -class Foo::Bar { int i = 123; }; - -int main(int argc, const char * argv[]) -{ - IntContainer test(42); - Foo::Bar bar; - return 0; // break here -} Index: lldb/test/API/lang/cpp/gmodules/TestWithModuleDebugging.py =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/gmodules/TestWithModuleDebugging.py @@ -1,92 +0,0 @@ -import lldb -import os -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class TestWithGmodulesDebugInfo(TestBase): - - @skipIf(bugnumber="llvm.org/pr36146", oslist=["linux"], archs=["i386"]) - @add_test_categories(["gmodules"]) - def test_specialized_typedef_from_pch(self): - self.build() - - src_file = os.path.join(self.getSourceDir(), "main.cpp") - src_file_spec = lldb.SBFileSpec(src_file) - self.assertTrue(src_file_spec.IsValid(), "breakpoint file") - - # Get the path of the executable - exe_path = self.getBuildArtifact("a.out") - - # Load the executable - target = self.dbg.CreateTarget(exe_path) - self.assertTrue(target.IsValid(), VALID_TARGET) - - # Break on interesting line - breakpoint = target.BreakpointCreateBySourceRegex( - "break here", src_file_spec) - self.assertTrue( - breakpoint.IsValid() and breakpoint.GetNumLocations() >= 1, - VALID_BREAKPOINT) - - # Launch the process - process = target.LaunchSimple( - None, None, self.get_process_working_directory()) - self.assertTrue(process.IsValid(), PROCESS_IS_VALID) - - # Get the thread of the process - self.assertState(process.GetState(), lldb.eStateStopped) - thread = lldbutil.get_stopped_thread( - process, lldb.eStopReasonBreakpoint) - self.assertTrue( - thread.IsValid(), - "There should be a thread stopped due to breakpoint condition") - - # Get frame for current thread - frame = thread.frames[0] - - testValue = frame.EvaluateExpression("test") - self.assertTrue( - testValue.GetError().Success(), - "Test expression value invalid: %s" % - (testValue.GetError().GetCString())) - self.assertEqual( - testValue.GetTypeName(), "IntContainer", - "Test expression type incorrect") - - memberValue = testValue.GetChildMemberWithName("storage") - self.assertTrue( - memberValue.GetError().Success(), - "Member value missing or invalid: %s" % - (testValue.GetError().GetCString())) - self.assertEqual( - memberValue.GetTypeName(), "int", - "Member type incorrect") - self.assertEqual( - 42, - memberValue.GetValueAsSigned(), - "Member value incorrect") - - testValue = frame.EvaluateExpression("bar") - self.assertTrue( - testValue.GetError().Success(), - "Test expression value invalid: %s" % - (testValue.GetError().GetCString())) - self.assertEqual( - testValue.GetTypeName(), "Foo::Bar", - "Test expression type incorrect") - - memberValue = testValue.GetChildMemberWithName("i") - self.assertTrue( - memberValue.GetError().Success(), - "Member value missing or invalid: %s" % - (testValue.GetError().GetCString())) - self.assertEqual( - memberValue.GetTypeName(), "int", - "Member type incorrect") - self.assertEqual( - 123, - memberValue.GetValueAsSigned(), - "Member value incorrect") - Index: lldb/test/API/lang/cpp/gmodules/Makefile =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/gmodules/Makefile @@ -1,5 +0,0 @@ -PCH_CXX_SOURCE = pch.h -CXX_SOURCES = main.cpp -CFLAGS_EXTRAS := $(MODULE_DEBUG_INFO_FLAGS) - -include Makefile.rules
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits