##// END OF EJS Templates
dirstate: test a `hg status` raced by another `hg status`...
marmoute -
r51114:72104dd9 stable
parent child Browse files
Show More
@@ -359,3 +359,52 b' final cleanup'
359
359
360 $ rm $TESTTMP/status-race-lock $TESTTMP/status-race-lock.waiting
360 $ rm $TESTTMP/status-race-lock $TESTTMP/status-race-lock.waiting
361 $ cd ..
361 $ cd ..
362
363 Race with another status
364 ------------------------
365
366 $ cp -a reference-repo race-with-status
367 $ cd race-with-status
368
369 spin a `hg status` with some caches to update
370
371 $ touch -t 200001010030 dir/nested/h
372 $ hg st >$TESTTMP/status-race-lock.out 2>$TESTTMP/status-race-lock.log \
373 > --config rhg.on-unsupported=abort \
374 > --config devel.sync.status.pre-dirstate-write-file=$TESTTMP/status-race-lock \
375 > &
376 $ $RUNTESTDIR/testlib/wait-on-file 5 $TESTTMP/status-race-lock.waiting
377
378 touch g
379
380 $ touch -t 200001010025 g
381 $ hg status
382 A dir/o
383 R dir/nested/m
384 ? dir/n
385 ? p
386 ? q
387 $ touch $TESTTMP/status-race-lock
388 $ wait
389
390 the first update should be on disk
391
392 $ hg debugstate --all | grep "g"
393 n 644 0 2000-01-01 00:25:00 g (no-rhg !)
394 n 644 0 2000-01-01 00:25:00 g (missing-correct-output rhg !)
395 n 644 0 2000-01-01 00:10:00 g (known-bad-output rhg !)
396
397 The status process should return a consistent result and not crash.
398
399 $ cat $TESTTMP/status-race-lock.out
400 A dir/o
401 R dir/nested/m
402 ? dir/n
403 ? p
404 ? q
405 $ cat $TESTTMP/status-race-lock.log
406
407 final cleanup
408
409 $ rm $TESTTMP/status-race-lock $TESTTMP/status-race-lock.waiting
410 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now