Skip to contentSkip to conversation

t0027: Support NATIVE_CRLF

PATCH In review Torsten Bögershausen 4 participants 7 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

PATCH v2 2/2 t0027: Support NATIVE_CRLF

Without this patch, t0027 expects the native end-of-lines to be a single line feed character. On Windows, however, we set it to a carriage return character followed by a line feed character. Thus, we have to modify t0027 to expect different warnings depending on the end-of-line markers.

Adjust the check of the warnings and use these macros:
WILC: Warn if LF becomes CRLF
WICL: Warn if CRLF becomes LF
WAMIX: Mixed line endings: either CRLF->LF or LF->CRLF

Improve the information given by check_warning():
Use test_cmp to show which warning is missing (or should'n t be there)

---
 t/t0027-auto-crlf.sh | 30 ++++++++++++++++++++----------
 1 file changed, 20 insertions(+), 10 deletions(-)
t/t0027-auto-crlf.sh +20 -10
index 5858397..8975b97 100755
@@ -57,15 +57,13 @@ create_gitattributes () {
 
 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 ;;
+	LF_CRLF) echo "warning: LF will be replaced by CRLF" >"$2".expect ;;
+	CRLF_LF) echo "warning: CRLF will be replaced by LF" >"$2".expect ;;
+	'')	                                                 >"$2".expect ;;
+	*) echo >&2 "Illegal 1": "$1" ; return false ;;
 	esac
+	grep "will be replaced by" "$2" | sed -e "s/\(.*\) in [^ ]*$/\1/" >"$2".actual
+	test_cmp "$2".expect "$2".actual
 }
 
 commit_check_warn () {
@@ -169,6 +167,18 @@ test_expect_success 'setup master' '
 warn_LF_CRLF="LF will be replaced by CRLF"
 warn_CRLF_LF="CRLF will be replaced by LF"
 
+#WILC means "Warn if (this OS) converts LF into CRLF"
+if test_have_prereq NATIVE_CRLF
+then
+WILC=LF_CRLF
+WICL=
+WAMIX=LF_CRLF
+else
+WILC=
+WICL=CRLF_LF
+WAMIX=CRLF_LF
+fi
+
 test_expect_success 'commit files empty attr' '
 	commit_check_warn false ""     ""        ""        ""        ""        "" &&
 	commit_check_warn true  ""     "LF_CRLF" ""        "LF_CRLF" ""        "" &&
@@ -176,13 +186,13 @@ test_expect_success 'commit files empty attr' '
 '
 
 test_expect_success 'commit files attr=auto' '
-	commit_check_warn false "auto" ""        "CRLF_LF" "CRLF_LF" ""        "" &&
+	commit_check_warn false "auto" "$WILC"  "$WICL"    "$WAMIX"  ""        "" &&
 	commit_check_warn true  "auto" "LF_CRLF" ""        "LF_CRLF" ""        "" &&
 	commit_check_warn input "auto" ""        "CRLF_LF" "CRLF_LF" ""        ""
 '
 
 test_expect_success 'commit files attr=text' '
-	commit_check_warn false "text" ""        "CRLF_LF" "CRLF_LF" ""        "CRLF_LF" &&
+	commit_check_warn false "text" "$WILC"  "$WICL"    "$WAMIX"  "$WILC"  "$WICL" &&
 	commit_check_warn true  "text" "LF_CRLF" ""        "LF_CRLF" "LF_CRLF" ""        &&
 	commit_check_warn input "text" ""        "CRLF_LF" "CRLF_LF" ""        "CRLF_LF"
 '
Signature · 1 line
2.2.0.rc1.790.ge19fcd2
#1 lore raw

Hi Torsten,

Quoted 10 lines · Torsten Bögershausen

Without this patch, t0027 expects the native end-of-lines to be a single line feed character. On Windows, however, we set it to a carriage return character followed by a line feed character. Thus, we have to modify t0027 to expect different warnings depending on the end-of-line markers.

Adjust the check of the warnings and use these macros:
WILC: Warn if LF becomes CRLF
WICL: Warn if CRLF becomes LF
WAMIX: Mixed line endings: either CRLF->LF or LF->CRLF

Quoted 5 lines

Improve the information given by check_warning():
Use test_cmp to show which warning is missing (or should'n t be there)

Thank you so much!
Dscho

#2 lore raw
Quoted 13 lines · Johannes Schindelin

Hi Torsten,

Quoted 10 lines · Torsten Bögershausen

Without this patch, t0027 expects the native end-of-lines to be a single line feed character. On Windows, however, we set it to a carriage return character followed by a line feed character. Thus, we have to modify t0027 to expect different warnings depending on the end-of-line markers.

Adjust the check of the warnings and use these macros:
WILC: Warn if LF becomes CRLF
WICL: Warn if CRLF becomes LF
WAMIX: Mixed line endings: either CRLF->LF or LF->CRLF

Quoted 8 lines
Quoted 5 lines

Improve the information given by check_warning():
Use test_cmp to show which warning is missing (or should'n t be there)

Thank you so much!
Dscho

Thanks, is that "Acked-by: Dscho" for both patches?

#3 lore raw

Hi Junio,

Quoted 16 lines · Junio C Hamano
Quoted 14 lines · Johannes Schindelin
Quoted 13 lines · Torsten Bögershausen

Without this patch, t0027 expects the native end-of-lines to be a single line feed character. On Windows, however, we set it to a carriage return character followed by a line feed character. Thus, we have to modify t0027 to expect different warnings depending on the end-of-line markers.

Adjust the check of the warnings and use these macros:
WILC: Warn if LF becomes CRLF
WICL: Warn if CRLF becomes LF
WAMIX: Mixed line endings: either CRLF->LF or LF->CRLF

Improve the information given by check_warning():
Use test_cmp to show which warning is missing (or should'n t be there)

Quoted 7 lines
Quoted 5 lines
Quoted 2 lines

Thank you so much!
Dscho

Thanks, is that "Acked-by: Dscho" for both patches?

Oops, yes:

Sorry!
Dscho

#4 lore raw
In reply to Torsten Bögershausen
Quoted 10 lines · Torsten Bögershausen

Without this patch, t0027 expects the native end-of-lines to be a single line feed character. On Windows, however, we set it to a carriage return character followed by a line feed character. Thus, we have to modify t0027 to expect different warnings depending on the end-of-line markers.

Adjust the check of the warnings and use these macros:
WILC: Warn if LF becomes CRLF
WICL: Warn if CRLF becomes LF
WAMIX: Mixed line endings: either CRLF->LF or LF->CRLF

Quoted 5 lines

Improve the information given by check_warning():
Use test_cmp to show which warning is missing (or should'n t be there)

Originally I wanted to have Dscho as "Author", is that OK with you ? (But the "From:" line didn't made it through my email program)

#5 lore raw

Hi Torsten,

Quoted 11 lines · Torsten Bögershausen
Quoted 10 lines · Torsten Bögershausen

Without this patch, t0027 expects the native end-of-lines to be a single line feed character. On Windows, however, we set it to a carriage return character followed by a line feed character. Thus, we have to modify t0027 to expect different warnings depending on the end-of-line markers.

Adjust the check of the warnings and use these macros:
WILC: Warn if LF becomes CRLF
WICL: Warn if CRLF becomes LF
WAMIX: Mixed line endings: either CRLF->LF or LF->CRLF

Quoted 7 lines
Quoted 5 lines

Improve the information given by check_warning():
Use test_cmp to show which warning is missing (or should'n t be there)

Originally I wanted to have Dscho as "Author", is that OK with you ? (But the "From:" line didn't made it through my email program)

No worries.
Dscho

#6 lore raw
In reply to Torsten Bögershausen
Quoted 5 lines · Torsten Bögershausen

Without this patch, t0027 expects the native end-of-lines to be a single line feed character. On Windows, however, we set it to a carriage return character followed by a line feed character. Thus, we have to modify t0027 to expect different warnings depending on the end-of-line markers.

Quoted 7 lines

Adjust the check of the warnings and use these macros:
WILC: Warn if LF becomes CRLF
WICL: Warn if CRLF becomes LF
WAMIX: Mixed line endings: either CRLF->LF or LF->CRLF

Improve the information given by check_warning():
Use test_cmp to show which warning is missing (or should'n t be there)

s/should'n t/shouldn't/

Quoted 2 lines