@@ -3,7 +3,7 @@ import { Breakpoint } from '../JerryBreakpoints';
3
3
import { JerryDebugProtocolHandler } from '../JerryProtocolHandler' ;
4
4
import * as assert from 'assert' ;
5
5
import * as sinon from 'sinon' ;
6
- import { stringToCesu8 } from '../JerryUtils' ;
6
+ import { stringToCesu8 , setUint32 } from '../JerryUtils' ;
7
7
8
8
// utility function
9
9
function encodeArray ( byte : number , str : string ) {
@@ -15,6 +15,16 @@ function encodeArray(byte: number, str: string) {
15
15
return array ;
16
16
}
17
17
18
+ // Extends configArray with JERRY_DEBUGGER_VERSION.
19
+ //
20
+ // configArray data: [messageType, byteOrder, maxMessageSize, cpointerSize]
21
+ function createConfiguration ( configArray ) {
22
+ let version = new Uint8Array ( 4 ) ;
23
+ setUint32 ( Boolean ( configArray [ 1 ] ) , version , 0 , SP . JERRY_DEBUGGER_VERSION ) ;
24
+ configArray . splice ( 2 , 0 , ...version ) ;
25
+ return Uint8Array . from ( configArray ) ;
26
+ }
27
+
18
28
function setupHaltedProtocolHandler ( isThereBreakpointHit : boolean = false ) {
19
29
const debugClient = {
20
30
send : sinon . spy ( ) ,
@@ -47,35 +57,35 @@ suite('JerryProtocolHandler', () => {
47
57
48
58
test ( 'aborts when message too short' , ( ) => {
49
59
delegate . onError . resetHistory ( ) ;
50
- const array = Uint8Array . from ( [ 1 , 2 , 3 , 4 ] ) ;
60
+ const array = Uint8Array . from ( [ SP . SERVER . JERRY_DEBUGGER_CONFIGURATION , 2 , 3 , 4 ] ) ;
51
61
handler . onConfiguration ( array ) ;
52
62
assert ( delegate . onError . calledOnce ) ;
53
63
} ) ;
54
64
55
65
test ( 'allows otherwise valid message to be too long' , ( ) => {
56
66
delegate . onError . resetHistory ( ) ;
57
- const array = Uint8Array . from ( [ 0 , 200 , 4 , 1 , SP . JERRY_DEBUGGER_VERSION , 0 ] ) ;
67
+ const array = createConfiguration ( [ SP . SERVER . JERRY_DEBUGGER_CONFIGURATION , 1 , 200 , 4 , 0 ] ) ;
58
68
handler . onConfiguration ( array ) ;
59
69
assert ( delegate . onError . notCalled ) ;
60
70
} ) ;
61
71
62
72
test ( 'aborts when compressed pointer wrong size' , ( ) => {
63
73
delegate . onError . resetHistory ( ) ;
64
- const array = Uint8Array . from ( [ 0 , 200 , 6 , 1 , SP . JERRY_DEBUGGER_VERSION ] ) ;
74
+ const array = createConfiguration ( [ SP . SERVER . JERRY_DEBUGGER_CONFIGURATION , 1 , 200 , 6 ] ) ;
65
75
handler . onConfiguration ( array ) ;
66
76
assert ( delegate . onError . calledOnce ) ;
67
77
} ) ;
68
78
69
79
test ( 'aborts when version unexpected' , ( ) => {
70
80
delegate . onError . resetHistory ( ) ;
71
- const array = Uint8Array . from ( [ 0 , 200 , 4 , 1 , 0 ] ) ;
81
+ const array = Uint8Array . from ( [ SP . SERVER . JERRY_DEBUGGER_CONFIGURATION , 1 , 0 , 0 , 0 , 0 , 200 , 4 ] ) ;
72
82
handler . onConfiguration ( array ) ;
73
83
assert ( delegate . onError . calledOnce ) ;
74
84
} ) ;
75
85
76
86
test ( 'succeeds when everything is normal' , ( ) => {
77
87
delegate . onError . resetHistory ( ) ;
78
- const array = Uint8Array . from ( [ 0 , 200 , 4 , 1 , SP . JERRY_DEBUGGER_VERSION ] ) ;
88
+ const array = createConfiguration ( [ SP . SERVER . JERRY_DEBUGGER_CONFIGURATION , 1 , 200 , 4 ] ) ;
79
89
handler . onConfiguration ( array ) ;
80
90
assert ( delegate . onError . notCalled ) ;
81
91
} ) ;
@@ -223,7 +233,7 @@ suite('JerryProtocolHandler', () => {
223
233
} ;
224
234
const handler = new JerryDebugProtocolHandler ( delegate ) ;
225
235
226
- let array = Uint8Array . from ( [ 0 , 128 , 2 , 1 , SP . JERRY_DEBUGGER_VERSION ] ) ;
236
+ let array = createConfiguration ( [ SP . SERVER . JERRY_DEBUGGER_CONFIGURATION , 1 , 128 , 2 ] ) ;
227
237
handler . onConfiguration ( array ) ;
228
238
array = encodeArray ( SP . SERVER . JERRY_DEBUGGER_SOURCE_CODE_END , 'code' ) ;
229
239
handler . onSourceCode ( array ) ;
@@ -250,7 +260,7 @@ suite('JerryProtocolHandler', () => {
250
260
251
261
test ( 'calls delegate function immediately on END event' , ( ) => {
252
262
delegate . onBacktrace . resetHistory ( ) ;
253
- let array = Uint8Array . from ( [ 0 , 128 , 2 , 1 , SP . JERRY_DEBUGGER_VERSION ] ) ;
263
+ let array = createConfiguration ( [ SP . SERVER . JERRY_DEBUGGER_CONFIGURATION , 1 , 128 , 2 ] ) ;
254
264
handler . onConfiguration ( array ) ;
255
265
array = encodeArray ( SP . SERVER . JERRY_DEBUGGER_SOURCE_CODE_END , 'code' ) ;
256
266
handler . onSourceCode ( array ) ;
@@ -275,7 +285,7 @@ suite('JerryProtocolHandler', () => {
275
285
276
286
test ( 'calls delegate function only on END event' , ( ) => {
277
287
delegate . onBacktrace . resetHistory ( ) ;
278
- let array = Uint8Array . from ( [ 0 , 128 , 2 , 1 , SP . JERRY_DEBUGGER_VERSION ] ) ;
288
+ let array = createConfiguration ( [ SP . SERVER . JERRY_DEBUGGER_CONFIGURATION , 1 , 128 , 2 ] ) ;
279
289
handler . onConfiguration ( array ) ;
280
290
array = encodeArray ( SP . SERVER . JERRY_DEBUGGER_SOURCE_CODE_END , 'code' ) ;
281
291
handler . onSourceCode ( array ) ;
@@ -361,7 +371,7 @@ suite('JerryProtocolHandler', () => {
361
371
362
372
test ( 'aborts when unhandled message sent' , ( ) => {
363
373
delegate . onError . resetHistory ( ) ;
364
- const array = Uint8Array . from ( [ SP . SERVER . JERRY_DEBUGGER_CONFIGURATION , 200 , 4 , 1 , 5 ] ) ;
374
+ const array = createConfiguration ( [ SP . SERVER . JERRY_DEBUGGER_CONFIGURATION , 1 , 200 , 4 ] ) ;
365
375
handler . onMessage ( array ) ;
366
376
assert ( delegate . onError . notCalled ) ;
367
377
array [ 0 ] = 255 ;
@@ -495,7 +505,7 @@ suite('JerryProtocolHandler', () => {
495
505
496
506
test ( 'throws on line w/o breakpoint, succeeds on line w/ breakpoint' , ( ) => {
497
507
const handler = new JerryDebugProtocolHandler ( { } ) ;
498
- let array = Uint8Array . from ( [ 0 , 128 , 2 , 1 , 1 ] ) ;
508
+ let array = createConfiguration ( [ SP . SERVER . JERRY_DEBUGGER_CONFIGURATION , 1 , 128 , 2 ] ) ;
499
509
handler . onConfiguration ( array ) ;
500
510
501
511
array = encodeArray ( SP . SERVER . JERRY_DEBUGGER_SOURCE_CODE_END , 'code' ) ;
@@ -754,7 +764,7 @@ suite('JerryProtocolHandler', () => {
754
764
const handler = new JerryDebugProtocolHandler ( { } ) ;
755
765
handler . debuggerClient = debugClient as any ;
756
766
757
- let array = Uint8Array . from ( [ 0 , 128 , 2 , 1 , 1 ] ) ;
767
+ let array = createConfiguration ( [ SP . SERVER . JERRY_DEBUGGER_CONFIGURATION , 1 , 128 , 2 ] ) ;
758
768
handler . onConfiguration ( array ) ;
759
769
array = encodeArray ( SP . SERVER . JERRY_DEBUGGER_SOURCE_CODE_END , 'code' ) ;
760
770
handler . onSourceCode ( array ) ;
0 commit comments