Skip to content

[Mono]: Marshaling structs using explicit layout including strings not supported on Mono. #65695

@lateralusX

Description

@lateralusX

Description

Mono runtime currently fails to execute the following CoreCLR runtime tests:

Interop/StructMarshalling/ReversePInvoke/MarshalExpStruct/DelegatePInvoke/DelegatePInvokeTest
Interop/StructMarshalling/ReversePInvoke/MarshalExpStruct/ReversePInvokeManaged/ReversePInvokeTest

These tests fails since Mono marshals structs using explicit layout as blitable types, meaning no marshaling is done if struct includes types that needs specific marshaling logic, like strings.

These tests have been marked as not supported on none Windows platforms have not been previously run on Mono. Issue detected when enabling CoreCLR runtime tests running on Mono Windows, #64281. As part of that PR, the tests have been disabled on Mono and marked with this issue for future tracking.

Reproduction Steps

Build and run individual runtime tests on Windows Mono as described here, https://github.com/dotnet/runtime/blob/main/docs/workflow/testing/mono/testing.md

Expected behavior

Following tests should pass:

Interop/StructMarshalling/ReversePInvoke/MarshalExpStruct/DelegatePInvoke/DelegatePInvokeTest
Interop/StructMarshalling/ReversePInvoke/MarshalExpStruct/ReversePInvokeManaged/ReversePInvokeTest

Actual behavior

Following tests fails and have been disabled due to this issue:

Interop/StructMarshalling/ReversePInvoke/MarshalExpStruct/DelegatePInvoke/DelegatePInvokeTest
Interop/StructMarshalling/ReversePInvoke/MarshalExpStruct/ReversePInvokeManaged/ReversePInvokeTest

Regression?

No, this has never worked on Mono.

Known Workarounds

No response

Configuration

No response

Other information

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions