On 4/6/2017 4:21 AM, Johannes Schindelin wrote:
Hi Gábor,
On Thu, 6 Apr 2017, SZEDER Gábor wrote:
I think this patch should be squashed into the previous commit; I
don't see any reason why the tests should be added in a different
commit than the function they are testing.
Will do.
I am of two minds there. In some cases, the newly added test demonstrates
the intended usage, and therefore makes for a nice documentation. In other
cases, the new test is large enough to stand on its own, i.e. to merit a
separate patch (also to make reviewing easier).
In this particular case, I tend to the latter: it is large enough a patch
that it is easier to review as a separate patch.
t/helper/test-strcmp-offset.c | 64 +++++++++++++++++++++++++++++++++++++++++++
t/t0065-strcmp-offset.sh | 11 ++++++++
4 files changed, 77 insertions(+)
create mode 100644 t/helper/test-strcmp-offset.c
create mode 100755 t/t0065-strcmp-offset.sh
Sure, tests are good, but I have to wonder how this would scale in the
long term, when even such simple functions would get their own
t/helper/test-func executable and t/tNNNN-func.sh script.
I think this is the start of a larger conversation on
how we want to handle function-level unit-testing and
outside the scope of this patch series.
True. The proliferation of executables in t/helper/ got a little out of
hand.
But there is nothing preventing us from consolidating a few of them into a
single executable, using our wonderful option parsing function with
OPT_CMDMODE to switch between the different functions.
I could see, for example, how we could consolidate all string-related
test helpers into a single one, say, test-strings:
t/helper/test-ctype.c
t/helper/test-regex.c
t/helper/test-strcmp-offset.c
t/helper/test-string-list.c
t/helper/test-line-buffer.c
t/helper/test-urlmatch-normalization.c
t/helper/test-wildmatch.c
Also, these helpers seem to be related to index handling and could go into
a new test-index helper:
t/helper/test-dump-cache-tree.c
t/helper/test-dump-split-index.c
t/helper/test-dump-untracked-cache.c
t/helper/test-index-version.c
t/helper/test-scrap-cache-tree.c
This is an interesting proposal. I could go one further and
say we have a single "t/helper/unit-test.c" that has series
of "t/helper/builtin/*.c" commands (using the same mechanism
as the builtin commands in git.exe). The question then is
how much of the test logic and/or parameters go into the shell
scripts.
But again, all of that is outside my scope here.
Jeff