-
Notifications
You must be signed in to change notification settings - Fork 150
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: get Jest green #974
fix: get Jest green #974
Conversation
@Trott this might be something you can merge |
Codecov ReportPatch and project coverage have no change.
Additional details and impacted files@@ Coverage Diff @@
## main #974 +/- ##
=======================================
Coverage 96.44% 96.44%
=======================================
Files 28 28
Lines 2139 2139
=======================================
Hits 2063 2063
Misses 76 76 ☔ View full report in Codecov by Sentry. |
Testing it on Jenkins here: https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/3256/ |
timeouts and |
AIX refuses to run because of the wrong arch type. I'm guessing (but only guessing) that has to do with compiling core-js. I suppose we could skip AIX for jest. Or maybe there's a way to run tests but skipping the ones that need core-js? Might the ENOSPC issue sorta kinda be arguably legitimate? When I test locally, the whole jest checkout area is over a gigabyte. While ideally that wouldn't be a problem, these machines are shared and all that..... Ping @nodejs/build |
It appears that's not due to core-js but because yarn expects to run on little-endian machines only. That's surprising to me, but I can see that the other modules that require "yarn" skip big-endian machines. (Or maybe I'm reversing big-endian and little-endian but you get the idea.) I'll leave a suggestion. |
Wait, no suggestion needed since it already is set to skip those architectures!
I guess my configuration for the test run somehow bypassed that. Let me do a full-blown build so we can see it being skipped and see if it's green in the other places. https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/3257/ |
One space failure and one timeout failure, but otherwise, jest passes. Landing (although I might run the failed GitHub Action a few times hoping it passes, but that's not jest's problem). |
GitHub Action passed too. Thanks, @SimenB! |
Thanks again @Trott! It might make sense to try to run a subset of tests, as timing out after half an hour is quite bad 🤔 |
@Trott Some context for that: To ensure reproducibility yarn@>=2 uses libzip and zlib compiled to WASM by Emscripten which doesn't have big-endian support enabled by default. |
Checklist
npm test
passeshere
Ref #959.
I've gone through CITGM smoker builds from 3220 to 3228 (at the time of writing, the last completed run) and checked them all for failures with Jest.
punycode
deprecation, which will be fixed when we upgrade JSDOM to the latest (this is a breaking change, but I'll start landing those this weekend or next week)fedora-last-latest-x64
,fedora-latest-x64
,rhel8-x64
anddebian10-x64
.no space left on device
forubuntu1804-64
punycode
deprecation andno space left on device
pino
fastify
fedora-last-latest-x64
,rhel8-x64
anddebian10-x64
pino
fastify
Based on those I think there are 4 kinds of errors
punycode
. This is addressed by upgrading JSDOM and patchingpsl
(which has already landed)no space left on device
- I don't think Jest can do anything about that?Number 4 is where this PR comes in - I'd like to figure out what we can do (I'll dig into the 18.x error later). I think there's 3 options
I don't think number 1 is the way to go as, from what I can tell, Jest is only running on those 5 platforms 😅 But maybe if we only run on e.g. Ubuntu (and its disk space issues are sorted) that's good enough for Jest, and it'd still detect issues. Mac and Windows are already skipped, and I don't think wider coverage of Linux platforms provides much additional value.
Is number 2 feasible? The timeout is already at 30 minutes, so I'm not sure...
Number 3 seems the most likely. If that's what we want to do, I can spend some time and try to put together a subset of the tests that exercises the parts of Jest that I think are most likely to discover regressions in Node (usage of
vm
API (especially the ESM parts of it)).For now - this PR is opened as a draft and only removes a maintainer that haven't been one for a few years at this point.