Replies: 2 comments 1 reply
-
I think it's worth having a discussion about this, especially as it might impact v3 architecture. PRs could be a place to start, but a higher level discussion about how the pieces fit together might be a better first step. Would it be worth setting up a video call for that? |
Beta Was this translation helpful? Give feedback.
1 reply
-
I stumbled across this thread after reading an article about MSTest adding experimental NativeAOT support and learning that the plan is to release it under a closed source license. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Native AOT is a new runtime form-factor that provides some performance and deployment benefits, at the expense of compatibility with some existing .NET features.
One benefit of the restrictions is that compatibility is more predictable than previous incarnations of .NET AOT (like .NET Native). Ideally, that would mean extensive testing (including unit tests) would not be required.
However, there are two exceptions to the above: the .NET Runtime, and warning suppressions.
The .NET Runtime would like to run our unit tests on AOT for the simple reason that we're building AOT itself and we are testing the changes for AOT correctness. Unlike the vast majority of customers, most of our product bugs should be compiler bugs.
Second, if customer code is suppressing any warnings, it really should be tested. The compiler can't provide guarantees in that case.
To that end, I've been exploring AOT compatibility for an XUnit subset in the dotnet/runtime repo. Right now we've gone as far as an AOT-compatible xunit.assert fork. This seems to be a well-worn path as there are already a number of ifdefs for features in that code already. Eventually we'd also like to build an AOT-compatible adapter using source generation, as well as an AOT-compatible vstest-like runner.
My question is: how much of this is interesting to upstream into XUnit itself. Would the XUnit.Assert fork, for example, be something we should PR?
Beta Was this translation helpful? Give feedback.
All reactions