test: split test-fs-cp.js#59408
Conversation
This test previously squeezed 70+ test cases into one single file and has been constantly crashing on Windows with exit code 3221226505 and no stack trace. As it is already marked as flaky there is no way to understand which test case is failing and the Windows CI was constantly orange. This patch splits the test cases into different files so it's easier to find out which case is exactly failing and to be skipped.
|
Windows CI to figure out who is crashing: https://ci.nodejs.org/job/node-test-commit-windows-fanned/72339/ |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #59408 +/- ##
==========================================
+ Coverage 89.79% 89.90% +0.11%
==========================================
Files 653 655 +2
Lines 192394 192829 +435
Branches 37650 37793 +143
==========================================
+ Hits 172753 173369 +616
+ Misses 12270 12013 -257
- Partials 7371 7447 +76 🚀 New features to boost your workflow:
|
|
7 split test cases have failed on Windows. I noticed that there have been quite a lot of changes to fs.cpSync even after the test has been marked as flaky #56799 - for the purpose of this PR, I will just mark them as flaky. But it deserves more investigation because the tests could've already been broken by the recent changes and they were just ignored due to the flaky status. cc @dario-piotrowicz See failuresDetails |
|
FWIW in the 7 failed test cases, I can reproduce the 3 involving errors locally, I think they are just test cases being broken by recent changes without being noticed. The ones related to |
|
Thank you for doing this!!! Sorely needed and it's been on my todo list for a while but just hadn't been able to find time. One suggestion that hopefully might make this easier... let's split this into two PRs... One PR containing all of the separated out tests that are not problematic at all, that we can hopefully get landed easily, and another PR that just separates the tests that are known to be problematic. That should (hopefully) make it at least a little bit easier to focus on just the tests that highlight problems. |
|
@joyeecheung ... one thing to point out on some of the cp-sync errors. I noticed that in manual testing that at least a couple of the error messages themselves were incorrect due to argument order on the error construction being reversed but the tests were missing it entirely because the tests weren't looking at the error messages, only the codes. It was specifically cpSync that I saw this on but, again, due to just pure lack of available time, I haven't had a moment to correct it yet. |
Are you referring to one PR or one file? I don't think it's wise to continue keeping them in one file, that just repeats the mistake of keeping them in a monolith. This PR just splits all of them and marked the ones that have failed as flaky, if it's good enough for the Windows CI to not be red we can just go from there - people who have time to fix the individual flakes can just start fixing them in follow up PRs. If there are any more failures we can just mark individual test cases as flaky without disabling others. But if we keep them in one file, there will be a lot more churn than just adding an entry to the status file if there are still flakes in the monolith. |
This test previously squeezed 70+ test cases into one single file and has been constantly crashing on Windows with exit code 3221226505 and no stack trace. As it is already marked as flaky there is no way to understand which test case is failing and the Windows CI was constantly orange. This patch splits the test cases into different files so it's easier to find out which case is exactly failing and to be skipped.
Refs: #56794