changeset 12304:41dd368b6fe8

tests: unify test-extdiff
author Adrian Buehlmann <adrian@cadifra.com>
date Wed, 15 Sep 2010 16:27:39 +0200
parents 4ab87473029d
children fd78997d1e6b
files tests/test-extdiff tests/test-extdiff.out tests/test-extdiff.t
diffstat 3 files changed, 166 insertions(+), 150 deletions(-) [+]
line wrap: on
line diff
--- a/tests/test-extdiff	Tue Sep 14 22:26:43 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-#!/bin/sh
-
-echo "[extensions]" >> $HGRCPATH
-echo "extdiff=" >> $HGRCPATH
-
-hg init a
-cd a
-echo a > a
-echo b > b
-hg add
-# should diff cloned directories
-hg extdiff -o -r $opt
-
-echo "[extdiff]" >> $HGRCPATH
-echo "cmd.falabala=echo" >> $HGRCPATH
-echo "opts.falabala=diffing" >> $HGRCPATH
-
-hg falabala
-
-hg help falabala
-
-hg ci -d '0 0' -mtest1
-
-echo b >> a
-hg ci -d '1 0' -mtest2
-
-# should diff cloned files directly
-hg falabala -r 0:1
-
-# test diff during merge
-hg update -C 0
-echo c >> c
-hg add c
-hg ci -m "new branch" -d '1 0'
-hg merge 1
-# should diff cloned file against wc file
-hg falabala > out
-# cleanup the output since the wc is a tmp directory
-sed  's:\(diffing [^ ]* \).*\(\/test-extdiff\):\1[tmp]\2:' out
-# test --change option
-hg ci -d '2 0' -mtest3
-hg falabala -c 1
-# check diff are made from the first parent
-hg falabala -c 3 || echo "diff-like tools yield a non-zero exit code"
-#hg log
-
-echo
-echo '% test extdiff of multiple files in tmp dir:'
-hg update -C 0 > /dev/null
-echo changed > a
-echo changed > b
-chmod +x b
-echo '% diff in working directory, before'
-hg diff --git
-echo '% edit with extdiff -p'
-# prepare custom diff/edit tool
-cat > 'diff tool.py' << EOT
-#!/usr/bin/env python
-import time
-time.sleep(1) # avoid unchanged-timestamp problems
-file('a/a', 'ab').write('edited\n')
-file('a/b', 'ab').write('edited\n')
-EOT
-chmod +x 'diff tool.py'
-hg extdiff -p "`pwd`/diff tool.py" # will change to /tmp/extdiff.TMP and populate directories a.TMP and a and start tool
-echo '% diff in working directory, after'
-hg diff --git
-
-echo
-echo % test extdiff with --option
-hg extdiff -p echo -o this -c 1
-hg falabala -o this -c 1
-echo
--- a/tests/test-extdiff.out	Tue Sep 14 22:26:43 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-adding a
-adding b
-Only in a: a
-Only in a: b
-diffing a.000000000000 a
-hg falabala [OPTION]... [FILE]...
-
-use 'echo' to diff repository (or selected files)
-
-    Show differences between revisions for the specified files, using the
-    'echo' program.
-
-    When two revision arguments are given, then changes are shown between
-    those revisions. If only one revision is specified then that revision is
-    compared to the working directory, and, when no revisions are specified,
-    the working directory files are compared to its parent.
-
-options:
-
- -o --option OPT [+]       pass option to comparison program
- -r --rev REV [+]          revision
- -c --change REV           change made by revision
- -I --include PATTERN [+]  include names matching the given patterns
- -X --exclude PATTERN [+]  exclude names matching the given patterns
-
-[+] marked option can be specified multiple times
-
-use "hg -v help falabala" to show global options
-diffing a.8a5febb7f867/a a.34eed99112ab/a
-1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-created new head
-1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-(branch merge, don't forget to commit)
-diffing a.2a13a4d2da36/a [tmp]/test-extdiff/a/a
-diffing a.8a5febb7f867/a a.34eed99112ab/a
-diffing a.2a13a4d2da36/a a.46c0e4daeb72/a
-diff-like tools yield a non-zero exit code
-
-% test extdiff of multiple files in tmp dir:
-% diff in working directory, before
-diff --git a/a b/a
---- a/a
-+++ b/a
-@@ -1,1 +1,1 @@
--a
-+changed
-diff --git a/b b/b
-old mode 100644
-new mode 100755
---- a/b
-+++ b/b
-@@ -1,1 +1,1 @@
--b
-+changed
-% edit with extdiff -p
-% diff in working directory, after
-diff --git a/a b/a
---- a/a
-+++ b/a
-@@ -1,1 +1,2 @@
--a
-+changed
-+edited
-diff --git a/b b/b
-old mode 100644
-new mode 100755
---- a/b
-+++ b/b
-@@ -1,1 +1,2 @@
--b
-+changed
-+edited
-
-% test extdiff with --option
-this a.8a5febb7f867/a a.34eed99112ab/a
-diffing this a.8a5febb7f867/a a.34eed99112ab/a
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-extdiff.t	Wed Sep 15 16:27:39 2010 +0200
@@ -0,0 +1,166 @@
+  $ echo "[extensions]" >> $HGRCPATH
+  $ echo "extdiff=" >> $HGRCPATH
+
+  $ hg init a
+  $ cd a
+  $ echo a > a
+  $ echo b > b
+  $ hg add
+  adding a
+  adding b
+
+Should diff cloned directories:
+
+  $ hg extdiff -o -r $opt
+  Only in a: a
+  Only in a: b
+
+  $ echo "[extdiff]" >> $HGRCPATH
+  $ echo "cmd.falabala=echo" >> $HGRCPATH
+  $ echo "opts.falabala=diffing" >> $HGRCPATH
+
+  $ hg falabala
+  diffing a.000000000000 a
+
+  $ hg help falabala
+  hg falabala [OPTION]... [FILE]...
+  
+  use 'echo' to diff repository (or selected files)
+  
+      Show differences between revisions for the specified files, using the
+      'echo' program.
+  
+      When two revision arguments are given, then changes are shown between
+      those revisions. If only one revision is specified then that revision is
+      compared to the working directory, and, when no revisions are specified,
+      the working directory files are compared to its parent.
+  
+  options:
+  
+   -o --option OPT [+]       pass option to comparison program
+   -r --rev REV [+]          revision
+   -c --change REV           change made by revision
+   -I --include PATTERN [+]  include names matching the given patterns
+   -X --exclude PATTERN [+]  exclude names matching the given patterns
+  
+  [+] marked option can be specified multiple times
+  
+  use "hg -v help falabala" to show global options
+
+  $ hg ci -d '0 0' -mtest1
+
+  $ echo b >> a
+  $ hg ci -d '1 0' -mtest2
+
+Should diff cloned files directly:
+
+  $ hg falabala -r 0:1
+  diffing a.8a5febb7f867/a a.34eed99112ab/a
+
+Test diff during merge:
+
+  $ hg update -C 0
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ echo c >> c
+  $ hg add c
+  $ hg ci -m "new branch" -d '1 0'
+  created new head
+  $ hg merge 1
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
+
+Should diff cloned file against wc file:
+
+  $ hg falabala > out
+
+Cleanup the output since the wc is a tmp directory:
+
+  $ sed  's:\(diffing [^ ]* \).*\(\/test-extdiff\):\1[tmp]\2:' out
+  diffing a.2a13a4d2da36/a [tmp]/test-extdiff.t/a/a
+
+Test --change option:
+
+  $ hg ci -d '2 0' -mtest3
+  $ hg falabala -c 1
+  diffing a.8a5febb7f867/a a.34eed99112ab/a
+
+Check diff are made from the first parent:
+
+  $ hg falabala -c 3 || echo "diff-like tools yield a non-zero exit code"
+  diffing a.2a13a4d2da36/a a.46c0e4daeb72/a
+  diff-like tools yield a non-zero exit code
+
+Test extdiff of multiple files in tmp dir:
+
+  $ hg update -C 0 > /dev/null
+  $ echo changed > a
+  $ echo changed > b
+  $ chmod +x b
+
+Diff in working directory, before:
+
+  $ hg diff --git
+  diff --git a/a b/a
+  --- a/a
+  +++ b/a
+  @@ -1,1 +1,1 @@
+  -a
+  +changed
+  diff --git a/b b/b
+  old mode 100644
+  new mode 100755
+  --- a/b
+  +++ b/b
+  @@ -1,1 +1,1 @@
+  -b
+  +changed
+
+
+Edit with extdiff -p:
+
+Prepare custom diff/edit tool:
+
+  $ cat > 'diff tool.py' << EOT
+  > #!/usr/bin/env python
+  > import time
+  > time.sleep(1) # avoid unchanged-timestamp problems
+  > file('a/a', 'ab').write('edited\n')
+  > file('a/b', 'ab').write('edited\n')
+  > EOT
+
+  $ chmod +x 'diff tool.py'
+
+# will change to /tmp/extdiff.TMP and populate directories a.TMP and a
+# and start tool
+  $ hg extdiff -p "`pwd`/diff tool.py"
+
+Diff in working directory, after:
+
+  $ hg diff --git
+  diff --git a/a b/a
+  --- a/a
+  +++ b/a
+  @@ -1,1 +1,2 @@
+  -a
+  +changed
+  +edited
+  diff --git a/b b/b
+  old mode 100644
+  new mode 100755
+  --- a/b
+  +++ b/b
+  @@ -1,1 +1,2 @@
+  -b
+  +changed
+  +edited
+
+Test extdiff with --option:
+
+  $ hg extdiff -p echo -o this -c 1
+  this a.8a5febb7f867/a a.34eed99112ab/a
+
+  $ hg falabala -o this -c 1
+  diffing this a.8a5febb7f867/a a.34eed99112ab/a
+
+  $ true
+