]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - packages/Python/lldbsuite/test/functionalities/set-data/TestSetData.py
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / packages / Python / lldbsuite / test / functionalities / set-data / TestSetData.py
1 """
2 Set the contents of variables and registers using raw data
3 """
4
5 from __future__ import print_function
6
7
8 import os
9 import time
10 import lldb
11 from lldbsuite.test.decorators import *
12 from lldbsuite.test.lldbtest import *
13 from lldbsuite.test import lldbutil
14
15
16 class SetDataTestCase(TestBase):
17
18     mydir = TestBase.compute_mydir(__file__)
19
20     @skipUnlessDarwin
21     def test_set_data(self):
22         """Test setting the contents of variables and registers using raw data."""
23         self.build()
24         exe = os.path.join(os.getcwd(), "a.out")
25         self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
26
27         self.runCmd("br s -p First")
28         self.runCmd("br s -p Second")
29
30         self.runCmd("run", RUN_SUCCEEDED)
31
32         self.expect("p myFoo.x", VARIABLES_DISPLAYED_CORRECTLY,
33                     substrs=['2'])
34
35         process = self.dbg.GetSelectedTarget().GetProcess()
36         frame = process.GetSelectedThread().GetFrameAtIndex(0)
37
38         x = frame.FindVariable("myFoo").GetChildMemberWithName("x")
39
40         my_data = lldb.SBData.CreateDataFromSInt32Array(
41             lldb.eByteOrderLittle, 8, [4])
42         err = lldb.SBError()
43
44         self.assertTrue(x.SetData(my_data, err))
45
46         self.runCmd("continue")
47
48         self.expect("p myFoo.x", VARIABLES_DISPLAYED_CORRECTLY,
49                     substrs=['4'])
50
51         frame = process.GetSelectedThread().GetFrameAtIndex(0)
52
53         x = frame.FindVariable("string")
54
55         if process.GetAddressByteSize() == 8:
56             my_data = lldb.SBData.CreateDataFromUInt64Array(
57                 process.GetByteOrder(), 8, [0])
58         else:
59             my_data = lldb.SBData.CreateDataFromUInt32Array(
60                 process.GetByteOrder(), 4, [0])
61
62         err = lldb.SBError()
63
64         self.assertTrue(x.SetData(my_data, err))
65
66         self.expect(
67             "fr var -d run-target string",
68             VARIABLES_DISPLAYED_CORRECTLY,
69             substrs=[
70                 'NSString *',
71                 'nil'])