tests/test-clone-failure
author Gilles Moris <gilles.moris@free.fr>
Fri, 06 Nov 2009 09:35:38 +0100
changeset 9811 c92ac5a56f69
parent 9329 567648eab1dd
permissions -rwxr-xr-x
buildrpm: enable to start the script from anywhere Previously the script worked only from the hg root.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
834
78a9f95766dc Use sh instead of bash in tests.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 814
diff changeset
     1
#!/bin/sh
550
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
     2
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
     3
# No local source
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
     4
hg clone a b
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
     5
echo $?
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
     6
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
     7
# No remote source
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
     8
hg clone http://127.0.0.1:3121/a b
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
     9
echo $?
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    10
rm -rf b # work around bug with http clone
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    11
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    12
# Inaccessible source
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    13
mkdir a
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    14
chmod 000 a
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    15
hg clone a b
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    16
echo $?
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    17
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    18
# Inaccessible destination
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    19
mkdir b
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    20
cd b
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    21
hg init
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    22
hg clone . ../a
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    23
echo $?
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    24
cd ..
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    25
chmod 700 a
3988
9dcf9d45cab8 Don't use -f for rm in tests where not needed. Drop /bin/ from /bin/rm.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 839
diff changeset
    26
rm -r a b
550
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    27
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    28
# Source of wrong type
5071
1b970cdab695 test-clone-failure: fake output upon fifo unavailabity
Patrick Mezard <pmezard@gmail.com>
parents: 3988
diff changeset
    29
if "$TESTDIR/hghave" -q fifo; then
1b970cdab695 test-clone-failure: fake output upon fifo unavailabity
Patrick Mezard <pmezard@gmail.com>
parents: 3988
diff changeset
    30
    mkfifo a
1b970cdab695 test-clone-failure: fake output upon fifo unavailabity
Patrick Mezard <pmezard@gmail.com>
parents: 3988
diff changeset
    31
    hg clone a b
1b970cdab695 test-clone-failure: fake output upon fifo unavailabity
Patrick Mezard <pmezard@gmail.com>
parents: 3988
diff changeset
    32
    echo $?
1b970cdab695 test-clone-failure: fake output upon fifo unavailabity
Patrick Mezard <pmezard@gmail.com>
parents: 3988
diff changeset
    33
    rm a
1b970cdab695 test-clone-failure: fake output upon fifo unavailabity
Patrick Mezard <pmezard@gmail.com>
parents: 3988
diff changeset
    34
else
1b970cdab695 test-clone-failure: fake output upon fifo unavailabity
Patrick Mezard <pmezard@gmail.com>
parents: 3988
diff changeset
    35
    echo "abort: repository a not found!"
1b970cdab695 test-clone-failure: fake output upon fifo unavailabity
Patrick Mezard <pmezard@gmail.com>
parents: 3988
diff changeset
    36
    echo 255
1b970cdab695 test-clone-failure: fake output upon fifo unavailabity
Patrick Mezard <pmezard@gmail.com>
parents: 3988
diff changeset
    37
fi
550
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    38
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    39
# Default destination, same directory
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    40
mkdir q
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    41
cd q
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    42
hg init
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    43
cd ..
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    44
hg clone q
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    45
7927
a218ba5f60df allow clone into existing but empty directories
Steve Borho <steve@borho.org>
parents: 5071
diff changeset
    46
# destination directory not empty
a218ba5f60df allow clone into existing but empty directories
Steve Borho <steve@borho.org>
parents: 5071
diff changeset
    47
mkdir a 
a218ba5f60df allow clone into existing but empty directories
Steve Borho <steve@borho.org>
parents: 5071
diff changeset
    48
echo stuff > a/a
a218ba5f60df allow clone into existing but empty directories
Steve Borho <steve@borho.org>
parents: 5071
diff changeset
    49
hg clone q a
a218ba5f60df allow clone into existing but empty directories
Steve Borho <steve@borho.org>
parents: 5071
diff changeset
    50
echo $?
a218ba5f60df allow clone into existing but empty directories
Steve Borho <steve@borho.org>
parents: 5071
diff changeset
    51
7935
39566bb99a9c on clone failure, only remove directories we created
Steve Borho <steve@borho.org>
parents: 7927
diff changeset
    52
# leave existing directory in place after clone failure
39566bb99a9c on clone failure, only remove directories we created
Steve Borho <steve@borho.org>
parents: 7927
diff changeset
    53
hg init c
39566bb99a9c on clone failure, only remove directories we created
Steve Borho <steve@borho.org>
parents: 7927
diff changeset
    54
cd c
39566bb99a9c on clone failure, only remove directories we created
Steve Borho <steve@borho.org>
parents: 7927
diff changeset
    55
echo c > c
8167
6c82beaaa11a tests: removed redundant "-d '0 0'" from test scripts
Martin Geisler <mg@lazybytes.net>
parents: 7935
diff changeset
    56
hg commit -A -m test
7935
39566bb99a9c on clone failure, only remove directories we created
Steve Borho <steve@borho.org>
parents: 7927
diff changeset
    57
chmod -rx .hg/store/data
39566bb99a9c on clone failure, only remove directories we created
Steve Borho <steve@borho.org>
parents: 7927
diff changeset
    58
cd ..
39566bb99a9c on clone failure, only remove directories we created
Steve Borho <steve@borho.org>
parents: 7927
diff changeset
    59
mkdir d
39566bb99a9c on clone failure, only remove directories we created
Steve Borho <steve@borho.org>
parents: 7927
diff changeset
    60
hg clone c d 2> err
39566bb99a9c on clone failure, only remove directories we created
Steve Borho <steve@borho.org>
parents: 7927
diff changeset
    61
echo $?
39566bb99a9c on clone failure, only remove directories we created
Steve Borho <steve@borho.org>
parents: 7927
diff changeset
    62
test -d d && echo "dir is still here" || echo "dir is gone"
39566bb99a9c on clone failure, only remove directories we created
Steve Borho <steve@borho.org>
parents: 7927
diff changeset
    63
test -d d/.hg && echo "repo is still here" || echo "repo is gone"
39566bb99a9c on clone failure, only remove directories we created
Steve Borho <steve@borho.org>
parents: 7927
diff changeset
    64
9329
567648eab1dd test-clone-failure: reenable perm to allow deletion
Simon Heimberg <simohe@besonet.ch>
parents: 8167
diff changeset
    65
# reenable perm to allow deletion
567648eab1dd test-clone-failure: reenable perm to allow deletion
Simon Heimberg <simohe@besonet.ch>
parents: 8167
diff changeset
    66
chmod +rx c/.hg/store/data
567648eab1dd test-clone-failure: reenable perm to allow deletion
Simon Heimberg <simohe@besonet.ch>
parents: 8167
diff changeset
    67
550
96ff7dae94f7 [PATCH] Tests for clone command
mpm@selenic.com
parents:
diff changeset
    68
true