teak-llvm/lldb/packages/Python/lldbsuite/test/lang/cpp/unicode-literals/TestUnicodeLiterals.py
Stella Stamenova 756b91dc14 [lldbsuite] Un-xfail tests on Windows that are now passing
This is a set of tests that were all marked as failing becuse of pr24489. The bug is not fixed (as in more of the tests that were marked this way are failing), but this set is passing. It is possible that some of them are false positives, but there's a large number of unexpectedly passing tests on Windows, so I am doing a bulk un-xfail to get the buildbot to green.

llvm-svn: 349665
2018-12-19 19:04:01 +00:00

87 lines
2.4 KiB
Python

# coding=utf8
"""
Test that the expression parser returns proper Unicode strings.
"""
from __future__ import print_function
import os
import time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
# this test case fails because of rdar://12991846
# the expression parser does not deal correctly with Unicode expressions
# e.g.
#(lldb) expr L"Hello"
#(const wchar_t [6]) $0 = {
# [0] = \0\0\0\0
# [1] = \0\0\0\0
# [2] = \0\0\0\0
# [3] = \0\0\0\0
# [4] = H\0\0\0
# [5] = e\0\0\0
#}
class UnicodeLiteralsTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
def test_expr1(self):
"""Test that the expression parser returns proper Unicode strings."""
self.build()
self.rdar12991846(expr=1)
def test_expr2(self):
"""Test that the expression parser returns proper Unicode strings."""
self.build()
self.rdar12991846(expr=2)
def test_expr3(self):
"""Test that the expression parser returns proper Unicode strings."""
self.build()
self.rdar12991846(expr=3)
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break for main.cpp.
self.source = 'main.cpp'
self.line = line_number(
self.source, '// Set break point at this line.')
def rdar12991846(self, expr=None):
"""Test that the expression parser returns proper Unicode strings."""
if self.getArchitecture() in ['i386']:
self.skipTest(
"Skipping because this test is known to crash on i386")
exe = self.getBuildArtifact("a.out")
# Create a target by the debugger.
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
# Break on the struct declration statement in main.cpp.
lldbutil.run_break_set_by_file_and_line(self, "main.cpp", self.line)
# Now launch the process, and do not stop at entry point.
process = target.LaunchSimple(
None, None, self.get_process_working_directory())
if not process:
self.fail("SBTarget.Launch() failed")
if expr == 1:
self.expect('expression L"hello"', substrs=['hello'])
if expr == 2:
self.expect('expression u"hello"', substrs=['hello'])
if expr == 3:
self.expect('expression U"hello"', substrs=['hello'])