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

[PATCH] t4049: avoid test failures on filemode challenged file systems (Windows)

From
Johannes Sixt <j.sixt@viscovery.net>
Date
Nov 29, 2012, 08:22 UTC
Message-ID
<50B71B33.1090000@viscovery.net>
In-Reply-To
<1354051310-29093-1-git-send-email-gitster@pobox.com>
From: Johannes Sixt <j6t@kdbg.org>

The earlier change 74faaa16 (Fix "git diff --stat" for interesting - but empty - file changes) needed to change the count of differing files because the executable-bit changes of two empty files are now counted.

On file systems that do not record the executable bit, however, the old file count was actually correct (and the updated tests fail) because the mode change cannot be diagnosed by looking at the file system alone.

Change the mode not only on the file system, but also in the index; compare the new state against the commit, so that the tests do not depend on the file system's ability to record the executable bit, when possible.

The exception is the test for unmerged entries, which does depend on the file system; we have to skip it.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
Am 11/27/2012 22:21, schrieb Junio C Hamano:
> It turns out that there are at least two bugs in the diffstat
> counting code.  This series comes on top of the earlier 74faaa1 (Fix
> "git diff --stat" for interesting - but empty - file changes,
> 2012-10-17) to fix them.

The tests still fail on Windows. I am not sure whether there is a difference in comparing the file system against the index or a commit. If there is, then the updated tests might not test the same thing.

-- Hannes
 t/t4049-diff-stat-count.sh | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/t/t4049-diff-stat-count.sh b/t/t4049-diff-stat-count.sh
index 37f50cd..9e29e71 100755
--- a/t/t4049-diff-stat-count.sh
+++ b/t/t4049-diff-stat-count.sh
@@ -15,7 +15,7 @@ test_expect_success 'setup' '
 
 test_expect_success 'limit output to 2 (simple)' '
 	git reset --hard &&
-	chmod +x c d &&
+	test_chmod +x c d &&
 	echo a >a &&
 	echo b >b &&
 	cat >expect <<-\EOF
@@ -24,13 +24,13 @@ test_expect_success 'limit output to 2 (simple)' '
 	 ...
 	 4 files changed, 2 insertions(+)
 	EOF
-	git diff --stat --stat-count=2 >actual &&
+	git diff --stat --stat-count=2 HEAD >actual &&
 	test_i18ncmp expect actual
 '
 
 test_expect_success 'binary changes do not count in lines' '
 	git reset --hard &&
-	chmod +x c d &&
+	test_chmod +x c d &&
 	echo a >a &&
 	echo b >b &&
 	cat "$TEST_DIRECTORY"/test-binary-1.png >d &&
@@ -40,11 +40,11 @@ test_expect_success 'binary changes do not count in lines' '
 	 ...
 	 4 files changed, 2 insertions(+)
 	EOF
-	git diff --stat --stat-count=2 >actual &&
+	git diff --stat --stat-count=2 HEAD >actual &&
 	test_i18ncmp expect actual
 '
 
-test_expect_success 'exclude unmerged entries from total file count' '
+test_expect_success FILEMODE 'exclude unmerged entries from total file count' '
 	git reset --hard &&
 	echo a >a &&
 	echo b >b &&
-- 
1.8.0.1.1524.gaf6675c
Previous: Junio C HamanoNext: Junio C Hamano
Message 8 of 15 in “"diff --stat" counting fixes”
  1. 0/5 "diff --stat" counting fixesJunio C Hamano, Nov 27, 2012
  2. 1/5 test: add failing tests for "diff --stat" to t4049Junio C Hamano, Nov 27, 2012
  3. 2/5 diff --stat: status of unmodified pair in diff-q is not zeroJunio C Hamano, Nov 27, 2012
  4. 3/5 diff --stat: use "file" temporary variable to refer to data->files[i]Junio C Hamano, Nov 27, 2012
  5. 4/5 diff --stat: move the "total count" logic to the last loopJunio C Hamano, Nov 27, 2012
  6. 5/5 diff --stat: do not count "unmerged" entriesJunio C Hamano, Nov 27, 2012
  7. 6/5 diff --shortstat: do not count "unmerged" entriesJunio C Hamano, Nov 27, 2012
  8. t4049: avoid test failures on filemode challenged file systems (Windows)Johannes Sixt, Nov 29, 2012
  9. Junio C HamanoNov 29, 2012
  10. Junio C HamanoNov 29, 2012
  11. Junio C HamanoNov 29, 2012
  12. Johannes SixtNov 30, 2012
  13. Junio C HamanoDec 2, 2012
  14. Antoine PelisseDec 1, 2012
  15. Junio C HamanoDec 2, 2012

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.