summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/lang/cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2015-11-18 18:40:16 +0000
committerZachary Turner <zturner@google.com>2015-11-18 18:40:16 +0000
commit48ef8d4c375777f6232214a44aa23d6fc2c44396 (patch)
tree140c7b5c21deb8dd57e5515a7a7e671b15c3d4b0 /lldb/packages/Python/lldbsuite/test/lang/cpp
parentf08e1848157fae1f6a5466dc2192694ad04d7ba5 (diff)
downloadbcm5719-llvm-48ef8d4c375777f6232214a44aa23d6fc2c44396.tar.gz
bcm5719-llvm-48ef8d4c375777f6232214a44aa23d6fc2c44396.zip
Fix some issues with swig & string conversion.
This patch fixes two issues: 1) Popen needs to be used with universal_newlines=True by default. This elicits automatic decoding from bytes -> string in Py3, and has no negative effects in other Py versions. 2) The swig typemaps for converting between string and (char*, int) did not work correctly when the length of the string was 0, indicating an error. In this case we would try to construct a string from uninitialized data. 3) Ironically, the bug mentioned in #2 led to a test passing on Windows that was actually broken, because the test was written such that the assertion was never even getting checked, so it passed by default. So we additionally fix this test to also fail if the method errors. By fixing this test it's now broken on Windows, so we also xfail it. llvm-svn: 253487
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/cpp')
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py b/lldb/packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py
index c632ef5fdad..1553a43e1a7 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py
+++ b/lldb/packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py
@@ -32,6 +32,7 @@ class CppVirtualMadness(TestBase):
self.line = line_number(self.source, '// Set first breakpoint here.')
@expectedFailureIcc('llvm.org/pr16808') # lldb does not call the correct virtual function with icc
+ @expectedFailureAll(oslist=['windows'])
def test_virtual_madness(self):
"""Test that expression works correctly with virtual inheritance as well as virtual function."""
self.build()
@@ -60,6 +61,8 @@ class CppVirtualMadness(TestBase):
# series of printf statements.
stdout = process.GetSTDOUT(1024)
+ self.assertIsNotNone(stdout, "Encountered an error reading the process's output")
+
# This golden list contains a list of "my_expr = 'value' pairs extracted
# from the golden output.
gl = []
OpenPOWER on IntegriCloud