1
0
Fork 0
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:
Ilona Tomkowicz 2023-09-20 17:45:01 +02:00 committed by GitHub
parent d6ff46557e
commit 901f780b2e
Signed by: github
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 4 deletions

View file

@ -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>());
});

View file

@ -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);
}
}