1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
<?php
/* Copyright 2012-present Facebook, Inc.
* Licensed under the Apache License, Version 2.0 */
class movereaddTestCase extends WatchmanTestCase {
function testMoveReAdd() {
if (PHP_OS == 'Linux' && getenv('TRAVIS')) {
$this->assertSkipped('openvz and inotify unlinks == bad time');
}
$dir = new WatchmanDirectoryFixture();
$root = $dir->getPath();
mkdir("$root/foo");
$watch = $this->watch($root);
$this->assertFileListUsingSince($root, 'n:foo',
array(
'foo'
),
array(
'foo'
)
);
$this->watchmanCommand('log', 'debug', 'XXX: touch foo/222');
touch("$root/foo/222");
$this->assertFileListUsingSince($root, 'n:foo',
array(
'foo',
'foo/222',
),
array(
'foo/222'
)
);
$this->watchmanCommand('log', 'debug', 'XXX: mkdir foo/bar');
mkdir("$root/foo/bar");
$since = array('foo/bar');
if (in_array($watch['watcher'], array('portfs', 'kqueue'))) {
// the parent dir reflects as changed when we mkdir within it
array_unshift($since, 'foo');
}
$this->assertFileListUsingSince($root, 'n:foo',
array(
'foo',
'foo/222',
'foo/bar',
),
$since
);
$this->watchmanCommand('log', 'debug', 'XXX: rmdir foo/bar');
w_rmdir_recursive("$root/foo/bar");
$this->watchmanCommand('log', 'debug', 'XXX: unlink foo/222');
unlink("$root/foo/222");
$this->watchmanCommand('log', 'debug', 'XXX: rmdir foo');
w_rmdir_recursive("$root/foo");
$this->assertFileListUsingSince($root, 'n:foo',
array(
),
array(
)
);
$this->watchmanCommand('log', 'debug', 'XXX: mkdir foo');
mkdir("$root/foo");
$this->watchmanCommand('log', 'debug', 'XXX: touch foo/222');
touch("$root/foo/222");
$this->assertFileListUsingSince($root, 'n:foo',
array(
"foo",
"foo/222",
),
array(
"foo",
"foo/222",
)
);
}
}
|