15bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# Copyright (C) 2016 The Android Open Source Project
25bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond#
35bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# Licensed under the Apache License, Version 2.0 (the "License");
45bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# you may not use this file except in compliance with the License.
55bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# You may obtain a copy of the License at
65bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond#
75bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond#      http://www.apache.org/licenses/LICENSE-2.0
85bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond#
95bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# Unless required by applicable law or agreed to in writing, software
105bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# distributed under the License is distributed on an "AS IS" BASIS,
115bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
125bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# See the License for the specific language governing permissions and
135bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# limitations under the License.
145bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond
15a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond'''Module that contains the test TestReadLocal.'''
16dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
17a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummondfrom __future__ import absolute_import
18dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
19a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummondfrom harness.test_base_remote import TestBaseRemote
20a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummondfrom harness.decorators import (
21a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    wimpy,
22a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    ordered_test,
23a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    skip_conditional,
24a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    cpp_only_test
25a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond)
26dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
27dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
28a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummondclass TestReadLocal(TestBaseRemote):
29a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    '''Tests inspecting local variables of all types.'''
30dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
31a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    bundle_target = {
32a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond        'java': 'KernelVariables',
33a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond        'jni': 'JNIKernelVariables',
34a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond        'cpp': 'CppKernelVariables'
35a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    }
36dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
37dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    def _try_inspecting_local(self, local_name, expected_output,
38dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                             expected_regex=None):
39dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        '''Inspect a local and check for the output.
40dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
41dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        Run the "expr" and "frame variable" commands on a given local and
42dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        with a given output. (The commands should be equivalent.)
43dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
44dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        Args:
45dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo            local_name: String which is the name of the global to inspect.
46dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo            expected_output: List of strings that should be found in the output.
47dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo            expected_regex: List of regular expressions that should match lldb's
48dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                            output.
49dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
50dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        Raises:
51dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo            TestFail: One of the lldb commands did not provide the expected
52dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                      output.
53dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        '''
54dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self.try_command('expr ' + local_name,
55dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                         expected_output,
56dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                         expected_regex)
57dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
58dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self.try_command('frame variable ' + local_name,
59dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                         expected_output,
60dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                         expected_regex)
61dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
62a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    @wimpy
63a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    @ordered_test(0)
64a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    def test_setup(self):
65dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self.try_command('language renderscript status',
66dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                         ['Runtime Library discovered',
67dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          'Runtime Driver discovered'])
68dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
69a8b6960a8815bb1fff74c1d9dcf4c572a7a831d9Luke Drummond        self.try_command('breakpoint set --file simple.rs --line 145', [])
70dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
71dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self.try_command('process continue',
72dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                         ['resuming',
73dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          'stopped',
74dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          'stop reason = breakpoint'])
75dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
76a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    @wimpy
77a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    def test_list_rs_kernel_frame_variables(self):
78a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond        # pylint: disable=line-too-long
79a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond
80dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self.try_command('frame variable',
81dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                         ["(uchar) uchar_local = 'b'",
82dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(short) short_local = -321',
83dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(ushort) ushort_local = 432',
84dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(int) int_local = 1234',
85dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(uint) uint_local = 2345',
86dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(float) float_local = 4.5',
87dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(ulong) ulong_local = 8888',
88dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(double) double_local = -456.5',
89dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(char2) char2_local = (-11, -22)',
90dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(uchar2) uchar2_local = (0x21, 0x2c)',
91dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(short2) short2_local = (-555, 666)',
92dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(ushort2) ushort2_local = (777, 888)',
93dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(int2) int2_local = (999, -1111)',
94dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(uint2) uint2_local = (2222, 3333)',
95dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(float2) float2_local = (4.5, -5)',
96dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(long2) long2_local = (-4444, 5555)',
97dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(ulong2) ulong2_local = (6666, 7777)',
98dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(double2) double2_local = (88.5, -99)',
99dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(char3) char3_local = (11, -22, -33,',
100dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(uchar3) uchar3_local = (0x21, 0x2c, 0x37,',
101dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(short3) short3_local = (-555, 666, 777,',
102dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(ushort3) ushort3_local = (777, 888, 999,',
103dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(int3) int3_local = (999, -1111, 2222,',
104dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(uint3) uint3_local = (2222, 3333, 4444,',
105dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(float3) float3_local = (4.5, -5, -6.5,',
106dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(long3) long3_local = (-4444, 5555, 6666,',
107dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(ulong3) ulong3_local = (6666, 7777, 8888,',
108dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(double3) double3_local = (88.5, -99, 111.5,',
109dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(char4) char4_local = (55, 11, -22, -33)',
110dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(uchar4) uchar4_local = (0x16, 0x21, 0x2c, 0x37)',
111dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(short4) short4_local = (-444, -555, 666, 777)',
112dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(ushort4) ushort4_local = (666, 777, 888, 999)',
113dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(int4) int4_local = (888, 999, -1111, 2222)',
114dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(uint4) uint4_local = (1111, 2222, 3333, 4444)',
115dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(float4) float4_local = (3, 4.5, -5, -6.5)',
116dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(long4) long4_local = (-3333, -4444, 5555, 6666)',
117dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(ulong4) ulong4_local = (5555, 6666, 7777, 8888)',
118dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(double4) double4_local = (-77, 88.5, -99, 111.5)',
119dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(rs_matrix2x2) matrix2x2_local = (m = (1, 2.5, 3, 4.5))',
120dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(rs_matrix3x3) matrix3x3_local = {\n'
121dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '  m = ([0] = 5, [1] = 6.5, [2] = 7, [3] = 8.5, [4] = 9, [5] = 1.5, [6] = 2, [7] = 3.5, [8] = 4)',
122dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(rs_matrix4x4) matrix4x4_local = {\n'
123dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '  m = {\n'
124dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [0] = 5.5\n'
125dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [1] = 6\n'
126dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [2] = 7.5\n'
127dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [3] = 8\n'
128dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [4] = 9\n'
129dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [5] = 1.5\n'
130dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [6] = 2\n'
131dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [7] = 3.5\n'
132dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [8] = 4.5\n'
133dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [9] = 5.5\n'
134dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [10] = 6.5\n'
135dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [11] = 7\n'
136dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [12] = 8\n'
137dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [13] = 9.5\n'
138dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [14] = 1.5\n'
139dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '    [15] = 2.5\n'
140dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '  }\n',
141dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          '(rs_quaternion) quaternion_local = (8, 9, 0.5, 7.5)'],
142dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                         [r"\((signed )?char\) char_local = 'a'",
143dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                          r'\((long )?long\) long_local = -77777'])
144dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
145a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond
146a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    @wimpy
147a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    def test_inspect_primitive_types(self):
148dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        # Use expr to inspect locals
149dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('char_local',
150dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ["'a'"],
151dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  [r'\((signed )?char\)'])
152dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
153dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('uchar_local',
154dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(uchar)', "'b'"])
155dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
156dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('short_local',
157dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(short)', '-321'])
158dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
159dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('ushort_local',
160dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(ushort)', '432'])
161dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
162dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('int_local',
163dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(int)', '1234'])
164dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
165dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('uint_local',
166dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(uint)', '2345'])
167dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
168dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('float_local',
169dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(float)', '4.5'])
170dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
171dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('long_local',
172dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['-77777'], [r'\((long )?long\)'])
173dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
174dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('ulong_local',
175dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(ulong)', '8888'])
176dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
177dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('double_local',
178dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(double)', '-456.5'])
179dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
180dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
181a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    @wimpy
182a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    def test_inspect_uchar2(self):
183dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('uchar2_local',
184dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(uchar2)', '(0x21, 0x2c)'])
185dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
186a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    def test_inspect_vec2_types(self):
187a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond        self._try_inspecting_local('char2_local',
188a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond                                  ['(char2)', '(-11, -22)'])
189a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond
190dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('short2_local',
191dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(short2)', '(-555, 666)'])
192dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
193dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('ushort2_local',
194dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(ushort2)', '(777, 888)'])
195dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
196dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('int2_local',
197dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(int2)', '(999, -1111)'])
198dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
199dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('uint2_local',
200dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(uint2)', '(2222, 3333)'])
201dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
202dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('float2_local',
203dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(float2)', '(4.5, -5)'])
204dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
205dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('long2_local',
206dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(long2)', '(-4444, 5555)'])
207dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
208dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('ulong2_local',
209dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(ulong2)', '(6666, 7777)'])
210dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
211dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('double2_local',
212dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(double2)', '(88.5, -99)'])
213dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
214dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('char3_local',
215dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(char3)',
216dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(11, -22, -33,'])
217dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
218dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('uchar3_local',
219dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(uchar3)',
220dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(0x21, 0x2c, 0x37,'])
221dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
222a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    @wimpy
223a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    def test_inspect_short3(self):
224dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('short3_local',
225dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(short3)',
226dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(-555, 666, 777,'])
227dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
228a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    def test_inspect_vec3_types(self):
229dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('ushort3_local',
230dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(ushort3)',
231dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(777, 888, 999,'])
232dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
233dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('int3_local',
234dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(int3)',
235dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(999, -1111, 2222,'])
236dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
237dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('uint3_local',
238dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(uint3)',
239dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(2222, 3333, 4444,'])
240dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
241dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('float3_local',
242dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(float3)',
243dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(4.5, -5, -6.5,'])
244dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
245dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('long3_local',
246dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(long3)',
247dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(-4444, 5555, 6666,'])
248dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
249dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('ulong3_local',
250dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(ulong3)',
251dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(6666, 7777, 8888,'])
252dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
253dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('double3_local',
254dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(double3)',
255dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(88.5, -99, 111.5,'])
256dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
257dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('char4_local',
258dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(char4)',
259dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(55, 11, -22, -33)'])
260dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
261dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('uchar4_local',
262dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(uchar4)',
263dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(0x16, 0x21, 0x2c, 0x37)'])
264dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
265dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('short4_local',
266dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(short4)',
267dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(-444, -555, 666, 777)'])
268dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
269a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    @wimpy
270a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    def test_inspect_ushort4(self):
271dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('ushort4_local',
272dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(ushort4)',
273dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(666, 777, 888, 999)'])
274dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
275a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    def test_inspect_vec4_types(self):
276dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('int4_local',
277dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(int4)',
278dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(888, 999, -1111, 2222)'])
279dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
280dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('uint4_local',
281dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(uint4)',
282dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(1111, 2222, 3333, 4444)'])
283dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
284dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('float4_local',
285dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(float4)',
286dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(3, 4.5, -5, -6.5)'])
287dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
288dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('long4_local',
289dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(long4)',
290dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(-3333, -4444, 5555, 6666)'])
291dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
292dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('ulong4_local',
293dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(ulong4)',
294dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(5555, 6666, 7777, 8888)'])
295dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
296dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('double4_local',
297dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(double4)',
298dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(-77, 88.5, -99, 111.5)'])
299a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    def test_inspect_matrix_types(self):
300dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('matrix2x2_local',
301dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   ['(rs_matrix2x2)',
302dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '= (m = (1, 2.5, 3, 4.5))'])
303dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
304dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('matrix3x3_local',
305dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   ['(rs_matrix3x3)',
306dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '= {\n'
307dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '  m = ([0] = 5, [1] = 6.5, [2] = 7, [3] = 8.5, [4] = 9, [5] = 1.5, [6] = 2, [7] = 3.5, [8] = 4)'])
308dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
309a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    @wimpy
310a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    def test_inspect_matrix_4x4_local(self):
311dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('matrix4x4_local',
312dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   ['(rs_matrix4x4)',
313dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '= {\n'
314dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '  m = {\n'
315dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [0] = 5.5\n'
316dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [1] = 6\n'
317dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [2] = 7.5\n'
318dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [3] = 8\n'
319dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [4] = 9\n'
320dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [5] = 1.5\n'
321dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [6] = 2\n'
322dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [7] = 3.5\n'
323dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [8] = 4.5\n'
324dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [9] = 5.5\n'
325dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [10] = 6.5\n'
326dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [11] = 7\n'
327dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [12] = 8\n'
328dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [13] = 9.5\n'
329dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [14] = 1.5\n'
330dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '    [15] = 2.5\n'
331dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                    '  }\n'])
332dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
333a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    @wimpy
334a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    def test_inspect_quaternion_local(self):
335dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self._try_inspecting_local('quaternion_local',
336dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                  ['(rs_quaternion)',
337dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                   '(8, 9, 0.5, 7.5)'])
338dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
339a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    @ordered_test('last')
340a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    @cpp_only_test()
341a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond    def test_cpp_cleanup(self):
342dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        self.try_command('breakpoint delete 1', ['1 breakpoints deleted'])
343dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
344a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond        self.try_command('process continue', ['exited with status = 0'])
345