You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sounds like a good idea to me. Do we have enough in deps/v8 to run the tests in-tree without additional tools or do things get complicated when you need to do this?
Yes and no. The source tree in deps/v8 contains the test runner but there are build dependencies that must be checked out with gclient sync from depot_tools (making depot_tools a dependency as well.)
Complicated maybe, but it doesn't have to be slow. gclient sync is basically git fetch plus some post-checkout actions. To keep checkout times down, keep a pristine source tree around, sync it, then cp -a it somewhere and build and test that.
I don't think we can use v8 from deps/v8; gclient expects a proper git tree. Running this on all slaves sounds like a bit of a stretch, but even getting one vm testing (debian 8, freebsd or smartos vm's has most cpu to spare) would be pretty great.
Edit: I guess we'd have to check out the tag and then reapply our floating patches to properly test it.
There's a bit of work involved but I had this working in joyent/node master. I can update and get it running again. It'll just take a couple weeks given current workload
Pinged @jasnell yesterday, and he pointed us to his old PR nodejs/node-v0.x-archive#14185 on this topic. We're looking into reviving and flushing out some of his changes there.
@jasnell I found a way to run v8 tests in node. This was originally developed for zLinux version of node, to run tests on v8z (a port of v8 to IBM s390(x) CPUs), but should also work for v8. Checkout https://github.com/exinfinitum/node/tree/al-merge (branch "al-merge") and run the following commands:
make v8 DESTCPU=(ARCH)
make test-v8 DESTCPU=(ARCH)
where (ARCH) is your CPU architecture, e.g. x64, ia32. DESTCPU MUST be specified for this to work properly.
Can also do tests on debug build by using "make test-v8 DESTCPU=(ARCH) BUILDTYPE=Debug".
If its not too much work could you create a PR that applies to master so we could try it out there. I think it would also trim down what needs to be reviewed to the minimal set. James is on holiday this week so probably worth doing this instead of waiting to hear from him.
Ok, back to looking a this. The last issue I was looking at was a failure on arm. Now though, after a few runs the runs under the CI to check current state the runs across the board, on arm are not even getting through the compilation step.
The runs take a long time (2.5 hours+) the machines go offline before the compile actually finishes. This was also occurring when I was trying to debug locally.
At this point I think the right answer is not to block setting up/running for arm and create a new issue to cover future work to add support for windows, mac, arm, smartos that interested people can pick up. In some cases like mac and arm adding them may just require enough hw while for windows work will be required on the build files.
Current coverage is ubuntu 14 for ppcbe, ppcle, and x64 and I'll see if our smartos machines are big enough to run/pass the tests in a reasonable time. I'll then enable the nightly job and open a new issue as a placeholder to remind us we may want to add the other platforms at some point when h/w time permits
Tried smartos but the machines seems to choke with a bunch of :"virtual memory exhausted: Resource temporarily unavailable" messages. I'm also thinking that since smartos is x86 we already have it covered by the unbuntu x86 case so will leave it out for now.
@nodejs/collaborators FYI there is a new job which runs the v8 tests after building v8 from the source in the node tree. This should be used when floating patches on top of v8 in addition to the regular CI runs. It is also scheduled to run once a day. It currently only covers ubuntu for x64, ppc le and ppc be, see #387 if you are interested in expanding this coverage.
I'm also thinking that since smartos is x86 we already have it covered by the unbuntu x86 case so will leave it out for now.
Did you mean that the JIT compiler's behavior is essentially the same between Ubuntu x86 and SmartOS because it's the same architecture, and so testing on Ubuntu x86 is enough to test SmartOS? I would think that these tests also test other parts of V8 that are dependent on specifics of the underlying OS, and so assuming that the SmartOS platform is supported if Ubuntu x86 tests pass does not seem like a reasonable assumption.
I think we agree on that but I just want to make sure I'm not missing anything.
I don't think ubuntu x86 would cover SmartOS x86. These machines has 4G ram which might explain why you're running out of memory. I can reprovision one of the x86's and one of the x64's to have 8G instead?
Did you mean that the JIT compiler's behavior is essentially the same between Ubuntu x86 and SmartOS because it's the same architecture, and so testing on Ubuntu x86 is enough to test SmartOS? I would think that these tests also test other parts of V8 that are dependent on specifics of the underlying OS, and so assuming that the SmartOS platform is supported if Ubuntu x86 tests pass does not seem like a reasonable assumption.
Codegen is the same for smartos and linux, so in that respect they're interchangeable. Also, it's not as if upstream V8 supports smartos in any capacity.
Ideally we'd run everywhere, but my comment on smartos was that at least the arch is covered (x86) and as Ben mentions codegen is the same. I agree that does not provided full coverage and am supportive of adding to the test as covered by #387. By the same token I've not added AIX yet but at least we have PPC coverage which is the same arch.
@bnoordhuis@bnoordhuis I'm aware that codegen is the same on SmartOS x86 and Linux x86 , I was specifically mentioning parts of V8 that depend on the underlying OS, like code in v8/src/base/platform. It seems we're on the same page though that this is good enough but not ideal. Thanks for the clarification!
scheduled job ran/passed last night so going to close this one and discussion on adding other platforms can continue under #387. Going to close this one.
Activity
bnoordhuis commentedon Sep 22, 2015
Yes and no. The source tree in deps/v8 contains the test runner but there are build dependencies that must be checked out with
gclient syncfrom depot_tools (making depot_tools a dependency as well.)rvagg commentedon Sep 22, 2015
a mention of
depot_toolsmakes my eyes glaze over .. sounds like it's going to be complicated and very slowbnoordhuis commentedon Sep 22, 2015
Complicated maybe, but it doesn't have to be slow.
gclient syncis basicallygit fetchplus some post-checkout actions. To keep checkout times down, keep a pristine source tree around, sync it, thencp -ait somewhere and build and test that.jbergstroem commentedon Sep 22, 2015
I don't think we can use v8 from
deps/v8;gclientexpects a proper git tree. Running this on all slaves sounds like a bit of a stretch, but even getting one vm testing (debian 8, freebsd or smartos vm's has most cpu to spare) would be pretty great.Edit: I guess we'd have to check out the tag and then reapply our floating patches to properly test it.
mhdawson commentedon Sep 22, 2015
+1 on the idea for me. I think @jasnell had done some initial work looking at doing this.
jasnell commentedon Sep 22, 2015
There's a bit of work involved but I had this working in joyent/node master. I can update and get it running again. It'll just take a couple weeks given current workload
pmq20 commentedon Sep 23, 2015
If we were to land fixes about v8 this definitely is a must.
rvagg commentedon Sep 23, 2015
right, particularly as we move into LTS-land where we're supporting old V8
joransiu commentedon Nov 11, 2015
Pinged @jasnell yesterday, and he pointed us to his old PR nodejs/node-v0.x-archive#14185 on this topic. We're looking into reviving and flushing out some of his changes there.
/cc @exinfinitum
exinfinitum commentedon Nov 23, 2015
@jasnell I found a way to run v8 tests in node. This was originally developed for zLinux version of node, to run tests on v8z (a port of v8 to IBM s390(x) CPUs), but should also work for v8. Checkout https://github.com/exinfinitum/node/tree/al-merge (branch "al-merge") and run the following commands:
make v8 DESTCPU=(ARCH)
make test-v8 DESTCPU=(ARCH)
where (ARCH) is your CPU architecture, e.g. x64, ia32. DESTCPU MUST be specified for this to work properly.
Can also do tests on debug build by using "make test-v8 DESTCPU=(ARCH) BUILDTYPE=Debug".
mhdawson commentedon Nov 24, 2015
If its not too much work could you create a PR that applies to master so we could try it out there. I think it would also trim down what needs to be reviewed to the minimal set. James is on holiday this week so probably worth doing this instead of waiting to hear from him.
mhdawson commentedon Jan 14, 2016
PR here nodejs/node#4704
jbergstroem commentedon Jan 15, 2016
Do we have other constraints? For instance -- do we need more than 2G memory? Is the idea to run this on all slaves or a subset?
13 remaining items
mhdawson commentedon Mar 16, 2016
Added svn to test-digitalocean-freebsd10-x64-1
mhdawson commentedon Mar 16, 2016
Added svn to test-rackspace-debian8-x64-1
mhdawson commentedon Mar 16, 2016
Added svn to test-joyent-smartos14-x64-1
Add svn for platforms managed in ansible
mhdawson commentedon Apr 13, 2016
Ok, back to looking a this. The last issue I was looking at was a failure on arm. Now though, after a few runs the runs under the CI to check current state the runs across the board, on arm are not even getting through the compilation step.
The runs take a long time (2.5 hours+) the machines go offline before the compile actually finishes. This was also occurring when I was trying to debug locally.
At this point I think the right answer is not to block setting up/running for arm and create a new issue to cover future work to add support for windows, mac, arm, smartos that interested people can pick up. In some cases like mac and arm adding them may just require enough hw while for windows work will be required on the build files.
Current coverage is ubuntu 14 for ppcbe, ppcle, and x64 and I'll see if our smartos machines are big enough to run/pass the tests in a reasonable time. I'll then enable the nightly job and open a new issue as a placeholder to remind us we may want to add the other platforms at some point when h/w time permits
mhdawson commentedon Apr 13, 2016
Tried smartos but the machines seems to choke with a bunch of :"virtual memory exhausted: Resource temporarily unavailable" messages. I'm also thinking that since smartos is x86 we already have it covered by the unbuntu x86 case so will leave it out for now.
mhdawson commentedon Apr 13, 2016
Issue for additional coverage - #387
Job configured and scheduled to run nightly here - https://ci.nodejs.org/job/node-test-commit-v8-linux/
mhdawson commentedon Apr 13, 2016
@nodejs/collaborators FYI there is a new job which runs the v8 tests after building v8 from the source in the node tree. This should be used when floating patches on top of v8 in addition to the regular CI runs. It is also scheduled to run once a day. It currently only covers ubuntu for x64, ppc le and ppc be, see #387 if you are interested in expanding this coverage.
misterdjules commentedon Apr 13, 2016
@mhdawson
Did you mean that the JIT compiler's behavior is essentially the same between Ubuntu x86 and SmartOS because it's the same architecture, and so testing on Ubuntu x86 is enough to test SmartOS? I would think that these tests also test other parts of V8 that are dependent on specifics of the underlying OS, and so assuming that the SmartOS platform is supported if Ubuntu x86 tests pass does not seem like a reasonable assumption.
I think we agree on that but I just want to make sure I'm not missing anything.
Thank you!
jbergstroem commentedon Apr 14, 2016
I don't think ubuntu x86 would cover SmartOS x86. These machines has 4G ram which might explain why you're running out of memory. I can reprovision one of the x86's and one of the x64's to have 8G instead?
bnoordhuis commentedon Apr 14, 2016
Codegen is the same for smartos and linux, so in that respect they're interchangeable. Also, it's not as if upstream V8 supports smartos in any capacity.
mhdawson commentedon Apr 14, 2016
Ideally we'd run everywhere, but my comment on smartos was that at least the arch is covered (x86) and as Ben mentions codegen is the same. I agree that does not provided full coverage and am supportive of adding to the test as covered by #387. By the same token I've not added AIX yet but at least we have PPC coverage which is the same arch.
misterdjules commentedon Apr 14, 2016
@bnoordhuis @bnoordhuis I'm aware that codegen is the same on SmartOS x86 and Linux x86 , I was specifically mentioning parts of V8 that depend on the underlying OS, like code in
v8/src/base/platform. It seems we're on the same page though that this is good enough but not ideal. Thanks for the clarification!mhdawson commentedon Apr 14, 2016
scheduled job ran/passed last night so going to close this one and discussion on adding other platforms can continue under #387. Going to close this one.