annotate tests/test-init @ 5053:47a8ea1eb2c3

del transaction before lock before wlock This way rollbacks happen while the repo is still locked. Deleting lock before wlock is not strictly necessary, but is more consistent with the locking order.
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Thu, 02 Aug 2007 01:56:08 -0300
parents 27590c19ad30
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2599
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
1 #!/bin/sh
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
2
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
3 # This test tries to exercise the ssh functionality with a dummy script
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
4
4297
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
5 cat <<EOF > dummyssh
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
6 import sys
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
7 import os
2599
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
8
4297
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
9 os.chdir(os.path.dirname(sys.argv[0]))
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
10 if sys.argv[1] != "user@dummy":
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
11 sys.exit(-1)
2599
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
12
4297
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
13 if not os.path.exists("dummyssh"):
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
14 sys.exit(-1)
2599
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
15
4297
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
16 log = open("dummylog", "ab")
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
17 log.write("Got arguments")
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
18 for i, arg in enumerate(sys.argv[1:]):
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
19 log.write(" %d:%s" % (i+1, arg))
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
20 log.write("\n")
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
21 log.close()
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
22 r = os.system(sys.argv[2])
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
23 sys.exit(bool(r))
2599
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
24 EOF
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
25
4166
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
26 checknewrepo()
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
27 {
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
28 name=$1
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
29
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
30 if [ -d $name/.hg/store ]; then
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
31 echo store created
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
32 fi
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
33
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
34 if [ -f $name/.hg/00changelog.i ]; then
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
35 echo 00changelog.i created
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
36 fi
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
37
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
38 cat $name/.hg/requires
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
39 }
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
40
2599
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
41 echo "# creating 'local'"
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
42 hg init local
4166
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
43 checknewrepo local
2599
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
44 echo this > local/foo
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
45 hg ci --cwd local -A -m "init" -d "1000000 0"
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
46
4166
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
47 echo "# creating repo with old format"
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
48 hg --config format.usestore=false init old
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
49 checknewrepo old
c0271aba6abe small fixes for the parent patch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3713
diff changeset
50
3034
3acb76f0124d clone: simplifying dest repo creation
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2599
diff changeset
51 echo "#test failure"
3acb76f0124d clone: simplifying dest repo creation
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2599
diff changeset
52 hg init local
3acb76f0124d clone: simplifying dest repo creation
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2599
diff changeset
53
2599
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
54 echo "# init+push to remote2"
4297
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
55 hg init -e "python ./dummyssh" ssh://user@dummy/remote2
2599
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
56 hg incoming -R remote2 local
4297
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
57 hg push -R local -e "python ./dummyssh" ssh://user@dummy/remote2
2599
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
58
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
59 echo "# clone to remote1"
4297
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
60 hg clone -e "python ./dummyssh" local ssh://user@dummy/remote1
2599
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
61
3034
3acb76f0124d clone: simplifying dest repo creation
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2599
diff changeset
62 echo "# init to existing repo"
4297
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
63 hg init -e "python ./dummyssh" ssh://user@dummy/remote1
3034
3acb76f0124d clone: simplifying dest repo creation
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2599
diff changeset
64
3acb76f0124d clone: simplifying dest repo creation
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2599
diff changeset
65 echo "# clone to existing repo"
4297
27590c19ad30 test-init: avoid a shell script
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4166
diff changeset
66 hg clone -e "python ./dummyssh" local ssh://user@dummy/remote1
3034
3acb76f0124d clone: simplifying dest repo creation
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2599
diff changeset
67
2599
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
68 echo "# output of dummyssh"
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
69 cat dummylog
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
70
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
71 echo "# comparing repositories"
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
72 hg tip -q -R local
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
73 hg tip -q -R remote1
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
74 hg tip -q -R remote2
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
75
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
76 echo "# check names for repositories (clashes with URL schemes, special chars)"
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
77 for i in bundle file hg http https old-http ssh static-http " " "with space"; do
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
78 echo "# hg init \"$i\""
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
79 hg init "$i"
3713
8ae88ed2a3b6 don't create the .hg/data at init time
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3034
diff changeset
80 test -d "$i" -a -d "$i/.hg" && echo "ok" || echo "failed"
2599
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
81 done
e4b5e48052c6 Added tests for local and remote init.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
82