diff --git a/tests/test-bookmarks b/tests/test-bookmarks new file mode 100755 --- /dev/null +++ b/tests/test-bookmarks @@ -0,0 +1,99 @@ +#!/bin/sh + +echo "[extensions]" >> $HGRCPATH +echo "bookmarks=" >> $HGRCPATH + +hg init + +echo % no bookmarks +hg bookmarks + +echo % bookmark rev -1 +hg bookmark X + +echo % list bookmarks +hg bookmarks + +echo a > a +hg add a +hg commit -m 0 + +echo % bookmark X moved to rev 0 +hg bookmarks + +echo % look up bookmark +hg log -r X + +echo % second bookmark for rev 0 +hg bookmark X2 + +echo % bookmark rev -1 again +hg bookmark -r null Y + +echo % list bookmarks +hg bookmarks + +echo b > b +hg add b +hg commit -m 1 + +echo % bookmarks X and X2 moved to rev 1, Y at rev -1 +hg bookmarks + +echo % bookmark rev 0 again +hg bookmark -r 0 Z + +echo c > c +hg add c +hg commit -m 2 + +echo % bookmarks X and X2 moved to rev 2, Y at rev -1, Z at rev 0 +hg bookmarks + +echo % rename nonexistent bookmark +hg bookmark -m A B + +echo % rename to existent bookmark +hg bookmark -m X Y + +echo % force rename to existent bookmark +hg bookmark -f -m X Y + +echo % list bookmarks +hg bookmark + +echo % rename without new name +hg bookmark -m Y + +echo % delete without name +hg bookmark -d + +echo % delete nonexistent bookmark +hg bookmark -d A + +echo % bookmark name with spaces should be stripped +hg bookmark ' x y ' + +echo % list bookmarks +hg bookmarks + +echo % look up stripped bookmark name +hg log -r 'x y' + +echo % reject bookmark name with newline +hg bookmark ' +' + +echo % bookmark with existing name +hg bookmark Z + +echo % force bookmark with existing name +hg bookmark -f Z + +echo % list bookmarks +hg bookmark + +echo % revision but no bookmark name +hg bookmark -r . + +true diff --git a/tests/test-bookmarks.out b/tests/test-bookmarks.out new file mode 100644 --- /dev/null +++ b/tests/test-bookmarks.out @@ -0,0 +1,70 @@ +% no bookmarks +no bookmarks set +% bookmark rev -1 +% list bookmarks + * X -1:000000000000 +% bookmark X moved to rev 0 + * X 0:f7b1eb17ad24 +% look up bookmark +changeset: 0:f7b1eb17ad24 +tag: tip +user: test +date: Thu Jan 01 00:00:00 1970 +0000 +summary: 0 + +% second bookmark for rev 0 +% bookmark rev -1 again +% list bookmarks + * X2 0:f7b1eb17ad24 + * X 0:f7b1eb17ad24 + Y -1:000000000000 +% bookmarks X and X2 moved to rev 1, Y at rev -1 + * X2 1:925d80f479bb + * X 1:925d80f479bb + Y -1:000000000000 +% bookmark rev 0 again +% bookmarks X and X2 moved to rev 2, Y at rev -1, Z at rev 0 + * X2 2:0316ce92851d + * X 2:0316ce92851d + Z 0:f7b1eb17ad24 + Y -1:000000000000 +% rename nonexistent bookmark +abort: a bookmark of this name does not exist +% rename to existent bookmark +abort: a bookmark of the same name already exists +% force rename to existent bookmark +% list bookmarks + * X2 2:0316ce92851d + * Y 2:0316ce92851d + Z 0:f7b1eb17ad24 +% rename without new name +abort: new bookmark name required +% delete without name +abort: bookmark name required +% delete nonexistent bookmark +abort: a bookmark of this name does not exist +% bookmark name with spaces should be stripped +% list bookmarks + * X2 2:0316ce92851d + * Y 2:0316ce92851d + Z 0:f7b1eb17ad24 + * x y 2:0316ce92851d +% look up stripped bookmark name +changeset: 2:0316ce92851d +tag: tip +user: test +date: Thu Jan 01 00:00:00 1970 +0000 +summary: 2 + +% reject bookmark name with newline +abort: bookmark name cannot contain newlines +% bookmark with existing name +abort: a bookmark of the same name already exists +% force bookmark with existing name +% list bookmarks + * X2 2:0316ce92851d + * Y 2:0316ce92851d + * Z 2:0316ce92851d + * x y 2:0316ce92851d +% revision but no bookmark name +abort: bookmark name required