mirror of
https://github.com/VSadov/Satori.git
synced 2025-06-10 01:50:53 +09:00
[wasm][debugger] Add tests for indexing by object schema (#92268)
* Indexing with object: works. * Update expected line numbers.
This commit is contained in:
parent
d6ff46557e
commit
901f780b2e
2 changed files with 9 additions and 4 deletions
|
@ -585,7 +585,7 @@ namespace DebuggerTests
|
|||
Assert.Equal("Unable to evaluate element access 'f.idx0[2]': Cannot apply indexing with [] to a primitive object of type 'number'", res.Error["result"]?["description"]?.Value<string>());
|
||||
var exceptionDetailsStack = res.Error["exceptionDetails"]?["stackTrace"]?["callFrames"]?[0];
|
||||
Assert.Equal("DebuggerTests.EvaluateLocalsWithIndexingTests.EvaluateLocals", exceptionDetailsStack?["functionName"]?.Value<string>());
|
||||
Assert.Equal(556, exceptionDetailsStack?["lineNumber"]?.Value<int>());
|
||||
Assert.Equal(559, exceptionDetailsStack?["lineNumber"]?.Value<int>());
|
||||
Assert.Equal(12, exceptionDetailsStack?["columnNumber"]?.Value<int>());
|
||||
(_, res) = await EvaluateOnCallFrame(id, "f[1]", expect_ok: false );
|
||||
Assert.Equal( "Unable to evaluate element access 'f[1]': Cannot apply indexing with [] to an object of type 'DebuggerTests.EvaluateLocalsWithIndexingTests.TestEvaluate'", res.Error["result"]?["description"]?.Value<string>());
|
||||
|
@ -650,7 +650,7 @@ namespace DebuggerTests
|
|||
|
||||
[Fact]
|
||||
public async Task EvaluateObjectByNonIntLocals() => await CheckInspectLocalsAtBreakpointSite(
|
||||
"DebuggerTests.EvaluateLocalsWithIndexingTests", "EvaluateLocals", 12, "DebuggerTests.EvaluateLocalsWithIndexingTests.EvaluateLocals",
|
||||
"DebuggerTests.EvaluateLocalsWithIndexingTests", "EvaluateLocals", 13, "DebuggerTests.EvaluateLocalsWithIndexingTests.EvaluateLocals",
|
||||
"window.setTimeout(function() { invoke_static_method ('[debugger-test] DebuggerTests.EvaluateLocalsWithIndexingTests:EvaluateLocals'); })",
|
||||
wait_for_event_fn: async (pause_location) =>
|
||||
{
|
||||
|
@ -662,7 +662,8 @@ namespace DebuggerTests
|
|||
("f[shortString]", TBool(false)),
|
||||
("f[aFloat]", TNumber(1)),
|
||||
("f[aDouble]", TNumber(2)),
|
||||
("f[aDecimal]", TNumber(3)) // object
|
||||
("f[aDecimal]", TNumber(3)),
|
||||
("f[objIdx]", TNumber(123))
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -722,7 +723,7 @@ namespace DebuggerTests
|
|||
Assert.Equal("Unable to evaluate element access 'f.numList[\"a\" + 1]': Cannot index with an object of type 'string'", res.Error["result"]?["description"]?.Value<string>());
|
||||
var exceptionDetailsStack = res.Error["exceptionDetails"]?["stackTrace"]?["callFrames"]?[0];
|
||||
Assert.Equal("DebuggerTests.EvaluateLocalsWithIndexingTests.EvaluateLocals", exceptionDetailsStack?["functionName"]?.Value<string>());
|
||||
Assert.Equal(556, exceptionDetailsStack?["lineNumber"]?.Value<int>());
|
||||
Assert.Equal(559, exceptionDetailsStack?["lineNumber"]?.Value<int>());
|
||||
Assert.Equal(12, exceptionDetailsStack?["columnNumber"]?.Value<int>());
|
||||
});
|
||||
|
||||
|
|
|
@ -506,6 +506,8 @@ namespace DebuggerTests
|
|||
|
||||
public class EvaluateLocalsWithIndexingTests
|
||||
{
|
||||
public record Indexer(int index);
|
||||
|
||||
public class TestEvaluate
|
||||
{
|
||||
public List<int> numList;
|
||||
|
@ -529,6 +531,7 @@ namespace DebuggerTests
|
|||
public int this[double key] => (int)key;
|
||||
public int this[float key] => (int)key;
|
||||
public int this[decimal key] => (int)key;
|
||||
public int this[Indexer indexer] => indexer.index;
|
||||
|
||||
public void run()
|
||||
{
|
||||
|
@ -561,6 +564,7 @@ namespace DebuggerTests
|
|||
float aFloat = 1.23f;
|
||||
double aDouble = 2.34;
|
||||
decimal aDecimal = 3.34m;
|
||||
Indexer objIdx = new(index: 123);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue