199451b44SJordan Rupprecht# coding=utf8 299451b44SJordan Rupprecht""" 399451b44SJordan RupprechtTest that the expression parser returns proper Unicode strings. 499451b44SJordan Rupprecht""" 599451b44SJordan Rupprecht 699451b44SJordan Rupprecht 799451b44SJordan Rupprechtimport lldb 899451b44SJordan Rupprechtfrom lldbsuite.test.decorators import * 999451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import * 1099451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil 1199451b44SJordan Rupprecht 1299451b44SJordan Rupprecht# this test case fails because of rdar://12991846 1399451b44SJordan Rupprecht# the expression parser does not deal correctly with Unicode expressions 1499451b44SJordan Rupprecht# e.g. 1599451b44SJordan Rupprecht# (lldb) expr L"Hello" 1699451b44SJordan Rupprecht# (const wchar_t [6]) $0 = { 1799451b44SJordan Rupprecht# [0] = \0\0\0\0 1899451b44SJordan Rupprecht# [1] = \0\0\0\0 1999451b44SJordan Rupprecht# [2] = \0\0\0\0 2099451b44SJordan Rupprecht# [3] = \0\0\0\0 2199451b44SJordan Rupprecht# [4] = H\0\0\0 2299451b44SJordan Rupprecht# [5] = e\0\0\0 2399451b44SJordan Rupprecht# } 2499451b44SJordan Rupprecht 2599451b44SJordan Rupprecht 2699451b44SJordan Rupprechtclass UnicodeLiteralsTestCase(TestBase): 2799451b44SJordan Rupprecht def test_expr1(self): 2899451b44SJordan Rupprecht """Test that the expression parser returns proper Unicode strings.""" 2999451b44SJordan Rupprecht self.rdar12991846(expr=1) 3099451b44SJordan Rupprecht 3199451b44SJordan Rupprecht def test_expr2(self): 3299451b44SJordan Rupprecht """Test that the expression parser returns proper Unicode strings.""" 3399451b44SJordan Rupprecht self.rdar12991846(expr=2) 3499451b44SJordan Rupprecht 3599451b44SJordan Rupprecht def test_expr3(self): 3699451b44SJordan Rupprecht """Test that the expression parser returns proper Unicode strings.""" 3799451b44SJordan Rupprecht self.rdar12991846(expr=3) 3899451b44SJordan Rupprecht 3999451b44SJordan Rupprecht def rdar12991846(self, expr=None): 4099451b44SJordan Rupprecht """Test that the expression parser returns proper Unicode strings.""" 41*2238dcc3SJonas Devlieghere if self.getArchitecture() in ["i386"]: 42*2238dcc3SJonas Devlieghere self.skipTest("Skipping because this test is known to crash on i386") 4399451b44SJordan Rupprecht 4453eece04SRaphael Isemann self.build() 45*2238dcc3SJonas Devlieghere lldbutil.run_to_source_breakpoint( 46*2238dcc3SJonas Devlieghere self, "// Set break point at this line", lldb.SBFileSpec("main.cpp") 47*2238dcc3SJonas Devlieghere ) 4899451b44SJordan Rupprecht 4999451b44SJordan Rupprecht if expr == 1: 50*2238dcc3SJonas Devlieghere self.expect('expression L"hello"', substrs=["hello"]) 5199451b44SJordan Rupprecht 5299451b44SJordan Rupprecht if expr == 2: 53*2238dcc3SJonas Devlieghere self.expect('expression u"hello"', substrs=["hello"]) 5499451b44SJordan Rupprecht 5599451b44SJordan Rupprecht if expr == 3: 56*2238dcc3SJonas Devlieghere self.expect('expression U"hello"', substrs=["hello"]) 57