Skip to content

Commit

Permalink
git-am: Add tests for --keep-cr, --no-keep-cr and am.keepcr
Browse files Browse the repository at this point in the history
Add tests for git-am using files with DOS line endings for various
combinations of `--keep-cr`, `--no-keep-cr` and `am.keepcr`.

Signed-off-by: Stefan-W. Hahn <stefan.hahn@s-hahn.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Stefan-W. Hahn authored and Junio C Hamano committed Feb 28, 2010
1 parent e80d4cb commit 6d8d8e0
Showing 1 changed file with 96 additions and 0 deletions.
96 changes: 96 additions & 0 deletions t/t4253-am-keep-cr-dos.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
#!/bin/sh
#
# Copyright (c) 2010 Stefan-W. Hahn
#

test_description='git-am mbox with dos line ending.
'
. ./test-lib.sh

# Three patches which will be added as files with dos line ending.

cat >file1 <<\EOF
line 1
EOF

cat >file1a <<\EOF
line 1
line 4
EOF

cat >file2 <<\EOF
line 1
line 2
EOF

cat >file3 <<\EOF
line 1
line 2
line 3
EOF

test_expect_success 'setup repository with dos files' '
append_cr <file1 >file &&
git add file &&
git commit -m Initial &&
git tag initial &&
append_cr <file2 >file &&
git commit -a -m Second &&
append_cr <file3 >file &&
git commit -a -m Third
'

test_expect_success 'am with dos files without --keep-cr' '
git checkout -b dosfiles initial &&
git format-patch -k initial..master &&
test_must_fail git am -k -3 000*.patch &&
git am --abort &&
rm -rf .git/rebase-apply 000*.patch
'

test_expect_success 'am with dos files with --keep-cr' '
git checkout -b dosfiles-keep-cr initial &&
git format-patch -k --stdout initial..master | git am --keep-cr -k -3 &&
git diff --exit-code master
'

test_expect_success 'am with dos files config am.keepcr' '
git config am.keepcr 1 &&
git checkout -b dosfiles-conf-keepcr initial &&
git format-patch -k --stdout initial..master | git am -k -3 &&
git diff --exit-code master
'

test_expect_success 'am with dos files config am.keepcr overriden by --no-keep-cr' '
git config am.keepcr 1 &&
git checkout -b dosfiles-conf-keepcr-override initial &&
git format-patch -k initial..master &&
test_must_fail git am -k -3 --no-keep-cr 000*.patch &&
git am --abort &&
rm -rf .git/rebase-apply 000*.patch
'

test_expect_success 'am with dos files with --keep-cr continue' '
git checkout -b dosfiles-keep-cr-continue initial &&
git format-patch -k initial..master &&
append_cr <file1a >file &&
git commit -m "different patch" file &&
test_must_fail git am --keep-cr -k -3 000*.patch &&
append_cr <file2 >file &&
git add file &&
git am -3 --resolved &&
git diff --exit-code master
'

test_expect_success 'am with unix files config am.keepcr overriden by --no-keep-cr' '
git config am.keepcr 1 &&
git checkout -b unixfiles-conf-keepcr-override initial &&
cp -f file1 file &&
git commit -m "line ending to unix" file &&
git format-patch -k initial..master &&
git am -k -3 --no-keep-cr 000*.patch &&
git diff --exit-code -w master
'

test_done

0 comments on commit 6d8d8e0

Please sign in to comment.