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

Re: [PATCH v2] t0027: check the eol conversion warnings

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 5, 2014, 23:15 UTC
Message-ID
<xmqqfvctofhy.fsf@gitster.dls.corp.google.com>
In-Reply-To
<547B7AF8.80700@web.de>
Torsten Bögershausen <tboegi@web.de> writes:
Show 17 quoted lines
> Depending on the file content, eol parameters and .gitattributes
> "git add" may give a warning when the eol of a file will change
> when the file is checked out again.
>
> There are 2 different warnings, either "CRLF will be replaced..." or
> "LF will be replaced...".
>
> Let t0027 check for these warnings:
> call create_file_in_repo() with additional parameters,
> which will be used to call check_warning().
>
> When a file has eol=lf or eol=crlf in .gitattributes, it is handled
> as text and should be normalized.
> Add missing test cases in t0027.
>
> Signed-off-by: Torsten Bögershausen <tboegi@web.de>
> ---

Thanks; nobody seems to have shown interest in this and it fell through the cracks it seems. I didn't make a connection to the previous discussion when I saw this v2, and backburnered it.

The patch is clear that the change to check the expected "X will be replaced by Y" is added to existing combinations, and also for the lf & crlf cases the existing tests were not checking earlier.

Will queue.
Show 117 quoted lines
> Changes since V1:
> - Simplified the diff
> - Fixed a bug (LF_mix_CR.err was mixed with CRLF_mix_LF)
> - Changed the commit message
>  t/t0027-auto-crlf.sh | 82 ++++++++++++++++++++++++++++++++++++++++++----------
>  1 file changed, 66 insertions(+), 16 deletions(-)
>
> diff --git a/t/t0027-auto-crlf.sh b/t/t0027-auto-crlf.sh
> index 2a4a6c1..452320d 100755
> --- a/t/t0027-auto-crlf.sh
> +++ b/t/t0027-auto-crlf.sh
> @@ -55,16 +55,41 @@ create_gitattributes () {
>  	esac
>  }
>  
> +check_warning () {
> +	case "$1" in
> +	LF_CRLF) grep "LF will be replaced by CRLF" $2;;
> +	CRLF_LF) grep "CRLF will be replaced by LF" $2;;
> +	'')
> +		>expect
> +		grep "will be replaced by" $2 >actual
> +		test_cmp expect actual
> +		;;
> +	*) false ;;
> +	esac
> +}
> +
>  create_file_in_repo () {
>  	crlf=$1
>  	attr=$2
> +	lfname=$3
> +	crlfname=$4
> +	lfmixcrlf=$5
> +	lfmixcr=$6
> +	crlfnul=$7
>  	create_gitattributes "$attr" &&
> +	pfx=crlf_${crlf}_attr_${attr}
>  	for f in LF CRLF LF_mix_CR CRLF_mix_LF CRLF_nul
>  	do
> -		pfx=crlf_${crlf}_attr_${attr}_$f.txt &&
> -		cp $f $pfx && git -c core.autocrlf=$crlf add $pfx
> +		fname=${pfx}_$f.txt &&
> +		cp $f $fname &&
> +		git -c core.autocrlf=$crlf add $fname 2>"${pfx}_$f.err"
>  	done &&
> -	git commit -m "core.autocrlf $crlf"
> +	git commit -m "core.autocrlf $crlf" &&
> +	check_warning "$lfname" ${pfx}_LF.err &&
> +	check_warning "$crlfname" ${pfx}_CRLF.err &&
> +	check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err &&
> +	check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err &&
> +	check_warning "$crlfnul" ${pfx}_CRLF_nul.err
>  }
>  
>  check_files_in_repo () {
> @@ -140,22 +165,47 @@ test_expect_success 'setup master' '
>  '
>  
>  
> -test_expect_success 'create files' '
> -	create_file_in_repo false "" &&
> -	create_file_in_repo true  "" &&
> -	create_file_in_repo input "" &&
>  
> -	create_file_in_repo false "auto" &&
> -	create_file_in_repo true  "auto" &&
> -	create_file_in_repo input "auto" &&
> +warn_LF_CRLF="LF will be replaced by CRLF"
> +warn_CRLF_LF="CRLF will be replaced by LF"
> +
> +test_expect_success 'add files empty attr' '
> +	create_file_in_repo false ""     ""        ""        ""        ""        "" &&
> +	create_file_in_repo true  ""     "LF_CRLF" ""        "LF_CRLF" ""        "" &&
> +	create_file_in_repo input ""     ""        "CRLF_LF" "CRLF_LF" ""        ""
> +'
> +
> +test_expect_success 'add files attr=auto' '
> +	create_file_in_repo false "auto" ""        "CRLF_LF" "CRLF_LF" ""        "" &&
> +	create_file_in_repo true  "auto" "LF_CRLF" ""        "LF_CRLF" ""        "" &&
> +	create_file_in_repo input "auto" ""        "CRLF_LF" "CRLF_LF" ""        ""
> +'
> +
> +test_expect_success 'add files attr=text' '
> +	create_file_in_repo false "text" ""        "CRLF_LF" "CRLF_LF" ""        "CRLF_LF" &&
> +	create_file_in_repo true  "text" "LF_CRLF" ""        "LF_CRLF" "LF_CRLF" ""        &&
> +	create_file_in_repo input "text" ""        "CRLF_LF" "CRLF_LF" ""        "CRLF_LF"
> +'
> +
> +test_expect_success 'add files attr=-text' '
> +	create_file_in_repo false "-text" ""       ""        ""        ""        "" &&
> +	create_file_in_repo true  "-text" ""       ""        ""        ""        "" &&
> +	create_file_in_repo input "-text" ""       ""        ""        ""        ""
> +'
> +
> +test_expect_success 'add files attr=lf' '
> +	create_file_in_repo false "lf"    ""       "CRLF_LF" "CRLF_LF"  ""       "CRLF_LF" &&
> +	create_file_in_repo true  "lf"    ""       "CRLF_LF" "CRLF_LF"  ""       "CRLF_LF" &&
> +	create_file_in_repo input "lf"    ""       "CRLF_LF" "CRLF_LF"  ""       "CRLF_LF"
> +'
>  
> -	create_file_in_repo false "text" &&
> -	create_file_in_repo true  "text" &&
> -	create_file_in_repo input "text" &&
> +test_expect_success 'add files attr=crlf' '
> +	create_file_in_repo false "crlf" "LF_CRLF" ""        "LF_CRLF" "LF_CRLF" "" &&
> +	create_file_in_repo true  "crlf" "LF_CRLF" ""        "LF_CRLF" "LF_CRLF" "" &&
> +	create_file_in_repo input "crlf" "LF_CRLF" ""        "LF_CRLF" "LF_CRLF" ""
> +'
>  
> -	create_file_in_repo false "-text" &&
> -	create_file_in_repo true  "-text" &&
> -	create_file_in_repo input "-text" &&
> +test_expect_success 'create files cleanup' '
>  	rm -f *.txt &&
>  	git reset --hard
>  '
Previous: Torsten Bögershausen
Message 2 of 2 in “t0027: check the eol conversion warnings”
  1. t0027: check the eol conversion warningsTorsten Bögershausen, Nov 30, 2014
  2. Junio C HamanoDec 5, 2014

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.