view tests/test-eol-patch.t @ 12748:d10369fefd01

alias: fail gracefully when invalid global options are given (issue2442) This patch modifies the check for shell aliases to prevent crashing when an invalid global option is given. When an invalid global option is given the check will simply return and let the normal error handling for this case happen.
author Steve Losh <steve@stevelosh.com>
date Sun, 17 Oct 2010 13:24:37 -0400
parents e9db6bc37659
children 7439ea4146f8
line wrap: on
line source

Test EOL patching

  $ cat > $HGRCPATH <<EOF
  > [diff]
  > git = 1
  > EOF

Set up helpers

  $ 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
  > }

Run tests

  $ makerepo LF
  
  # ==== setup LF repository ====
  % hg init
  adding .hgeol
  adding native.txt
  adding unix.txt
  adding win.txt
  $ dotest LF
  
  % hg clone repo repo-LF
  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
  % printrepr.py native.txt
  first
  second
  third
  % printrepr.py unix.txt
  first
  second
  third
  % printrepr.py win.txt
  first\r
  second\r
  third\r
  % hg diff
  diff --git a/native.txt b/native.txt
  --- a/native.txt
  +++ b/native.txt
  @@ -1,3 +1,2 @@
   first
  -second
   third
  diff --git a/unix.txt b/unix.txt
  --- a/unix.txt
  +++ b/unix.txt
  @@ -1,3 +1,2 @@
   first
  -second
   third
  diff --git a/win.txt b/win.txt
  --- a/win.txt
  +++ b/win.txt
  @@ -1,3 +1,2 @@
   first\r
  -second\r
   third\r
  % hg revert
  reverting native.txt
  reverting unix.txt
  reverting win.txt
  % hg import
  applying p
  % printrepr.py native.txt
  first
  third
  % printrepr.py unix.txt
  first
  third
  % printrepr.py win.txt
  first\r
  third\r
  % hg diff -c tip
  diff --git a/native.txt b/native.txt
  --- a/native.txt
  +++ b/native.txt
  @@ -1,3 +1,2 @@
   first
  -second
   third
  diff --git a/unix.txt b/unix.txt
  --- a/unix.txt
  +++ b/unix.txt
  @@ -1,3 +1,2 @@
   first
  -second
   third
  diff --git a/win.txt b/win.txt
  --- a/win.txt
  +++ b/win.txt
  @@ -1,3 +1,2 @@
   first\r
  -second\r
   third\r
  $ dotest CRLF
  
  % hg clone repo repo-CRLF
  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
  % printrepr.py native.txt
  first\r
  second\r
  third\r
  % printrepr.py unix.txt
  first
  second
  third
  % printrepr.py win.txt
  first\r
  second\r
  third\r
  % hg diff
  diff --git a/native.txt b/native.txt
  --- a/native.txt
  +++ b/native.txt
  @@ -1,3 +1,2 @@
   first
  -second
   third
  diff --git a/unix.txt b/unix.txt
  --- a/unix.txt
  +++ b/unix.txt
  @@ -1,3 +1,2 @@
   first
  -second
   third
  diff --git a/win.txt b/win.txt
  --- a/win.txt
  +++ b/win.txt
  @@ -1,3 +1,2 @@
   first\r
  -second\r
   third\r
  % hg revert
  reverting native.txt
  reverting unix.txt
  reverting win.txt
  % hg import
  applying p
  % printrepr.py native.txt
  first\r
  third\r
  % printrepr.py unix.txt
  first
  third
  % printrepr.py win.txt
  first\r
  third\r
  % hg diff -c tip
  diff --git a/native.txt b/native.txt
  --- a/native.txt
  +++ b/native.txt
  @@ -1,3 +1,2 @@
   first
  -second
   third
  diff --git a/unix.txt b/unix.txt
  --- a/unix.txt
  +++ b/unix.txt
  @@ -1,3 +1,2 @@
   first
  -second
   third
  diff --git a/win.txt b/win.txt
  --- a/win.txt
  +++ b/win.txt
  @@ -1,3 +1,2 @@
   first\r
  -second\r
   third\r
  $ rm -r repo
  $ makerepo CRLF
  
  # ==== setup CRLF repository ====
  % hg init
  adding .hgeol
  adding native.txt
  adding unix.txt
  adding win.txt
  $ dotest LF
  
  % hg clone repo repo-LF
  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
  % printrepr.py native.txt
  first
  second
  third
  % printrepr.py unix.txt
  first
  second
  third
  % printrepr.py win.txt
  first\r
  second\r
  third\r
  % hg diff
  diff --git a/native.txt b/native.txt
  --- a/native.txt
  +++ b/native.txt
  @@ -1,3 +1,2 @@
   first\r
  -second\r
   third\r
  diff --git a/unix.txt b/unix.txt
  --- a/unix.txt
  +++ b/unix.txt
  @@ -1,3 +1,2 @@
   first
  -second
   third
  diff --git a/win.txt b/win.txt
  --- a/win.txt
  +++ b/win.txt
  @@ -1,3 +1,2 @@
   first\r
  -second\r
   third\r
  % hg revert
  reverting native.txt
  reverting unix.txt
  reverting win.txt
  % hg import
  applying p
  % printrepr.py native.txt
  first
  third
  % printrepr.py unix.txt
  first
  third
  % printrepr.py win.txt
  first\r
  third\r
  % hg diff -c tip
  diff --git a/native.txt b/native.txt
  --- a/native.txt
  +++ b/native.txt
  @@ -1,3 +1,2 @@
   first\r
  -second\r
   third\r
  diff --git a/unix.txt b/unix.txt
  --- a/unix.txt
  +++ b/unix.txt
  @@ -1,3 +1,2 @@
   first
  -second
   third
  diff --git a/win.txt b/win.txt
  --- a/win.txt
  +++ b/win.txt
  @@ -1,3 +1,2 @@
   first\r
  -second\r
   third\r
  $ dotest CRLF
  
  % hg clone repo repo-CRLF
  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
  % printrepr.py native.txt
  first\r
  second\r
  third\r
  % printrepr.py unix.txt
  first
  second
  third
  % printrepr.py win.txt
  first\r
  second\r
  third\r
  % hg diff
  diff --git a/native.txt b/native.txt
  --- a/native.txt
  +++ b/native.txt
  @@ -1,3 +1,2 @@
   first\r
  -second\r
   third\r
  diff --git a/unix.txt b/unix.txt
  --- a/unix.txt
  +++ b/unix.txt
  @@ -1,3 +1,2 @@
   first
  -second
   third
  diff --git a/win.txt b/win.txt
  --- a/win.txt
  +++ b/win.txt
  @@ -1,3 +1,2 @@
   first\r
  -second\r
   third\r
  % hg revert
  reverting native.txt
  reverting unix.txt
  reverting win.txt
  % hg import
  applying p
  % printrepr.py native.txt
  first\r
  third\r
  % printrepr.py unix.txt
  first
  third
  % printrepr.py win.txt
  first\r
  third\r
  % hg diff -c tip
  diff --git a/native.txt b/native.txt
  --- a/native.txt
  +++ b/native.txt
  @@ -1,3 +1,2 @@
   first\r
  -second\r
   third\r
  diff --git a/unix.txt b/unix.txt
  --- a/unix.txt
  +++ b/unix.txt
  @@ -1,3 +1,2 @@
   first
  -second
   third
  diff --git a/win.txt b/win.txt
  --- a/win.txt
  +++ b/win.txt
  @@ -1,3 +1,2 @@
   first\r
  -second\r
   third\r
  $ rm -r repo