Conversation
dougbu
left a comment
There was a problem hiding this comment.
And, yes, the new SDK busted component tests again. Well done❕
|
Converted to draft so it isn't merged unintentionally. |
|
cc/ @pavelsavara |
|
@BrennanConroy are you thinking there's a fix for our components pipeline in the newer SDK❔ |
|
I have no idea, but it's worth trying |
|
@lewing Any ideas why an SDK update would be causing test failures related to DateTime with Blazor-Wasm? |
|
This is blocking #41317. |
We have an offline thread with the runtime folks, and are working on a resolution. |
|
Current analysis seems to point to trimming issues. The test passes in Debug but fails in Release. A difference is that the app is trimmed in release. Can someone from the Blazor or mono team find the root cause with this new information? |
|
Did some local investigation and it seems that typing the value has no effect on the bound field. expected = new DateTime(1980, 1, 1);
target.SendKeys(Keys.Control + "a"); // select all
target.SendKeys("01/01/1980 00:00:00\t");
Assert.Equal(expected, DateTime.Parse(target.GetAttribute("value"), CultureInfo.InvariantCulture)); // SUCCEEDS
Assert.Equal(expected, DateTime.Parse(boundValue.Text, CultureInfo.InvariantCulture)); // FAILS
Assert.Equal(expected, DateTime.Parse(mirrorValue.GetAttribute("value"), CultureInfo.InvariantCulture)); // FAILS |
|
@vitek-karas this appears to be trimming related with the linker bump. @sebastienros verified that Debug fails with trimming and Release works without it. @TanayParikh can you point us to where the bind code lives? |
|
@dougbu Now that the root cause has been identified, can we just temporarily quarantine the failing tests and let the SDK update go through? This is blocking other updates. |
|
@dougbu I can help with this one and do the quarantining if you want. |
|
Thanks @sebastienros❕ This seems like a good idea and I'm focused on the |
|
I'm trying to investigate the test failure - but so far I burnt several hours just to build the repo... unsuccessfully for now. |
|
@vitek-karas I'm hoping someone has the information you need at hand. More generally, we'll be interested in any problems you ran into building this repository. For example, are you hitting gaps in https://github.com/dotnet/aspnetcore/blob/main/docs/BuildFromSource.md❔ |
|
Re problems making the repo build: Lastly - I was trying this on Windows and Linux WSL. The WSL seems to cause issues for the Selenium based tests - I think I installed everything per the doc (but I could be wrong) and the Selenium tests were still failing for me. I guess there's a bit of a weird dichotomy to the document - it starts explaining git in relative detail. But then the section on installing pre-reqs is often very short - especially nodejs which is basically just a link. I like that at least on Windows Java can be installed by a script - that helps a lot. Would be nice to have the same for Linux. Very last minor nit: I use PowerShell even on Linux, but the PS scripts in the repo fail in weird ways when used on Linux (didn't investigate why). For example the P.S.: I find it "funny" that the repo requires two competing stacks to build (NodeJS and Java). Maybe a short sentence on what they're used for? |
|
So I made some progress in investigating the failure. It seems there's a bug in What I don't understand is why the SDK/trimmer update triggers the bug. I can repro it without trimming, just setting It's possible that there's something else going on in test which hides this without trimming - not sure as I can't actually run the test locally yet. The repro in the runtime bug dotnet/runtime#68651 is me reverse engineering the IL diffs from Sebastien. I don't know what is the exact call which the test will do. |
|
I checked the IL before and after the SDK change and while it's different, the end result should be the same, in both cases the property doesn't return |
|
Latest Windows attempt do build the repo: running No idea what I'm doing wrong :-( |
|
@vitek-karas that last error is an indication your VS installation doesn't have everything the build needs for the native projects. Using |
Expect that this will re-introduce component-e2e test failures, which we can use this PR to investigate
CC @SteveSandersonMS @TanayParikh