All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sudhanshu Shekhar <sudshekhar02@gmail.com>
To: git@vger.kernel.org
Cc: Matthieu.Moy@grenoble-inp.fr, gitster@pobox.com,
	davvid@gmail.com, sunshine@sunshineco.com,
	Sudhanshu Shekhar <sudshekhar02@gmail.com>
Subject: [PATCH v3 2/2] Added tests for reset -
Date: Tue, 10 Mar 2015 16:22:08 +0530	[thread overview]
Message-ID: <1425984728-27996-2-git-send-email-sudshekhar02@gmail.com> (raw)
In-Reply-To: <1425984728-27996-1-git-send-email-sudshekhar02@gmail.com>

Added the following test cases:
    1) Confirm error message when git reset is used with no previous branch
    2) Confirm git reset - works like git reset @{-1}
    3) Confirm "-" is always treated as a commit unless the -- file option
    is specified
    4) Confirm "git reset -" works normally even when a file named @{-1} is
    present

Helped-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Sudhanshu Shekhar <sudshekhar02@gmail.com>
---
I have tried to keep each test self sufficient. Please let me know if any changes are required.
Thank you!

 t/t7102-reset.sh | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 139 insertions(+)

diff --git a/t/t7102-reset.sh b/t/t7102-reset.sh
index 98bcfe2..0faf241 100755
--- a/t/t7102-reset.sh
+++ b/t/t7102-reset.sh
@@ -568,4 +568,143 @@ test_expect_success 'reset --mixed sets up work tree' '
 	test_cmp expect actual
 '
 
+test_expect_success 'reset - with no previous branch' '
+	git init no_previous &&
+	(
+		cd no_previous &&
+		test_must_fail git reset - 2>output
+	) &&
+	test_i18ngrep "bad flag" no_previous/output
+'
+
+test_expect_success 'reset - while having file named - and no previous branch' '
+	git init no_previous &&
+	(
+		cd no_previous &&
+		>./- &&
+		test_must_fail git reset - 2>output
+	) &&
+	test_i18ngrep "bad flag" no_previous/output
+'
+
+
+test_expect_success 'reset - in the presence of file named - with previous branch' '
+	echo "Unstaged changes after reset:" >expect &&
+	echo "M	-" >>expect &&
+	echo "M	1" >>expect &&
+	git init no_previous &&
+	(
+		cd no_previous &&
+		>./- &&
+		>1 &&
+		git add 1 - &&
+		git commit -m "add base files" &&
+		git checkout -b new_branch &&
+		echo "random" >./- &&
+		echo "wow" >1 &&
+		git add 1 - &&
+		git reset - >../output
+	) &&
+	rm -rf no_previous &&
+	test_cmp output expect
+'
+test_expect_success 'reset - in the presence of file named - with -- option' '
+	echo "Unstaged changes after reset:" >expect &&
+	echo "M	-" >>expect &&
+	echo "M	1" >>expect &&
+	git init no_previous &&
+	(
+		cd no_previous &&
+		>./- &&
+		>1 &&
+		git add 1 - &&
+		git commit -m "add base files" &&
+		git checkout -b new_branch &&
+		echo "random" >./- &&
+		echo "wow" >1 &&
+		git add 1 - &&
+		git reset - -- >../output
+	) &&
+	rm -rf no_previous &&
+	test_cmp output expect
+'
+
+test_expect_success 'reset - in the presence of file named - with -- file option' '
+	echo "Unstaged changes after reset:" >expect &&
+	echo "M	-" >>expect &&
+	git init no_previous &&
+	(
+		cd no_previous &&
+		>./- &&
+		>1 &&
+		git add 1 - &&
+		git commit -m "add base files" &&
+		git checkout -b new_branch &&
+		echo "random" >./- &&
+		echo "wow" >1 &&
+		git add 1 - &&
+		git reset -- - >../output
+	) &&
+	rm -rf no_previous
+	test_cmp output expect
+'
+test_expect_success 'reset - in the presence of file named - with both pre and post -- option' '
+	echo "Unstaged changes after reset:" >expect &&
+	echo "M	-" >>expect &&
+	git init no_previous &&
+	(
+		cd no_previous &&
+		>./- &&
+		>1 &&
+		git add 1 - &&
+		git commit -m "add base files" &&
+		git checkout -b new_branch &&
+		echo "random" >./- &&
+		echo "wow" >1 &&
+		git add 1 - &&
+		git reset - -- - >../output
+	) &&
+	rm -rf no_previous
+	test_cmp output expect
+'
+
+test_expect_success 'reset - works same as reset @{-1}' '
+	git init no_previous &&
+	(
+		cd no_previous &&
+		echo "random" >random &&
+		git add random &&
+		git commit -m "base commit" &&
+		git checkout -b temp &&
+		echo new-file >new-file &&
+		git add new-file &&
+		git commit -m "added new-file" &&
+		git reset - &&
+		git status --porcelain >../first &&
+		git add new-file &&
+		git commit -m "added new-file" &&
+		git reset @{-1} &&
+		git status --porcelain >../second
+	) &&
+	test_cmp first second
+'
+
+test_expect_success 'reset - with file named @{-1}' '
+	echo "Unstaged changes after reset:" >expect &&
+	echo "M	@{-1}" >>expect &&
+	git init no_previous &&
+	(
+		cd no_previous &&
+		echo "random" >./@{-1} &&
+		git add ./@{-1} &&
+		git commit -m "base commit" &&
+		git checkout -b new_branch &&
+		echo "additional stuff" >>./@{-1} &&
+		git add ./@{-1} &&
+		git reset - >../output
+	) &&
+	rm -rf no_previous &&
+	test_cmp output expect
+'
+
 test_done
-- 
2.3.1.279.gd534259

  reply	other threads:[~2015-03-10 10:53 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-10 10:52 [PATCH v3 1/2] reset: enable '-' short-hand for previous branch Sudhanshu Shekhar
2015-03-10 10:52 ` Sudhanshu Shekhar [this message]
2015-03-10 13:26   ` [PATCH v3 2/2] Added tests for reset - Matthieu Moy
2015-03-10 17:52     ` Sudhanshu Shekhar
2015-03-10 18:05       ` Eric Sunshine
2015-03-10 18:29   ` Eric Sunshine
2015-03-10 22:03     ` [PATCH v3 1/2] reset: enable '-' short-hand for previous branch Sudhanshu Shekhar
2015-03-13 10:11       ` Eric Sunshine
2015-03-10 22:10     ` [PATCH v3 2/2] t7102: add 'reset -' tests Sudhanshu Shekhar
2015-03-13 10:27       ` Eric Sunshine
2015-03-10 13:17 ` [PATCH v3 1/2] reset: enable '-' short-hand for previous branch Matthieu Moy
2015-03-10 19:18 ` Eric Sunshine
2015-03-10 22:12   ` Sudhanshu Shekhar

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=1425984728-27996-2-git-send-email-sudshekhar02@gmail.com \
    --to=sudshekhar02@gmail.com \
    --cc=Matthieu.Moy@grenoble-inp.fr \
    --cc=davvid@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=sunshine@sunshineco.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 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.