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

Re: [PATCH v3 2/3] blame,cat-file: Demonstrate --textconv is wrongly running converter on symlinks

From
Kirill Smelkov <kirr@landau.phys.spbu.ru>
Date
Sep 28, 2010, 12:07 UTC
Message-ID
<20100928120730.GB29525@landau.phys.spbu.ru>
In-Reply-To
<7vocbjyrbw.fsf@alter.siamese.dyndns.org>
On Mon, Sep 27, 2010 at 11:27:47AM -0700, Junio C Hamano wrote:
Show 20 quoted lines
> Kirill Smelkov <kirr@landau.phys.spbu.ru> writes:
> 
> > diff --git a/t/t8006-blame-textconv.sh b/t/t8006-blame-textconv.sh
> > index d0f8d62..7d42e96 100755
> > --- a/t/t8006-blame-textconv.sh
> > +++ b/t/t8006-blame-textconv.sh
> > @@ -17,10 +17,12 @@ chmod +x helper
> >  test_expect_success 'setup ' '
> >  	echo "bin: test 1" >one.bin &&
> >  	echo "bin: test number 2" >two.bin &&
> > +	ln -s one.bin symlink.bin &&
> >  	git add . &&
> >  	GIT_AUTHOR_NAME=Number1 git commit -a -m First --date="2010-01-01 18:00:00" &&
> >  	echo "bin: test 1 version 2" >one.bin &&
> >  	echo "bin: test number 2 version 2" >>two.bin &&
> > +	ln -sf two.bin symlink.bin &&
> >  	GIT_AUTHOR_NAME=Number2 git commit -a -m Second --date="2010-01-01 20:00:00"
> >  '
> 
> Doesn't this need some test prereq marker?
Yes, I forgot about symlink prereqs.
Below is interdiff of the fixes to this patch. Updated series with all
queued fixes will be reposted shortly.
 

Thanks, Kirill

---- 8< ----
diff --git a/t/t8006-blame-textconv.sh b/t/t8006-blame-textconv.sh
index 917d362..324f127 100755
--- a/t/t8006-blame-textconv.sh
+++ b/t/t8006-blame-textconv.sh
@@ -17,12 +17,16 @@ chmod +x helper
 test_expect_success 'setup ' '
 	echo "bin: test 1" >one.bin &&
 	echo "bin: test number 2" >two.bin &&
-	ln -s one.bin symlink.bin &&
+	if test_have_prereq SYMLINKS; then
+		ln -s one.bin symlink.bin
+	fi &&
 	git add . &&
 	GIT_AUTHOR_NAME=Number1 git commit -a -m First --date="2010-01-01 18:00:00" &&
 	echo "bin: test 1 version 2" >one.bin &&
 	echo "bin: test number 2 version 2" >>two.bin &&
-	ln -sf two.bin symlink.bin &&
+	if test_have_prereq SYMLINKS; then
+		ln -sf two.bin symlink.bin
+	fi &&
 	GIT_AUTHOR_NAME=Number2 git commit -a -m Second --date="2010-01-01 20:00:00"
 '
 
@@ -84,14 +88,14 @@ cat >expected <<EOF
 (Number2 2010-01-01 20:00:00 +0000 1) two.bin
 EOF
 
-test_expect_success 'blame with --no-textconv (on symlink)' '
+test_expect_success SYMLINKS 'blame with --no-textconv (on symlink)' '
 	git blame --no-textconv symlink.bin >blame &&
 	find_blame <blame >result &&
 	test_cmp expected result
 '
 
 # fails with '...symlink.bin is not "binary" file'
-test_expect_failure 'blame --textconv (on symlink)' '
+test_expect_failure SYMLINKS 'blame --textconv (on symlink)' '
 	git blame --textconv symlink.bin >blame &&
 	find_blame <blame >result &&
 	test_cmp expected result
@@ -99,7 +103,7 @@ test_expect_failure 'blame --textconv (on symlink)' '
 
 # cp two.bin three.bin  and make small tweak
 # (this will direct blame -C -C three.bin to consider two.bin and symlink.bin)
-test_expect_success 'make another new commit' '
+test_expect_success SYMLINKS 'make another new commit' '
 	cat >three.bin <<\EOF &&
 bin: test number 2
 bin: test number 2 version 2
@@ -111,7 +115,7 @@ EOF
 '
 
 # fails with '...symlink.bin is not "binary" file'
-test_expect_failure 'blame on last commit (-C -C, symlink)' '
+test_expect_failure SYMLINKS 'blame on last commit (-C -C, symlink)' '
 	git blame -C -C three.bin >blame &&
 	find_blame <blame >result &&
 	cat >expected <<\EOF &&
diff --git a/t/t8007-cat-file-textconv.sh b/t/t8007-cat-file-textconv.sh
index 7bec265..03af7ae 100755
--- a/t/t8007-cat-file-textconv.sh
+++ b/t/t8007-cat-file-textconv.sh
@@ -12,7 +12,9 @@ chmod +x helper
 
 test_expect_success 'setup ' '
 	echo "bin: test" >one.bin &&
-	ln -s one.bin symlink.bin &&
+	if test_have_prereq SYMLINKS; then
+		ln -s one.bin symlink.bin
+	fi &&
 	git add . &&
 	GIT_AUTHOR_NAME=Number1 git commit -a -m First --date="2010-01-01 18:00:00" &&
 	echo "bin: test version 2" >one.bin &&
@@ -70,7 +72,7 @@ test_expect_success 'cat-file --textconv on previous commit' '
 	test_cmp expected result
 '
 
-test_expect_success 'cat-file without --textconv (symlink)' '
+test_expect_success SYMLINKS 'cat-file without --textconv (symlink)' '
 	git cat-file blob :symlink.bin >result &&
 	printf "%s" "one.bin" >expected
 	test_cmp expected result
@@ -78,7 +80,7 @@ test_expect_success 'cat-file without --textconv (symlink)' '
 
 
 # fails because cat-file tries to run converter on symlink.bin
-test_expect_failure 'cat-file --textconv on index (symlink)' '
+test_expect_failure SYMLINKS 'cat-file --textconv on index (symlink)' '
 	! git cat-file --textconv :symlink.bin 2>result &&
 	cat >expected <<\EOF &&
 fatal: git cat-file --textconv: unable to run textconv on :symlink.bin
@@ -87,7 +89,7 @@ EOF
 '
 
 # fails because cat-file tries to run converter on symlink.bin
-test_expect_failure 'cat-file --textconv on HEAD (symlink)' '
+test_expect_failure SYMLINKS 'cat-file --textconv on HEAD (symlink)' '
 	! git cat-file --textconv HEAD:symlink.bin 2>result &&
 	cat >expected <<EOF &&
 fatal: git cat-file --textconv: unable to run textconv on HEAD:symlink.bin
Previous: Junio C HamanoNext: Kirill Smelkov
Message 17 of 18 in “Fix {blame,cat-file} --textconv for cases with symlinks”
  1. 0/3 Fix {blame,cat-file} --textconv for cases with symlinksKirill Smelkov, Sep 24, 2010
  2. 1/3 tests: Prepare --textconv tests for correctly-failing conversion programKirill Smelkov, Sep 24, 2010
  3. Junio C HamanoSep 27, 2010
  4. Kirill SmelkovSep 28, 2010
  5. Kirill SmelkovSep 28, 2010
  6. Kirill SmelkovSep 28, 2010
  7. Jeff KingSep 28, 2010
  8. Kirill SmelkovSep 28, 2010
  9. Jeff KingSep 28, 2010
  10. Kirill SmelkovSep 28, 2010
  11. Junio C HamanoSep 28, 2010
  12. Jeff KingSep 28, 2010
  13. Kirill SmelkovSep 28, 2010
  14. Kirill SmelkovSep 29, 2010
  15. 2/3 blame,cat-file: Demonstrate --textconv is wrongly running converter on symlinksKirill Smelkov, Sep 24, 2010
  16. Junio C HamanoSep 27, 2010
  17. Kirill SmelkovSep 28, 2010
  18. 3/3 blame,cat-file --textconv: Don't assume mode is ``S_IFREF | 0664''Kirill Smelkov, Sep 24, 2010

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.