threads / discuss / 37663

Failing tests in t0027-autocrlf.sh under msysgit/git-win-sdk

Subject: Failing tests in t0027-autocrlf.sh under msysgit/git-win-sdk

## tl;dr

3 messages between Oct 2, 2014 and Oct 2, 2014.

replies: 2people: 2as markdown or json

Thomas Braun· Oct 2, 2014, 12:39 UTC · lore
Hi,

I've enabled EXPENSIVE and ran the git test suite under msysgit/git-win-sdk with git version 2.1.0.9753.g360f311.dirty.

Now I have some failing tests in t0027-autocrlf.sh in the MINGW only section which puzzle me.
The offending test sets are
diff --git a/t/t0027-auto-crlf.sh b/t/t0027-auto-crlf.sh
index 72dd3e8..90c4cd1 100755
--- a/t/t0027-auto-crlf.sh
+++ b/t/t0027-auto-crlf.sh
@@ -245,18 +245,18 @@ if test_have_prereq MINGW
 then
 check_files_in_ws ""      false ""        LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
 check_files_in_ws ""      true  ""        CRLF  CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
-check_files_in_ws ""      false "auto"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
+# check_files_in_ws ""      false "auto"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul # first broken
 check_files_in_ws ""      true  "auto"    CRLF  CRLF  CRLF         LF_mix_CR    CRLF_nul
-check_files_in_ws ""      false "text"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
+# check_files_in_ws ""      false "text"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul # broken
 check_files_in_ws ""      true  "text"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
 check_files_in_ws ""      false "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
 check_files_in_ws ""      true  "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
 
 check_files_in_ws native  false ""        LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
 check_files_in_ws native  true  ""        CRLF  CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
-check_files_in_ws native  false "auto"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
+# check_files_in_ws native  false "auto"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul # broken
 check_files_in_ws native  true  "auto"    CRLF  CRLF  CRLF         LF_mix_CR    CRLF_nul
-check_files_in_ws native  false "text"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
+# check_files_in_ws native  false "text"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul # broken
 check_files_in_ws native  true  "text"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
 check_files_in_ws native  false "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
 check_files_in_ws native  true  "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul

I tried with NATIVE_CRLF = YesPlease but 117 failed too.

First question, under what MINGW system do these tests pass?
Second question any hints how to tackle this?

The first failing test is
not ok 117 - checkout core.eol= core.autocrlf=false gitattributes=auto file=LF
#
#                       compare_ws_file eol__crlf_false_attr_auto_ LF    crlf_false_attr__LF.txt
#


where I have in the trash directory

$ diff -Nur *expect* *actual*
--- LF.expect   2014-10-02 12:15:17 +0000
+++ eol__crlf_false_attr_auto_.actual.crlf_false_attr__LF.txt   2014-10-02 12:15
:17 +0000
@@ -1,3 +1,3 @@
-0000000   l   i   n   e   1  \n   l   i   n   e   2  \n   l   i   n   e
-0000020   3
-0000021
+0000000   l   i   n   e   1  \r  \n   l   i   n   e   2  \r  \n   l   i
+0000020   n   e   3
+0000023

Reading convert.h tells me that for undefined NATIVE_CRLF the native EOL is LF.
Which looks like the test is correct.

Thomas
Torsten Bögershausen· Oct 2, 2014, 13:42 UTC · re: Thomas Braun · lore

Re: Failing tests in t0027-autocrlf.sh under msysgit/git-win-sdk

On 2014-10-02 14.39, Thomas Braun wrote:
Show 19 quoted lines
> Hi,
> 
> I've enabled EXPENSIVE and ran the git test suite under msysgit/git-win-sdk with
> git version 2.1.0.9753.g360f311.dirty.
> 
> Now I have some failing tests in t0027-autocrlf.sh in the MINGW only section which puzzle me.
> 
> The offending test sets are
> 
> diff --git a/t/t0027-auto-crlf.sh b/t/t0027-auto-crlf.sh
> index 72dd3e8..90c4cd1 100755
> --- a/t/t0027-auto-crlf.sh
> +++ b/t/t0027-auto-crlf.sh
> @@ -245,18 +245,18 @@ if test_have_prereq MINGW
>  then
>  check_files_in_ws ""      false ""        LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>  check_files_in_ws ""      true  ""        CRLF  CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
> -check_files_in_ws ""      false "auto"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
> +# check_files_in_ws ""      false "auto"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul # first broken
Show 22 quoted lines
>  check_files_in_ws ""      true  "auto"    CRLF  CRLF  CRLF         LF_mix_CR    CRLF_nul
> -check_files_in_ws ""      false "text"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
> +# check_files_in_ws ""      false "text"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul # broken
>  check_files_in_ws ""      true  "text"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
>  check_files_in_ws ""      false "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>  check_files_in_ws ""      true  "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>  
>  check_files_in_ws native  false ""        LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>  check_files_in_ws native  true  ""        CRLF  CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
> -check_files_in_ws native  false "auto"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
> +# check_files_in_ws native  false "auto"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul # broken
>  check_files_in_ws native  true  "auto"    CRLF  CRLF  CRLF         LF_mix_CR    CRLF_nul
> -check_files_in_ws native  false "text"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
> +# check_files_in_ws native  false "text"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul # broken
>  check_files_in_ws native  true  "text"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
>  check_files_in_ws native  false "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>  check_files_in_ws native  true  "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
> 
> I tried with NATIVE_CRLF = YesPlease but 117 failed too.
> 
> First question, under what MINGW system do these tests pass?
> Second question any hints how to tackle this?
Show 13 quoted lines
> 
> The first failing test is
> not ok 117 - checkout core.eol= core.autocrlf=false gitattributes=auto file=LF
> #
> #                       compare_ws_file eol__crlf_false_attr_auto_ LF    crlf_false_attr__LF.txt
> #
> 
> 
> where I have in the trash directory
> 
> $ diff -Nur *expect* *actual*
> --- LF.expect   2014-10-02 12:15:17 +0000
> +++ eol__crlf_false_attr_auto_.actual.crlf_false_attr__LF.txt   2014-10-02 12:15

First things first: We have a file with LF in the repo, and check it out.

Read it like this:
"eol__crlf_false_attr_auto_.actual"
                 ^ *.txt auto in .gitconfig   
      ^
      core.autocrlf is false 
  ^
  core.eol is unset
The file is expected to have LF in the working tree, but has CRLF
Show 14 quoted lines
> :17 +0000
> @@ -1,3 +1,3 @@
> -0000000   l   i   n   e   1  \n   l   i   n   e   2  \n   l   i   n   e
> -0000020   3
> -0000021
> +0000000   l   i   n   e   1  \r  \n   l   i   n   e   2  \r  \n   l   i
> +0000020   n   e   3
> +0000023
> 
> Reading convert.h tells me that for undefined NATIVE_CRLF the native EOL is LF.
> Which looks like the test is correct.
> 
> Thomas
> 

Which version of t0027 do you have: The latest version in git.git is this one, and "should pass" (but I may have missed something)

commit f6975a6b119128de1c5a89e6cd64f75ed1de2177
Author: Torsten Bögershausen <tboegi@web.de>
Date:   Sat Aug 16 22:16:58 2014 +0200
    t0027: Tests for core.eol=native, eol=lf, eol=crlf
    
    Add test cases for core.eol "native" and "" (unset).
    (MINGW uses CRLF, all other systems LF as native line endings)
    
    Add test cases for the attributes "eol=lf" and "eol=crlf"
    
    Other minor changes:
    - Use the more portable 'tr' instead of 'od -c' to convert '\n' into 'Q'
      and '\0' into 'N'
    - Style fixes for shell functions according to the coding guide lines
    - Replace "txtbin" with "attr"
    
    Signed-off-by: Torsten Bögershausen <tboegi@web.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Braun· Oct 2, 2014, 14:14 UTC · re: Torsten Bögershausen · lore

Re: Failing tests in t0027-autocrlf.sh under msysgit/git-win-sdk

Am 02.10.2014 um 15:42 schrieb Torsten Bögershausen:
Show 68 quoted lines
> On 2014-10-02 14.39, Thomas Braun wrote:
>> Hi,
>>
>> I've enabled EXPENSIVE and ran the git test suite under msysgit/git-win-sdk with
>> git version 2.1.0.9753.g360f311.dirty.
>>
>> Now I have some failing tests in t0027-autocrlf.sh in the MINGW only section which puzzle me.
>>
>> The offending test sets are
>>
>> diff --git a/t/t0027-auto-crlf.sh b/t/t0027-auto-crlf.sh
>> index 72dd3e8..90c4cd1 100755
>> --- a/t/t0027-auto-crlf.sh
>> +++ b/t/t0027-auto-crlf.sh
>> @@ -245,18 +245,18 @@ if test_have_prereq MINGW
>>  then
>>  check_files_in_ws ""      false ""        LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>>  check_files_in_ws ""      true  ""        CRLF  CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>> -check_files_in_ws ""      false "auto"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>> +# check_files_in_ws ""      false "auto"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul # first broken
> 
>>  check_files_in_ws ""      true  "auto"    CRLF  CRLF  CRLF         LF_mix_CR    CRLF_nul
>> -check_files_in_ws ""      false "text"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>> +# check_files_in_ws ""      false "text"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul # broken
>>  check_files_in_ws ""      true  "text"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
>>  check_files_in_ws ""      false "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>>  check_files_in_ws ""      true  "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>>  
>>  check_files_in_ws native  false ""        LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>>  check_files_in_ws native  true  ""        CRLF  CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>> -check_files_in_ws native  false "auto"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>> +# check_files_in_ws native  false "auto"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul # broken
>>  check_files_in_ws native  true  "auto"    CRLF  CRLF  CRLF         LF_mix_CR    CRLF_nul
>> -check_files_in_ws native  false "text"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>> +# check_files_in_ws native  false "text"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul # broken
>>  check_files_in_ws native  true  "text"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
>>  check_files_in_ws native  false "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>>  check_files_in_ws native  true  "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
>>
>> I tried with NATIVE_CRLF = YesPlease but 117 failed too.
>>
>> First question, under what MINGW system do these tests pass?
>> Second question any hints how to tackle this?
> 
>>
>> The first failing test is
>> not ok 117 - checkout core.eol= core.autocrlf=false gitattributes=auto file=LF
>> #
>> #                       compare_ws_file eol__crlf_false_attr_auto_ LF    crlf_false_attr__LF.txt
>> #
>>
>>
>> where I have in the trash directory
>>
>> $ diff -Nur *expect* *actual*
>> --- LF.expect   2014-10-02 12:15:17 +0000
>> +++ eol__crlf_false_attr_auto_.actual.crlf_false_attr__LF.txt   2014-10-02 12:15
> 
> First things first:
> We have a file with LF in the repo, and check it out.
> 
> Read it like this:
> "eol__crlf_false_attr_auto_.actual"
>                  ^ *.txt auto in .gitconfig   
>       ^
>       core.autocrlf is false 
>   ^
>   core.eol is unset
Thanks for the explanation.
Show 39 quoted lines
> The file is expected to have LF in the working tree, but has CRLF
> 
>> :17 +0000
>> @@ -1,3 +1,3 @@
>> -0000000   l   i   n   e   1  \n   l   i   n   e   2  \n   l   i   n   e
>> -0000020   3
>> -0000021
>> +0000000   l   i   n   e   1  \r  \n   l   i   n   e   2  \r  \n   l   i
>> +0000020   n   e   3
>> +0000023
>>
>> Reading convert.h tells me that for undefined NATIVE_CRLF the native EOL is LF.
>> Which looks like the test is correct.
>>
>> Thomas
>>
> Which version of t0027 do you have:
> The latest version in git.git is this one,
> and "should pass" (but I may have missed something)
> 
> commit f6975a6b119128de1c5a89e6cd64f75ed1de2177
> Author: Torsten Bögershausen <tboegi@web.de>
> Date:   Sat Aug 16 22:16:58 2014 +0200
> 
>     t0027: Tests for core.eol=native, eol=lf, eol=crlf
>     
>     Add test cases for core.eol "native" and "" (unset).
>     (MINGW uses CRLF, all other systems LF as native line endings)
>     
>     Add test cases for the attributes "eol=lf" and "eol=crlf"
>     
>     Other minor changes:
>     - Use the more portable 'tr' instead of 'od -c' to convert '\n' into 'Q'
>       and '\0' into 'N'
>     - Style fixes for shell functions according to the coding guide lines
>     - Replace "txtbin" with "attr"
>     
>     Signed-off-by: Torsten Bögershausen <tboegi@web.de>
>     Signed-off-by: Junio C Hamano <gitster@pobox.com>

Correct guess! I've been testing the original version 343151dc (t0027: combinations of core.autocrlf, core.eol and text, 2014-07-08). f6975a6 of t0027-autocrlf.sh passes now completely.

Thanks for the quick reply.
Thomas

← back to recent threads