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