4828af8245
This extends the skip list feature from step over to step into. On a step into we can pass a skipList, which contains locations that we do not want to stop at. Bug: chromium:1105765 Change-Id: I70a4ded3f6a7eada14f54ae9c2f994c155c7305b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2345224 Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/master@{#69376}
118 lines
7.9 KiB
Plaintext
118 lines
7.9 KiB
Plaintext
Tests stepping through wasm scripts by byte offsets
|
|
Setting up global instance variable
|
|
Got wasm script: wasm://wasm/befe41aa
|
|
{
|
|
columnNumber : 46
|
|
lineNumber : 0
|
|
scriptId : <scriptId>
|
|
}
|
|
Test with valid skip lists
|
|
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20
|
|
Test: Stepping over without skip list
|
|
Testing stepOver with skipList: []
|
|
Script wasm://wasm/befe41aa byte offset 48: Wasm opcode 0x04
|
|
Script wasm://wasm/befe41aa byte offset 50: Wasm opcode 0x20
|
|
Script wasm://wasm/befe41aa byte offset 52: Wasm opcode 0x41
|
|
Script wasm://wasm/befe41aa byte offset 54: Wasm opcode 0x6b
|
|
Script wasm://wasm/befe41aa byte offset 55: Wasm opcode 0x21
|
|
Script wasm://wasm/befe41aa byte offset 57: Wasm opcode 0x41
|
|
Script wasm://wasm/befe41aa byte offset 60: Wasm opcode 0x10
|
|
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c
|
|
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20
|
|
Test: Stepping over with skip list
|
|
Testing stepOver with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":48},"end":{"lineNumber":0,"columnNumber":50}},{"scriptId":"4","start":{"lineNumber":0,"columnNumber":60},"end":{"lineNumber":0,"columnNumber":62}}]
|
|
Script wasm://wasm/befe41aa byte offset 50: Wasm opcode 0x20
|
|
Script wasm://wasm/befe41aa byte offset 52: Wasm opcode 0x41
|
|
Script wasm://wasm/befe41aa byte offset 54: Wasm opcode 0x6b
|
|
Script wasm://wasm/befe41aa byte offset 55: Wasm opcode 0x21
|
|
Script wasm://wasm/befe41aa byte offset 57: Wasm opcode 0x41
|
|
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c
|
|
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20
|
|
Test: Stepping over start location is inclusive
|
|
Testing stepOver with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":48},"end":{"lineNumber":0,"columnNumber":61}}]
|
|
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c
|
|
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20
|
|
Test: Stepping over end location is exclusive
|
|
Testing stepOver with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":49},"end":{"lineNumber":0,"columnNumber":62}}]
|
|
Script wasm://wasm/befe41aa byte offset 48: Wasm opcode 0x04
|
|
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c
|
|
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20
|
|
Test: Stepping into without skip list
|
|
Testing stepInto with skipList: []
|
|
Script wasm://wasm/befe41aa byte offset 48: Wasm opcode 0x04
|
|
Script wasm://wasm/befe41aa byte offset 50: Wasm opcode 0x20
|
|
Script wasm://wasm/befe41aa byte offset 52: Wasm opcode 0x41
|
|
Script wasm://wasm/befe41aa byte offset 54: Wasm opcode 0x6b
|
|
Script wasm://wasm/befe41aa byte offset 55: Wasm opcode 0x21
|
|
Script wasm://wasm/befe41aa byte offset 57: Wasm opcode 0x41
|
|
Script wasm://wasm/befe41aa byte offset 60: Wasm opcode 0x10
|
|
Script wasm://wasm/befe41aa byte offset 39: Wasm opcode 0x01
|
|
Script wasm://wasm/befe41aa byte offset 40: Wasm opcode 0x01
|
|
Script wasm://wasm/befe41aa byte offset 41: Wasm opcode 0x0b
|
|
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c
|
|
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20
|
|
Test: Stepping into with skip list, while call itself is skipped
|
|
Testing stepInto with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":39},"end":{"lineNumber":0,"columnNumber":41}},{"scriptId":"4","start":{"lineNumber":0,"columnNumber":50},"end":{"lineNumber":0,"columnNumber":62}}]
|
|
Script wasm://wasm/befe41aa byte offset 48: Wasm opcode 0x04
|
|
Script wasm://wasm/befe41aa byte offset 41: Wasm opcode 0x0b
|
|
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c
|
|
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20
|
|
Test: Stepping into start location is inclusive
|
|
Testing stepInto with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":39},"end":{"lineNumber":0,"columnNumber":40}}]
|
|
Script wasm://wasm/befe41aa byte offset 48: Wasm opcode 0x04
|
|
Script wasm://wasm/befe41aa byte offset 50: Wasm opcode 0x20
|
|
Script wasm://wasm/befe41aa byte offset 52: Wasm opcode 0x41
|
|
Script wasm://wasm/befe41aa byte offset 54: Wasm opcode 0x6b
|
|
Script wasm://wasm/befe41aa byte offset 55: Wasm opcode 0x21
|
|
Script wasm://wasm/befe41aa byte offset 57: Wasm opcode 0x41
|
|
Script wasm://wasm/befe41aa byte offset 60: Wasm opcode 0x10
|
|
Script wasm://wasm/befe41aa byte offset 40: Wasm opcode 0x01
|
|
Script wasm://wasm/befe41aa byte offset 41: Wasm opcode 0x0b
|
|
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c
|
|
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20
|
|
Test: Stepping into end location is exclusive
|
|
Testing stepInto with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":38},"end":{"lineNumber":0,"columnNumber":41}}]
|
|
Script wasm://wasm/befe41aa byte offset 48: Wasm opcode 0x04
|
|
Script wasm://wasm/befe41aa byte offset 50: Wasm opcode 0x20
|
|
Script wasm://wasm/befe41aa byte offset 52: Wasm opcode 0x41
|
|
Script wasm://wasm/befe41aa byte offset 54: Wasm opcode 0x6b
|
|
Script wasm://wasm/befe41aa byte offset 55: Wasm opcode 0x21
|
|
Script wasm://wasm/befe41aa byte offset 57: Wasm opcode 0x41
|
|
Script wasm://wasm/befe41aa byte offset 60: Wasm opcode 0x10
|
|
Script wasm://wasm/befe41aa byte offset 41: Wasm opcode 0x0b
|
|
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c
|
|
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20
|
|
Test with invalid skip lists
|
|
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20
|
|
Test: start position has invalid column number
|
|
Testing stepOver with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":-1},"end":{"lineNumber":0,"columnNumber":62}}]
|
|
Position missing 'column' or 'column' < 0.
|
|
Test: start position has invalid line number
|
|
Testing stepOver with skipList: [{"scriptId":"4","start":{"lineNumber":-1,"columnNumber":0},"end":{"lineNumber":0,"columnNumber":62}}]
|
|
Position missing 'line' or 'line' < 0.
|
|
Test: end position smaller than start position
|
|
Testing stepOver with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":62},"end":{"lineNumber":0,"columnNumber":48}}]
|
|
Input positions array is not sorted or contains duplicate values.
|
|
Test: skip list is not maximally merged
|
|
Testing stepOver with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":48},"end":{"lineNumber":0,"columnNumber":50}},{"scriptId":"4","start":{"lineNumber":0,"columnNumber":50},"end":{"lineNumber":0,"columnNumber":62}}]
|
|
Input positions array is not sorted or contains duplicate values.
|
|
Test: skip list is not sorted
|
|
Testing stepOver with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":50},"end":{"lineNumber":0,"columnNumber":62}},{"scriptId":"4","start":{"lineNumber":0,"columnNumber":48},"end":{"lineNumber":0,"columnNumber":62}}]
|
|
Input positions array is not sorted or contains duplicate values.
|
|
Test: start position has invalid column number
|
|
Testing stepInto with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":-1},"end":{"lineNumber":0,"columnNumber":62}}]
|
|
Position missing 'column' or 'column' < 0.
|
|
Test: start position has invalid line number
|
|
Testing stepInto with skipList: [{"scriptId":"4","start":{"lineNumber":-1,"columnNumber":0},"end":{"lineNumber":0,"columnNumber":62}}]
|
|
Position missing 'line' or 'line' < 0.
|
|
Test: end position smaller than start position
|
|
Testing stepInto with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":62},"end":{"lineNumber":0,"columnNumber":48}}]
|
|
Input positions array is not sorted or contains duplicate values.
|
|
Test: skip list is not maximally merged
|
|
Testing stepInto with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":48},"end":{"lineNumber":0,"columnNumber":50}},{"scriptId":"4","start":{"lineNumber":0,"columnNumber":50},"end":{"lineNumber":0,"columnNumber":62}}]
|
|
Input positions array is not sorted or contains duplicate values.
|
|
Test: skip list is not sorted
|
|
Testing stepInto with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":50},"end":{"lineNumber":0,"columnNumber":62}},{"scriptId":"4","start":{"lineNumber":0,"columnNumber":48},"end":{"lineNumber":0,"columnNumber":62}}]
|
|
Input positions array is not sorted or contains duplicate values.
|
|
Finished!
|