summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2018-10-16 21:58:40 +0000
committerJim Ingham <jingham@apple.com>2018-10-16 21:58:40 +0000
commitb1ecc3cac29bdae5469e9610a1ff66f8531a503c (patch)
tree751f36f01bfa8eda4e6eb963c57fd0eb8f46d1f9 /lldb/packages/Python/lldbsuite/test
parentd33f6e73e148b0a257facb81f100b1e731e0c910 (diff)
downloadbcm5719-llvm-b1ecc3cac29bdae5469e9610a1ff66f8531a503c.tar.gz
bcm5719-llvm-b1ecc3cac29bdae5469e9610a1ff66f8531a503c.zip
Return a named error in the result object of an expression with no result
Before we returned an error that was not exposed in the SB API and no useful error message. This change returns eExpressionProducedNoResult and an appropriate error string. <rdar://problem/44539514> Differential Revision: https://reviews.llvm.org/D53309 llvm-svn: 344647
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r--lldb/packages/Python/lldbsuite/test/expression_command/no-result/Makefile6
-rw-r--r--lldb/packages/Python/lldbsuite/test/expression_command/no-result/TestNoResult.py45
-rw-r--r--lldb/packages/Python/lldbsuite/test/expression_command/no-result/main.c9
3 files changed, 60 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/no-result/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/no-result/Makefile
new file mode 100644
index 00000000000..50d4ab65a6e
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/expression_command/no-result/Makefile
@@ -0,0 +1,6 @@
+LEVEL = ../../make
+
+C_SOURCES := main.c
+CFLAGS_EXTRAS += -std=c99
+
+include $(LEVEL)/Makefile.rules
diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/no-result/TestNoResult.py b/lldb/packages/Python/lldbsuite/test/expression_command/no-result/TestNoResult.py
new file mode 100644
index 00000000000..363b30e4de5
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/expression_command/no-result/TestNoResult.py
@@ -0,0 +1,45 @@
+"""
+Test that an expression that returns no result returns a sensible error.
+"""
+
+from __future__ import print_function
+
+
+import os
+import time
+import re
+import lldb
+import lldbsuite.test.lldbutil as lldbutil
+from lldbsuite.test.lldbtest import *
+
+
+class TestExprNoResult(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ # If your test case doesn't stress debug info, the
+ # set this to true. That way it won't be run once for
+ # each debug info format.
+ NO_DEBUG_INFO_TESTCASE = True
+
+ def test_no_result(self):
+ """Run an expression that has no result, check the error."""
+ self.build()
+ self.main_source_file = lldb.SBFileSpec("main.c")
+ self.sample_test()
+
+ def setUp(self):
+ # Call super's setUp().
+ TestBase.setUp(self)
+
+ def sample_test(self):
+ (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self,
+ "Set a breakpoint here", self.main_source_file)
+
+ frame = thread.GetFrameAtIndex(0)
+ result = frame.EvaluateExpression("int $x = 10")
+ # No result expressions are considered to fail:
+ self.assertTrue(result.GetError().Fail(), "An expression with no result is a failure.")
+ # But the reason should be eExpressionProducedNoResult
+ self.assertEqual(result.GetError().GetError(), lldb.eExpressionProducedNoResult,
+ "But the right kind of failure")
diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/no-result/main.c b/lldb/packages/Python/lldbsuite/test/expression_command/no-result/main.c
new file mode 100644
index 00000000000..8d4e0c4f7be
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/expression_command/no-result/main.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int
+main()
+{
+ int test_var = 10;
+ printf ("Set a breakpoint here: %d.\n", test_var);
+ return 0;
+}
OpenPOWER on IntegriCloud