Add specific test coverage for activation #3697
Merged
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.
This update adds specific test coverage for component and factory activation. While activation is tested indirectly in various ways, having a specific test suite makes it clear that this is about testing activation itself and lets us provide targeted tests for edge cases not otherwise covered by other test scenarios in a meaningful way. Some specifics:
The only actual behavior change here is that the activation support in
windows-coreis changed to only preserve theHRESULTreturned byRoGetActivationFactoryas apposed to whatever COM error object is currently on the thread. The logic here is thatRoGetActivationFactorydoes not produce a COM error object but merely returns anHRESULTso this is unnecessary. I am also trying to move away from the overuse of COM error objects as much as possible. I originally copied this behavior from C++/WinRT which assumes COM error objects everywhere. I implemented it that way because that is the norm for WinRT.Specific activation success and failure tests are included with deliberate coverage of the search path fallback logic.
Specific tests for the
factoryhelper function are also provided. Previously this was only "tested" via thesample_consentsample crate.