Merged
Conversation
82c5072 to
e84fca4
Compare
fb87bf1 to
4a5df50
Compare
a61c388 to
e19534b
Compare
c2c72f1 to
a5a3cc9
Compare
321778c to
f4b4eb5
Compare
40 tasks
ad4f6f2 to
f3f10cd
Compare
f3f10cd to
1ddfdf5
Compare
Merged
Member
Author
|
/rebase |
74fc520 to
51456c4
Compare
jfversluis
approved these changes
Sep 22, 2023
mattleibow
approved these changes
Sep 22, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of Change
Enables the Controls projects device tests for Mac Catalyst. A couple of things to note:
How These Tests Get Executed / Good To Know
Because we run the tests for Controls per category, that also means the test results are divided as such. On top of that, the Windows app knows two variations: packaged (distributed through an MSIX typically) and unpackaged (more traditional exe + dlls). Because of this combination the flow of tests is a bit different than the rest.
Because tests are ran by category, each test should be in a category. Tests that are not in a category will be ran with each test run.
windows.cakescript is used for all projects so also Core, Graphics, etc. and only this project, Controls, needs special treatment. Therefore there is some logic added in the Cake script to differentiate between Controls and the rest. To this end the Cake script has a variableisControlsProjectTestRunthat checks if the project to be tested ends withControls.DeviceTests.csproj.{category count}the test runner is now started and the loop count is upped for each one. Each loop, for a packaged app, has a 10 second timeout. This is arbitrary and seems good enough for now. This is because packaged apps can only be started through PowerShell and going through Cake, to cmd, to PowerShell to a deployed app it seems impossible to block the thread to wait on it. Unpackaged apps do block the thread and run sequentially. To support all this there is a dedicatedControlsHeadlessTestRunnerin the Windows test runner that is only used for the Controls project when running headless.TestResults-*.xmlfiles and do an XPath query to see if there is a failed count of > 0. If there is, we throw an exception from the Cake script to fail the pipeline.Issues Fixed
Related to #11236