Uh oh!
There was an error while loading. Please reload this page.
build: make 'make test' run linter and build docs - #22031
Conversation
Before this change, the comment for 'make test' read as follows: ## Runs default tests, linters, and builds docs What it actually did was: * run build-addons twice * run build-addons-napi twice * run cctest once * run jstest once * not run linters * not build docs Arguably, one could make the comments match the code, or the code match the comments. Given that there is a separate make target named `test-only` that does exactly what `test` did, I went the other way. Along the way, other fixes were made: * `build-addons` and `build-addons-napi` were listed as `.PHONY`, but had no commands defined. I removed the `.PHONY` markers and moved them to `test/addons/.buildstamp` and `test/addons-napi/.buildstamp` where they would have the desired effect. * `tools/doc/node_modules` was listed as `.PHONY` and did not depend on `tools/doc/package.json`. This caused it to unnecessary run every time it was referenced. After these changes, `make test` will: * run build-addons once * run build-addons-napi once * run cctest once * run jstest once * run linters once * build docs once
vsemozhetbyt
commented
Jul 30, 2018
| $(MAKE) build-addons-napi | ||
| $(MAKE) cctest | ||
| $(MAKE) jstest | ||
| $(MAKE) test-js |
There was a problem hiding this comment.
Would it not be better to remove the addon parts from this task and keep jstest? Just the cctest would have to move below. The same for the other entries.
There was a problem hiding this comment.
This make rule is designed to run a number of steps serially. Depending on jstest would enable make to run these commands in parallel; and in particular, before all is completed. Note that the definition of build-addons does not require $(NODE_EXE) to be present.
build-addons: | $(NODE_EXE) test/addons/.buildstamp
refack
commented
Jul 30, 2018
I understand that empirically this change achieves the desired result, but I'm not sure I understand why. AFAICT /CC @nodejs/build-files |
rubys
commented
Jul 30, 2018
@refack at this point, the |
| "$$PWD/deps/npm/node_modules/node-gyp/bin/node-gyp.js" "$$PWD/test/addons" | ||
| touch $@ | ||
| .PHONY: build-addons |
There was a problem hiding this comment.
build-addons should remain .PHONY as it does not refer to a file.
| "$$PWD/test/addons-napi" | ||
| touch $@ | ||
| .PHONY: build-addons-napi |
There was a problem hiding this comment.
build-addons-napi should remain .PHONY as it does not refer to a file.
| $(filter-out test/addons/??_*/*.cc, $(wildcard test/addons/*/*.cc)) \ | ||
| $(filter-out test/addons/??_*/*.h, $(wildcard test/addons/*/*.h)) | ||
| .PHONY: test/addons/.buildstamp |
There was a problem hiding this comment.
If we're going to make this target .PHONY, I would remove the touch so it's no longer a file and probably rename the target so it doesn't look like a file either.
| $(filter-out test/addons-napi/??_*/*.cc, $(wildcard test/addons-napi/*/*.cc)) \ | ||
| $(filter-out test/addons-napi/??_*/*.h, $(wildcard test/addons-napi/*/*.h)) | ||
| .PHONY: test/addons-napi/.buildstamp |
There was a problem hiding this comment.
If we're going to make this target .PHONY, I would remove the touch so it's no longer a file and probably rename the target so it doesn't look like a file either.
Trott
commented
Aug 5, 2018
Not sure when it changed, but |
maclover7
commented
Aug 11, 2018
ping @rubys |
BridgeAR
commented
Sep 6, 2018
This needs a rebase and the comments have to be looked at. |
Trott
commented
Nov 20, 2018
@rubys Still working on this? |
BridgeAR
commented
Mar 10, 2019
Closing due to long inactivity. @rubys please feel free to reopen or open a new PR in case you would like to continue working on this. |
Before this change, the comment for 'make test' read as follows:
What it actually did was:
Arguably, one could make the comments match the code, or the code match the
comments. Given that there is a separate make target named
test-onlythatdoes exactly what
testdid, I went the other way.Along the way, other fixes were made:
build-addonsandbuild-addons-napiwere listed as.PHONY, but hadno commands defined. I removed the
.PHONYmarkers and moved them totest/addons/.buildstampandtest/addons-napi/.buildstampwhere theywould have the desired effect.
tools/doc/node_moduleswas listed as.PHONYand did not depend ontools/doc/package.json. This caused it to unnecessary run every timeit was referenced.
After these changes,
make testwill:Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passes