mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 23:07:18 +03:00
tests: unify test-clone-failure
This commit is contained in:
parent
91dd5557d4
commit
1801bd1e27
@ -1,68 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# No local source
|
||||
hg clone a b
|
||||
echo $?
|
||||
|
||||
# No remote source
|
||||
hg clone http://127.0.0.1:3121/a b
|
||||
echo $?
|
||||
rm -rf b # work around bug with http clone
|
||||
|
||||
# Inaccessible source
|
||||
mkdir a
|
||||
chmod 000 a
|
||||
hg clone a b
|
||||
echo $?
|
||||
|
||||
# Inaccessible destination
|
||||
mkdir b
|
||||
cd b
|
||||
hg init
|
||||
hg clone . ../a
|
||||
echo $?
|
||||
cd ..
|
||||
chmod 700 a
|
||||
rm -r a b
|
||||
|
||||
# Source of wrong type
|
||||
if "$TESTDIR/hghave" -q fifo; then
|
||||
mkfifo a
|
||||
hg clone a b
|
||||
echo $?
|
||||
rm a
|
||||
else
|
||||
echo "abort: repository a not found!"
|
||||
echo 255
|
||||
fi
|
||||
|
||||
# Default destination, same directory
|
||||
mkdir q
|
||||
cd q
|
||||
hg init
|
||||
cd ..
|
||||
hg clone q
|
||||
|
||||
# destination directory not empty
|
||||
mkdir a
|
||||
echo stuff > a/a
|
||||
hg clone q a
|
||||
echo $?
|
||||
|
||||
# leave existing directory in place after clone failure
|
||||
hg init c
|
||||
cd c
|
||||
echo c > c
|
||||
hg commit -A -m test
|
||||
chmod -rx .hg/store/data
|
||||
cd ..
|
||||
mkdir d
|
||||
hg clone c d 2> err
|
||||
echo $?
|
||||
test -d d && echo "dir is still here" || echo "dir is gone"
|
||||
test -d d/.hg && echo "repo is still here" || echo "repo is gone"
|
||||
|
||||
# reenable perm to allow deletion
|
||||
chmod +rx c/.hg/store/data
|
||||
|
||||
true
|
@ -1,18 +0,0 @@
|
||||
abort: repository a not found!
|
||||
255
|
||||
abort: error: Connection refused
|
||||
255
|
||||
abort: repository a not found!
|
||||
255
|
||||
abort: Permission denied: ../a
|
||||
255
|
||||
abort: repository a not found!
|
||||
255
|
||||
destination directory: q
|
||||
abort: destination 'q' is not empty
|
||||
abort: destination 'a' is not empty
|
||||
255
|
||||
adding c
|
||||
255
|
||||
dir is still here
|
||||
repo is gone
|
83
tests/test-clone-failure.t
Normal file
83
tests/test-clone-failure.t
Normal file
@ -0,0 +1,83 @@
|
||||
No local source
|
||||
|
||||
$ hg clone a b
|
||||
abort: repository a not found!
|
||||
[255]
|
||||
|
||||
No remote source
|
||||
|
||||
$ hg clone http://127.0.0.1:3121/a b
|
||||
abort: error: Connection refused
|
||||
[255]
|
||||
$ rm -rf b # work around bug with http clone
|
||||
|
||||
Inaccessible source
|
||||
|
||||
$ mkdir a
|
||||
$ chmod 000 a
|
||||
$ hg clone a b
|
||||
abort: repository a not found!
|
||||
[255]
|
||||
|
||||
Inaccessible destination
|
||||
|
||||
$ mkdir b
|
||||
$ cd b
|
||||
$ hg init
|
||||
$ hg clone . ../a
|
||||
abort: Permission denied: ../a
|
||||
[255]
|
||||
$ cd ..
|
||||
$ chmod 700 a
|
||||
$ rm -r a b
|
||||
|
||||
Source of wrong type
|
||||
|
||||
$ if "$TESTDIR/hghave" -q fifo; then
|
||||
> mkfifo a
|
||||
> hg clone a b
|
||||
> rm a
|
||||
> else
|
||||
> echo "abort: repository a not found!"
|
||||
> echo 255
|
||||
> fi
|
||||
abort: repository a not found!
|
||||
|
||||
Default destination, same directory
|
||||
|
||||
$ mkdir q
|
||||
$ cd q
|
||||
$ hg init
|
||||
$ cd ..
|
||||
$ hg clone q
|
||||
destination directory: q
|
||||
abort: destination 'q' is not empty
|
||||
[255]
|
||||
|
||||
destination directory not empty
|
||||
|
||||
$ mkdir a
|
||||
$ echo stuff > a/a
|
||||
$ hg clone q a
|
||||
abort: destination 'a' is not empty
|
||||
[255]
|
||||
|
||||
leave existing directory in place after clone failure
|
||||
|
||||
$ hg init c
|
||||
$ cd c
|
||||
$ echo c > c
|
||||
$ hg commit -A -m test
|
||||
adding c
|
||||
$ chmod -rx .hg/store/data
|
||||
$ cd ..
|
||||
$ mkdir d
|
||||
$ hg clone c d 2> err
|
||||
[255]
|
||||
$ test -d d
|
||||
$ test -d d/.hg
|
||||
[1]
|
||||
|
||||
reenable perm to allow deletion
|
||||
|
||||
$ chmod +rx c/.hg/store/data
|
Loading…
Reference in New Issue
Block a user