git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 4/5] t/t5520: modify tests to reduce common code

From
Mehul Jain <mehul.jain2029@gmail.com>
Date
Mar 29, 2016, 13:29 UTC
Message-ID
<1459258200-32444-5-git-send-email-mehul.jain2029@gmail.com>
In-Reply-To
<1459258200-32444-1-git-send-email-mehul.jain2029@gmail.com>
There exist three groups of tests which have repetitive lines of code.

Introduce two functions test_rebase_autostash() and test_rebase_no_autostash() to reduce the number of lines. Also introduce loops to futher reduce the current implementation.

Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Mehul Jain <mehul.jain2029@gmail.com>
---
 t/t5520-pull.sh | 100 +++++++++++++++++++++++---------------------------------
 1 file changed, 41 insertions(+), 59 deletions(-)
diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh
index d03cb84..2611170 100755
--- a/t/t5520-pull.sh
+++ b/t/t5520-pull.sh
@@ -9,6 +9,24 @@ modify () {
 	mv "$2.x" "$2"
 }
 
+test_rebase_autostash () {
+	git reset --hard before-rebase &&
+	echo dirty >new_file &&
+	git add new_file &&
+	git pull --rebase --autostash . copy &&
+	test_cmp_rev HEAD^ copy &&
+	test "$(cat new_file)" = dirty &&
+	test "$(cat file)" = "modified again"
+}
+
+test_rebase_no_autostash () {
+	git reset --hard before-rebase &&
+	echo dirty >new_file &&
+	git add new_file &&
+	test_must_fail git pull --rebase --no-autostash . copy 2>err &&
+	test_i18ngrep "Cannot pull with rebase: Your index contains uncommitted changes." err
+}
+
 test_expect_success setup '
 	echo file >file &&
 	git add file &&
@@ -256,75 +274,39 @@ test_expect_success 'pull --rebase succeeds with dirty working directory and reb
 	test "$(cat file)" = "modified again"
 '
 
-test_expect_success 'pull --rebase --autostash & rebase.autostash=true' '
-	test_config rebase.autostash true &&
-	git reset --hard before-rebase &&
-	echo dirty >new_file &&
-	git add new_file &&
-	git pull --rebase --autostash . copy &&
-	test_cmp_rev HEAD^ copy &&
-	test "$(cat new_file)" = dirty &&
-	test "$(cat file)" = "modified again"
-'
-
-test_expect_success 'pull --rebase --autostash & rebase.autostash=false' '
-	test_config rebase.autostash false &&
-	git reset --hard before-rebase &&
-	echo dirty >new_file &&
-	git add new_file &&
-	git pull --rebase --autostash . copy &&
-	test_cmp_rev HEAD^ copy &&
-	test "$(cat new_file)" = dirty &&
-	test "$(cat file)" = "modified again"
-'
+for i in true false
+	do
+		test_expect_success "pull --rebase --autostash & rebase.autostash=$i" '
+			test_config rebase.autostash $i &&
+			test_rebase_autostash
+		'
+	done
 
 test_expect_success 'pull --rebase: --autostash & rebase.autostash unset' '
 	test_unconfig rebase.autostash &&
-	git reset --hard before-rebase &&
-	echo dirty >new_file &&
-	git add new_file &&
-	git pull --rebase --autostash . copy &&
-	test_cmp_rev HEAD^ copy &&
-	test "$(cat new_file)" = dirty &&
-	test "$(cat file)" = "modified again"
+	test_rebase_autostash
 '
 
-test_expect_success 'pull --rebase --no-autostash & rebase.autostash=true' '
-	test_config rebase.autostash true &&
-	git reset --hard before-rebase &&
-	echo dirty >new_file &&
-	git add new_file &&
-	test_must_fail git pull --rebase --no-autostash . copy 2>err &&
-	test_i18ngrep "Cannot pull with rebase: Your index contains uncommitted changes." err
-'
-
-test_expect_success 'pull --rebase --no-autostash & rebase.autostash=false' '
-	test_config rebase.autostash false &&
-	git reset --hard before-rebase &&
-	echo dirty >new_file &&
-	git add new_file &&
-	test_must_fail git pull --rebase --no-autostash . copy 2>err &&
-	test_i18ngrep "Cannot pull with rebase: Your index contains uncommitted changes." err
-'
+for i in true false
+	do
+		test_expect_success "pull --rebase --no-autostash & rebase.autostash=$i" '
+			test_config rebase.autostash $i &&
+			test_rebase_no_autostash
+		'
+	done
 
 test_expect_success 'pull --rebase --no-autostash & rebase.autostash unset' '
 	test_unconfig rebase.autostash &&
-	git reset --hard before-rebase &&
-	echo dirty >new_file &&
-	git add new_file &&
-	test_must_fail git pull --rebase --no-autostash . copy 2>err &&
-	test_i18ngrep "Cannot pull with rebase: Your index contains uncommitted changes." err
+	test_rebase_no_autostash
 '
 
-test_expect_success 'pull --autostash (without --rebase) should error out' '
-	test_must_fail git pull --autostash . copy 2>err &&
-	test_i18ngrep "only valid with --rebase" err
-'
-
-test_expect_success 'pull --no-autostash (without --rebase) should error out' '
-	test_must_fail git pull --no-autostash . copy 2>err &&
-	test_i18ngrep "only valid with --rebase" err
-'
+for i in --autostash --no-autostash
+	do
+		test_expect_success "pull $i (without --rebase) is illegal" '
+			test_must_fail git pull $i . copy 2>actual &&
+			test_i18ngrep "only valid with --rebase" actual
+		'
+	done
 
 test_expect_success 'pull.rebase' '
 	git reset --hard before-rebase &&
-- 
2.7.1.340.g69eb491.dirty
Previous: Eric SunshineNext: Junio C Hamano
Message 8 of 22 in “modify tests for --[no-]autostash option”
  1. 0/5 modify tests for --[no-]autostash optionMehul Jain, Mar 29, 2016
  2. 1/5 t/t5520: change rebase.autoStash to rebase.autostashMehul Jain, Mar 29, 2016
  3. Eric SunshineMar 29, 2016
  4. 2/5 t/t5520: explicitly unset rebase.autostashMehul Jain, Mar 29, 2016
  5. Eric SunshineMar 29, 2016
  6. 3/5 t/t5520: use test_i18ngrep instead of test_cmpMehul Jain, Mar 29, 2016
  7. Eric SunshineMar 29, 2016
  8. 4/5 t/t5520: modify tests to reduce common codeMehul Jain, Mar 29, 2016
  9. Junio C HamanoMar 29, 2016
  10. Eric SunshineMar 29, 2016
  11. 5/5 t/t5520: test --[no-]autostash with pull.rebase=trueMehul Jain, Mar 29, 2016
  12. Eric SunshineMar 29, 2016
  13. Mehul JainMar 30, 2016
  14. Eric SunshineMar 30, 2016
  15. Mehul JainApr 1, 2016
  16. Eric SunshineApr 3, 2016
  17. Mehul JainApr 4, 2016
  18. Matthieu MoyApr 4, 2016
  19. Mehul JainApr 4, 2016
  20. Eric SunshineApr 4, 2016
  21. Matthieu MoyApr 4, 2016
  22. Matthieu MoyApr 4, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.