Re: [PATCH v3 2/3] diff-highlight: add failing test for handling --graph output.
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 19, 2016, 18:25 UTC
- Message-ID
- <xmqqd1l439am.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20160819170812.1676-3-henderson.bj@gmail.com>
Brian Henderson <henderson.bj@gmail.com> writes:
Show 15 quoted lines
> Signed-off-by: Brian Henderson <henderson.bj@gmail.com>
> ---
> contrib/diff-highlight/t/t9400-diff-highlight.sh | 54 ++++++++++++++++++++++++
> 1 file changed, 54 insertions(+)
>
> diff --git a/contrib/diff-highlight/t/t9400-diff-highlight.sh b/contrib/diff-highlight/t/t9400-diff-highlight.sh
> index 6b8a461..3b3c831 100755
> --- a/contrib/diff-highlight/t/t9400-diff-highlight.sh
> +++ b/contrib/diff-highlight/t/t9400-diff-highlight.sh
> @@ -85,10 +85,50 @@ dh_commit_test () {
> test_cmp commit.exp commit.act
> }
>
> +# dh_test_setup_history takes a series (3) of changes and generates a contrived graph
> +# of commits and mergesThe first line look a bit overlong.
If the graph is truly "contrived" as the comment at the beginning says (I haven't formed an opinion), it probably is a good idea to draw a picture upfront.
> +dh_test_setup_history () {
> + a="$1" b="$2" c="$3"Even though assignment would not fail, it probably is a good idea to &&-chain this line, too, for consistency. I.e.
a=$1 b=$2 c=$3 &&
Note that RHS of an assignment do not need dq; it does not hurt to quote them, though.
> + printf "$a" >file && > + git add file && > + git commit -m"Add a file" &&
Avoid sticking a short-option to its argument, i.e.
git commit -m "Add a file"
> + printf "$b" >file && > + git commit -am"Update a file" &&
Likewise.
git commit -a -m "Update a file".
Show 5 quoted lines
> +left_trim () {
> + "$PERL_PATH" -pe 's/^\s+//'
> +}
> +
> +trim_graph_el () {What does "el" stand for? Not E-lisp ;-)
If you meant "elements" or something, probably that is unnecessary and "trim_graph" would be sufficient, but you may have meant something else.
Show 29 quoted lines
> + # graphs start with * or | > + # followed by a space or / or \ > + "$PERL_PATH" -pe 's@^((\*|\|)( |/|\\))+@@' > +} > + > test_expect_success 'diff-highlight highlights the beginning of a line' ' > dh_test \ > "aaa\nbbb\nccc\n" \ > @@ -145,6 +185,20 @@ test_expect_failure 'diff-highlight highlights mismatched hunk size' ' > > # TODO add multi-byte test > > +test_expect_failure 'diff-highlight works with the --graph option' ' > + dh_test_setup_history \ > + "aaa\nbbb\nccc\n" \ > + "aaa\n0bb\nccc\n" \ > + "aaa\nb0b\nccc\n" && > + > + # topo-order so that the order of the commits is the same as with --graph > + # trim graph elements so we can do a diff > + # trim leading space because our trim_graph_el is not perfect > + git log -p --topo-order | "$DIFF_HIGHLIGHT" | left_trim >graph.exp && > + git log -p --graph | "$DIFF_HIGHLIGHT" | trim_graph_el | left_trim >graph.act && > + test_cmp graph.exp graph.act > +' > + > test_done > > # vim: set noet