From: Eric Wong <e@80x24.org>
To: Brian Henderson <henderson.bj@gmail.com>
Cc: git@vger.kernel.org, peff@peff.net
Subject: Re: [PATCH 1/3] diff-highlight: add some tests.
Date: Wed, 10 Aug 2016 08:56:35 +0000 [thread overview]
Message-ID: <20160810085635.GA1672@starla> (raw)
In-Reply-To: <20160730151149.15980-2-henderson.bj@gmail.com>
Brian Henderson <henderson.bj@gmail.com> wrote:
Hi Brian,
A few minor portability/style nits below, but contrib/ probably
(still?) has laxer rules than the rest of git...
I think we still require Signed-off-by lines in contrib,
though...
> +++ b/contrib/diff-highlight/t/Makefile
> @@ -0,0 +1,19 @@
> +-include ../../../config.mak.autogen
> +-include ../../../config.mak
> +
> +T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh)
> +
> +all: test
> +test: $(T)
> +
> +.PHONY: help clean all test $(T)
> +
> +help:
> + @echo 'Run "$(MAKE) test" to launch test scripts'
> + @echo 'Run "$(MAKE) clean" to remove trash folders'
> +
> +$(T):
> + @echo "*** $@ ***"; sh $@ $(GIT_TEST_OPTS)
Probably:
@echo "*** $@ ***"; '$(SHELL_PATH_SQ)' $@ $(GIT_TEST_OPTS)
like we do in t/Makefile in case we need to override 'sh'.
> +
> +clean:
> + $(RM) -r 'trash directory'.*
> diff --git a/contrib/diff-highlight/t/t9400-diff-highlight.sh b/contrib/diff-highlight/t/t9400-diff-highlight.sh
> new file mode 100644
> index 0000000..ca7605f
> --- /dev/null
> +++ b/contrib/diff-highlight/t/t9400-diff-highlight.sh
> @@ -0,0 +1,63 @@
> +#!/bin/sh
> +#
> +# Copyright (C) 2016
IANAL, but I think your name (or who you represent) needs to be
in the copyright.
> +
> +test_description='Test diff-highlight'
> +
> +. ./test-diff-highlight.sh
> +. $TEST_DIRECTORY/test-lib.sh
TEST_DIRECTORY ought to be quoted since it could contain
shell-unfriendly chars (we intentionally name 'trash directory'
this way to trigger errors).
> +
> +# PERL is required, but assumed to be present, although not necessarily modern
> +# some tests require 5.8
> +
> +test_expect_success 'diff-highlight highlightes the beginning of a line' '
You can declare a prereq for PERL::
test_expect_success PERL 'name' 'true'
And spelling: "highlights" (there's other instances of this, too)
> + dh_test \
> + "aaa\nbbb\nccc\n" \
> + "aaa\n0bb\nccc\n" \
> +"
We use tabs for shell indentation.
<snip>
> diff --git a/contrib/diff-highlight/t/test-diff-highlight.sh b/contrib/diff-highlight/t/test-diff-highlight.sh
> new file mode 100644
> index 0000000..9b26271
> --- /dev/null
> +++ b/contrib/diff-highlight/t/test-diff-highlight.sh
> @@ -0,0 +1,69 @@
> +#!/bin/sh
> +#
> +# Copyright (C) 2016
> +
> +CURR_DIR=$(pwd)
> +TEST_OUTPUT_DIRECTORY=$(pwd)
> +TEST_DIRECTORY="$CURR_DIR"/../../../t
> +cmd=diff-highlight
> +CMD="$CURR_DIR"/../$cmd
Same comments as above on quoting pathnames and empty copyright.
> +
> +CW="\033[7m"
> +CR="\033[27m"
> +
> +export TEST_OUTPUT_DIRECTORY TEST_DIRECTORY CW CR
> +
> +dh_test() {
> + dh_diff_test "$@"
> + dh_commit_test "$@"
> +}
> +
> +dh_diff_test() {
> + local a="$1" b="$2"
"local" is not a portable construct. It's common for
Debian/Ubuntu systems to use dash as /bin/sh instead of bash;
(dash is faster, and mostly sticks to POSIX)
The "devscripts" package in Debian/Ubuntu-based systems has a
handy "checkbashisms" tool for checking portability of shell
scripts.
> +
> + printf "$a" > file
> + git add file
> +
> + printf "$b" > file
> +
> + git diff file > diff.raw
Commands should be '&&'-chained here since any of them could fail
("git add"/printf/etc could run out of space or fail on disk errors)
Also, our redirect style is: command >file
without a space between '>' and destination.
See Documentation/CodingGuidelines for more details.
Unfortunately, the reasoning is not explained for '>NOSPACE'
and I'm not sure exactly why, either...
> + if test "$#" = 3
Better to use -eq for numeric comparisons: test $# -eq 3
Quoting $# doesn't seem necessary unless your shell is
hopelessly buggy :)
> + then
> + # remove last newline
> + head -n5 diff.raw | head -c -1 > diff.act
"head -c" isn't portable, fortunately Jeff hoisted it out for
use as test_copy_bytes in commit 48860819e8026
https://public-inbox.org/git/20160630090753.GA17463@sigill.intra.peff.net/
> + printf "$3" >> diff.act
> + else
> + cat diff.raw > diff.act
> + fi
> +
> + < diff.raw $CMD > diff.exp
$CMD probably needs to be quoted. However, by the time I got
here I had to ask myself: What is $CMD again?
A: Oh, look up at the top!
*shrug* My attention span is tiny and my fonts are gigantic.
Perhaps using:
DIFF_HIGHLIGHT="$CURR_DIR"/../diff-highlight
Would be more-readable?
> +
> + diff diff.exp diff.act
Maybe use test_cmp to avoid depending external diff.
(or "git diff -b --no-index" in your later test)
Same comments for the rest of the series, I think.
Typically, we expect a reroll in a few days, and I guess there's
no rush (so you can squash your comment patch in addressing
Junio's concern into 3/3).
Thanks.
next prev parent reply other threads:[~2016-08-10 20:18 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-30 15:11 [PATCH 0/3] diff-highlight: add support for git log --graph output Brian Henderson
2016-07-30 15:11 ` [PATCH 1/3] diff-highlight: add some tests Brian Henderson
2016-08-10 8:56 ` Eric Wong [this message]
2016-08-15 16:20 ` Brian Henderson
2016-08-15 16:25 ` Junio C Hamano
2016-08-17 15:31 ` [PATCH v2 0/3] diff-highlight: add support for git log --graph output Brian Henderson
2016-08-19 21:19 ` Eric Wong
2016-08-19 21:23 ` Jeff King
2016-08-17 15:31 ` [PATCH v2 1/3] diff-highlight: add some tests Brian Henderson
2016-08-17 19:09 ` Junio C Hamano
2016-08-19 14:42 ` Brian Henderson
2016-08-19 14:51 ` Jeff King
2016-08-19 15:13 ` Brian Henderson
2016-08-19 17:08 ` [PATCH v3 0/3] diff-highlight: add support for git log --graph output Brian Henderson
2016-08-19 17:08 ` [PATCH v3 1/3] diff-highlight: add some tests Brian Henderson
2016-08-19 18:10 ` Junio C Hamano
2016-08-19 19:30 ` Brian Henderson
2016-08-19 20:56 ` Eric Wong
2016-08-19 20:18 ` [PATCH] " Brian Henderson
2016-08-19 20:44 ` Junio C Hamano
2016-08-19 21:04 ` Jeff King
2016-08-19 22:31 ` Junio C Hamano
2016-08-22 15:55 ` Brian Henderson
2016-08-23 4:12 ` Jeff King
2016-08-29 17:33 ` [PATCH v4 0/3] diff-highlight: add support for --graph option Brian Henderson
2016-08-29 17:33 ` [PATCH v4 1/3] diff-highlight: add some tests Brian Henderson
2016-08-29 17:33 ` [PATCH v4 2/3] diff-highlight: add failing test for handling --graph output Brian Henderson
2016-08-29 17:33 ` [PATCH v4 3/3] diff-highlight: add support for " Brian Henderson
2016-08-29 21:37 ` [PATCH v4 0/3] diff-highlight: add support for --graph option Junio C Hamano
2016-08-30 14:07 ` Brian Henderson
2016-08-30 14:07 ` [PATCH v4 1/3] diff-highlight: add some tests Brian Henderson
2016-08-30 14:07 ` [PATCH v4 2/3] diff-highlight: add failing test for handling --graph output Brian Henderson
2016-08-30 14:07 ` [PATCH v4 3/3] diff-highlight: add support for " Brian Henderson
2016-08-31 5:02 ` [PATCH v4 0/3] diff-highlight: add support for --graph option Jeff King
2016-08-31 5:02 ` [PATCH 1/3] diff-highlight: ignore test cruft Jeff King
2016-08-31 5:03 ` [PATCH 2/3] diff-highlight: add multi-byte tests Jeff King
2016-08-31 5:05 ` [PATCH 3/3] diff-highlight: avoid highlighting combined diffs Jeff King
2016-08-30 8:11 ` [PATCH v4 0/3] diff-highlight: add support for --graph option Jeff King
2016-08-19 21:05 ` [PATCH] diff-highlight: add some tests Junio C Hamano
2016-08-19 17:08 ` [PATCH v3 2/3] diff-highlight: add failing test for handling --graph output Brian Henderson
2016-08-19 18:25 ` Junio C Hamano
2016-08-19 17:08 ` [PATCH v3 3/3] diff-highlight: add support for " Brian Henderson
2016-08-19 18:27 ` Junio C Hamano
2016-08-17 15:31 ` [PATCH v2 2/3] diff-highlight: add failing test for handling " Brian Henderson
2016-08-17 19:18 ` Junio C Hamano
2016-08-17 15:31 ` [PATCH v2 3/3] diff-highlight: add support for " Brian Henderson
2016-08-19 14:37 ` Jeff King
2016-08-15 16:40 ` [PATCH 1/3] diff-highlight: add some tests Lars Schneider
2016-08-16 20:48 ` Junio C Hamano
2016-08-24 9:38 ` Lars Schneider
2016-07-30 15:11 ` [PATCH 2/3] diff-highlight: add failing test for handling --graph output Brian Henderson
2016-07-30 15:11 ` [PATCH 3/3] diff-highlight: add support for " Brian Henderson
2016-08-01 17:16 ` Junio C Hamano
2016-08-04 15:02 ` [PATCH] diff-highlight: Add comment for our assumption about " Brian Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160810085635.GA1672@starla \
--to=e@80x24.org \
--cc=git@vger.kernel.org \
--cc=henderson.bj@gmail.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.