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

Re: [PATCH 5/6] t/diff-lib: check exact object names in compare_diff_raw

From
Johannes Sixt <j6t@kdbg.org>
Date
Feb 23, 2015, 18:14 UTC
Message-ID
<54EB6E17.5040102@kdbg.org>
In-Reply-To
<1424043824-25242-6-git-send-email-gitster@pobox.com>
Am 16.02.2015 um 00:43 schrieb Junio C Hamano:
Show 33 quoted lines
> The "sanitize" helper wanted to strip the similarity and
> dissimilarity scores when making comparison, but it was
> stripping away the object names as well.
> 
> While we do not want to require the exact object names the tests
> expect to be maintained, as it would be seen as an extra burden,
> this would have prevented us catching a silly bug such as showing
> non 0{40} object name on the preimage side of an addition or on the
> postimage side of a deletion, because all [0-9a-f]{40} strings were
> considered equally OK.
> 
> In the longer term, when a test only wants to see the status of the
> change without having to worry about object names, it should be
> rewritten not to inspect the raw format.
> 
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
>   t/diff-lib.sh | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/t/diff-lib.sh b/t/diff-lib.sh
> index 75a35fc..c211dc4 100644
> --- a/t/diff-lib.sh
> +++ b/t/diff-lib.sh
> @@ -1,6 +1,6 @@
>   :
>   
> -sanitize_diff_raw='/^:/s/ '"$_x40"' '"$_x40"' \([A-Z]\)[0-9]*	/ X X \1#	/'
> +sanitize_diff_raw='/^:/s/ '"\($_x40\)"' '"\($_x40\)"' \([A-Z]\)[0-9]*	/ \1 \2 \3#	/'
>   compare_diff_raw () {
>       # When heuristics are improved, the score numbers would change.
>       # Ignore them while comparing.
> 
This reveals a minor bug in test_ln_s_add:
---- 8< ----
Subject: [PATCH] test_ln_s_add: refresh stat info of fake symbolic links

We have a helper function test_ln_s_add that inserts a symbolic link into the index even if the file system does not support symbolic links. There is a small flaw in the emulation path: the added entry does not pick up stat information of the fake symbolic link from the file system, as a consequence, the index is not exactly the same as for the "regular" path (where symbolic links are available). To fix this, just call git update-index again.

This flaw was revealed by the earlier change that tightened compare_diff_raw(), because a test case in t4008 depends on the correctly updated index.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
 t/test-lib-functions.sh | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
index cb132cf..bd1069b 100644
--- a/t/test-lib-functions.sh
+++ b/t/test-lib-functions.sh
@@ -749,7 +749,9 @@ test_ln_s_add () {
 	else
 		printf '%s' "$1" >"$2" &&
 		ln_s_obj=$(git hash-object -w "$2") &&
-		git update-index --add --cacheinfo 120000 $ln_s_obj "$2"
+		git update-index --add --cacheinfo 120000 $ln_s_obj "$2" &&
+		# pick up stat info from the file
+		git update-index "$2"
 	fi
 }
 
-- 
2.3.0.rc0.21.g454f6cd
Previous: Junio C HamanoNext: Junio C Hamano
Message 7 of 10 in “test updates around diff”
  1. 0/6 test updates around diffJunio C Hamano, Feb 15, 2015
  2. 1/6 t4008: correct stale commentsJunio C Hamano, Feb 15, 2015
  3. 2/6 t9300: correct expected object namesJunio C Hamano, Feb 15, 2015
  4. 3/6 t4010: correct expected object namesJunio C Hamano, Feb 15, 2015
  5. 4/6 tests: do not borrow from COPYING and README from the real sourceJunio C Hamano, Feb 15, 2015
  6. 5/6 t/diff-lib: check exact object names in compare_diff_rawJunio C Hamano, Feb 15, 2015
  7. Johannes SixtFeb 23, 2015
  8. Junio C HamanoFeb 23, 2015
  9. 6/6 t4008: modernise styleJunio C Hamano, Feb 15, 2015
  10. Jeff KingFeb 16, 2015

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.