Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge CoreMangLib, Exceptions and Interop folders #91901

Merged
merged 16 commits into from
Oct 12, 2023

Conversation

trylek
Copy link
Member

@trylek trylek commented Sep 11, 2023

This change converts tests in the CoreMangLib, Exceptions and Interop to the merged model. As next step I plan to work on review feedback to my previous PR merging baseservices and on merging the remaining tests.

Thanks

Tomas

@trylek trylek added this to the 9.0.0 milestone Sep 11, 2023
@ghost ghost assigned trylek Sep 11, 2023
@ghost
Copy link

ghost commented Sep 11, 2023

Tagging subscribers to this area: @hoyosjs
See info in area-owners.md if you want to be subscribed.

Issue Details

This change converts tests in the CoreMangLib, Exceptions and Interop to the merged model. As next step I plan to work on review feedback to my previous PR merging baseservices and on merging the remaining tests.

Thanks

Tomas

Author: trylek
Assignees: -
Labels:

area-Infrastructure-coreclr

Milestone: 9.0.0

@trylek
Copy link
Member Author

trylek commented Sep 11, 2023

/cc @ivsiazsa @dotnet/runtime-infrastructure

@@ -1,5 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- Needed for mechanical merging of all remaining tests, this particular project may not actually need process isolation -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<OutputType>exe</OutputType>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like the lowercase 'exe' slipped through the scan.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(though, now that I think about it, I guess that's where ReqProcIso ends up anyway, though I think we automatically set it (kind of hacky in Dir.B.targets since it is after the SDK has had a look at it))

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you're right that we shouldn't keep obsolete OutputType=exe properties on most tests except the tiny subset opting out of the merged wrappers for special reasons like the half a dozen tests under baseservices that do weird things. I have experimentally removed all these annotations from the interop tests and I'm retesting the change locally, I'll be happy to update the PR by removing those if it turns out to be working.

MonoAPI.Tests.MonoAPISupport.Setup();
int result;
result = test_0_setjmp_exn_handler ();
Assert.Equal(0, result);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suspect that this (and the others) end up being fine (mono test, int equality), but I don't know for sure that these don't end up being run in some configuration that breaks. But hopefully outerloop (and extra platforms?) is good enough to check that?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All I can say to this now is that in general Mono tests are supported by the merged test infrastructure, @jkoritzinsky went to great lengths to make that fully functional and IIRC Mono people were happy about his implementation in terms of efficiency and cleanness.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I wasn't clear. I just don't know if this test will end up running in some other configuration (from a quick look, I don't see it being excluded from other runtimes). However, I meant it more as a "heads up" in case something breaks, not an objection to the PR.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we have concerns, we can use the SkipOnCoreClrAttribute on the test and it will automatically be skipped on non-Mono platforms. Tbh I think that's a better solution than suppressing the test in issues.targets.

Comment on lines -36 to -40
return 100;
} catch (Exception e){
Console.WriteLine($"Test Failure: {e}");
return 101;
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this cleanup that we get!

This is needed so that they don't copy their outputs to the merged
wrapper folder, triggering errors in Mono builds because some output
file names overlap.

Thanks

Tomas
@trylek trylek force-pushed the MergeCoreMangLibExceptionsInterop branch from 011550e to f930ffd Compare October 11, 2023 21:16
@trylek
Copy link
Member Author

trylek commented Oct 11, 2023

/azp run runtime-coreclr outerloop

@trylek
Copy link
Member Author

trylek commented Oct 11, 2023

/azp run runtime-extra-platforms

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

1 similar comment
@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants