-
Notifications
You must be signed in to change notification settings - Fork 30.5k
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
ARM test timeouts #1343
Comments
Failing tests are: ARMv6:
ARMv7
|
Looks like my overclocked RPi2 already passes all tests as-is. It barely makes the repl test in like 900ms of the 1000ms available. Standard clocked RPi2 still needs like 1300ms though :P WIP branch: https://github.com/silverwind/io.js/tree/arm-test-timeout |
@silverwind tbh I was just imagining something in common.js that did a lazy check of the arch when requested and if it returned armv6 then it would be identified as a "slow" platform and the tests that run too slow would internally adjust their timeout length. I haven't looked in detail at how the armv7 builds are going but we may need to have a semi-slow in there as well, or else adjust the timeouts for all platforms to make them work. Currently in the CI mix we have:
/cc @iojs/platform-arm @iojs/build |
Samsung Exynos5422 Cortex™-A15 2.0Ghz quad core and Cortex™-A7 quad core CPUs [1] Dang. :P
I did some digging about this the other day, best I could find is https://www.scaleway.com/faq/server, which doesn't have too much perf / processor info. I do suspect these have higher perf than an rpi2 however. |
yeah, the XU3 is a beautiful piece of hardware, even has a tiny little fan on it that spins up occasionally, I'd like a second one for the cluster so I might put out a call some time to get the funds for one. The Scaleway machines have 3 of these:
Reporting:
|
Only 3 cores eh? the scaleway deployed ones are supposed to be 4-cores. Hmm. |
sorry, I meant 4 |
Here's what I currently have: I think the best approach would probably be to benchmark process startup time once in common.js and calculate a "slowness factor" from that. Could probably do that for all platforms or just ARM. |
Maybe make it lazy like At one stage I had the impression that some timeouts needs a 10x increase on the Pi1 machines. Perhaps you could just wire up the test cases that need this and tune from there though. |
Yeah, the armv6 value is arbitrary right now. I only ran armv7 so far, which seems to need something like 1.3-1.4 on a standard RPi2. |
How about moving test we know are slow to a |
@jbergstroem Yeah we could bunch them together so we know the problematic ones. Would you suggest creating subfolders like Also, not sure about that arg. I think with a quick benchmark in common.js in place, we don't need to to fiddle with timeout values. |
@silverwind my suggestion would be to just have one level depth. Half of the problem with timeouts is that the test runner might be busy doing other stuff. Running them sequentially will reduce time spent in each test (but probably longer overall). |
We have test/pummel for slow tests. I filed PR #1357 for fudging the per-test timeout factor. |
Those are getters which can't have arguments, so not really possible through a getter at least. |
This commit introduces platform-specific test timeouts for the ARM architectures. ARMv6 is notoriously slow so gets very large timeouts on both the timeout value for each test, as well as certain problematic individual tests. ARMv7 and ARMv8 also get slightly increased headroom. PR-URL: #1366 Fixes: #1343 Reviewed-By: Ben Noordhuis <[email protected]>
Fixed by 7049d7b |
whoa, all green (blue), great work everyone! |
Now we just need to squash the few intermittent failures that come up on CI randomly. |
A few test currently fail on ARM because they have too high expectations for processing time for these rather slow platforms. I'll work in fixing this for v6 and v7 which I can test on both RPi 1 and 2.
@rvagg you mention in #283 (comment) a very-slow flag for tests. Could you point me how I'd add something like that to the test framework? Maybe you have an branch I could base my work off?
The text was updated successfully, but these errors were encountered: