diff tests/test-mq-eol.t @ 11895:78e3a70c4445

tests: unify test-mq-eol
author Nicolas Dumazet <nicdumz.commits@gmail.com>
date Sun, 15 Aug 2010 21:45:31 +0900
parents tests/test-mq-eol@9c2c94934f0d
children 4134686b83e1
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-mq-eol.t	Sun Aug 15 21:45:31 2010 +0900
@@ -0,0 +1,141 @@
+
+Test interactions between mq and patch.eol
+
+
+  $ echo "[extensions]" >> $HGRCPATH
+  $ echo "mq=" >> $HGRCPATH
+  $ echo "[diff]" >> $HGRCPATH
+  $ echo "nodates=1" >> $HGRCPATH
+
+  $ 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('-b\r\n')
+  > w('+y\r\n')
+  > w(' c\r\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
+
+  $ cat > cateol.py <<EOF
+  > import sys
+  > for line in file(sys.argv[1], 'rb'):
+  >     line = line.replace('\r', '<CR>')
+  >     line = line.replace('\n', '<LF>')
+  >     print line
+  > EOF
+
+  $ hg init repo
+  $ cd repo
+  $ echo '\.diff' > .hgignore
+  $ echo '\.rej' >> .hgignore
+
+
+Test different --eol values
+
+  $ python -c 'file("a", "wb").write("a\nb\nc\nd\ne")'
+  $ hg ci -Am adda
+  adding .hgignore
+  adding a
+  $ python ../makepatch.py
+  $ hg qimport eol.diff
+  adding eol.diff to series file
+
+should fail in strict mode
+
+  $ hg qpush
+  applying eol.diff
+  patching file a
+  Hunk #1 FAILED at 0
+  1 out of 1 hunks FAILED -- saving rejects to file a.rej
+  patch failed, unable to continue (try -v)
+  patch failed, rejects left in working dir
+  errors during apply, please fix and refresh eol.diff
+  $ hg qpop
+  popping eol.diff
+  patch queue now empty
+
+invalid eol
+
+  $ hg --config patch.eol='LFCR' qpush
+  applying eol.diff
+  patch failed, unable to continue (try -v)
+  patch failed, rejects left in working dir
+  errors during apply, please fix and refresh eol.diff
+  $ hg qpop
+  popping eol.diff
+  patch queue now empty
+
+force LF
+
+  $ hg --config patch.eol='CRLF' qpush
+  applying eol.diff
+  now at: eol.diff
+  $ hg qrefresh
+  $ python ../cateol.py .hg/patches/eol.diff
+  test message<LF>
+  <LF>
+  diff -r 0d0bf99a8b7a a<LF>
+  --- a/a<LF>
+  +++ b/a<LF>
+  @@ -1,5 +1,5 @@<LF>
+  -a<LF>
+  -b<LF>
+  -c<LF>
+  -d<LF>
+  -e<LF>
+  \ No newline at end of file<LF>
+  +a<CR><LF>
+  +y<CR><LF>
+  +c<CR><LF>
+  +d<CR><LF>
+  +z<LF>
+  \ No newline at end of file<LF>
+  $ python ../cateol.py a
+  a<CR><LF>
+  y<CR><LF>
+  c<CR><LF>
+  d<CR><LF>
+  z
+  $ hg qpop
+  popping eol.diff
+  patch queue now empty
+
+push again forcing LF and compare revisions
+
+  $ hg --config patch.eol='CRLF' qpush
+  applying eol.diff
+  now at: eol.diff
+  $ python ../cateol.py a
+  a<CR><LF>
+  y<CR><LF>
+  c<CR><LF>
+  d<CR><LF>
+  z
+  $ hg qpop
+  popping eol.diff
+  patch queue now empty
+
+push again without LF and compare revisions
+
+  $ hg qpush
+  applying eol.diff
+  now at: eol.diff
+  $ python ../cateol.py a
+  a<CR><LF>
+  y<CR><LF>
+  c<CR><LF>
+  d<CR><LF>
+  z
+  $ hg qpop
+  popping eol.diff
+  patch queue now empty