# HG changeset patch # User Matt Mackall # Date 2010-09-26 18:44:49 # Node ID 73ad7274ccfa5fe9a90c2b87c4f9b5498816f5fa # Parent 9792013e2f5345abbf683dddd7e42ba5d0276290 tests: unify test-simplemerge-cmd diff --git a/tests/test-simplemerge-cmd.out b/tests/test-simplemerge-cmd.out deleted file mode 100644 --- a/tests/test-simplemerge-cmd.out +++ /dev/null @@ -1,109 +0,0 @@ -% changing local directly -merge succeeded -local -base -other -% printing to stdout -local -base -other - local: -local -base -% conflicts -base -<<<<<<< conflict-local -not other -======= -other ->>>>>>> conflict-other -end -warning: conflicts during merge. -merge failed -% --no-minimal -base -<<<<<<< conflict-local -not other -end -======= -other -end ->>>>>>> conflict-other -warning: conflicts during merge. -% 1 label -base -<<<<<<< foo -not other -======= -other ->>>>>>> conflict-other -end -warning: conflicts during merge. -% 2 labels -base -<<<<<<< foo -not other -======= -other ->>>>>>> bar -end -warning: conflicts during merge. -% too many labels -abort: can only specify two labels. -% binary file -abort: binary-local looks like a binary file. -% binary file --text -warning: binary-local looks like a binary file. -\x00local -base -other -% help -simplemerge [OPTS] LOCAL BASE OTHER - - Simple three-way file merge utility with a minimal feature set. - - Apply to LOCAL the changes necessary to go from BASE to OTHER. - - By default, LOCAL is overwritten with the results of this operation. - -options: - -L --label labels to use on conflict markers - -a --text treat all files as text - -p --print print results instead of overwriting LOCAL - --no-minimal do not try to minimize conflict regions - -h --help display help and exit - -q --quiet suppress output -% wrong number of arguments -simplemerge: wrong number of arguments -simplemerge [OPTS] LOCAL BASE OTHER - - Simple three-way file merge utility with a minimal feature set. - - Apply to LOCAL the changes necessary to go from BASE to OTHER. - - By default, LOCAL is overwritten with the results of this operation. - -options: - -L --label labels to use on conflict markers - -a --text treat all files as text - -p --print print results instead of overwriting LOCAL - --no-minimal do not try to minimize conflict regions - -h --help display help and exit - -q --quiet suppress output -% bad option -simplemerge: option --foo not recognized -simplemerge [OPTS] LOCAL BASE OTHER - - Simple three-way file merge utility with a minimal feature set. - - Apply to LOCAL the changes necessary to go from BASE to OTHER. - - By default, LOCAL is overwritten with the results of this operation. - -options: - -L --label labels to use on conflict markers - -a --text treat all files as text - -p --print print results instead of overwriting LOCAL - --no-minimal do not try to minimize conflict regions - -h --help display help and exit - -q --quiet suppress output diff --git a/tests/test-simplemerge-cmd b/tests/test-simplemerge-cmd.t old mode 100755 new mode 100644 rename from tests/test-simplemerge-cmd rename to tests/test-simplemerge-cmd.t --- a/tests/test-simplemerge-cmd +++ b/tests/test-simplemerge-cmd.t @@ -1,61 +1,172 @@ -#!/bin/sh -cp "$TESTDIR"/../contrib/simplemerge . + $ cp "$TESTDIR"/../contrib/simplemerge . + $ echo base > base + $ echo local > local + $ cat base >> local + $ cp local orig + $ cat base > other + $ echo other >> other -echo base > base +changing local directly -echo local > local -cat base >> local -cp local orig + $ python simplemerge local base other && echo "merge succeeded" + merge succeeded + $ cat local + local + base + other + $ cp orig local + +printing to stdout -cat base > other -echo other >> other + $ python simplemerge -p local base other + local + base + other + +local: + + $ cat local + local + base + +conflicts -echo '% changing local directly' -python simplemerge local base other && echo "merge succeeded" -cat local -cp orig local + $ cp base conflict-local + $ cp other conflict-other + $ echo not other >> conflict-local + $ echo end >> conflict-local + $ echo end >> conflict-other + $ python simplemerge -p conflict-local base conflict-other + base + <<<<<<< conflict-local + not other + ======= + other + >>>>>>> conflict-other + end + warning: conflicts during merge. + [1] + +--no-minimal -echo '% printing to stdout' -python simplemerge -p local base other -echo ' local:' -cat local + $ python simplemerge -p --no-minimal conflict-local base conflict-other + base + <<<<<<< conflict-local + not other + end + ======= + other + end + >>>>>>> conflict-other + warning: conflicts during merge. + [1] -echo '% conflicts' -cp base conflict-local -cp other conflict-other -echo not other >> conflict-local -echo end >> conflict-local -echo end >> conflict-other -python simplemerge -p conflict-local base conflict-other || echo "merge failed" +1 label + + $ python simplemerge -p -L foo conflict-local base conflict-other + base + <<<<<<< foo + not other + ======= + other + >>>>>>> conflict-other + end + warning: conflicts during merge. + [1] + +2 labels -echo '% --no-minimal' -python simplemerge -p --no-minimal conflict-local base conflict-other + $ python simplemerge -p -L foo -L bar conflict-local base conflict-other + base + <<<<<<< foo + not other + ======= + other + >>>>>>> bar + end + warning: conflicts during merge. + [1] -echo '% 1 label' -python simplemerge -p -L foo conflict-local base conflict-other +too many labels + + $ python simplemerge -p -L foo -L bar -L baz conflict-local base conflict-other + abort: can only specify two labels. + [255] -echo '% 2 labels' -python simplemerge -p -L foo -L bar conflict-local base conflict-other +binary file + + $ python -c "f = file('binary-local', 'w'); f.write('\x00'); f.close()" + $ cat orig >> binary-local + $ python simplemerge -p binary-local base other + abort: binary-local looks like a binary file. + [255] -echo '% too many labels' -python simplemerge -p -L foo -L bar -L baz conflict-local base conflict-other +binary file --text + + $ python simplemerge -a -p binary-local base other 2>&1 | $TESTDIR/printrepr.py + warning: binary-local looks like a binary file. + \x00local + base + other + +help -echo '% binary file' -python -c "f = file('binary-local', 'w'); f.write('\x00'); f.close()" -cat orig >> binary-local -python simplemerge -p binary-local base other + $ python simplemerge --help + simplemerge [OPTS] LOCAL BASE OTHER + + Simple three-way file merge utility with a minimal feature set. + + Apply to LOCAL the changes necessary to go from BASE to OTHER. + + By default, LOCAL is overwritten with the results of this operation. + + options: + -L --label labels to use on conflict markers + -a --text treat all files as text + -p --print print results instead of overwriting LOCAL + --no-minimal do not try to minimize conflict regions + -h --help display help and exit + -q --quiet suppress output -echo '% binary file --text' -python simplemerge -a -p binary-local base other 2>&1 | $TESTDIR/printrepr.py +wrong number of arguments -echo '% help' -python simplemerge --help + $ python simplemerge + simplemerge: wrong number of arguments + simplemerge [OPTS] LOCAL BASE OTHER + + Simple three-way file merge utility with a minimal feature set. + + Apply to LOCAL the changes necessary to go from BASE to OTHER. + + By default, LOCAL is overwritten with the results of this operation. + + options: + -L --label labels to use on conflict markers + -a --text treat all files as text + -p --print print results instead of overwriting LOCAL + --no-minimal do not try to minimize conflict regions + -h --help display help and exit + -q --quiet suppress output + [1] -echo '% wrong number of arguments' -python simplemerge +bad option -echo '% bad option' -python simplemerge --foo -p local base other - -exit 0 + $ python simplemerge --foo -p local base other + simplemerge: option --foo not recognized + simplemerge [OPTS] LOCAL BASE OTHER + + Simple three-way file merge utility with a minimal feature set. + + Apply to LOCAL the changes necessary to go from BASE to OTHER. + + By default, LOCAL is overwritten with the results of this operation. + + options: + -L --label labels to use on conflict markers + -a --text treat all files as text + -p --print print results instead of overwriting LOCAL + --no-minimal do not try to minimize conflict regions + -h --help display help and exit + -q --quiet suppress output + [1]