git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nazri Ramliy <ayiehere@gmail.com>
To: gitster@pobox.com, git@vger.kernel.org
Cc: Nazri Ramliy <ayiehere@gmail.com>
Subject: [PATCH] Add test for correct coloring of git log --decoration
Date: Mon, 28 Jun 2010 15:30:40 +0800	[thread overview]
Message-ID: <1277710240-11378-1-git-send-email-ayiehere@gmail.com> (raw)
In-Reply-To: <7v6314fd6q.fsf@alter.siamese.dyndns.org>

Signed-off-by: Nazri Ramliy <ayiehere@gmail.com>
---
On Mon, Jun 28, 2010 at 4:11 AM, Junio C Hamano <gitster@pobox.com> 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

  reply	other threads:[~2010-06-28  7:31 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-27 20:11 What's cooking in git.git (Jun 2010, #05; Sun, 27) Junio C Hamano
2010-06-28  7:30 ` Nazri Ramliy [this message]
2010-06-29  5:43   ` [PATCH] Add test for correct coloring of git log --decoration Junio C Hamano
2010-06-29  7:47     ` Nazri Ramliy
2010-06-30 20:37       ` Junio C Hamano

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=1277710240-11378-1-git-send-email-ayiehere@gmail.com \
    --to=ayiehere@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).