##// END OF EJS Templates
test-blackbox: glob away quoting differences on Windows...
Matt Harbison -
r31773:5646d7bc default
parent child Browse files
Show More
@@ -1,223 +1,223 b''
1 setup
1 setup
2 $ cat >> $HGRCPATH <<EOF
2 $ cat >> $HGRCPATH <<EOF
3 > [extensions]
3 > [extensions]
4 > blackbox=
4 > blackbox=
5 > mock=$TESTDIR/mockblackbox.py
5 > mock=$TESTDIR/mockblackbox.py
6 > mq=
6 > mq=
7 > [alias]
7 > [alias]
8 > confuse = log --limit 3
8 > confuse = log --limit 3
9 > EOF
9 > EOF
10 $ hg init blackboxtest
10 $ hg init blackboxtest
11 $ cd blackboxtest
11 $ cd blackboxtest
12
12
13 command, exit codes, and duration
13 command, exit codes, and duration
14
14
15 $ echo a > a
15 $ echo a > a
16 $ hg add a
16 $ hg add a
17 $ hg blackbox --config blackbox.dirty=True
17 $ hg blackbox --config blackbox.dirty=True
18 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a
18 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a
19 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a exited 0 after * seconds (glob)
19 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a exited 0 after * seconds (glob)
20 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000+ (5000)> blackbox
20 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000+ (5000)> blackbox
21
21
22 alias expansion is logged
22 alias expansion is logged
23 $ hg confuse
23 $ hg confuse
24 $ hg blackbox
24 $ hg blackbox
25 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a
25 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a
26 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a exited 0 after * seconds (glob)
26 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a exited 0 after * seconds (glob)
27 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000+ (5000)> blackbox
27 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000+ (5000)> blackbox
28 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000+ (5000)> blackbox --config 'blackbox.dirty=True' exited 0 after * seconds (glob)
28 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000+ (5000)> blackbox --config *blackbox.dirty=True* exited 0 after * seconds (glob)
29 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> confuse
29 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> confuse
30 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> alias 'confuse' expands to 'log --limit 3'
30 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> alias 'confuse' expands to 'log --limit 3'
31 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> confuse exited 0 after * seconds (glob)
31 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> confuse exited 0 after * seconds (glob)
32 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> blackbox
32 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> blackbox
33
33
34 incoming change tracking
34 incoming change tracking
35
35
36 create two heads to verify that we only see one change in the log later
36 create two heads to verify that we only see one change in the log later
37 $ hg commit -ma
37 $ hg commit -ma
38 $ hg up null
38 $ hg up null
39 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
39 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
40 $ echo b > b
40 $ echo b > b
41 $ hg commit -Amb
41 $ hg commit -Amb
42 adding b
42 adding b
43 created new head
43 created new head
44
44
45 clone, commit, pull
45 clone, commit, pull
46 $ hg clone . ../blackboxtest2
46 $ hg clone . ../blackboxtest2
47 updating to branch default
47 updating to branch default
48 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
48 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
49 $ echo c > c
49 $ echo c > c
50 $ hg commit -Amc
50 $ hg commit -Amc
51 adding c
51 adding c
52 $ cd ../blackboxtest2
52 $ cd ../blackboxtest2
53 $ hg pull
53 $ hg pull
54 pulling from $TESTTMP/blackboxtest (glob)
54 pulling from $TESTTMP/blackboxtest (glob)
55 searching for changes
55 searching for changes
56 adding changesets
56 adding changesets
57 adding manifests
57 adding manifests
58 adding file changes
58 adding file changes
59 added 1 changesets with 1 changes to 1 files
59 added 1 changesets with 1 changes to 1 files
60 (run 'hg update' to get a working copy)
60 (run 'hg update' to get a working copy)
61 $ hg blackbox -l 6
61 $ hg blackbox -l 6
62 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> pull
62 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> pull
63 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> updated served branch cache in * seconds (glob)
63 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> updated served branch cache in * seconds (glob)
64 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> wrote served branch cache with 1 labels and 2 nodes
64 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> wrote served branch cache with 1 labels and 2 nodes
65 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> 1 incoming changes - new heads: d02f48003e62
65 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> 1 incoming changes - new heads: d02f48003e62
66 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> pull exited 0 after * seconds (glob)
66 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> pull exited 0 after * seconds (glob)
67 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> blackbox -l 6
67 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> blackbox -l 6
68
68
69 we must not cause a failure if we cannot write to the log
69 we must not cause a failure if we cannot write to the log
70
70
71 $ hg rollback
71 $ hg rollback
72 repository tip rolled back to revision 1 (undo pull)
72 repository tip rolled back to revision 1 (undo pull)
73
73
74 $ mv .hg/blackbox.log .hg/blackbox.log-
74 $ mv .hg/blackbox.log .hg/blackbox.log-
75 $ mkdir .hg/blackbox.log
75 $ mkdir .hg/blackbox.log
76 $ hg --debug incoming
76 $ hg --debug incoming
77 warning: cannot write to blackbox.log: * (glob)
77 warning: cannot write to blackbox.log: * (glob)
78 comparing with $TESTTMP/blackboxtest (glob)
78 comparing with $TESTTMP/blackboxtest (glob)
79 query 1; heads
79 query 1; heads
80 searching for changes
80 searching for changes
81 all local heads known remotely
81 all local heads known remotely
82 changeset: 2:d02f48003e62c24e2659d97d30f2a83abe5d5d51
82 changeset: 2:d02f48003e62c24e2659d97d30f2a83abe5d5d51
83 tag: tip
83 tag: tip
84 phase: draft
84 phase: draft
85 parent: 1:6563da9dcf87b1949716e38ff3e3dfaa3198eb06
85 parent: 1:6563da9dcf87b1949716e38ff3e3dfaa3198eb06
86 parent: -1:0000000000000000000000000000000000000000
86 parent: -1:0000000000000000000000000000000000000000
87 manifest: 2:ab9d46b053ebf45b7996f2922b9893ff4b63d892
87 manifest: 2:ab9d46b053ebf45b7996f2922b9893ff4b63d892
88 user: test
88 user: test
89 date: Thu Jan 01 00:00:00 1970 +0000
89 date: Thu Jan 01 00:00:00 1970 +0000
90 files+: c
90 files+: c
91 extra: branch=default
91 extra: branch=default
92 description:
92 description:
93 c
93 c
94
94
95
95
96 $ hg pull
96 $ hg pull
97 pulling from $TESTTMP/blackboxtest (glob)
97 pulling from $TESTTMP/blackboxtest (glob)
98 searching for changes
98 searching for changes
99 adding changesets
99 adding changesets
100 adding manifests
100 adding manifests
101 adding file changes
101 adding file changes
102 added 1 changesets with 1 changes to 1 files
102 added 1 changesets with 1 changes to 1 files
103 (run 'hg update' to get a working copy)
103 (run 'hg update' to get a working copy)
104
104
105 a failure reading from the log is fatal
105 a failure reading from the log is fatal
106
106
107 $ hg blackbox -l 3
107 $ hg blackbox -l 3
108 abort: *$TESTTMP/blackboxtest2/.hg/blackbox.log* (glob)
108 abort: *$TESTTMP/blackboxtest2/.hg/blackbox.log* (glob)
109 [255]
109 [255]
110
110
111 $ rmdir .hg/blackbox.log
111 $ rmdir .hg/blackbox.log
112 $ mv .hg/blackbox.log- .hg/blackbox.log
112 $ mv .hg/blackbox.log- .hg/blackbox.log
113
113
114 backup bundles get logged
114 backup bundles get logged
115
115
116 $ touch d
116 $ touch d
117 $ hg commit -Amd
117 $ hg commit -Amd
118 adding d
118 adding d
119 created new head
119 created new head
120 $ hg strip tip
120 $ hg strip tip
121 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
121 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
122 saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/*-backup.hg (glob)
122 saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/*-backup.hg (glob)
123 $ hg blackbox -l 6
123 $ hg blackbox -l 6
124 1970/01/01 00:00:00 bob @73f6ee326b27d820b0472f1a825e3a50f3dc489b (5000)> strip tip
124 1970/01/01 00:00:00 bob @73f6ee326b27d820b0472f1a825e3a50f3dc489b (5000)> strip tip
125 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/73f6ee326b27-7612e004-backup.hg (glob)
125 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/73f6ee326b27-7612e004-backup.hg (glob)
126 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> updated base branch cache in * seconds (glob)
126 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> updated base branch cache in * seconds (glob)
127 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> wrote base branch cache with 1 labels and 2 nodes
127 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> wrote base branch cache with 1 labels and 2 nodes
128 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> strip tip exited 0 after * seconds (glob)
128 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> strip tip exited 0 after * seconds (glob)
129 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> blackbox -l 6
129 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> blackbox -l 6
130
130
131 extension and python hooks - use the eol extension for a pythonhook
131 extension and python hooks - use the eol extension for a pythonhook
132
132
133 $ echo '[extensions]' >> .hg/hgrc
133 $ echo '[extensions]' >> .hg/hgrc
134 $ echo 'eol=' >> .hg/hgrc
134 $ echo 'eol=' >> .hg/hgrc
135 $ echo '[hooks]' >> .hg/hgrc
135 $ echo '[hooks]' >> .hg/hgrc
136 $ echo 'update = echo hooked' >> .hg/hgrc
136 $ echo 'update = echo hooked' >> .hg/hgrc
137 $ hg update
137 $ hg update
138 hooked
138 hooked
139 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
139 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
140 1 other heads for branch "default"
140 1 other heads for branch "default"
141 $ hg blackbox -l 6
141 $ hg blackbox -l 6
142 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> update
142 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> update
143 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> writing .hg/cache/tags2-visible with 0 tags
143 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> writing .hg/cache/tags2-visible with 0 tags
144 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> pythonhook-preupdate: hgext.eol.preupdate finished in * seconds (glob)
144 1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> pythonhook-preupdate: hgext.eol.preupdate finished in * seconds (glob)
145 1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> exthook-update: echo hooked finished in * seconds (glob)
145 1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> exthook-update: echo hooked finished in * seconds (glob)
146 1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> update exited 0 after * seconds (glob)
146 1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> update exited 0 after * seconds (glob)
147 1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> blackbox -l 6
147 1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> blackbox -l 6
148
148
149 log rotation
149 log rotation
150
150
151 $ echo '[blackbox]' >> .hg/hgrc
151 $ echo '[blackbox]' >> .hg/hgrc
152 $ echo 'maxsize = 20 b' >> .hg/hgrc
152 $ echo 'maxsize = 20 b' >> .hg/hgrc
153 $ echo 'maxfiles = 3' >> .hg/hgrc
153 $ echo 'maxfiles = 3' >> .hg/hgrc
154 $ hg status
154 $ hg status
155 $ hg status
155 $ hg status
156 $ hg status
156 $ hg status
157 $ hg tip -q
157 $ hg tip -q
158 2:d02f48003e62
158 2:d02f48003e62
159 $ ls .hg/blackbox.log*
159 $ ls .hg/blackbox.log*
160 .hg/blackbox.log
160 .hg/blackbox.log
161 .hg/blackbox.log.1
161 .hg/blackbox.log.1
162 .hg/blackbox.log.2
162 .hg/blackbox.log.2
163 $ cd ..
163 $ cd ..
164
164
165 $ hg init blackboxtest3
165 $ hg init blackboxtest3
166 $ cd blackboxtest3
166 $ cd blackboxtest3
167 $ hg blackbox
167 $ hg blackbox
168 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> blackbox
168 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> blackbox
169 $ mv .hg/blackbox.log .hg/blackbox.log-
169 $ mv .hg/blackbox.log .hg/blackbox.log-
170 $ mkdir .hg/blackbox.log
170 $ mkdir .hg/blackbox.log
171 $ sed -e 's/\(.*test1.*\)/#\1/; s#\(.*commit2.*\)#os.rmdir(".hg/blackbox.log")\
171 $ sed -e 's/\(.*test1.*\)/#\1/; s#\(.*commit2.*\)#os.rmdir(".hg/blackbox.log")\
172 > os.rename(".hg/blackbox.log-", ".hg/blackbox.log")\
172 > os.rename(".hg/blackbox.log-", ".hg/blackbox.log")\
173 > \1#' $TESTDIR/test-dispatch.py > ../test-dispatch.py
173 > \1#' $TESTDIR/test-dispatch.py > ../test-dispatch.py
174 $ python $TESTDIR/blackbox-readonly-dispatch.py
174 $ python $TESTDIR/blackbox-readonly-dispatch.py
175 running: add foo
175 running: add foo
176 result: 0
176 result: 0
177 running: commit -m commit1 -d 2000-01-01 foo
177 running: commit -m commit1 -d 2000-01-01 foo
178 result: None
178 result: None
179 running: commit -m commit2 -d 2000-01-02 foo
179 running: commit -m commit2 -d 2000-01-02 foo
180 result: None
180 result: None
181 running: log -r 0
181 running: log -r 0
182 changeset: 0:0e4634943879
182 changeset: 0:0e4634943879
183 user: test
183 user: test
184 date: Sat Jan 01 00:00:00 2000 +0000
184 date: Sat Jan 01 00:00:00 2000 +0000
185 summary: commit1
185 summary: commit1
186
186
187 result: None
187 result: None
188 running: log -r tip
188 running: log -r tip
189 changeset: 1:45589e459b2e
189 changeset: 1:45589e459b2e
190 tag: tip
190 tag: tip
191 user: test
191 user: test
192 date: Sun Jan 02 00:00:00 2000 +0000
192 date: Sun Jan 02 00:00:00 2000 +0000
193 summary: commit2
193 summary: commit2
194
194
195 result: None
195 result: None
196 $ hg blackbox
196 $ hg blackbox
197 1970/01/01 00:00:00 bob @0e46349438790c460c5c9f7546bfcd39b267bbd2 (5000)> commit -m commit2 -d 2000-01-02 foo
197 1970/01/01 00:00:00 bob @0e46349438790c460c5c9f7546bfcd39b267bbd2 (5000)> commit -m commit2 -d 2000-01-02 foo
198 1970/01/01 00:00:00 bob @0e46349438790c460c5c9f7546bfcd39b267bbd2 (5000)> updated served branch cache in * seconds (glob)
198 1970/01/01 00:00:00 bob @0e46349438790c460c5c9f7546bfcd39b267bbd2 (5000)> updated served branch cache in * seconds (glob)
199 1970/01/01 00:00:00 bob @0e46349438790c460c5c9f7546bfcd39b267bbd2 (5000)> wrote served branch cache with 1 labels and 1 nodes
199 1970/01/01 00:00:00 bob @0e46349438790c460c5c9f7546bfcd39b267bbd2 (5000)> wrote served branch cache with 1 labels and 1 nodes
200 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> commit -m commit2 -d 2000-01-02 foo exited 0 after * seconds (glob)
200 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> commit -m commit2 -d 2000-01-02 foo exited 0 after * seconds (glob)
201 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r 0
201 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r 0
202 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> writing .hg/cache/tags2-visible with 0 tags
202 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> writing .hg/cache/tags2-visible with 0 tags
203 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r 0 exited 0 after * seconds (glob)
203 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r 0 exited 0 after * seconds (glob)
204 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r tip
204 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r tip
205 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r tip exited 0 after * seconds (glob)
205 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> log -r tip exited 0 after * seconds (glob)
206 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> blackbox
206 1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> blackbox
207
207
208 Test log recursion from dirty status check
208 Test log recursion from dirty status check
209
209
210 $ cat > ../r.py <<EOF
210 $ cat > ../r.py <<EOF
211 > from mercurial import context, error, extensions
211 > from mercurial import context, error, extensions
212 > x=[False]
212 > x=[False]
213 > def status(orig, *args, **opts):
213 > def status(orig, *args, **opts):
214 > args[0].repo().ui.log("broken", "recursion?")
214 > args[0].repo().ui.log("broken", "recursion?")
215 > return orig(*args, **opts)
215 > return orig(*args, **opts)
216 > def reposetup(ui, repo):
216 > def reposetup(ui, repo):
217 > extensions.wrapfunction(context.basectx, 'status', status)
217 > extensions.wrapfunction(context.basectx, 'status', status)
218 > EOF
218 > EOF
219 $ hg id --config extensions.x=../r.py --config blackbox.dirty=True
219 $ hg id --config extensions.x=../r.py --config blackbox.dirty=True
220 45589e459b2e tip
220 45589e459b2e tip
221
221
222 cleanup
222 cleanup
223 $ cd ..
223 $ cd ..
@@ -1,178 +1,178 b''
1
1
2 $ cat << EOF > buggylocking.py
2 $ cat << EOF > buggylocking.py
3 > """A small extension that tests our developer warnings
3 > """A small extension that tests our developer warnings
4 > """
4 > """
5 >
5 >
6 > from mercurial import cmdutil, repair, revset
6 > from mercurial import cmdutil, repair, revset
7 >
7 >
8 > cmdtable = {}
8 > cmdtable = {}
9 > command = cmdutil.command(cmdtable)
9 > command = cmdutil.command(cmdtable)
10 >
10 >
11 > @command('buggylocking', [], '')
11 > @command('buggylocking', [], '')
12 > def buggylocking(ui, repo):
12 > def buggylocking(ui, repo):
13 > lo = repo.lock()
13 > lo = repo.lock()
14 > wl = repo.wlock()
14 > wl = repo.wlock()
15 > wl.release()
15 > wl.release()
16 > lo.release()
16 > lo.release()
17 >
17 >
18 > @command('buggytransaction', [], '')
18 > @command('buggytransaction', [], '')
19 > def buggylocking(ui, repo):
19 > def buggylocking(ui, repo):
20 > tr = repo.transaction('buggy')
20 > tr = repo.transaction('buggy')
21 > # make sure we rollback the transaction as we don't want to rely on the__del__
21 > # make sure we rollback the transaction as we don't want to rely on the__del__
22 > tr.release()
22 > tr.release()
23 >
23 >
24 > @command('properlocking', [], '')
24 > @command('properlocking', [], '')
25 > def properlocking(ui, repo):
25 > def properlocking(ui, repo):
26 > """check that reentrance is fine"""
26 > """check that reentrance is fine"""
27 > wl = repo.wlock()
27 > wl = repo.wlock()
28 > lo = repo.lock()
28 > lo = repo.lock()
29 > tr = repo.transaction('proper')
29 > tr = repo.transaction('proper')
30 > tr2 = repo.transaction('proper')
30 > tr2 = repo.transaction('proper')
31 > lo2 = repo.lock()
31 > lo2 = repo.lock()
32 > wl2 = repo.wlock()
32 > wl2 = repo.wlock()
33 > wl2.release()
33 > wl2.release()
34 > lo2.release()
34 > lo2.release()
35 > tr2.close()
35 > tr2.close()
36 > tr.close()
36 > tr.close()
37 > lo.release()
37 > lo.release()
38 > wl.release()
38 > wl.release()
39 >
39 >
40 > @command('nowaitlocking', [], '')
40 > @command('nowaitlocking', [], '')
41 > def nowaitlocking(ui, repo):
41 > def nowaitlocking(ui, repo):
42 > lo = repo.lock()
42 > lo = repo.lock()
43 > wl = repo.wlock(wait=False)
43 > wl = repo.wlock(wait=False)
44 > wl.release()
44 > wl.release()
45 > lo.release()
45 > lo.release()
46 >
46 >
47 > @command('stripintr', [], '')
47 > @command('stripintr', [], '')
48 > def stripintr(ui, repo):
48 > def stripintr(ui, repo):
49 > lo = repo.lock()
49 > lo = repo.lock()
50 > tr = repo.transaction('foobar')
50 > tr = repo.transaction('foobar')
51 > try:
51 > try:
52 > repair.strip(repo.ui, repo, [repo['.'].node()])
52 > repair.strip(repo.ui, repo, [repo['.'].node()])
53 > finally:
53 > finally:
54 > lo.release()
54 > lo.release()
55 > @command('oldanddeprecated', [], '')
55 > @command('oldanddeprecated', [], '')
56 > def oldanddeprecated(ui, repo):
56 > def oldanddeprecated(ui, repo):
57 > """test deprecation warning API"""
57 > """test deprecation warning API"""
58 > def foobar(ui):
58 > def foobar(ui):
59 > ui.deprecwarn('foorbar is deprecated, go shopping', '42.1337')
59 > ui.deprecwarn('foorbar is deprecated, go shopping', '42.1337')
60 > foobar(ui)
60 > foobar(ui)
61 >
61 >
62 > def oldstylerevset(repo, subset, x):
62 > def oldstylerevset(repo, subset, x):
63 > return list(subset)
63 > return list(subset)
64 >
64 >
65 > revset.symbols['oldstyle'] = oldstylerevset
65 > revset.symbols['oldstyle'] = oldstylerevset
66 > EOF
66 > EOF
67
67
68 $ cat << EOF >> $HGRCPATH
68 $ cat << EOF >> $HGRCPATH
69 > [extensions]
69 > [extensions]
70 > buggylocking=$TESTTMP/buggylocking.py
70 > buggylocking=$TESTTMP/buggylocking.py
71 > mock=$TESTDIR/mockblackbox.py
71 > mock=$TESTDIR/mockblackbox.py
72 > blackbox=
72 > blackbox=
73 > [devel]
73 > [devel]
74 > all-warnings=1
74 > all-warnings=1
75 > EOF
75 > EOF
76
76
77 $ hg init lock-checker
77 $ hg init lock-checker
78 $ cd lock-checker
78 $ cd lock-checker
79 $ hg buggylocking
79 $ hg buggylocking
80 devel-warn: "wlock" acquired after "lock" at: $TESTTMP/buggylocking.py:* (buggylocking) (glob)
80 devel-warn: "wlock" acquired after "lock" at: $TESTTMP/buggylocking.py:* (buggylocking) (glob)
81 $ cat << EOF >> $HGRCPATH
81 $ cat << EOF >> $HGRCPATH
82 > [devel]
82 > [devel]
83 > all=0
83 > all=0
84 > check-locks=1
84 > check-locks=1
85 > EOF
85 > EOF
86 $ hg buggylocking
86 $ hg buggylocking
87 devel-warn: "wlock" acquired after "lock" at: $TESTTMP/buggylocking.py:* (buggylocking) (glob)
87 devel-warn: "wlock" acquired after "lock" at: $TESTTMP/buggylocking.py:* (buggylocking) (glob)
88 $ hg buggylocking --traceback
88 $ hg buggylocking --traceback
89 devel-warn: "wlock" acquired after "lock" at:
89 devel-warn: "wlock" acquired after "lock" at:
90 */hg:* in * (glob)
90 */hg:* in * (glob)
91 */mercurial/dispatch.py:* in run (glob)
91 */mercurial/dispatch.py:* in run (glob)
92 */mercurial/dispatch.py:* in dispatch (glob)
92 */mercurial/dispatch.py:* in dispatch (glob)
93 */mercurial/dispatch.py:* in _runcatch (glob)
93 */mercurial/dispatch.py:* in _runcatch (glob)
94 */mercurial/dispatch.py:* in callcatch (glob)
94 */mercurial/dispatch.py:* in callcatch (glob)
95 */mercurial/scmutil.py* in callcatch (glob)
95 */mercurial/scmutil.py* in callcatch (glob)
96 */mercurial/dispatch.py:* in _runcatchfunc (glob)
96 */mercurial/dispatch.py:* in _runcatchfunc (glob)
97 */mercurial/dispatch.py:* in _dispatch (glob)
97 */mercurial/dispatch.py:* in _dispatch (glob)
98 */mercurial/dispatch.py:* in runcommand (glob)
98 */mercurial/dispatch.py:* in runcommand (glob)
99 */mercurial/dispatch.py:* in _runcommand (glob)
99 */mercurial/dispatch.py:* in _runcommand (glob)
100 */mercurial/dispatch.py:* in <lambda> (glob)
100 */mercurial/dispatch.py:* in <lambda> (glob)
101 */mercurial/util.py:* in check (glob)
101 */mercurial/util.py:* in check (glob)
102 $TESTTMP/buggylocking.py:* in buggylocking (glob)
102 $TESTTMP/buggylocking.py:* in buggylocking (glob)
103 $ hg properlocking
103 $ hg properlocking
104 $ hg nowaitlocking
104 $ hg nowaitlocking
105
105
106 $ echo a > a
106 $ echo a > a
107 $ hg add a
107 $ hg add a
108 $ hg commit -m a
108 $ hg commit -m a
109 $ hg stripintr 2>&1 | egrep -v '^(\*\*| )'
109 $ hg stripintr 2>&1 | egrep -v '^(\*\*| )'
110 saved backup bundle to $TESTTMP/lock-checker/.hg/strip-backup/*-backup.hg (glob)
110 saved backup bundle to $TESTTMP/lock-checker/.hg/strip-backup/*-backup.hg (glob)
111 Traceback (most recent call last):
111 Traceback (most recent call last):
112 mercurial.error.ProgrammingError: cannot strip from inside a transaction
112 mercurial.error.ProgrammingError: cannot strip from inside a transaction
113
113
114 $ hg log -r "oldstyle()" -T '{rev}\n'
114 $ hg log -r "oldstyle()" -T '{rev}\n'
115 devel-warn: revset "oldstyle" uses list instead of smartset
115 devel-warn: revset "oldstyle" uses list instead of smartset
116 (compatibility will be dropped after Mercurial-3.9, update your code.) at: *mercurial/revset.py:* (mfunc) (glob)
116 (compatibility will be dropped after Mercurial-3.9, update your code.) at: *mercurial/revset.py:* (mfunc) (glob)
117 0
117 0
118 $ hg oldanddeprecated
118 $ hg oldanddeprecated
119 devel-warn: foorbar is deprecated, go shopping
119 devel-warn: foorbar is deprecated, go shopping
120 (compatibility will be dropped after Mercurial-42.1337, update your code.) at: $TESTTMP/buggylocking.py:* (oldanddeprecated) (glob)
120 (compatibility will be dropped after Mercurial-42.1337, update your code.) at: $TESTTMP/buggylocking.py:* (oldanddeprecated) (glob)
121
121
122 $ hg oldanddeprecated --traceback
122 $ hg oldanddeprecated --traceback
123 devel-warn: foorbar is deprecated, go shopping
123 devel-warn: foorbar is deprecated, go shopping
124 (compatibility will be dropped after Mercurial-42.1337, update your code.) at:
124 (compatibility will be dropped after Mercurial-42.1337, update your code.) at:
125 */hg:* in <module> (glob)
125 */hg:* in <module> (glob)
126 */mercurial/dispatch.py:* in run (glob)
126 */mercurial/dispatch.py:* in run (glob)
127 */mercurial/dispatch.py:* in dispatch (glob)
127 */mercurial/dispatch.py:* in dispatch (glob)
128 */mercurial/dispatch.py:* in _runcatch (glob)
128 */mercurial/dispatch.py:* in _runcatch (glob)
129 */mercurial/dispatch.py:* in callcatch (glob)
129 */mercurial/dispatch.py:* in callcatch (glob)
130 */mercurial/scmutil.py* in callcatch (glob)
130 */mercurial/scmutil.py* in callcatch (glob)
131 */mercurial/dispatch.py:* in _runcatchfunc (glob)
131 */mercurial/dispatch.py:* in _runcatchfunc (glob)
132 */mercurial/dispatch.py:* in _dispatch (glob)
132 */mercurial/dispatch.py:* in _dispatch (glob)
133 */mercurial/dispatch.py:* in runcommand (glob)
133 */mercurial/dispatch.py:* in runcommand (glob)
134 */mercurial/dispatch.py:* in _runcommand (glob)
134 */mercurial/dispatch.py:* in _runcommand (glob)
135 */mercurial/dispatch.py:* in <lambda> (glob)
135 */mercurial/dispatch.py:* in <lambda> (glob)
136 */mercurial/util.py:* in check (glob)
136 */mercurial/util.py:* in check (glob)
137 $TESTTMP/buggylocking.py:* in oldanddeprecated (glob)
137 $TESTTMP/buggylocking.py:* in oldanddeprecated (glob)
138 $ hg blackbox -l 9
138 $ hg blackbox -l 9
139 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> devel-warn: revset "oldstyle" uses list instead of smartset
139 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> devel-warn: revset "oldstyle" uses list instead of smartset
140 (compatibility will be dropped after Mercurial-3.9, update your code.) at: *mercurial/revset.py:* (mfunc) (glob)
140 (compatibility will be dropped after Mercurial-3.9, update your code.) at: *mercurial/revset.py:* (mfunc) (glob)
141 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> log -r 'oldstyle()' -T '{rev}\n' exited 0 after * seconds (glob)
141 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> log -r *oldstyle()* -T *{rev}\n* exited 0 after * seconds (glob)
142 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated
142 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated
143 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> devel-warn: foorbar is deprecated, go shopping
143 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> devel-warn: foorbar is deprecated, go shopping
144 (compatibility will be dropped after Mercurial-42.1337, update your code.) at: $TESTTMP/buggylocking.py:* (oldanddeprecated) (glob)
144 (compatibility will be dropped after Mercurial-42.1337, update your code.) at: $TESTTMP/buggylocking.py:* (oldanddeprecated) (glob)
145 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated exited 0 after * seconds (glob)
145 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated exited 0 after * seconds (glob)
146 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated --traceback
146 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated --traceback
147 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> devel-warn: foorbar is deprecated, go shopping
147 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> devel-warn: foorbar is deprecated, go shopping
148 (compatibility will be dropped after Mercurial-42.1337, update your code.) at:
148 (compatibility will be dropped after Mercurial-42.1337, update your code.) at:
149 */hg:* in <module> (glob)
149 */hg:* in <module> (glob)
150 */mercurial/dispatch.py:* in run (glob)
150 */mercurial/dispatch.py:* in run (glob)
151 */mercurial/dispatch.py:* in dispatch (glob)
151 */mercurial/dispatch.py:* in dispatch (glob)
152 */mercurial/dispatch.py:* in _runcatch (glob)
152 */mercurial/dispatch.py:* in _runcatch (glob)
153 */mercurial/dispatch.py:* in callcatch (glob)
153 */mercurial/dispatch.py:* in callcatch (glob)
154 */mercurial/scmutil.py* in callcatch (glob)
154 */mercurial/scmutil.py* in callcatch (glob)
155 */mercurial/dispatch.py:* in _runcatchfunc (glob)
155 */mercurial/dispatch.py:* in _runcatchfunc (glob)
156 */mercurial/dispatch.py:* in _dispatch (glob)
156 */mercurial/dispatch.py:* in _dispatch (glob)
157 */mercurial/dispatch.py:* in runcommand (glob)
157 */mercurial/dispatch.py:* in runcommand (glob)
158 */mercurial/dispatch.py:* in _runcommand (glob)
158 */mercurial/dispatch.py:* in _runcommand (glob)
159 */mercurial/dispatch.py:* in <lambda> (glob)
159 */mercurial/dispatch.py:* in <lambda> (glob)
160 */mercurial/util.py:* in check (glob)
160 */mercurial/util.py:* in check (glob)
161 $TESTTMP/buggylocking.py:* in oldanddeprecated (glob)
161 $TESTTMP/buggylocking.py:* in oldanddeprecated (glob)
162 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated --traceback exited 0 after * seconds (glob)
162 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated --traceback exited 0 after * seconds (glob)
163 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> blackbox -l 9
163 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> blackbox -l 9
164
164
165 Test programming error failure:
165 Test programming error failure:
166
166
167 $ hg buggytransaction 2>&1 | egrep -v '^ '
167 $ hg buggytransaction 2>&1 | egrep -v '^ '
168 ** Unknown exception encountered with possibly-broken third-party extension buggylocking
168 ** Unknown exception encountered with possibly-broken third-party extension buggylocking
169 ** which supports versions unknown of Mercurial.
169 ** which supports versions unknown of Mercurial.
170 ** Please disable buggylocking and try your action again.
170 ** Please disable buggylocking and try your action again.
171 ** If that fixes the bug please report it to the extension author.
171 ** If that fixes the bug please report it to the extension author.
172 ** Python * (glob)
172 ** Python * (glob)
173 ** Mercurial Distributed SCM (*) (glob)
173 ** Mercurial Distributed SCM (*) (glob)
174 ** Extensions loaded: * (glob)
174 ** Extensions loaded: * (glob)
175 Traceback (most recent call last):
175 Traceback (most recent call last):
176 mercurial.error.ProgrammingError: transaction requires locking
176 mercurial.error.ProgrammingError: transaction requires locking
177
177
178 $ cd ..
178 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now