t0027: add tests for get_stream_filter()

When a filter is configured, a different code-path is used in convert.c
and entry.c via get_stream_filter(), but there are no test cases yet.

Add tests for the filter API by configuring the ident filter.
The result of the SHA1 conversion is not checked, this is already
done in other TC.

Add a parameter to checkout_files() in t0027.
While changing the signature, add another parameter for the eol= attribute.
This is currently unused, tests for e.g.
"* text=auto eol=lf" will be added in a separate commit.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Torsten Bögershausen 2016-02-05 17:13:20 +01:00 committed by Junio C Hamano
parent 05f1539b7f
commit 320d39cdb0
1 changed files with 144 additions and 133 deletions

View File

@ -21,38 +21,32 @@ compare_ws_file () {
pfx=$1 pfx=$1
exp=$2.expect exp=$2.expect
act=$pfx.actual.$3 act=$pfx.actual.$3
tr '\015\000' QN <"$2" >"$exp" && tr '\015\000abcdef0123456789' QN00000000000000000 <"$2" >"$exp" &&
tr '\015\000' QN <"$3" >"$act" && tr '\015\000abcdef0123456789' QN00000000000000000 <"$3" >"$act" &&
test_cmp $exp $act && test_cmp "$exp" "$act" &&
rm $exp $act rm "$exp" "$act"
} }


create_gitattributes () { create_gitattributes () {
attr=$1 {
case "$attr" in while test "$#" != 0
auto) do
echo "*.txt text=auto" >.gitattributes case "$1" in
;; auto) echo '*.txt text=auto' ;;
text) ident) echo '*.txt ident' ;;
echo "*.txt text" >.gitattributes text) echo '*.txt text' ;;
;; -text) echo '*.txt -text' ;;
-text) crlf) echo '*.txt eol=crlf' ;;
echo "*.txt -text" >.gitattributes lf) echo '*.txt eol=lf' ;;
;; "") ;;
crlf) *)
echo "*.txt eol=crlf" >.gitattributes echo >&2 invalid attribute: "$1"
;; exit 1
lf) ;;
echo "*.txt eol=lf" >.gitattributes esac &&
;; shift
"") done
echo >.gitattributes } >.gitattributes
;;
*)
echo >&2 invalid attribute: $attr
exit 1
;;
esac
} }


create_NNO_files () { create_NNO_files () {
@ -208,28 +202,30 @@ check_in_repo_NNO () {
} }


checkout_files () { checkout_files () {
eol=$1 attr=$1 ; shift
crlf=$2 ident=$1; shift
attr=$3 aeol=$1 ; shift
lfname=$4 crlf=$1 ; shift
crlfname=$5 ceol=$1 ; shift
lfmixcrlf=$6 lfname=$1 ; shift
lfmixcr=$7 crlfname=$1 ; shift
crlfnul=$8 lfmixcrlf=$1 ; shift
create_gitattributes $attr && lfmixcr=$1 ; shift
crlfnul=$1 ; shift
create_gitattributes "$attr" "$ident" &&
git config core.autocrlf $crlf && git config core.autocrlf $crlf &&
pfx=eol_${eol}_crlf_${crlf}_attr_${attr}_ && pfx=eol_${ceol}_crlf_${crlf}_attr_${attr}_ &&
for f in LF CRLF LF_mix_CR CRLF_mix_LF LF_nul for f in LF CRLF LF_mix_CR CRLF_mix_LF LF_nul
do do
rm crlf_false_attr__$f.txt && rm crlf_false_attr__$f.txt &&
if test -z "$eol"; then if test -z "$ceol"; then
git checkout crlf_false_attr__$f.txt git checkout crlf_false_attr__$f.txt
else else
git -c core.eol=$eol checkout crlf_false_attr__$f.txt git -c core.eol=$ceol checkout crlf_false_attr__$f.txt
fi fi
done done


test_expect_success "ls-files --eol $lfname ${pfx}LF.txt" ' test_expect_success "ls-files --eol attr=$attr $ident $aeol core.autocrlf=$crlf core.eol=$ceol" '
test_when_finished "rm expect actual" && test_when_finished "rm expect actual" &&
sort <<-EOF >expect && sort <<-EOF >expect &&
i/crlf w/$(stats_ascii $crlfname) crlf_false_attr__CRLF.txt i/crlf w/$(stats_ascii $crlfname) crlf_false_attr__CRLF.txt
@ -244,19 +240,19 @@ checkout_files () {
sort >actual && sort >actual &&
test_cmp expect actual test_cmp expect actual
' '
test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=LF" " test_expect_success "checkout $ident $attr $aeol core.autocrlf=$crlf core.eol=$ceol file=LF" "
compare_ws_file $pfx $lfname crlf_false_attr__LF.txt compare_ws_file $pfx $lfname crlf_false_attr__LF.txt
" "
test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=CRLF" " test_expect_success "checkout $ident $attr $aeol core.autocrlf=$crlf core.eol=$ceol file=CRLF" "
compare_ws_file $pfx $crlfname crlf_false_attr__CRLF.txt compare_ws_file $pfx $crlfname crlf_false_attr__CRLF.txt
" "
test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=CRLF_mix_LF" " test_expect_success "checkout $ident $attr $aeol core.autocrlf=$crlf core.eol=$ceol file=CRLF_mix_LF" "
compare_ws_file $pfx $lfmixcrlf crlf_false_attr__CRLF_mix_LF.txt compare_ws_file $pfx $lfmixcrlf crlf_false_attr__CRLF_mix_LF.txt
" "
test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=LF_mix_CR" " test_expect_success "checkout $ident $attr $aeol core.autocrlf=$crlf core.eol=$ceol file=LF_mix_CR" "
compare_ws_file $pfx $lfmixcr crlf_false_attr__LF_mix_CR.txt compare_ws_file $pfx $lfmixcr crlf_false_attr__LF_mix_CR.txt
" "
test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=LF_nul" " test_expect_success "checkout $ident $attr $aeol core.autocrlf=$crlf core.eol=$ceol file=LF_nul" "
compare_ws_file $pfx $crlfnul crlf_false_attr__LF_nul.txt compare_ws_file $pfx $crlfnul crlf_false_attr__LF_nul.txt
" "
} }
@ -301,14 +297,13 @@ test_expect_success 'setup master' '
git checkout -b master && git checkout -b master &&
git add .gitattributes && git add .gitattributes &&
git commit -m "add .gitattributes" "" && git commit -m "add .gitattributes" "" &&
printf "line1\nline2\nline3" >LF && printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\nLINETWO\nLINETHREE" >LF &&
printf "line1\r\nline2\r\nline3" >CRLF && printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONE\r\nLINETWO\r\nLINETHREE" >CRLF &&
printf "line1\r\nline2\nline3" >repoMIX && printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\r\nLINETWO\nLINETHREE" >CRLF_mix_LF &&
printf "line1\r\nline2\nline3" >CRLF_mix_LF && printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\nLINETWO\rLINETHREE" >LF_mix_CR &&
printf "line1\nline2\rline3" >LF_mix_CR && printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONE\r\nLINETWO\rLINETHREE" >CRLF_mix_CR &&
printf "line1\r\nline2\rline3" >CRLF_mix_CR && printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONEQ\r\nLINETWO\r\nLINETHREE" | q_to_nul >CRLF_nul &&
printf "line1Q\r\nline2\r\nline3" | q_to_nul >CRLF_nul && printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONEQ\nLINETWO\nLINETHREE" | q_to_nul >LF_nul &&
printf "line1Q\nline2\nline3" | q_to_nul >LF_nul &&
create_NNO_files CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF && create_NNO_files CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF &&
git -c core.autocrlf=false add NNO_*.txt && git -c core.autocrlf=false add NNO_*.txt &&
git commit -m "mixed line endings" && git commit -m "mixed line endings" &&
@ -449,23 +444,18 @@ check_in_repo_NNO input "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF
# How to read the table below: # How to read the table below:
# - checkout_files will check multiple files with a combination of settings # - checkout_files will check multiple files with a combination of settings
# and attributes (core.autocrlf=input is forbidden with core.eol=crlf) # and attributes (core.autocrlf=input is forbidden with core.eol=crlf)
# - parameter $1 : core.eol lf | crlf #
# - parameter $2 : core.autocrlf false | true | input # - parameter $1 : text in .gitattributs "" (empty) | auto | text | -text
# - parameter $3 : text in .gitattributs "" (empty) | auto | text | -text # - parameter $2 : ident "" | i (i == ident)
# - parameter $4 : reference for a file with only LF in the repo # - parameter $3 : eol in .gitattributs "" (empty) | lf | crlf
# - parameter $5 : reference for a file with only CRLF in the repo # - parameter $4 : core.autocrlf false | true | input
# - parameter $6 : reference for a file with mixed LF and CRLF in the repo # - parameter $5 : core.eol "" | lf | crlf | "native"
# - parameter $7 : reference for a file with LF and CR in the repo (does somebody uses this ?) # - parameter $6 : reference for a file with only LF in the repo
# - parameter $8 : reference for a file with CRLF and a NUL (should be handled as binary when auto) # - parameter $7 : reference for a file with only CRLF in the repo
# - parameter $8 : reference for a file with mixed LF and CRLF in the repo
# - parameter $9 : reference for a file with LF and CR in the repo
# - parameter $10 : reference for a file with CRLF and a NUL (should be handled as binary when auto)


# What we have in the repo:
# ----------------- EOL in repo ----------------
# LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
# settings with checkout:
# core. core. .gitattr
# eol acrlf
# ----------------------------------------------
# What we want to have in the working tree:
if test_have_prereq NATIVE_CRLF if test_have_prereq NATIVE_CRLF
then then
MIX_CRLF_LF=CRLF MIX_CRLF_LF=CRLF
@ -480,69 +470,90 @@ LFNUL=LF_nul
fi fi
export CRLF_MIX_LF_CR MIX NL export CRLF_MIX_LF_CR MIX NL


checkout_files lf false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "" "" "" false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf true "" CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "" "" "" false crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "" "" "" false lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf false "auto" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "" "" "" false native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf true "auto" CRLF CRLF CRLF LF_mix_CR LF_nul checkout_files "" "" "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf input "auto" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "" "" "" input lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf false "text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "" "" "" true "" CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul checkout_files "" "" "" true crlf CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf input "text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "" "" "" true lf CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf false "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "" "" "" true native CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf true "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "" ident "" false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf input "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "" ident "" false crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf false "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "" ident "" false lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf true "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "" ident "" false native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf input "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "" ident "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul checkout_files "" ident "" input lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul checkout_files "" ident "" true "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf input "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul checkout_files "" ident "" true crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" ident "" true lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" ident "" true native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "auto" "" "" false "" $NL CRLF $MIX_CRLF_LF LF_mix_CR LF_nul
checkout_files "auto" "" "" false crlf CRLF CRLF CRLF LF_mix_CR LF_nul
checkout_files "auto" "" "" false lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "auto" "" "" false native $NL CRLF $MIX_CRLF_LF LF_mix_CR LF_nul
checkout_files "auto" "" "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "auto" "" "" input lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "auto" "" "" true "" CRLF CRLF CRLF LF_mix_CR LF_nul
checkout_files "auto" "" "" true crlf CRLF CRLF CRLF LF_mix_CR LF_nul
checkout_files "auto" "" "" true lf CRLF CRLF CRLF LF_mix_CR LF_nul
checkout_files "auto" "" "" true native CRLF CRLF CRLF LF_mix_CR LF_nul
checkout_files "auto" ident "" false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "auto" ident "" false crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "auto" ident "" false lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "auto" ident "" false native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "auto" ident "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "auto" ident "" input lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "auto" ident "" true "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "auto" ident "" true crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "auto" ident "" true lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "auto" ident "" true native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul


checkout_files crlf false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul for id in "" ident;
checkout_files crlf true "" CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul do
checkout_files crlf false "auto" CRLF CRLF CRLF LF_mix_CR LF_nul checkout_files "crlf" "$id" "" false "" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files crlf true "auto" CRLF CRLF CRLF LF_mix_CR LF_nul checkout_files "crlf" "$id" "" false crlf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files crlf false "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul checkout_files "crlf" "$id" "" false lf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files crlf true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul checkout_files "crlf" "$id" "" false native CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files crlf false "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "crlf" "$id" "" input "" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files crlf true "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "crlf" "$id" "" input lf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files crlf false "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "crlf" "$id" "" true "" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files crlf true "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "crlf" "$id" "" true crlf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files crlf false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul checkout_files "crlf" "$id" "" true lf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files crlf true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul checkout_files "crlf" "$id" "" true native CRLF CRLF CRLF CRLF_mix_CR CRLF_nul

checkout_files "lf" "$id" "" false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "lf" "$id" "" false crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" true "" CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "lf" "$id" "" false lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "lf" "$id" "" false native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" false "auto" $NL CRLF $MIX_CRLF_LF LF_mix_CR LF_nul checkout_files "lf" "$id" "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" true "auto" CRLF CRLF CRLF LF_mix_CR LF_nul checkout_files "lf" "$id" "" input lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" input "auto" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "lf" "$id" "" true "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" false "text" $NL CRLF $MIX_CRLF_LF $MIX_LF_CR $LFNUL checkout_files "lf" "$id" "" true crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul checkout_files "lf" "$id" "" true lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" input "text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "lf" "$id" "" true native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" false "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "text" "$id" "" false "" $NL CRLF $MIX_CRLF_LF $MIX_LF_CR $LFNUL
checkout_files "" true "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "text" "$id" "" false crlf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files "" input "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "text" "$id" "" false lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" false "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "text" "$id" "" false native $NL CRLF $MIX_CRLF_LF $MIX_LF_CR $LFNUL
checkout_files "" true "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "text" "$id" "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" input "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "text" "$id" "" input lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul checkout_files "text" "$id" "" true "" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files "" true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul checkout_files "text" "$id" "" true crlf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files "" input "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul checkout_files "text" "$id" "" true lf CRLF CRLF CRLF CRLF_mix_CR CRLF_nul

checkout_files "text" "$id" "" true native CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files native false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "-text" "$id" "" false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files native true "" CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "-text" "$id" "" false crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files native false "auto" $NL CRLF $MIX_CRLF_LF LF_mix_CR LF_nul checkout_files "-text" "$id" "" false lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files native true "auto" CRLF CRLF CRLF LF_mix_CR LF_nul checkout_files "-text" "$id" "" false native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files native false "text" $NL CRLF $MIX_CRLF_LF $MIX_LF_CR $LFNUL checkout_files "-text" "$id" "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files native true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul checkout_files "-text" "$id" "" input lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files native false "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "-text" "$id" "" true "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files native true "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "-text" "$id" "" true crlf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files native false "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "-text" "$id" "" true lf LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files native true "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul checkout_files "-text" "$id" "" true native LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files native false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul done
checkout_files native true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul


# Should be the last test case: remove some files from the worktree # Should be the last test case: remove some files from the worktree
test_expect_success 'ls-files --eol -d -z' ' test_expect_success 'ls-files --eol -d -z' '