Re: [PATCH 05/15] t/Makefile: optimize chainlint self-test
From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2021-12-13 19:36:25
On Mon, Dec 13 2021, Eric Sunshine wrote:
On Mon, Dec 13, 2021 at 12:05 PM Eric Sunshine [off-list ref] wrote:quoted
On Mon, Dec 13, 2021 at 11:17 AM Ævar Arnfjörð Bjarmason [off-list ref] wrote:quoted
The reason I looked at this to begin with is that it takes it ~100-150ms to run now, which adds up if you're e.g. using "make test T=<glob>" in "git rebase -i --exec".Regarding this last point, one idea I strongly considered (and have not rejected) is to stop making `check-chainlin` a dependency of `test` and `prove`. [...]Another less sledge-hammer approach would be to make t/Makefile respect GIT_TEST_CHAIN_LINT so that it doesn't run `check-chainlint` for `test` and `prove` when that variable is `0`. That would allow your `git rebase -i --exec` case to avoid the wasted extra overhead of `check-chainlint` (and chainlint in general).
Yes, but I just don't see why it's needed. We need to build e.g. t/helpers/ to run the tests, and doing that is probably always going to take eons of compilation times compared to these assertions. But it's a one-off eon because we declare the dependency DAG and don't recompile them unless the sources or their dependencies change. Likewise for these chainlint tests we can (and maybe should) make them optional, but as long as we're not needlessly running them when no changes have happened...