From 78cca284fb5d0c094dc47947cb4cc54c5a8c0f78 Mon Sep 17 00:00:00 2001 From: Brian Henderson Date: Tue, 26 Jul 2016 07:49:45 -0700 Subject: [PATCH 2/3] diff-highlight: add failing test for handling --graph output. --- contrib/diff-highlight/t/t9400-diff-highlight.sh | 13 ++++++++ contrib/diff-highlight/t/test-diff-highlight.sh | 42 ++++++++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/contrib/diff-highlight/t/t9400-diff-highlight.sh b/contrib/diff-highlight/t/t9400-diff-highlight.sh index ca7605f..2fb4869 100644 --- a/contrib/diff-highlight/t/t9400-diff-highlight.sh +++ b/contrib/diff-highlight/t/t9400-diff-highlight.sh @@ -60,4 +60,17 @@ test_expect_success 'diff-highlight does not highlight mismatched hunk size' ' # TODO add multi-byte test +test_expect_success 'diff-highlight highlightes the beginning of a line' ' + dh_graph_test \ + "aaa\nbbb\nccc\n" \ + "aaa\n0bb\nccc\n" \ + "aaa\nb0b\nccc\n" \ +" + aaa +-${CW}b${CR}bb ++${CW}0${CR}bb + ccc +" +' + test_done diff --git a/contrib/diff-highlight/t/test-diff-highlight.sh b/contrib/diff-highlight/t/test-diff-highlight.sh index 9b26271..162a694 100644 --- a/contrib/diff-highlight/t/test-diff-highlight.sh +++ b/contrib/diff-highlight/t/test-diff-highlight.sh @@ -67,3 +67,45 @@ dh_commit_test() { diff commit.exp commit.act } + +dh_graph_test() { + local a="$1" b="$2" c="$3" + + { + printf "$a" > file + git add file + git commit -m"Add a file" + + printf "$b" > file + git commit -am"Update a file" + + git checkout -b branch + printf "$c" > file + git commit -am"Update a file on branch" + + git checkout master + printf "$a" > file + git commit -am"Update a file again" + + git checkout branch + printf "$b" > file + git commit -am"Update a file similar to master" + + git merge master + git checkout master + git merge branch --no-ff + } >/dev/null 2>&1 + + git log -p --graph --no-merges > graph.raw + + # git log --graph orders the commits different than git log so we hack it by + # using sed to remove the graph part. We know from other tests, that CMD + # works without the graph, so there should be no diff when running it with + # and without. + < graph.raw sed -e 's"^\(*\|| \||/\)\+""' -e 's"^ ""' | $CMD > graph.exp + < graph.raw $CMD | sed -e 's"^\(*\|| \||/\)\+""' -e 's"^ ""' > graph.act + + # ignore whitespace since we're using a hacky sed command to remove the graph + # parts. + diff -b graph.exp graph.act +} -- 2.9.0