This revision was automatically updated to reflect the committed changes.
Closed by commit rL268573: XFail TestLambdas.py on Windows after fixing some of 
the problems (authored by amccarth).

Changed prior to commit:
  http://reviews.llvm.org/D19606?vs=55263&id=56221#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D19606

Files:
  lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/lambdas/TestLambdas.py
  lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/lambdas/main.cpp
  lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py
  lldb/trunk/source/Expression/IRInterpreter.cpp

Index: lldb/trunk/source/Expression/IRInterpreter.cpp
===================================================================
--- lldb/trunk/source/Expression/IRInterpreter.cpp
+++ lldb/trunk/source/Expression/IRInterpreter.cpp
@@ -477,6 +477,7 @@
 static const char *memory_read_error                = "Interpreter couldn't read from memory";
 static const char *infinite_loop_error              = "Interpreter ran for too many cycles";
 //static const char *bad_result_error                 = "Result of expression is in bad memory";
+static const char *too_many_functions_error = "Interpreter doesn't handle modules with multiple function bodies.";
 
 static bool
 CanResolveConstant (llvm::Constant *constant)
@@ -506,7 +507,7 @@
                     Constant *base = dyn_cast<Constant>(*op_cursor);
                     if (!base)
                         return false;
-                    
+
                     return CanResolveConstant(base);
                 }
             }
@@ -535,7 +536,13 @@
         if (fi->begin() != fi->end())
         {
             if (saw_function_with_body)
+            {
+                if (log)
+                    log->Printf("More than one function in the module has a body");
+                error.SetErrorToGenericError();
+                error.SetErrorString(too_many_functions_error);
                 return false;
+            }
             saw_function_with_body = true;
         }
     }
@@ -664,7 +671,7 @@
                         return false;
                     }
                 }
-                
+
                 if (Constant *constant = llvm::dyn_cast<Constant>(operand))
                 {
                     if (!CanResolveConstant(constant))
@@ -680,7 +687,8 @@
 
     }
 
-    return true;}
+    return true;
+}
 
 bool
 IRInterpreter::Interpret (llvm::Module &module,
Index: lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py
+++ lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py
@@ -186,7 +186,7 @@
     elif hasattr(decorators, '__call__'):
         tmp = decorators(tmp)
     return tmp
-    
+
 
 def MakeInlineTest(__file, __globals, decorators=None):
     # Adjust the filename if it ends in .pyc.  We want filenames to
@@ -200,13 +200,17 @@
     InlineTest.mydir = TestBase.compute_mydir(__file)
 
     test_name, _ = os.path.splitext(file_basename)
-    # Build the test case 
+    # Build the test case
     test = type(test_name, (InlineTest,), {'using_dsym': None})
     test.name = test_name
 
-    test.test_with_dsym = ApplyDecoratorsToFunction(test._InlineTest__test_with_dsym, decorators)
-    test.test_with_dwarf = ApplyDecoratorsToFunction(test._InlineTest__test_with_dwarf, decorators)
-    test.test_with_dwo = ApplyDecoratorsToFunction(test._InlineTest__test_with_dwo, decorators)
+    target_platform = lldb.DBG.GetSelectedPlatform().GetTriple().split('-')[2]
+    if test_categories.is_supported_on_platform("dsym", target_platform):
+        test.test_with_dsym = ApplyDecoratorsToFunction(test._InlineTest__test_with_dsym, decorators)
+    if test_categories.is_supported_on_platform("dwarf", target_platform):
+        test.test_with_dwarf = ApplyDecoratorsToFunction(test._InlineTest__test_with_dwarf, decorators)
+    if test_categories.is_supported_on_platform("dwo", target_platform):
+        test.test_with_dwo = ApplyDecoratorsToFunction(test._InlineTest__test_with_dwo, decorators)
 
     # Add the test case to the globals, and hide InlineTest
     __globals.update({test_name : test})
Index: lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/lambdas/main.cpp
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/lambdas/main.cpp
+++ lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/lambdas/main.cpp
@@ -11,7 +11,7 @@
 
 int main (int argc, char const *argv[])
 {
-    printf("Stop here\n");     //% self.runCmd("expression auto $add = [](int a, int b) { return a + b };")
-                               //% self.expect("expression $add(2,3)", substrs = ['= 5'])
-    return 0; 
+    printf("Stop here\n"); //% self.runCmd("expression auto $add = [](int a, int b) { return a + b; }")
+                           //% self.expect("expression $add(2,3)", substrs = ['= 5'])
+    return 0;
 }
Index: lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/lambdas/TestLambdas.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/lambdas/TestLambdas.py
+++ lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/lambdas/TestLambdas.py
@@ -1,4 +1,4 @@
 from lldbsuite.test import lldbinline
 from lldbsuite.test import decorators
 
-lldbinline.MakeInlineTest(__file__, globals(), [])
+lldbinline.MakeInlineTest(__file__, globals(), [lldbinline.expectedFailureAll(oslist=["windows"])])
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to