Tests | Manual Test "Set" Trait - #4071
Conversation
paulmedynski
left a comment
There was a problem hiding this comment.
Looks like Copilot found some bugs to address. I have a question about backwards compatibility with build.proj.
paulmedynski
left a comment
There was a problem hiding this comment.
I agree with the Copilot comments.
892b3de to
85da1f8
Compare
Clearing since my changes have been implemented. Waiting for author to reply before approving.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4071 +/- ##
==========================================
- Coverage 66.69% 64.05% -2.64%
==========================================
Files 284 280 -4
Lines 43238 66160 +22922
==========================================
+ Hits 28836 42380 +13544
- Misses 14402 23780 +9378
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
apoorvdeshmukh
left a comment
There was a problem hiding this comment.
@benrr101 Can you resolve the branch conflicts? I think this one is good to be merged.
52b0459
paulmedynski
left a comment
There was a problem hiding this comment.
Now that we're compiling everything regardless of "test set", I'm not too concerned which test set a test decides to belong to. We're running them all anyway. I feel like we're close to abolishing the test set concept entirely, and separating them into parallelizable chunks based on different criteria anyway.
|
/azp run |
|
Azure Pipelines successfully started running 2 pipeline(s). |
Co-authored-by: Paul Medynski <31868385+paulmedynski@users.noreply.github.com>
CI partitions the ManualTests assembly by the "Set" trait. build.proj builds a TestSetFilter of (Set=1|Set=2|Set=3|Set=AE) and ANDs it into the ManualTests filter, and the pipelines run testSets: [1, 2, 3]. IsolationLevelLeakTest was added before the Set trait requirement landed on main (dotnet#4071), so it carried no Set trait. After merging main, the three tests in this file silently stopped matching any CI leg's filter and were never executed -- the PR's own regression tests were producing a false green. Add [Trait("Set", "3")], matching every other class in SQL/TransactionTest (TransactionTest, TransactionEnlistmentTest, DistributedTransactionTest). Verified: - vstest --TestCaseFilter:"Set=3" now lists all three tests; "Set=1" correctly lists none. - All three pass locally against SQL Server 2022 (on-prem, TCP). - No interference when run alongside the other Set=3 transaction and connection-pool tests (19 passed, 1 skipped, 0 failed). Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: e54f2587-2955-4c93-9896-a35e73feb6e5
Description
This PR looks big, but it's actually really small. This updates the manual tests project to include all files in all builds, and moves the TestSet build property to a trait. Filtering of test sets can now be done via the filter command line argument.
Why is this good?
Build2.proj now forwards the TestSet parameter to the filter argument, combining it with other filters that were provided. Thus, no changes to the pipelines were necessary.
🤖
Codex did the batch update of the test files (though it applied changes to files that didn't have any tests, so I had to back those changes out).
Testing
Everything works locally, so it should be good in PR validation.