Mercurial > hg
comparison tests/test-dirstate-status-write-race.t @ 50216:02bf2f94a04c stable
dirstate: test a `hg status` raced by a `hg add`
This shows that `rhg` is misbehaving here.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 24 Feb 2023 16:12:01 +0100 |
parents | ae61851e6fe2 |
children | 718fcccae326 |
comparison
equal
deleted
inserted
replaced
50215:ae61851e6fe2 | 50216:02bf2f94a04c |
---|---|
186 | 186 |
187 final cleanup | 187 final cleanup |
188 | 188 |
189 $ rm $TESTTMP/status-race-lock $TESTTMP/status-race-lock.waiting | 189 $ rm $TESTTMP/status-race-lock $TESTTMP/status-race-lock.waiting |
190 $ cd .. | 190 $ cd .. |
191 | |
192 Actual Testing | |
193 ============== | |
194 | |
195 Race with a `hg add` | |
196 ------------------- | |
197 | |
198 $ cp -a reference-repo race-with-add | |
199 $ cd race-with-add | |
200 | |
201 spin a `hg status` with some caches to update | |
202 | |
203 $ touch -t 200001020001 f | |
204 $ hg st >$TESTTMP/status-race-lock.out 2>$TESTTMP/status-race-lock.log \ | |
205 > --config rhg.on-unsupported=abort \ | |
206 > --config devel.sync.status.pre-dirstate-write-file=$TESTTMP/status-race-lock \ | |
207 > & | |
208 $ $RUNTESTDIR/testlib/wait-on-file 5 $TESTTMP/status-race-lock.waiting | |
209 | |
210 Add a file | |
211 | |
212 $ hg add dir/n | |
213 $ touch $TESTTMP/status-race-lock | |
214 $ wait | |
215 | |
216 The file should in a "added" state | |
217 | |
218 $ hg status | |
219 A dir/n (no-rhg !) | |
220 A dir/n (missing-correct-output rhg !) | |
221 A dir/o | |
222 R dir/nested/m | |
223 ? dir/n (known-bad-output rhg !) | |
224 ? p | |
225 ? q | |
226 | |
227 The status process should return a consistent result and not crash. | |
228 | |
229 $ cat $TESTTMP/status-race-lock.out | |
230 A dir/o | |
231 R dir/nested/m | |
232 ? dir/n | |
233 ? p | |
234 ? q | |
235 $ cat $TESTTMP/status-race-lock.log | |
236 | |
237 final cleanup | |
238 | |
239 $ rm $TESTTMP/status-race-lock $TESTTMP/status-race-lock.waiting | |
240 $ cd .. |