tests/test-eol-patch
branchstable
changeset 11249 0bb67503ad4b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-eol-patch	Mon May 31 21:37:01 2010 +0200
@@ -0,0 +1,103 @@
+#!/bin/sh
+
+cat > $HGRCPATH <<EOF
+[diff]
+git = 1
+EOF
+
+seteol () {
+    if [ $1 = "LF" ]; then
+        EOL='\n'
+    else
+        EOL='\r\n'
+    fi
+}
+
+makerepo () {
+    seteol $1
+    echo
+    echo "# ==== setup $1 repository ===="
+    echo '% hg init'
+    hg init repo
+    cd repo
+
+    cat > .hgeol <<EOF
+[repository]
+native = $1
+
+[patterns]
+unix.txt = LF
+win.txt = CRLF
+**.txt = native
+EOF
+
+    printf "first\r\nsecond\r\nthird\r\n" > win.txt
+    printf "first\nsecond\nthird\n" > unix.txt
+    printf "first${EOL}second${EOL}third${EOL}" > native.txt
+    hg commit --addremove -m 'checkin'
+    cd ..
+}
+
+dotest () {
+    seteol $1
+
+    echo
+    echo "% hg clone repo repo-$1"
+    hg clone --noupdate repo repo-$1
+    cd repo-$1
+
+    cat > .hg/hgrc <<EOF
+[extensions]
+eol =
+
+[eol]
+native = $1
+EOF
+
+    hg update
+    echo '% printrepr.py native.txt'
+    python $TESTDIR/printrepr.py < native.txt
+
+    echo '% printrepr.py unix.txt'
+    python $TESTDIR/printrepr.py < unix.txt
+
+    echo '% printrepr.py win.txt'
+    python $TESTDIR/printrepr.py < win.txt
+
+    printf "first${EOL}third${EOL}" > native.txt
+    printf "first\r\nthird\r\n" > win.txt
+    printf "first\nthird\n" > unix.txt
+
+    echo '% hg diff'
+    hg diff > p
+    python $TESTDIR/printrepr.py < p
+
+    echo '% hg revert'
+    hg revert --all
+
+    echo '% hg import'
+    hg import -m 'patch' p
+
+    echo '% printrepr.py native.txt'
+    python $TESTDIR/printrepr.py < native.txt
+    echo '% printrepr.py unix.txt'
+    python $TESTDIR/printrepr.py < unix.txt
+    echo '% printrepr.py win.txt'
+    python $TESTDIR/printrepr.py < win.txt
+
+    echo '% hg diff -c tip'
+    hg diff -c tip | python $TESTDIR/printrepr.py
+
+    cd ..
+    rm -r repo-$1
+}
+
+makerepo LF
+dotest LF
+dotest CRLF
+rm -r repo
+
+makerepo CRLF
+dotest LF
+dotest CRLF
+rm -r repo