tests/test-inotify-lookup.t
author Adrian Buehlmann <adrian@cadifra.com>
Wed, 18 May 2011 09:12:27 +0200
changeset 14413 5ef18e28df19
parent 12457 5ae8711ea324
child 18594 a9e830ecd9fb
permissions -rw-r--r--
pure: provide more correct implementation of posixfile for Windows requires ctypes Why is posixfile a class? Because the implementation needs to use the Python library call os.fdopen [1], which sets the 'name' attribute on the Python file object it creates to the mostly meaningless string '<fdopen>', since file descriptors don't have a name. But users of posixfile depend on the name attribute [2] being set to a proper value, like Python's built-in 'open' function sets it on file objects. Python file's name attribute is read-only, so we can't just assign to it after the file object has alrady been created. To solve this problem, we save the name of the file on a wrapper object, and delegate the file function calls to the wrapped (private) file object using __getattr__. [1] http://docs.python.org/library/os.html#os.fdopen [2] http://docs.python.org/library/stdtypes.html#file.name
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7084
f5c18a581b8b inotify: add a test for lookup bug
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     1
12457
5ae8711ea324 tests: unify test-inotify-lookup
Matt Mackall <mpm@selenic.com>
parents: 7084
diff changeset
     2
  $ "$TESTDIR/hghave" inotify || exit 80
5ae8711ea324 tests: unify test-inotify-lookup
Matt Mackall <mpm@selenic.com>
parents: 7084
diff changeset
     3
  $ hg init
5ae8711ea324 tests: unify test-inotify-lookup
Matt Mackall <mpm@selenic.com>
parents: 7084
diff changeset
     4
  $ echo "[extensions]" > .hg/hgrc
5ae8711ea324 tests: unify test-inotify-lookup
Matt Mackall <mpm@selenic.com>
parents: 7084
diff changeset
     5
  $ echo "inotify=" >> .hg/hgrc
5ae8711ea324 tests: unify test-inotify-lookup
Matt Mackall <mpm@selenic.com>
parents: 7084
diff changeset
     6
  $ hg inserve -d --pid-file .hg/inotify.pid
5ae8711ea324 tests: unify test-inotify-lookup
Matt Mackall <mpm@selenic.com>
parents: 7084
diff changeset
     7
  $ echo a > a
5ae8711ea324 tests: unify test-inotify-lookup
Matt Mackall <mpm@selenic.com>
parents: 7084
diff changeset
     8
  $ hg ci -Aqm0
5ae8711ea324 tests: unify test-inotify-lookup
Matt Mackall <mpm@selenic.com>
parents: 7084
diff changeset
     9
  $ hg co -q null
5ae8711ea324 tests: unify test-inotify-lookup
Matt Mackall <mpm@selenic.com>
parents: 7084
diff changeset
    10
  $ hg co -q
5ae8711ea324 tests: unify test-inotify-lookup
Matt Mackall <mpm@selenic.com>
parents: 7084
diff changeset
    11
  $ hg st
5ae8711ea324 tests: unify test-inotify-lookup
Matt Mackall <mpm@selenic.com>
parents: 7084
diff changeset
    12
  $ cat a
5ae8711ea324 tests: unify test-inotify-lookup
Matt Mackall <mpm@selenic.com>
parents: 7084
diff changeset
    13
  a
5ae8711ea324 tests: unify test-inotify-lookup
Matt Mackall <mpm@selenic.com>
parents: 7084
diff changeset
    14
  $ kill `cat .hg/inotify.pid`