• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2016 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15'''Module that contains the test TestAllocationList.'''
16
17from __future__ import absolute_import
18
19from harness.test_base_remote import TestBaseRemote
20from harness.decorators import (
21    ordered_test,
22    wimpy,
23    cpp_only_test,
24    java_only_test,
25)
26
27
28class TestAllocationList(TestBaseRemote):
29    '''Tests printing the details of all allocations.'''
30
31    bundle_target = {
32        'java': 'Allocations',
33        'jni': 'JNIAllocations',
34        'cpp': 'CppAllocations'
35    }
36
37    @wimpy
38    @ordered_test(0)
39    def test_allocation_list_single(self):
40        # pylint: disable=anomalous-backslash-in-string
41        self.try_command('language renderscript kernel breakpoint all enable',
42                         ['Breakpoints will be set on all kernels'])
43
44        self.try_command('process continue',
45                         ['resuming',
46                          'stopped',
47                          'stop reason = breakpoint'])
48
49        # Test command line flag for single allocation
50        self.try_command('language renderscript allocation list -i 3',
51                         [],
52                         ['3:\n'
53                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
54                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
55                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
56                          '    Dimensions: \(1, 3, 8\)\n'
57                          '    Data Type: char\n'
58                          '    Data Kind: User'])
59
60    @ordered_test(1)
61    def test_allocation_list_all(self):
62        self.try_command('language renderscript allocation list',
63                         [],
64                         ['1:\n'
65                         # Regex for non zero hex number
66                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
67                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
68                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
69                          '    Dimensions: \(64, 64, 0\)\n'
70                          '    Data Type: uchar4\n'
71                          '    Data Kind: RGBA Pixel',
72                          '2:\n'
73                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
74                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
75                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
76                          '    Dimensions: \(64, 64, 0\)\n'
77                          '    Data Type: uchar4\n'
78                          '    Data Kind: RGBA Pixel',
79                          '3:\n'
80                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
81                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
82                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
83                          '    Dimensions: \(1, 3, 8\)\n'
84                          '    Data Type: char\n'
85                          '    Data Kind: User',
86                          '4:\n'
87                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
88                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
89                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
90                          '    Dimensions: \(12, 0, 0\)\n'
91                          '    Data Type: char2\n'
92                          '    Data Kind: User',
93                          '5:\n'
94                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
95                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
96                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
97                          '    Dimensions: \(6, 0, 0\)\n'
98                          '    Data Type: char3\n'
99                          '    Data Kind: User',
100                          '6:\n'
101                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
102                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
103                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
104                          '    Dimensions: \(6, 0, 0\)\n'
105                          '    Data Type: char4\n'
106                          '    Data Kind: User',
107                          '7:\n'
108                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
109                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
110                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
111                          '    Dimensions: \(24, 0, 0\)\n'
112                          '    Data Type: short\n'
113                          '    Data Kind: User',
114                          '8:\n'
115                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
116                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
117                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
118                          '    Dimensions: \(6, 1, 2\)\n'
119                          '    Data Type: short2\n'
120                          '    Data Kind: User',
121                          '9:\n'
122                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
123                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
124                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
125                          '    Dimensions: \(6, 0, 0\)\n'
126                          '    Data Type: short3\n'
127                          '    Data Kind: User',
128                          '10:\n'
129                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
130                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
131                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
132                          '    Dimensions: \(6, 0, 0\)\n'
133                          '    Data Type: short4\n'
134                          '    Data Kind: User',
135                          '11:\n'
136                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
137                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
138                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
139                          '    Dimensions: \(24, 0, 0\)\n'
140                          '    Data Type: int\n'
141                          '    Data Kind: User',
142                          '12:\n'
143                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
144                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
145                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
146                          '    Dimensions: \(12, 0, 0\)\n'
147                          '    Data Type: int2\n'
148                          '    Data Kind: User',
149                          '13:\n'
150                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
151                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
152                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
153                          '    Dimensions: \(3, 2, 0\)\n'
154                          '    Data Type: int3\n'
155                          '    Data Kind: User',
156                          '14:\n'
157                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
158                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
159                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
160                          '    Dimensions: \(6, 0, 0\)\n'
161                          '    Data Type: int4\n'
162                          '    Data Kind: User',
163                          '15:\n'
164                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
165                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
166                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
167                          '    Dimensions: \(24, 0, 0\)\n'
168                          '    Data Type: long\n'
169                          '    Data Kind: User',
170                          '16:\n'
171                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
172                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
173                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
174                          '    Dimensions: \(12, 0, 0\)\n'
175                          '    Data Type: long2\n'
176                          '    Data Kind: User',
177                          '17:\n'
178                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
179                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
180                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
181                          '    Dimensions: \(6, 0, 0\)\n'
182                          '    Data Type: long3\n'
183                          '    Data Kind: User',
184                          '18:\n'
185                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
186                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
187                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
188                          '    Dimensions: \(1, 6, 0\)\n'
189                          '    Data Type: long4\n'
190                          '    Data Kind: User',
191                          '19:\n'
192                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
193                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
194                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
195                          '    Dimensions: \(24, 0, 0\)\n'
196                          '    Data Type: bool\n'
197                          '    Data Kind: User'
198                         ])
199
200    @wimpy
201    @ordered_test(2)
202    def test_continue_1(self):
203        self.try_command('breakpoint del 1',
204                          ['1 breakpoints deleted'])
205
206        # Hit second kernel
207        self.try_command('process continue',
208                          ['resuming',
209                           'stopped',
210                           'stop reason = breakpoint'])
211
212    @ordered_test(3)
213    def test_allocation_list_all2_java(self):
214        # TODO investigate why java tests show extra allocations
215        if self.app_type == 'java':
216            allocation_1_re = [
217                '1:\n'
218                # Regex for non zero hex number
219                '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
220                '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
221                '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
222                '    Dimensions: \(64, 64, 0\)\n'
223                '    Data Type: uchar4\n'
224                '    Data Kind: RGBA Pixel'
225            ]
226        else:
227            allocation_1_re = []
228
229        self.try_command('language renderscript allocation list',
230                         [],
231                         allocation_1_re +
232                         ['2:\n'
233                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
234                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
235                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
236                          '    Dimensions: \(64, 64, 0\)\n'
237                          '    Data Type: uchar4\n'
238                          '    Data Kind: RGBA Pixel',
239                          '7:\n'
240                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
241                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
242                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
243                          '    Dimensions: \(24, 0, 0\)\n'
244                          '    Data Type: short\n'
245                          '    Data Kind: User',
246                          '20:\n'
247                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
248                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
249                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
250                          '    Dimensions: \(24, 0, 0\)\n'
251                          '    Data Type: uchar\n'
252                          '    Data Kind: User',
253                          '21:\n'
254                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
255                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
256                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
257                          '    Dimensions: \(2, 6, 0\)\n'
258                          '    Data Type: uchar2\n'
259                          '    Data Kind: User',
260                          '22:\n'
261                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
262                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
263                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
264                          '    Dimensions: \(6, 0, 0\)\n'
265                          '    Data Type: uchar3\n'
266                          '    Data Kind: User',
267                          '23:\n'
268                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
269                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
270                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
271                          '    Dimensions: \(6, 0, 0\)\n'
272                          '    Data Type: uchar4\n'
273                          '    Data Kind: User',
274                          '24:\n'
275                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
276                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
277                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
278                          '    Dimensions: \(24, 0, 0\)\n'
279                          '    Data Type: ushort\n'
280                          '    Data Kind: User',
281                          '25:\n'
282                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
283                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
284                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
285                          '    Dimensions: \(12, 0, 0\)\n'
286                          '    Data Type: ushort2\n'
287                          '    Data Kind: User',
288                          '26:\n'
289                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
290                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
291                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
292                          '    Dimensions: \(1, 6, 0\)\n'
293                          '    Data Type: ushort3\n'
294                          '    Data Kind: User',
295                          '27:\n'
296                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
297                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
298                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
299                          '    Dimensions: \(6, 0, 0\)\n'
300                          '    Data Type: ushort4\n'
301                          '    Data Kind: User',
302                          '28:\n'
303                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
304                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
305                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
306                          '    Dimensions: \(24, 0, 0\)\n'
307                          '    Data Type: uint\n'
308                          '    Data Kind: User',
309                          '29:\n'
310                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
311                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
312                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
313                          '    Dimensions: \(12, 0, 0\)\n'
314                          '    Data Type: uint2\n'
315                          '    Data Kind: User',
316                          '30:\n'
317                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
318                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
319                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
320                          '    Dimensions: \(6, 0, 0\)\n'
321                          '    Data Type: uint3\n'
322                          '    Data Kind: User',
323                          '31:\n'
324                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
325                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
326                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
327                          '    Dimensions: \(1, 1, 6\)\n'
328                          '    Data Type: uint4\n'
329                          '    Data Kind: User',
330                          '32:\n'
331                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
332                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
333                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
334                          '    Dimensions: \(4, 3, 2\)\n'
335                          '    Data Type: ulong\n'
336                          '    Data Kind: User',
337                          '33:\n'
338                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
339                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
340                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
341                          '    Dimensions: \(12, 0, 0\)\n'
342                          '    Data Type: ulong2\n'
343                          '    Data Kind: User',
344                          '34:\n'
345                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
346                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
347                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
348                          '    Dimensions: \(6, 0, 0\)\n'
349                          '    Data Type: ulong3\n'
350                          '    Data Kind: User',
351                          '35:\n'
352                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
353                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
354                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
355                          '    Dimensions: \(6, 0, 0\)\n'
356                          '    Data Type: ulong4\n'
357                          '    Data Kind: User'
358                         ])
359
360    @wimpy
361    @ordered_test(4)
362    def test_continue_2(self):
363        self.try_command('breakpoint del 2',
364                         ['1 breakpoints deleted'])
365
366        # Hit third kernel
367        self.try_command('process continue',
368                         ['resuming',
369                          'stopped',
370                          'stop reason = breakpoint'])
371
372    @ordered_test(5)
373    def test_allocation_list_all3(self):
374        self.try_command('language renderscript allocation list',
375                         [],
376                         ['2:\n'
377                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
378                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
379                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
380                          '    Dimensions: \(64, 64, 0\)\n'
381                          '    Data Type: uchar4\n'
382                          '    Data Kind: RGBA Pixel',
383                          '7:\n'
384                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
385                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
386                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
387                          '    Dimensions: \(24, 0, 0\)\n'
388                          '    Data Type: short\n'
389                          '    Data Kind: User',
390                          '28:\n'
391                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
392                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
393                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
394                          '    Dimensions: \(24, 0, 0\)\n'
395                          '    Data Type: uint\n'
396                          '    Data Kind: User',
397                          '36:\n'
398                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
399                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
400                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
401                          '    Dimensions: \(24, 0, 0\)\n'
402                          '    Data Type: half\n'
403                          '    Data Kind: User',
404                          '37:\n'
405                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
406                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
407                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
408                          '    Dimensions: \(12, 0, 0\)\n'
409                          '    Data Type: half2\n'
410                          '    Data Kind: User',
411                          '38:\n'
412                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
413                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
414                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
415                          '    Dimensions: \(1, 6, 0\)\n'
416                          '    Data Type: half3\n'
417                          '    Data Kind: User',
418                          '39:\n'
419                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
420                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
421                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
422                          '    Dimensions: \(6, 0, 0\)\n'
423                          '    Data Type: half4\n'
424                          '    Data Kind: User',
425                          '40:\n'
426                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
427                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
428                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
429                          '    Dimensions: \(24, 0, 0\)\n'
430                          '    Data Type: float\n'
431                          '    Data Kind: User',
432                          '41:\n'
433                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
434                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
435                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
436                          '    Dimensions: \(12, 0, 0\)\n'
437                          '    Data Type: float2\n'
438                          '    Data Kind: User',
439                          '42:\n'
440                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
441                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
442                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
443                          '    Dimensions: \(6, 0, 0\)\n'
444                          '    Data Type: float3\n'
445                          '    Data Kind: User',
446                          '43:\n'
447                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
448                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
449                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
450                          '    Dimensions: \(3, 2, 0\)\n'
451                          '    Data Type: float4\n'
452                          '    Data Kind: User',
453                          '44:\n'
454                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
455                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
456                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
457                          '    Dimensions: \(24, 0, 0\)\n'
458                          '    Data Type: double\n'
459                          '    Data Kind: User',
460                          '45:\n'
461                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
462                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
463                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
464                          '    Dimensions: \(4, 1, 3\)\n'
465                          '    Data Type: double2\n'
466                          '    Data Kind: User',
467                          '46:\n'
468                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
469                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
470                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
471                          '    Dimensions: \(1, 2, 3\)\n'
472                          '    Data Type: double3\n'
473                          '    Data Kind: User',
474                          '47:\n'
475                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
476                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
477                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
478                          '    Dimensions: \(1, 2, 3\)\n'
479                          '    Data Type: double4\n'
480                          '    Data Kind: User'])
481
482    @wimpy
483    @ordered_test(6)
484    @java_only_test()
485    def test_allocation_list_all4(self):
486        self.try_command('breakpoint del 3',
487                         ['1 breakpoints deleted'])
488
489        # Hit last kernel
490        self.try_command('process continue',
491                         ['resuming',
492                          'stopped',
493                          'stop reason = breakpoint'])
494
495        self.try_command('language renderscript allocation list',
496                         [],
497                         ['2:\n'
498                          # Regex for non zero hex number
499                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
500                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
501                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
502                          '    Dimensions: \(64, 64, 0\)\n'
503                          '    Data Type: uchar4\n'
504                          '    Data Kind: RGBA Pixel',
505                          '7:\n'
506                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
507                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
508                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
509                          '    Dimensions: \(24, 0, 0\)\n'
510                          '    Data Type: short\n'
511                          '    Data Kind: User',
512                          '28:\n'
513                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
514                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
515                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
516                          '    Dimensions: \(24, 0, 0\)\n'
517                          '    Data Type: uint\n'
518                          '    Data Kind: User',
519                          '46:\n'
520                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
521                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
522                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
523                          '    Dimensions: \(1, 2, 3\)\n'
524                          '    Data Type: double3\n'
525                          '    Data Kind: User',
526                          '48:\n'
527                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
528                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
529                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
530                          '    Dimensions: \(24, 0, 0\)\n'
531                          '    Data Type: complexStruct\n'
532                          '    Data Kind: User',
533                          '49:\n'
534                          '    Context: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
535                          '    Address: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
536                          '    Data pointer: 0x0*[1-9a-fA-F][0-9a-fA-F]*\n'
537                          '    Dimensions: \(24, 0, 0\)\n'
538                          '    Data Type: complexStruct\n'
539                          '    Data Kind: User'])
540
541    @ordered_test(7)
542    @cpp_only_test()
543    def test_cpp_cleanup(self):
544        self.try_command('breakpoint delete 3', ['1 breakpoints deleted'])
545
546        self.try_command('process continue',
547                         ['exited with status = 0'])
548