Mercurial > hg
changeset 11808:3f6cf4cb3dca
tests: unify test-qimport-eol
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Thu, 12 Aug 2010 22:57:06 +0900 |
parents | 887e9f487b7a |
children | 97b391bb6379 |
files | tests/test-import-eol tests/test-import-eol.out tests/test-import-eol.t |
diffstat | 3 files changed, 121 insertions(+), 112 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test-import-eol Thu Aug 12 22:54:41 2010 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -#!/bin/sh - -cat > makepatch.py <<EOF -f = file('eol.diff', 'wb') -w = f.write -w('test message\n') -w('diff --git a/a b/a\n') -w('--- a/a\n') -w('+++ b/a\n') -w('@@ -1,5 +1,5 @@\n') -w(' a\n') -w('-bbb\r\n') -w('+yyyy\r\n') -w(' cc\r\n') -w(' \n') -w(' d\n') -w('-e\n') -w('\ No newline at end of file\n') -w('+z\r\n') -w('\ No newline at end of file\r\n') -EOF - -hg init repo -cd repo -echo '\.diff' > .hgignore - -# Test different --eol values -python -c 'file("a", "wb").write("a\nbbb\ncc\n\nd\ne")' -hg ci -Am adda -python ../makepatch.py - -echo % invalid eol -hg --config patch.eol='LFCR' import eol.diff -hg revert -a - -echo % force LF -hg --traceback --config patch.eol='LF' import eol.diff -python -c 'print repr(file("a","rb").read())' -hg st - -echo % force CRLF -hg up -C 0 -hg --traceback --config patch.eol='CRLF' import eol.diff -python -c 'print repr(file("a","rb").read())' -hg st - -echo % auto EOL on LF file -hg up -C 0 -hg --traceback --config patch.eol='auto' import eol.diff -python -c 'print repr(file("a","rb").read())' -hg st - -echo % auto EOL on CRLF file -python -c 'file("a", "wb").write("a\r\nbbb\r\ncc\r\n\r\nd\r\ne")' -hg commit -m 'switch EOLs in a' -hg --traceback --config patch.eol='auto' import eol.diff -python -c 'print repr(file("a","rb").read())' -hg st - -echo % auto EOL on new file or source without any EOL -python -c 'file("noeol", "wb").write("noeol")' -hg add noeol -hg commit -m 'add noeol' -python -c 'file("noeol", "wb").write("noeol\r\nnoeol\n")' -python -c 'file("neweol", "wb").write("neweol\nneweol\r\n")' -hg add neweol -hg diff --git > noeol.diff -hg revert --no-backup noeol neweol -rm neweol -hg --traceback --config patch.eol='auto' import -m noeol noeol.diff -python -c 'print repr(file("noeol","rb").read())' -python -c 'print repr(file("neweol","rb").read())' -hg st - -# Test --eol and binary patches -python -c 'file("b", "wb").write("a\x00\nb\r\nd")' -hg ci -Am addb -python -c 'file("b", "wb").write("a\x00\nc\r\nd")' -hg diff --git > bin.diff -hg revert --no-backup b -echo % binary patch with --eol -hg import --config patch.eol='CRLF' -m changeb bin.diff -python -c 'print repr(file("b","rb").read())' -hg st -cd ..
--- a/tests/test-import-eol.out Thu Aug 12 22:54:41 2010 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -adding .hgignore -adding a -% invalid eol -applying eol.diff -abort: Unsupported line endings type: LFCR -% force LF -applying eol.diff -'a\nyyyy\ncc\n\nd\ne' -% force CRLF -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -applying eol.diff -'a\r\nyyyy\r\ncc\r\n\r\nd\r\ne' -% auto EOL on LF file -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -applying eol.diff -'a\nyyyy\ncc\n\nd\ne' -% auto EOL on CRLF file -applying eol.diff -'a\r\nyyyy\r\ncc\r\n\r\nd\r\ne' -% auto EOL on new file or source without any EOL -applying noeol.diff -'noeol\r\nnoeol\n' -'neweol\nneweol\r\n' -adding b -% binary patch with --eol -applying bin.diff -'a\x00\nc\r\nd'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-import-eol.t Thu Aug 12 22:57:06 2010 +0900 @@ -0,0 +1,121 @@ + $ cat > makepatch.py <<EOF + > f = file('eol.diff', 'wb') + > w = f.write + > w('test message\n') + > w('diff --git a/a b/a\n') + > w('--- a/a\n') + > w('+++ b/a\n') + > w('@@ -1,5 +1,5 @@\n') + > w(' a\n') + > w('-bbb\r\n') + > w('+yyyy\r\n') + > w(' cc\r\n') + > w(' \n') + > w(' d\n') + > w('-e\n') + > w('\ No newline at end of file\n') + > w('+z\r\n') + > w('\ No newline at end of file\r\n') + > EOF + + $ hg init repo + $ cd repo + $ echo '\.diff' > .hgignore + + +Test different --eol values + + $ python -c 'file("a", "wb").write("a\nbbb\ncc\n\nd\ne")' + $ hg ci -Am adda + adding .hgignore + adding a + $ python ../makepatch.py + + +invalid eol + + $ hg --config patch.eol='LFCR' import eol.diff + applying eol.diff + abort: Unsupported line endings type: LFCR + $ hg revert -a + + +force LF + + $ hg --traceback --config patch.eol='LF' import eol.diff + applying eol.diff + $ python -c 'print repr(file("a","rb").read())' + 'a\nyyyy\ncc\n\nd\ne' + $ hg st + + +force CRLF + + $ hg up -C 0 + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg --traceback --config patch.eol='CRLF' import eol.diff + applying eol.diff + $ python -c 'print repr(file("a","rb").read())' + 'a\r\nyyyy\r\ncc\r\n\r\nd\r\ne' + $ hg st + + +auto EOL on LF file + + $ hg up -C 0 + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg --traceback --config patch.eol='auto' import eol.diff + applying eol.diff + $ python -c 'print repr(file("a","rb").read())' + 'a\nyyyy\ncc\n\nd\ne' + $ hg st + + +auto EOL on CRLF file + + $ python -c 'file("a", "wb").write("a\r\nbbb\r\ncc\r\n\r\nd\r\ne")' + $ hg commit -m 'switch EOLs in a' + $ hg --traceback --config patch.eol='auto' import eol.diff + applying eol.diff + $ python -c 'print repr(file("a","rb").read())' + 'a\r\nyyyy\r\ncc\r\n\r\nd\r\ne' + $ hg st + + +auto EOL on new file or source without any EOL + + $ python -c 'file("noeol", "wb").write("noeol")' + $ hg add noeol + $ hg commit -m 'add noeol' + $ python -c 'file("noeol", "wb").write("noeol\r\nnoeol\n")' + $ python -c 'file("neweol", "wb").write("neweol\nneweol\r\n")' + $ hg add neweol + $ hg diff --git > noeol.diff + $ hg revert --no-backup noeol neweol + $ rm neweol + $ hg --traceback --config patch.eol='auto' import -m noeol noeol.diff + applying noeol.diff + $ python -c 'print repr(file("noeol","rb").read())' + 'noeol\r\nnoeol\n' + $ python -c 'print repr(file("neweol","rb").read())' + 'neweol\nneweol\r\n' + $ hg st + + +Test --eol and binary patches + + $ python -c 'file("b", "wb").write("a\x00\nb\r\nd")' + $ hg ci -Am addb + adding b + $ python -c 'file("b", "wb").write("a\x00\nc\r\nd")' + $ hg diff --git > bin.diff + $ hg revert --no-backup b + +binary patch with --eol + + $ hg import --config patch.eol='CRLF' -m changeb bin.diff + applying bin.diff + $ python -c 'print repr(file("b","rb").read())' + 'a\x00\nc\r\nd' + $ hg st + $ cd ..