mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-21 12:35:47 -04:00

This is a set of tests that were all marked as failing becuse of pr21765. 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: 349668
57 lines
1.8 KiB
Python
57 lines
1.8 KiB
Python
"""
|
|
Tests that C strings work as expected in expressions
|
|
"""
|
|
import lldb
|
|
from lldbsuite.test.decorators import *
|
|
from lldbsuite.test.lldbtest import *
|
|
from lldbsuite.test import lldbutil
|
|
|
|
|
|
class CStringsTestCase(TestBase):
|
|
|
|
mydir = TestBase.compute_mydir(__file__)
|
|
|
|
def test_with_run_command(self):
|
|
"""Tests that C strings work as expected in expressions"""
|
|
self.build()
|
|
self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)
|
|
|
|
line = line_number('main.c', '// breakpoint 1')
|
|
lldbutil.run_break_set_by_file_and_line(
|
|
self, "main.c", line, num_expected_locations=1, loc_exact=True)
|
|
|
|
self.runCmd("process launch", RUN_SUCCEEDED)
|
|
|
|
self.expect("expression -- a[2]",
|
|
patterns=["\((const )?char\) \$0 = 'c'"])
|
|
|
|
self.expect("expression -- z[2]",
|
|
startstr="(const char) $1 = 'x'")
|
|
|
|
# On Linux, the expression below will test GNU indirect function calls.
|
|
self.expect("expression -- (int)strlen(\"hello\")",
|
|
startstr="(int) $2 = 5")
|
|
|
|
self.expect("expression -- \"world\"[2]",
|
|
startstr="(const char) $3 = 'r'")
|
|
|
|
self.expect("expression -- \"\"[0]",
|
|
startstr="(const char) $4 = '\\0'")
|
|
|
|
self.expect("expr --raw -- \"hello\"",
|
|
substrs=['[0] = \'h\'',
|
|
'[5] = \'\\0\''])
|
|
|
|
self.expect("p \"hello\"",
|
|
substrs=['[6]) $', 'hello'])
|
|
|
|
self.expect("p (char*)\"hello\"",
|
|
substrs=['(char *) $', ' = 0x',
|
|
'hello'])
|
|
|
|
self.expect("p (int)strlen(\"\")",
|
|
substrs=['(int) $', ' = 0'])
|
|
|
|
self.expect("expression !z",
|
|
substrs=['false'])
|