Test case with a function read from a variable (#6986)

Test checking that if the function is read from variable, it does not have the method pointer associated with it.
This commit is contained in:
Dmitry Bushev 2023-06-09 22:53:02 +01:00 committed by GitHub
parent 1ce3505e5b
commit b2c1f97437
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1049,6 +1049,104 @@ class RuntimeServerTest
) )
} }
it should "send method pointer updates of partially applied static methods without application" in {
pending
val contextId = UUID.randomUUID()
val requestId = UUID.randomUUID()
val moduleName = "Enso_Test.Test.Main"
val metadata = new Metadata
val id_x1_1 = metadata.addItem(18, 7, "aa")
val id_x1_2 = metadata.addItem(37, 4, "ab")
val id_x1 = metadata.addItem(51, 8, "ac")
val code =
"""main =
| x1_1 = T.func1
| x1_2 = x1_1
| x1 = x1_2 1 2
| x1
|
|type T
| A
|
| func1 x y = x + y
|""".stripMargin.linesIterator.mkString("\n")
val contents = metadata.appendToCode(code)
val mainFile = context.writeMain(contents)
// create context
context.send(Api.Request(requestId, Api.CreateContextRequest(contextId)))
context.receive shouldEqual Some(
Api.Response(requestId, Api.CreateContextResponse(contextId))
)
// open file
context.send(
Api.Request(Api.OpenFileNotification(mainFile, contents))
)
context.receiveNone shouldEqual None
// push main
context.send(
Api.Request(
requestId,
Api.PushContextRequest(
contextId,
Api.StackItem.ExplicitCall(
Api.MethodPointer(moduleName, moduleName, "main"),
None,
Vector()
)
)
)
)
context.receiveN(6) should contain theSameElementsAs Seq(
Api.Response(Api.BackgroundJobsStartedNotification()),
Api.Response(requestId, Api.PushContextResponse(contextId)),
TestMessages.update(
contextId,
id_x1_1,
ConstantsGen.FUNCTION_BUILTIN,
Api.MethodCall(
Api.MethodPointer(
"Enso_Test.Test.Main",
"Enso_Test.Test.Main.T",
"func1"
),
Vector(0, 1)
)
),
TestMessages.update(
contextId,
id_x1_2,
ConstantsGen.FUNCTION_BUILTIN,
// the method call is missing
Api.MethodCall(
Api.MethodPointer(
"Enso_Test.Test.Main",
"Enso_Test.Test.Main.T",
"func1"
),
Vector(1, 2)
)
),
TestMessages.update(
contextId,
id_x1,
ConstantsGen.INTEGER_BUILTIN,
Api.MethodCall(
Api.MethodPointer(
"Enso_Test.Test.Main",
"Enso_Test.Test.Main.T",
"func1"
)
)
),
context.executionComplete(contextId)
)
}
it should "send method pointer updates of partially applied static methods defined as extensions on type" in { it should "send method pointer updates of partially applied static methods defined as extensions on type" in {
val contextId = UUID.randomUUID() val contextId = UUID.randomUUID()
val requestId = UUID.randomUUID() val requestId = UUID.randomUUID()