Mercurial > hg
annotate tests/test-hup @ 9116:f90bbf1ea09f
inotify: fix issue1375, add a test.
The biggest problem was the data structure, which did not allow changing
a file into a directory or vice versa. This problem is fixed by b55d44719b47.
The walk() method also had an issue in this case:
- we know 'path' as a directory. inotify server sleeps.
- 'path' is deleted
- 'path' is recreated as a file
- the server catches up here, and see the deletion. it instantiates a scan(),
which in its turn calls for walk(repo, path).
- walk() then assumes that 'path' is a directory and calls os.listdir on it,
which raises an OSError(errno.ENOTDIR)
Catch the error, and yield the file instead of the directory contents.
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Mon, 13 Jul 2009 16:49:05 +0200 |
parents | a6477aa893b8 |
children |
rev | line source |
---|---|
642 | 1 #!/bin/sh |
2 | |
7080
a6477aa893b8
tests: Windows compatibility fixes
Patrick Mezard <pmezard@gmail.com>
parents:
3918
diff
changeset
|
3 "$TESTDIR/hghave" fifo || exit 80 |
a6477aa893b8
tests: Windows compatibility fixes
Patrick Mezard <pmezard@gmail.com>
parents:
3918
diff
changeset
|
4 |
642 | 5 hg init |
6 mkfifo p | |
7 | |
8 hg serve --stdio < p & | |
9 P=$! | |
10 (echo lock; echo addchangegroup; sleep 5) > p & | |
11 Q=$! | |
2529
9419855309cd
Some systems are slower ... give 'em some time/
Sascha Wilde <wilde@sha-bang.de>
parents:
2088
diff
changeset
|
12 sleep 3 |
642 | 13 kill -HUP $P |
2088
f16435b45780
Exit test-hup only after the background process has died.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
814
diff
changeset
|
14 wait |
3918
a413f5c29c46
Fix test-hup for different output of ls on at least MacOS X and Solaris 8.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3853
diff
changeset
|
15 echo .hg/* .hg/store/* |