Avoid "." path in InotifyEventDriverWatchers.
The vibe-core tests broke because a "/./" path segment slipped into the resulting paths.
This commit is contained in:
parent
faf4bbcdc1
commit
a9ae496fb4
|
@ -41,7 +41,7 @@ final class InotifyEventDriverWatchers(Events : EventDriverEvents) : EventDriver
|
|||
|
||||
m_watches[ret] = WatchState(null, path, recursive);
|
||||
|
||||
addWatch(ret, path, ".");
|
||||
addWatch(ret, path, "");
|
||||
if (recursive) {
|
||||
try {
|
||||
auto base_segements = path.pathSplitter.walkLength;
|
||||
|
@ -138,7 +138,7 @@ final class InotifyEventDriverWatchers(Events : EventDriverEvents) : EventDriver
|
|||
auto subdir = w.watcherPaths[ev.wd];
|
||||
|
||||
if (w.recursive && ev.mask & (IN_CREATE|IN_MOVED_TO) && ev.mask & IN_ISDIR) {
|
||||
addWatch(id, w.basePath, subdir == "." ? name.idup : buildPath(subdir, name));
|
||||
addWatch(id, w.basePath, subdir == "" ? name.idup : buildPath(subdir, name));
|
||||
}
|
||||
|
||||
ch.baseDirectory = m_watches[id].basePath;
|
||||
|
|
|
@ -160,5 +160,7 @@ print("test %s RENAME %s %s", from, to, expect_change);
|
|||
|
||||
FileChange fchange(FileChangeKind kind, string name, bool is_dir)
|
||||
{
|
||||
return FileChange(kind, testDir, dirName(name), baseName(name), is_dir);
|
||||
auto dn = dirName(name);
|
||||
if (dn == ".") dn = "";
|
||||
return FileChange(kind, testDir, dn, baseName(name), is_dir);
|
||||
}
|
||||
|
|
|
@ -27,17 +27,20 @@ void main()
|
|||
default: assert(false);
|
||||
case 0:
|
||||
assert(change.kind == FileChangeKind.added);
|
||||
assert(change.directory == ".");
|
||||
assert(change.baseDirectory == ".");
|
||||
assert(change.directory == "");
|
||||
assert(change.name == testFilename);
|
||||
break;
|
||||
case 1:
|
||||
assert(change.kind == FileChangeKind.modified);
|
||||
assert(change.directory == ".");
|
||||
assert(change.baseDirectory == ".");
|
||||
assert(change.directory == "");
|
||||
assert(change.name == testFilename);
|
||||
break;
|
||||
case 2:
|
||||
assert(change.kind == FileChangeKind.removed);
|
||||
assert(change.directory == ".");
|
||||
assert(change.baseDirectory == ".");
|
||||
assert(change.directory == "");
|
||||
assert(change.name == testFilename);
|
||||
eventDriver.watchers.releaseRef(id);
|
||||
s_done = true;
|
||||
|
|
Loading…
Reference in a new issue