build icon indicating copy to clipboard operation
build copied to clipboard

testing with small icu

Open Trott opened this issue 3 years ago • 1 comments

It was noted (by @bnoordhuis) that test/parallel/test-icu-data-dir.js only runs with small-icu builds and we don't seem to have those in CI anymore. It used to be tested in CI on the Raspberry Pi devices, but they don't run on the main branch anymore. (They seem to run against v12.x staging daily. Since we don't support v12.x anymore, I suppose we could/should remove that nightly job?)

Should we add something to the linux-containered group that compiles with small ICU so we can continue to exercise that test?

Trott avatar Jul 14 '22 13:07 Trott

(They seem to run against v12.x staging daily. Since we don't support v12.x anymore, I suppose we could/should remove that nightly job?)

Just on this point -- I've kept the job because we don't have a v14.x or v16.x nightly job and the existing v12.x job gives me some confidence that the CI machines still work (for example we no longer run builds on the CentOS 7/RHEL 7 machines for Node.js 18 and later).

richardlau avatar Jul 14 '22 13:07 richardlau

Working on adding small-icu to the contained tests.

  1. added tags to all of the contairned machines - ubuntu1804_sharedlibs_smallicu_x64
  2. Testing out here to make sure tests pass - https://ci.nodejs.org/view/All/job/node-test-commit-linux-small-icu/nodes=ubuntu1804_sharedlibs_smallicu_x64/5/

Once tests pass will add to regular containered job.

mhdawson avatar Jan 17 '23 21:01 mhdawson

Passed in https://ci.nodejs.org/view/All/job/node-test-commit-linux-small-icu/6/nodes=ubuntu1804_sharedlibs_smallicu_x64/console

Will add to regular job first thing tomorrow.

mhdawson avatar Jan 17 '23 23:01 mhdawson

@mhdawson the job is broken with Node.js v14.x-staging: https://ci.nodejs.org/job/node-test-commit-linux-small-icu/7/nodes=ubuntu1804_sharedlibs_smallicu_x64/

Started a run with v16.x-staging: https://ci.nodejs.org/job/node-test-commit-linux-small-icu/8/

richardlau avatar Jan 18 '23 12:01 richardlau

Looks like it passes for 16, will add so that it only runs on 16 and later for now.

mhdawson avatar Jan 18 '23 14:01 mhdawson

@richardlau I assume that's because small-icu is broken on 14 and not the job itself ?

We not only have a different version of ICU in 14 but also looks like some of the tools are slightly different versions?

The script that is failing though https://github.com/nodejs/node/tree/main/tools/icu)/icutrim.py seems to be the same version though as what we have in main

failure reported

07:47:42   File "icutrim.py", line 339, in <module>
07:47:42     removeList(1)
07:47:42   File "icutrim.py", line 319, in removeList
07:47:42     pat = re.compile(bytes(r"^Item ([^ ]+) depends on missing item ([^ ]+).*", 'utf-8'))
07:47:42 TypeError: str() takes at most 1 argument (2 given)
07:47:42 tools/icu/icudata.target.mk:13: recipe for target '/home/iojs/build/workspace/node-test-commit-linux-small-icu/out/Release/obj/gen/icutmp/icudt70l.dat' failed
07:47:42 make[2]: *** [/home/iojs/build/workspace/node-test-commit-linux-small-icu/out/Release/obj/gen/icutmp/icudt70l.dat] Error 1
07:47:42 make[2]: *** Waiting for unfinished jobs....

mhdawson avatar Jan 18 '23 14:01 mhdawson

@mhdawson I would guess it's a Python 2 vs Python 3 issue. Node.js 14 builds with Python 2 by default.

richardlau avatar Jan 18 '23 14:01 richardlau

@richardlau thanks for the suggestion of Python 2 versus Python 3, I was wondering if that might be the case as well.

mhdawson avatar Jan 18 '23 20:01 mhdawson

Built locally to reproduce but all tests passed, likely because my system used Python3. I think that points in the direction of it being a Python2 problem as well.

mhdawson avatar Jan 18 '23 20:01 mhdawson

Yup switching to ubuntu with python 2 and I get the same error as in the job.

mhdawson avatar Jan 18 '23 21:01 mhdawson

Working on a fix

mhdawson avatar Jan 18 '23 22:01 mhdawson

PR with fix - https://github.com/nodejs/node/pull/46263.

@richardlau , if we need to test before this gets back into 14.x. I could make the test job for small icu apply the patch before buildting/testing. That would allow us to enable testing for 14.x earlier.

mhdawson avatar Jan 18 '23 22:01 mhdawson

Built locally to reproduce but all tests passed, likely because my system used Python3. I think that points in the direction of it being a Python2 problem as well.

PR with fix - nodejs/node#46263.

@richardlau , if we need to test before this gets back into 14.x. I could make the test job for small icu apply the patch before buildting/testing. That would allow us to enable testing for 14.x earlier.

@mhdawson Another option would be to always build with Python 3 (e.g. running with PYTHON=python3) for the small icu job?

richardlau avatar Jan 19 '23 12:01 richardlau

I've done that and enabled it for 14, job passed here https://ci.nodejs.org/job/node-test-commit-linux-containered/nodes=ubuntu1804_sharedlibs_smallicu_x64/35542/

I think we can probably now close this.

mhdawson avatar Jan 19 '23 16:01 mhdawson