This revision was automatically updated to reflect the committed changes.
Closed by commit rL317678: Make TestTopLevelExprs more robust in face of linker 
GC (authored by labath).

Repository:
  rL LLVM

https://reviews.llvm.org/D39727

Files:
  
lldb/trunk/packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py
  
lldb/trunk/packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp


Index: 
lldb/trunk/packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py
===================================================================
--- 
lldb/trunk/packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py
+++ 
lldb/trunk/packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py
@@ -57,23 +57,6 @@
         self.runCmd("run", RUN_SUCCEEDED)
 
     @add_test_categories(['pyapi'])
-    @expectedFailureAndroid(api_levels=list(range(22+1)), 
bugnumber="llvm.org/pr27787")
-    @expectedFailureAll(
-        oslist=["linux"],
-        archs=[
-            "arm",
-            "aarch64"],
-        bugnumber="llvm.org/pr27787")
-    @expectedFailureAll(
-        bugnumber="llvm.org/pr28353",
-        oslist=["linux"],
-        archs=[
-            "i386",
-            "x86_64"],
-        compiler="gcc",
-        compiler_version=[
-            "<",
-            "4.9"])
     @skipIf(debug_info="gmodules")  # not relevant
     @skipIf(oslist=["windows"])  # Error in record layout on Windows
     def test_top_level_expressions(self):
Index: 
lldb/trunk/packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp
===================================================================
--- 
lldb/trunk/packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp
+++ 
lldb/trunk/packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp
@@ -1,7 +1,15 @@
 #include <stdio.h>
 
-int main()
-{
-    printf("This is a dummy\n"); // Set breakpoint here   
-    return 0;
+// These are needed to make sure that the linker does not strip the parts of 
the
+// C++ abi library that are necessary to execute the expressions in the
+// debugger. It would be great if we did not need to do this, but the fact that
+// LLDB cannot conjure up the abi library on demand is not relevant for testing
+// top level expressions.
+struct DummyA {};
+struct DummyB : public virtual DummyA {};
+
+int main() {
+  DummyB b;
+  printf("This is a dummy\n"); // Set breakpoint here
+  return 0;
 }


Index: lldb/trunk/packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py
+++ lldb/trunk/packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py
@@ -57,23 +57,6 @@
         self.runCmd("run", RUN_SUCCEEDED)
 
     @add_test_categories(['pyapi'])
-    @expectedFailureAndroid(api_levels=list(range(22+1)), bugnumber="llvm.org/pr27787")
-    @expectedFailureAll(
-        oslist=["linux"],
-        archs=[
-            "arm",
-            "aarch64"],
-        bugnumber="llvm.org/pr27787")
-    @expectedFailureAll(
-        bugnumber="llvm.org/pr28353",
-        oslist=["linux"],
-        archs=[
-            "i386",
-            "x86_64"],
-        compiler="gcc",
-        compiler_version=[
-            "<",
-            "4.9"])
     @skipIf(debug_info="gmodules")  # not relevant
     @skipIf(oslist=["windows"])  # Error in record layout on Windows
     def test_top_level_expressions(self):
Index: lldb/trunk/packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp
+++ lldb/trunk/packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp
@@ -1,7 +1,15 @@
 #include <stdio.h>
 
-int main()
-{
-    printf("This is a dummy\n"); // Set breakpoint here   
-    return 0;
+// These are needed to make sure that the linker does not strip the parts of the
+// C++ abi library that are necessary to execute the expressions in the
+// debugger. It would be great if we did not need to do this, but the fact that
+// LLDB cannot conjure up the abi library on demand is not relevant for testing
+// top level expressions.
+struct DummyA {};
+struct DummyB : public virtual DummyA {};
+
+int main() {
+  DummyB b;
+  printf("This is a dummy\n"); // Set breakpoint here
+  return 0;
 }
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to