mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 23:07:18 +03:00
tests: unify test-mq-qnew
This commit is contained in:
parent
d77f34e36c
commit
0daacba06d
@ -1,115 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
catpatch() {
|
||||
cat $1 | sed -e "s/^\(# Parent \).*/\1/"
|
||||
}
|
||||
|
||||
echo "[extensions]" >> $HGRCPATH
|
||||
echo "mq=" >> $HGRCPATH
|
||||
|
||||
runtest() {
|
||||
hg init mq
|
||||
cd mq
|
||||
|
||||
echo a > a
|
||||
hg ci -Ama
|
||||
|
||||
echo '% qnew should refuse bad patch names'
|
||||
hg qnew series
|
||||
hg qnew status
|
||||
hg qnew guards
|
||||
hg qnew .hgignore
|
||||
hg qnew .mqfoo
|
||||
hg qnew 'foo#bar'
|
||||
hg qnew 'foo:bar'
|
||||
|
||||
hg qinit -c
|
||||
|
||||
echo '% qnew with name containing slash'
|
||||
hg qnew foo/bar.patch
|
||||
hg qseries
|
||||
hg qpop
|
||||
hg qdelete foo/bar.patch
|
||||
|
||||
echo '% qnew with uncommitted changes'
|
||||
echo a > somefile
|
||||
hg add somefile
|
||||
hg qnew uncommitted.patch
|
||||
hg st
|
||||
hg qseries
|
||||
|
||||
echo '% qnew implies add'
|
||||
hg -R .hg/patches st
|
||||
|
||||
echo '% qnew missing'
|
||||
hg qnew missing.patch missing
|
||||
|
||||
echo '% qnew -m'
|
||||
hg qnew -m 'foo bar' mtest.patch
|
||||
catpatch .hg/patches/mtest.patch
|
||||
|
||||
echo '% qnew twice'
|
||||
hg qnew first.patch
|
||||
hg qnew first.patch
|
||||
|
||||
touch ../first.patch
|
||||
hg qimport ../first.patch
|
||||
|
||||
echo '% qnew -f from a subdirectory'
|
||||
hg qpop -a
|
||||
mkdir d
|
||||
cd d
|
||||
echo b > b
|
||||
hg ci -Am t
|
||||
echo b >> b
|
||||
hg st
|
||||
hg qnew -g -f p
|
||||
catpatch ../.hg/patches/p
|
||||
|
||||
echo '% qnew -u with no username configured'
|
||||
HGUSER= hg qnew -u blue red
|
||||
catpatch ../.hg/patches/red
|
||||
|
||||
echo '% qnew -e -u with no username configured'
|
||||
HGUSER= hg qnew -e -u chartreuse fucsia
|
||||
catpatch ../.hg/patches/fucsia
|
||||
|
||||
echo '% fail when trying to import a merge'
|
||||
hg init merge
|
||||
cd merge
|
||||
touch a
|
||||
hg ci -Am null
|
||||
echo a >> a
|
||||
hg ci -m a
|
||||
hg up -r 0
|
||||
echo b >> a
|
||||
hg ci -m b
|
||||
hg merge -f 1
|
||||
hg resolve --mark a
|
||||
hg qnew -f merge
|
||||
|
||||
cd ../../..
|
||||
rm -r mq
|
||||
}
|
||||
|
||||
|
||||
echo '%%% plain headers'
|
||||
|
||||
echo "[mq]" >> $HGRCPATH
|
||||
echo "plain=true" >> $HGRCPATH
|
||||
|
||||
mkdir sandbox
|
||||
(cd sandbox ; runtest)
|
||||
rm -r sandbox
|
||||
|
||||
|
||||
echo '%%% hg headers'
|
||||
|
||||
echo "plain=false" >> $HGRCPATH
|
||||
|
||||
mkdir sandbox
|
||||
(cd sandbox ; runtest)
|
||||
rm -r sandbox
|
||||
|
||||
|
||||
exit 0
|
@ -1,120 +0,0 @@
|
||||
%%% plain headers
|
||||
adding a
|
||||
% qnew should refuse bad patch names
|
||||
abort: "series" cannot be used as the name of a patch
|
||||
abort: "status" cannot be used as the name of a patch
|
||||
abort: "guards" cannot be used as the name of a patch
|
||||
abort: ".hgignore" cannot be used as the name of a patch
|
||||
abort: ".mqfoo" cannot be used as the name of a patch
|
||||
abort: "foo#bar" cannot be used as the name of a patch
|
||||
abort: "foo:bar" cannot be used as the name of a patch
|
||||
% qnew with name containing slash
|
||||
foo/bar.patch
|
||||
popping foo/bar.patch
|
||||
patch queue now empty
|
||||
% qnew with uncommitted changes
|
||||
uncommitted.patch
|
||||
% qnew implies add
|
||||
A .hgignore
|
||||
A series
|
||||
A uncommitted.patch
|
||||
% qnew missing
|
||||
abort: missing: No such file or directory
|
||||
% qnew -m
|
||||
foo bar
|
||||
|
||||
% qnew twice
|
||||
abort: patch "first.patch" already exists
|
||||
abort: patch "first.patch" already exists
|
||||
% qnew -f from a subdirectory
|
||||
popping first.patch
|
||||
popping mtest.patch
|
||||
popping uncommitted.patch
|
||||
patch queue now empty
|
||||
adding d/b
|
||||
M d/b
|
||||
diff --git a/d/b b/d/b
|
||||
--- a/d/b
|
||||
+++ b/d/b
|
||||
@@ -1,1 +1,2 @@
|
||||
b
|
||||
+b
|
||||
% qnew -u with no username configured
|
||||
From: blue
|
||||
|
||||
% qnew -e -u with no username configured
|
||||
From: chartreuse
|
||||
|
||||
% fail when trying to import a merge
|
||||
adding a
|
||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
created new head
|
||||
merging a
|
||||
warning: conflicts during merge.
|
||||
merging a failed!
|
||||
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
|
||||
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
|
||||
abort: cannot manage merge changesets
|
||||
%%% hg headers
|
||||
adding a
|
||||
% qnew should refuse bad patch names
|
||||
abort: "series" cannot be used as the name of a patch
|
||||
abort: "status" cannot be used as the name of a patch
|
||||
abort: "guards" cannot be used as the name of a patch
|
||||
abort: ".hgignore" cannot be used as the name of a patch
|
||||
abort: ".mqfoo" cannot be used as the name of a patch
|
||||
abort: "foo#bar" cannot be used as the name of a patch
|
||||
abort: "foo:bar" cannot be used as the name of a patch
|
||||
% qnew with name containing slash
|
||||
foo/bar.patch
|
||||
popping foo/bar.patch
|
||||
patch queue now empty
|
||||
% qnew with uncommitted changes
|
||||
uncommitted.patch
|
||||
% qnew implies add
|
||||
A .hgignore
|
||||
A series
|
||||
A uncommitted.patch
|
||||
% qnew missing
|
||||
abort: missing: No such file or directory
|
||||
% qnew -m
|
||||
# HG changeset patch
|
||||
# Parent
|
||||
foo bar
|
||||
|
||||
% qnew twice
|
||||
abort: patch "first.patch" already exists
|
||||
abort: patch "first.patch" already exists
|
||||
% qnew -f from a subdirectory
|
||||
popping first.patch
|
||||
popping mtest.patch
|
||||
popping uncommitted.patch
|
||||
patch queue now empty
|
||||
adding d/b
|
||||
M d/b
|
||||
# HG changeset patch
|
||||
# Parent
|
||||
diff --git a/d/b b/d/b
|
||||
--- a/d/b
|
||||
+++ b/d/b
|
||||
@@ -1,1 +1,2 @@
|
||||
b
|
||||
+b
|
||||
% qnew -u with no username configured
|
||||
# HG changeset patch
|
||||
# Parent
|
||||
# User blue
|
||||
% qnew -e -u with no username configured
|
||||
# HG changeset patch
|
||||
# Parent
|
||||
# User chartreuse
|
||||
% fail when trying to import a merge
|
||||
adding a
|
||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
created new head
|
||||
merging a
|
||||
warning: conflicts during merge.
|
||||
merging a failed!
|
||||
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
|
||||
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
|
||||
abort: cannot manage merge changesets
|
223
tests/test-mq-qnew.t
Normal file
223
tests/test-mq-qnew.t
Normal file
@ -0,0 +1,223 @@
|
||||
|
||||
$ catpatch() {
|
||||
> cat $1 | sed -e "s/^\(# Parent \).*/\1/"
|
||||
> }
|
||||
$ echo "[extensions]" >> $HGRCPATH
|
||||
$ echo "mq=" >> $HGRCPATH
|
||||
$ runtest() {
|
||||
> hg init mq
|
||||
> cd mq
|
||||
>
|
||||
> echo a > a
|
||||
> hg ci -Ama
|
||||
>
|
||||
> echo '% qnew should refuse bad patch names'
|
||||
> hg qnew series
|
||||
> hg qnew status
|
||||
> hg qnew guards
|
||||
> hg qnew .hgignore
|
||||
> hg qnew .mqfoo
|
||||
> hg qnew 'foo#bar'
|
||||
> hg qnew 'foo:bar'
|
||||
>
|
||||
> hg qinit -c
|
||||
>
|
||||
> echo '% qnew with name containing slash'
|
||||
> hg qnew foo/bar.patch
|
||||
> hg qseries
|
||||
> hg qpop
|
||||
> hg qdelete foo/bar.patch
|
||||
>
|
||||
> echo '% qnew with uncommitted changes'
|
||||
> echo a > somefile
|
||||
> hg add somefile
|
||||
> hg qnew uncommitted.patch
|
||||
> hg st
|
||||
> hg qseries
|
||||
>
|
||||
> echo '% qnew implies add'
|
||||
> hg -R .hg/patches st
|
||||
>
|
||||
> echo '% qnew missing'
|
||||
> hg qnew missing.patch missing
|
||||
>
|
||||
> echo '% qnew -m'
|
||||
> hg qnew -m 'foo bar' mtest.patch
|
||||
> catpatch .hg/patches/mtest.patch
|
||||
>
|
||||
> echo '% qnew twice'
|
||||
> hg qnew first.patch
|
||||
> hg qnew first.patch
|
||||
>
|
||||
> touch ../first.patch
|
||||
> hg qimport ../first.patch
|
||||
>
|
||||
> echo '% qnew -f from a subdirectory'
|
||||
> hg qpop -a
|
||||
> mkdir d
|
||||
> cd d
|
||||
> echo b > b
|
||||
> hg ci -Am t
|
||||
> echo b >> b
|
||||
> hg st
|
||||
> hg qnew -g -f p
|
||||
> catpatch ../.hg/patches/p
|
||||
>
|
||||
> echo '% qnew -u with no username configured'
|
||||
> HGUSER= hg qnew -u blue red
|
||||
> catpatch ../.hg/patches/red
|
||||
>
|
||||
> echo '% qnew -e -u with no username configured'
|
||||
> HGUSER= hg qnew -e -u chartreuse fucsia
|
||||
> catpatch ../.hg/patches/fucsia
|
||||
>
|
||||
> echo '% fail when trying to import a merge'
|
||||
> hg init merge
|
||||
> cd merge
|
||||
> touch a
|
||||
> hg ci -Am null
|
||||
> echo a >> a
|
||||
> hg ci -m a
|
||||
> hg up -r 0
|
||||
> echo b >> a
|
||||
> hg ci -m b
|
||||
> hg merge -f 1
|
||||
> hg resolve --mark a
|
||||
> hg qnew -f merge
|
||||
>
|
||||
> cd ../../..
|
||||
> rm -r mq
|
||||
> }
|
||||
|
||||
plain headers
|
||||
|
||||
$ echo "[mq]" >> $HGRCPATH
|
||||
$ echo "plain=true" >> $HGRCPATH
|
||||
$ mkdir sandbox
|
||||
$ (cd sandbox ; runtest)
|
||||
adding a
|
||||
% qnew should refuse bad patch names
|
||||
abort: "series" cannot be used as the name of a patch
|
||||
abort: "status" cannot be used as the name of a patch
|
||||
abort: "guards" cannot be used as the name of a patch
|
||||
abort: ".hgignore" cannot be used as the name of a patch
|
||||
abort: ".mqfoo" cannot be used as the name of a patch
|
||||
abort: "foo#bar" cannot be used as the name of a patch
|
||||
abort: "foo:bar" cannot be used as the name of a patch
|
||||
% qnew with name containing slash
|
||||
foo/bar.patch
|
||||
popping foo/bar.patch
|
||||
patch queue now empty
|
||||
% qnew with uncommitted changes
|
||||
uncommitted.patch
|
||||
% qnew implies add
|
||||
A .hgignore
|
||||
A series
|
||||
A uncommitted.patch
|
||||
% qnew missing
|
||||
abort: missing: No such file or directory
|
||||
% qnew -m
|
||||
foo bar
|
||||
|
||||
% qnew twice
|
||||
abort: patch "first.patch" already exists
|
||||
abort: patch "first.patch" already exists
|
||||
% qnew -f from a subdirectory
|
||||
popping first.patch
|
||||
popping mtest.patch
|
||||
popping uncommitted.patch
|
||||
patch queue now empty
|
||||
adding d/b
|
||||
M d/b
|
||||
diff --git a/d/b b/d/b
|
||||
--- a/d/b
|
||||
+++ b/d/b
|
||||
@@ -1,1 +1,2 @@
|
||||
b
|
||||
+b
|
||||
% qnew -u with no username configured
|
||||
From: blue
|
||||
|
||||
% qnew -e -u with no username configured
|
||||
From: chartreuse
|
||||
|
||||
% fail when trying to import a merge
|
||||
adding a
|
||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
created new head
|
||||
merging a
|
||||
warning: conflicts during merge.
|
||||
merging a failed!
|
||||
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
|
||||
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
|
||||
abort: cannot manage merge changesets
|
||||
$ rm -r sandbox
|
||||
|
||||
hg headers
|
||||
|
||||
$ echo "plain=false" >> $HGRCPATH
|
||||
$ mkdir sandbox
|
||||
$ (cd sandbox ; runtest)
|
||||
adding a
|
||||
% qnew should refuse bad patch names
|
||||
abort: "series" cannot be used as the name of a patch
|
||||
abort: "status" cannot be used as the name of a patch
|
||||
abort: "guards" cannot be used as the name of a patch
|
||||
abort: ".hgignore" cannot be used as the name of a patch
|
||||
abort: ".mqfoo" cannot be used as the name of a patch
|
||||
abort: "foo#bar" cannot be used as the name of a patch
|
||||
abort: "foo:bar" cannot be used as the name of a patch
|
||||
% qnew with name containing slash
|
||||
foo/bar.patch
|
||||
popping foo/bar.patch
|
||||
patch queue now empty
|
||||
% qnew with uncommitted changes
|
||||
uncommitted.patch
|
||||
% qnew implies add
|
||||
A .hgignore
|
||||
A series
|
||||
A uncommitted.patch
|
||||
% qnew missing
|
||||
abort: missing: No such file or directory
|
||||
% qnew -m
|
||||
# HG changeset patch
|
||||
# Parent
|
||||
foo bar
|
||||
|
||||
% qnew twice
|
||||
abort: patch "first.patch" already exists
|
||||
abort: patch "first.patch" already exists
|
||||
% qnew -f from a subdirectory
|
||||
popping first.patch
|
||||
popping mtest.patch
|
||||
popping uncommitted.patch
|
||||
patch queue now empty
|
||||
adding d/b
|
||||
M d/b
|
||||
# HG changeset patch
|
||||
# Parent
|
||||
diff --git a/d/b b/d/b
|
||||
--- a/d/b
|
||||
+++ b/d/b
|
||||
@@ -1,1 +1,2 @@
|
||||
b
|
||||
+b
|
||||
% qnew -u with no username configured
|
||||
# HG changeset patch
|
||||
# Parent
|
||||
# User blue
|
||||
% qnew -e -u with no username configured
|
||||
# HG changeset patch
|
||||
# Parent
|
||||
# User chartreuse
|
||||
% fail when trying to import a merge
|
||||
adding a
|
||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
created new head
|
||||
merging a
|
||||
warning: conflicts during merge.
|
||||
merging a failed!
|
||||
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
|
||||
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
|
||||
abort: cannot manage merge changesets
|
||||
$ rm -r sandbox
|
Loading…
Reference in New Issue
Block a user