# HG changeset patch # User Nicolas Dumazet # Date 2010-08-15 12:58:43 # Node ID 286693eaba476903ee8c99b689c719f8b230cf36 # Parent 78e3a70c4445b1f4798c884c71952bf1c9539f6f tests: unify test-mq-guards diff --git a/tests/test-mq-guards.out b/tests/test-mq-guards.out deleted file mode 100644 --- a/tests/test-mq-guards.out +++ /dev/null @@ -1,225 +0,0 @@ -adding x -popping c.patch -popping b.patch -popping a.patch -patch queue now empty -% should fail -abort: no patch named does-not-exist.patch -% should fail -abort: no patches applied -applying a.patch -now at: a.patch -% should guard a.patch -% should print +a -a.patch: +a -popping a.patch -patch queue now empty -% should fail -cannot push 'a.patch' - guarded by ['+a'] -a.patch: +a -% should push b.patch -applying b.patch -now at: b.patch -popping b.patch -patch queue now empty -% test selection of an empty guard -abort: guard cannot be an empty string -number of unguarded, unapplied patches has changed from 2 to 3 -% should push a.patch -applying a.patch -now at: a.patch -% should print -a -c.patch: -a -% should skip c.patch -applying b.patch -skipping c.patch - guarded by '-a' -now at: b.patch -% should display b.patch -b.patch -% should push c.patch -applying c.patch -now at: c.patch -popping c.patch -popping b.patch -popping a.patch -patch queue now empty -guards deactivated -number of unguarded, unapplied patches has changed from 3 to 2 -% should push all -applying b.patch -applying c.patch -now at: c.patch -popping c.patch -popping b.patch -patch queue now empty -number of unguarded, unapplied patches has changed from 1 to 2 -% should push a.patch, not b.patch -applying a.patch -now at: a.patch -applying c.patch -now at: c.patch -popping c.patch -popping a.patch -patch queue now empty -% should push b.patch -applying b.patch -now at: b.patch -applying c.patch -now at: c.patch -c.patch -popping c.patch -popping b.patch -patch queue now empty -number of unguarded, unapplied patches has changed from 2 to 3 -% should push a.patch, b.patch -applying a.patch -now at: a.patch -applying b.patch -now at: b.patch -popping b.patch -popping a.patch -patch queue now empty -number of unguarded, unapplied patches has changed from 3 to 2 -% list patches and guards -a.patch: +1 +2 -3 -b.patch: +2 -c.patch: unguarded -% have at least one patch applied to test coloring -applying b.patch -now at: b.patch -% list patches and guards with color -a.patch: +1 +2 -3 -b.patch: +2 -c.patch: unguarded -% should pop b.patch -popping b.patch -patch queue now empty -% list series -0 G a.patch -1 U b.patch -2 U c.patch -% list guards -1 -2 -3 -% should push b.patch -applying b.patch -now at: b.patch -applying c.patch -now at: c.patch -guards deactivated -popping guarded patches -popping c.patch -popping b.patch -patch queue now empty -reapplying unguarded patches -applying c.patch -now at: c.patch -% guards in series file: +1 +2 -3 -+1 -+2 --3 -% should show c.patch -c.patch -% should show : -% new.patch: +1 +2 -3 -% b.patch: +2 -% c.patch: unguarded -new.patch: +1 +2 -3 -b.patch: +2 -c.patch: unguarded -popping d.patch -now at: c.patch -% should show new.patch and b.patch as Guarded, c.patch as Applied -% and d.patch as Unapplied -0 G new.patch -1 G b.patch -2 A c.patch -3 U d.patch -% qseries again, but with color -0 G new.patch -1 G b.patch -2 A c.patch -3 U d.patch -% new.patch, b.patch: Guarded. c.patch: Applied. d.patch: Guarded. -0 G new.patch -1 G b.patch -2 A c.patch -3 G d.patch -popping c.patch -patch queue now empty -new.patch: +1 +2 -3 -b.patch: +2 -c.patch: unguarded -d.patch: +2 -% hg qapplied -% hg qapplied -v -% hg qunapplied -c.patch -% hg qunapplied -v -0 G new.patch -1 G b.patch -2 U c.patch -3 G d.patch -number of unguarded, unapplied patches has changed from 1 to 2 -% hg qapplied -% hg qapplied -v -% hg qunapplied -new.patch -c.patch -% hg qunapplied -v -0 U new.patch -1 G b.patch -2 U c.patch -3 G d.patch -applying new.patch -skipping b.patch - guarded by ['+2'] -applying c.patch -skipping d.patch - guarded by ['+2'] -now at: c.patch -% hg qapplied -new.patch -c.patch -% hg qapplied -v -0 A new.patch -1 G b.patch -2 A c.patch -% hg qunapplied -% hg qunapplied -v -3 G d.patch -number of unguarded, unapplied patches has changed from 0 to 1 -number of guarded, applied patches has changed from 1 to 0 -% hg qapplied -new.patch -c.patch -% hg qapplied -v -0 A new.patch -1 U b.patch -2 A c.patch -% hg qunapplied -d.patch -% hg qunapplied -v -3 U d.patch -% hg qapplied new.patch -new.patch -% hg qunapplied new.patch -b.patch -d.patch -% hg qapplied b.patch -new.patch -% hg qunapplied b.patch -d.patch -% hg qapplied c.patch -new.patch -c.patch -% hg qunapplied c.patch -d.patch -% hg qapplied d.patch -new.patch -c.patch -% hg qunapplied d.patch -% hg qseries -m: only b.patch should be shown -the guards file was not ignored in the past -b.patch -% hg qseries -m with color -b.patch diff --git a/tests/test-mq-guards b/tests/test-mq-guards.t old mode 100755 new mode 100644 rename from tests/test-mq-guards rename to tests/test-mq-guards.t --- a/tests/test-mq-guards +++ b/tests/test-mq-guards.t @@ -1,173 +1,432 @@ -#!/bin/sh + $ echo "[extensions]" >> $HGRCPATH + $ echo "mq=" >> $HGRCPATH + + $ hg init + $ hg qinit + + $ echo x > x + $ hg ci -Ama + adding x -echo "[extensions]" >> $HGRCPATH -echo "mq=" >> $HGRCPATH + $ hg qnew a.patch + $ echo a > a + $ hg add a + $ hg qrefresh -hg init -hg qinit + $ hg qnew b.patch + $ echo b > b + $ hg add b + $ hg qrefresh + + $ hg qnew c.patch + $ echo c > c + $ hg add c + $ hg qrefresh -echo x > x -hg ci -Ama + $ hg qpop -a + popping c.patch + popping b.patch + popping a.patch + patch queue now empty + + +should fail + + $ hg qguard does-not-exist.patch +bleh + abort: no patch named does-not-exist.patch + -hg qnew a.patch -echo a > a -hg add a -hg qrefresh +should fail + + $ hg qguard +fail + abort: no patches applied + + $ hg qpush + applying a.patch + now at: a.patch + +should guard a.patch + + $ hg qguard +a + +should print +a -hg qnew b.patch -echo b > b -hg add b -hg qrefresh + $ hg qguard + a.patch: +a + $ hg qpop + popping a.patch + patch queue now empty + + +should fail + + $ hg qpush a.patch + cannot push 'a.patch' - guarded by ['+a'] -hg qnew c.patch -echo c > c -hg add c -hg qrefresh + $ hg qguard a.patch + a.patch: +a + +should push b.patch -hg qpop -a + $ hg qpush + applying b.patch + now at: b.patch + + $ hg qpop + popping b.patch + patch queue now empty -echo % should fail -hg qguard does-not-exist.patch +bleh +test selection of an empty guard -echo % should fail -hg qguard +fail + $ hg qselect "" + abort: guard cannot be an empty string + $ hg qselect a + number of unguarded, unapplied patches has changed from 2 to 3 + +should push a.patch + + $ hg qpush + applying a.patch + now at: a.patch -hg qpush -echo % should guard a.patch -hg qguard +a -echo % should print +a -hg qguard -hg qpop + $ hg qguard -- c.patch -a + +should print -a + + $ hg qguard c.patch + c.patch: -a + + +should skip c.patch + + $ hg qpush -a + applying b.patch + skipping c.patch - guarded by '-a' + now at: b.patch -echo % should fail -hg qpush a.patch +should display b.patch + + $ hg qtop + b.patch + + $ hg qguard -n c.patch + +should push c.patch -hg qguard a.patch -echo % should push b.patch -hg qpush + $ hg qpush -a + applying c.patch + now at: c.patch + + $ hg qpop -a + popping c.patch + popping b.patch + popping a.patch + patch queue now empty + $ hg qselect -n + guards deactivated + number of unguarded, unapplied patches has changed from 3 to 2 + +should push all -hg qpop -echo % test selection of an empty guard -hg qselect "" -hg qselect a -echo % should push a.patch -hg qpush + $ hg qpush -a + applying b.patch + applying c.patch + now at: c.patch + + $ hg qpop -a + popping c.patch + popping b.patch + patch queue now empty + $ hg qguard a.patch +1 + $ hg qguard b.patch +2 + $ hg qselect 1 + number of unguarded, unapplied patches has changed from 1 to 2 -hg qguard -- c.patch -a -echo % should print -a -hg qguard c.patch +should push a.patch, not b.patch + + $ hg qpush + applying a.patch + now at: a.patch + $ hg qpush + applying c.patch + now at: c.patch + $ hg qpop -a + popping c.patch + popping a.patch + patch queue now empty + + $ hg qselect 2 -echo % should skip c.patch -hg qpush -a -echo % should display b.patch -hg qtop +should push b.patch + + $ hg qpush + applying b.patch + now at: b.patch + $ hg qpush -a + applying c.patch + now at: c.patch + +Used to be an issue with holes in the patch sequence +So, put one hole on the base and ask for topmost patch. -hg qguard -n c.patch -echo % should push c.patch -hg qpush -a + $ hg qtop + c.patch + $ hg qpop -a + popping c.patch + popping b.patch + patch queue now empty + + $ hg qselect 1 2 + number of unguarded, unapplied patches has changed from 2 to 3 + +should push a.patch, b.patch -hg qpop -a -hg qselect -n -echo % should push all -hg qpush -a + $ hg qpush + applying a.patch + now at: a.patch + $ hg qpush + applying b.patch + now at: b.patch + $ hg qpop -a + popping b.patch + popping a.patch + patch queue now empty + + $ hg qguard -- a.patch +1 +2 -3 + $ hg qselect 1 2 3 + number of unguarded, unapplied patches has changed from 3 to 2 -hg qpop -a -hg qguard a.patch +1 -hg qguard b.patch +2 -hg qselect 1 -echo % should push a.patch, not b.patch -hg qpush -hg qpush -hg qpop -a + +list patches and guards + + $ hg qguard -l + a.patch: +1 +2 -3 + b.patch: +2 + c.patch: unguarded + +have at least one patch applied to test coloring + + $ hg qpush + applying b.patch + now at: b.patch + +list patches and guards with color -hg qselect 2 -echo % should push b.patch -hg qpush -hg qpush -a -# Used to be an issue with holes in the patch sequence -# So, put one hole on the base and ask for topmost patch. -hg qtop -hg qpop -a + $ hg --config extensions.color= qguard --config color.mode=ansi \ + > -l --color=always + a.patch: +1 +2 -3 + b.patch: +2 + c.patch: unguarded + +should pop b.patch + + $ hg qpop + popping b.patch + patch queue now empty + +list series + + $ hg qseries -v + 0 G a.patch + 1 U b.patch + 2 U c.patch + +list guards + + $ hg qselect + 1 + 2 + 3 -hg qselect 1 2 -echo % should push a.patch, b.patch -hg qpush -hg qpush -hg qpop -a +should push b.patch + + $ hg qpush + applying b.patch + now at: b.patch -hg qguard -- a.patch +1 +2 -3 -hg qselect 1 2 3 + $ hg qpush -a + applying c.patch + now at: c.patch + $ hg qselect -n --reapply + guards deactivated + popping guarded patches + popping c.patch + popping b.patch + patch queue now empty + reapplying unguarded patches + applying c.patch + now at: c.patch + +guards in series file: +1 +2 -3 + + $ hg qselect -s + +1 + +2 + -3 + +should show c.patch -echo % list patches and guards -hg qguard -l -echo % have at least one patch applied to test coloring -hg qpush -echo % list patches and guards with color -hg --config extensions.color= qguard --config color.mode=ansi \ - -l --color=always -echo % should pop b.patch -hg qpop -echo % list series -hg qseries -v -echo % list guards -hg qselect -echo % should push b.patch -hg qpush + $ hg qapplied + c.patch + + $ hg qrename a.patch new.patch + +should show : + + +new.patch: +1 +2 -3 + + +b.patch: +2 + + +c.patch: unguarded + + $ hg qguard -l + new.patch: +1 +2 -3 + b.patch: +2 + c.patch: unguarded + + $ hg qnew d.patch + $ hg qpop + popping d.patch + now at: c.patch -hg qpush -a -hg qselect -n --reapply -echo % guards in series file: +1 +2 -3 -hg qselect -s -echo % should show c.patch -hg qapplied +should show new.patch and b.patch as Guarded, c.patch as Applied + + +and d.patch as Unapplied + + $ hg qseries -v + 0 G new.patch + 1 G b.patch + 2 A c.patch + 3 U d.patch + +qseries again, but with color + + $ hg --config extensions.color= qseries -v --color=always + 0 G new.patch + 1 G b.patch + 2 A c.patch + 3 U d.patch + + $ hg qguard d.patch +2 + +new.patch, b.patch: Guarded. c.patch: Applied. d.patch: Guarded. + + $ hg qseries -v + 0 G new.patch + 1 G b.patch + 2 A c.patch + 3 G d.patch -hg qrename a.patch new.patch -echo % should show : -echo % new.patch: +1 +2 -3 -echo % b.patch: +2 -echo % c.patch: unguarded -hg qguard -l - -hg qnew d.patch -hg qpop -echo % should show new.patch and b.patch as Guarded, c.patch as Applied -echo % and d.patch as Unapplied -hg qseries -v -echo % qseries again, but with color -hg --config extensions.color= qseries -v --color=always - -hg qguard d.patch +2 -echo % new.patch, b.patch: Guarded. c.patch: Applied. d.patch: Guarded. -hg qseries -v + $ qappunappv() + > { + > for command in qapplied "qapplied -v" qunapplied "qunapplied -v"; do + > echo % hg $command + > hg $command + > done + > } -qappunappv() -{ - for command in qapplied "qapplied -v" qunapplied "qunapplied -v"; do - echo % hg $command - hg $command - done -} + $ hg qpop -a + popping c.patch + patch queue now empty + $ hg qguard -l + new.patch: +1 +2 -3 + b.patch: +2 + c.patch: unguarded + d.patch: +2 + $ qappunappv + % hg qapplied + % hg qapplied -v + % hg qunapplied + c.patch + % hg qunapplied -v + 0 G new.patch + 1 G b.patch + 2 U c.patch + 3 G d.patch + $ hg qselect 1 + number of unguarded, unapplied patches has changed from 1 to 2 + $ qappunappv + % hg qapplied + % hg qapplied -v + % hg qunapplied + new.patch + c.patch + % hg qunapplied -v + 0 U new.patch + 1 G b.patch + 2 U c.patch + 3 G d.patch + $ hg qpush -a + applying new.patch + skipping b.patch - guarded by ['+2'] + applying c.patch + skipping d.patch - guarded by ['+2'] + now at: c.patch + $ qappunappv + % hg qapplied + new.patch + c.patch + % hg qapplied -v + 0 A new.patch + 1 G b.patch + 2 A c.patch + % hg qunapplied + % hg qunapplied -v + 3 G d.patch + $ hg qselect 2 + number of unguarded, unapplied patches has changed from 0 to 1 + number of guarded, applied patches has changed from 1 to 0 + $ qappunappv + % hg qapplied + new.patch + c.patch + % hg qapplied -v + 0 A new.patch + 1 U b.patch + 2 A c.patch + % hg qunapplied + d.patch + % hg qunapplied -v + 3 U d.patch -hg qpop -a -hg qguard -l -qappunappv -hg qselect 1 -qappunappv -hg qpush -a -qappunappv -hg qselect 2 -qappunappv + $ for patch in `hg qseries`; do + > echo % hg qapplied $patch + > hg qapplied $patch + > echo % hg qunapplied $patch + > hg qunapplied $patch + > done + % hg qapplied new.patch + new.patch + % hg qunapplied new.patch + b.patch + d.patch + % hg qapplied b.patch + new.patch + % hg qunapplied b.patch + d.patch + % hg qapplied c.patch + new.patch + c.patch + % hg qunapplied c.patch + d.patch + % hg qapplied d.patch + new.patch + c.patch + % hg qunapplied d.patch -for patch in `hg qseries`; do - echo % hg qapplied $patch - hg qapplied $patch - echo % hg qunapplied $patch - hg qunapplied $patch -done + +hg qseries -m: only b.patch should be shown +the guards file was not ignored in the past -echo % hg qseries -m: only b.patch should be shown -echo the guards file was not ignored in the past -hg qdelete -k b.patch -hg qseries -m -echo % hg qseries -m with color -hg --config extensions.color= qseries -m --color=always + $ hg qdelete -k b.patch + $ hg qseries -m + b.patch + +hg qseries -m with color + + $ hg --config extensions.color= qseries -m --color=always + b.patch