summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorTorsten Bögershausen <tboegi@web.de>2016-02-23 17:07:19 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-02-23 20:53:15 (GMT)
commit817a0c7968c1d7e0f574b6d07451445832f781aa (patch)
treea550bc41523ad300752b161eaad2c0b2d8508adb /t
parent6e336a530b0dd98d1c751440ca5666a6999ab020 (diff)
downloadgit-817a0c7968c1d7e0f574b6d07451445832f781aa.zip
git-817a0c7968c1d7e0f574b6d07451445832f781aa.tar.gz
git-817a0c7968c1d7e0f574b6d07451445832f781aa.tar.bz2
convert.c: correct attr_action()
df747b81 (convert.c: refactor crlf_action, 2016-02-10) introduced a bug to "git ls-files --eol". The "text" attribute was shown as "text eol=lf" or "text eol=crlf", depending on core.autocrlf or core.eol. Correct this and add test cases in t0027. Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-xt/t0027-auto-crlf.sh33
1 files changed, 26 insertions, 7 deletions
diff --git a/t/t0027-auto-crlf.sh b/t/t0027-auto-crlf.sh
index fc4c628..f33962b 100755
--- a/t/t0027-auto-crlf.sh
+++ b/t/t0027-auto-crlf.sh
@@ -159,6 +159,25 @@ stats_ascii () {
}
+
+# contruct the attr/ returned by git ls-files --eol
+# Take none (=empty), one or two args
+attr_ascii () {
+ case $1,$2 in
+ -text,*) echo "-text" ;;
+ text,) echo "text" ;;
+ text,lf) echo "text eol=lf" ;;
+ text,crlf) echo "text eol=crlf" ;;
+ auto,) echo "text=auto" ;;
+ auto,lf) echo "text=auto eol=lf" ;;
+ auto,crlf) echo "text=auto eol=crlf" ;;
+ lf,) echo "text eol=lf" ;;
+ crlf,) echo "text eol=crlf" ;;
+ ,) echo "" ;;
+ *) echo invalid_attr "$1,$2" ;;
+ esac
+}
+
check_files_in_repo () {
crlf=$1
attr=$2
@@ -228,15 +247,15 @@ checkout_files () {
test_expect_success "ls-files --eol attr=$attr $ident $aeol core.autocrlf=$crlf core.eol=$ceol" '
test_when_finished "rm expect actual" &&
sort <<-EOF >expect &&
- i/crlf w/$(stats_ascii $crlfname) crlf_false_attr__CRLF.txt
- i/mixed w/$(stats_ascii $lfmixcrlf) crlf_false_attr__CRLF_mix_LF.txt
- i/lf w/$(stats_ascii $lfname) crlf_false_attr__LF.txt
- i/-text w/$(stats_ascii $lfmixcr) crlf_false_attr__LF_mix_CR.txt
- i/-text w/$(stats_ascii $crlfnul) crlf_false_attr__CRLF_nul.txt
- i/-text w/$(stats_ascii $crlfnul) crlf_false_attr__LF_nul.txt
+ i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
+ i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
+ i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
+ i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
+ i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
+ i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
EOF
git ls-files --eol crlf_false_attr__* |
- sed -e "s!attr/[^ ]*!!g" -e "s/ / /g" -e "s/ */ /g" |
+ sed -e "s/ / /g" -e "s/ */ /g" |
sort >actual &&
test_cmp expect actual
'