import std.process; system("rm -rf tmp"); system("mkdir -p tmp/dir1/dir11"); system("mkdir -p tmp/dir1/dir12"); auto ntree = iNotifyTree("tmp/dir1", IN_CREATE | IN_DELETE); system("touch tmp/dir1/dir11/a.tmp"); system("touch tmp/dir1/dir12/b.tmp"); system("rm -rf tmp/dir1/dir12"); auto evs = ntree.read(); assert(evs.length == 4); // a & b files created assert(evs[0].mask == IN_CREATE && evs[0].path == "tmp/dir1/dir11/a.tmp"); assert(evs[1].mask == IN_CREATE && evs[1].path == "tmp/dir1/dir12/b.tmp"); // b deleted as part of sub-tree assert(evs[2].mask == IN_DELETE && evs[2].path == "tmp/dir1/dir12/b.tmp"); assert(evs[3].mask == (IN_DELETE | IN_ISDIR) && evs[3].path == "tmp/dir1/dir12");