[PATCH] Add test for correct coloring of git log --decoration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Nazri Ramliy <ayiehere@xxxxxxxxx>
---
On Mon, Jun 28, 2010 at 4:11 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote:
> * ar/decorate-color (2010-06-24) 4 commits
>  - Allow customizable commit decorations colors
>  - log --decorate: Colorize commit decorations
>  - log-tree.c: Use struct name_decoration's type for classifying decoration
>  - commit.h: add 'type' to struct name_decoration
> 
> Tests, perhaps?  Otherwise looked sane.

Here is a proposed test for checking if the decorations are colored correctly.
It should be applied on top of 5e11bee65f601ba97dc4c61c75fcb2f448fdcb1c in pu.

I've tried adding 

	log --decorate --all --oneline --color=always

to t4013-diff-various.sh but it seems a bit out of place because my test only
test for colors, while no other test in that file test for colors, hence the
new test file (t4207-log-decoration-colors.sh).

nazri

 t/t4207-log-decoration-colors.sh |   70 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 70 insertions(+), 0 deletions(-)
 create mode 100755 t/t4207-log-decoration-colors.sh

diff --git a/t/t4207-log-decoration-colors.sh b/t/t4207-log-decoration-colors.sh
new file mode 100755
index 0000000..260e71f
--- /dev/null
+++ b/t/t4207-log-decoration-colors.sh
@@ -0,0 +1,70 @@
+#!/bin/sh
+#
+# Copyright (c) 2010 Nazri Ramliy
+#
+
+test_description='Test for "git log --decorate" colors
+'
+
+. ./test-lib.sh
+
+test_expect_success setup '
+  echo foo > foo.txt &&
+  git add foo.txt &&
+  test_tick &&
+  git commit -m first &&
+
+  echo bar > bar.txt &&
+  git add bar.txt &&
+  test_tick &&
+  git commit -m second &&
+
+  test_tick &&
+  EDITOR=cat git tag v1.0 &&
+
+  git clone . local_clone &&
+
+  cd local_clone &&
+  git config diff.color.commit yellow &&
+  git config color.decorate.branch green &&
+  git config color.decorate.remoteBranch red &&
+  git config color.decorate.tag yellow &&
+  git config color.decorate.stash magenta &&
+  git config color.decorate.HEAD cyan &&
+
+  echo baz >> foo.txt &&
+  git stash save baz
+'
+
+get_color()
+{
+  git config --get-color no.such.slot "$1"
+}
+
+# Colors
+c_reset=$(get_color reset)
+c_commit=$(get_color yellow)
+c_branch=$(get_color green)
+c_remoteBranch=$(get_color red)
+c_tag=$(get_color yellow)
+c_stash=$(get_color magenta)
+c_HEAD=$(get_color cyan)
+
+cat > expected << EOF
+${c_commit}COMMIT_ID (${c_stash}refs/stash${c_reset}${c_commit})${c_reset} On master: baz
+${c_commit}COMMIT_ID (${c_HEAD}HEAD${c_reset}${c_commit},\
+ ${c_tag}tag: v1.0${c_reset}${c_commit},\
+ ${c_remoteBranch}origin/master${c_reset}${c_commit},\
+ ${c_remoteBranch}origin/HEAD${c_reset}${c_commit},\
+ ${c_branch}master${c_reset}${c_commit})${c_reset} second
+${c_commit}COMMIT_ID${c_reset} first
+EOF
+
+# We want log to show all, but the second parent to refs/stash is irrelevant
+# to this test since it does not contain any decoration, hence --first-parent
+test_expect_success 'Commit Decorations Colored Correctly' '
+  git log --first-parent --abbrev=10 --all --decorate --oneline --color=always |sed "s/[0-9a-f]\{10,10\}/COMMIT_ID/" > out &&
+  test_cmp expected out
+'
+
+test_done
-- 
1.7.1.245.g7c42e.dirty

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]