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
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits