use of com.facebook.buck.timing.SettableFakeClock in project buck by facebook.
the class WatchmanTest method capabilitiesDetectedForVersion47AndLater.
@Test
public void capabilitiesDetectedForVersion47AndLater() throws InterruptedException, IOException {
SettableFakeClock clock = new SettableFakeClock(0, 0);
FakeListeningProcessExecutor executor = new FakeListeningProcessExecutor(ImmutableMultimap.<ProcessExecutorParams, FakeListeningProcessState>builder().putAll(ProcessExecutorParams.ofCommand(exe, "--output-encoding=bser", "get-sockname"), FakeListeningProcessState.ofStdoutBytes(bserSerialized(ImmutableMap.of("version", "4.7.0", "sockname", "/path/to/sock"))), FakeListeningProcessState.ofExit(0)).build(), clock);
Watchman watchman = Watchman.build(executor, fakeWatchmanConnector(Paths.get("/path/to/sock"), 0, ImmutableMap.of(VERSION_QUERY, ImmutableMap.of("version", "4.7.0", "capabilities", ImmutableMap.<String, Boolean>builder().put("term-dirname", true).put("cmd-watch-project", true).put("wildmatch", true).put("wildmatch_multislash", true).put("glob_generator", true).put("clock-sync-timeout", true).build()), ImmutableList.of("watch-project", root), ImmutableMap.of("version", "4.7.0", "watch", root), ImmutableList.of("clock", root, ImmutableMap.of("sync_timeout", 100)), ImmutableMap.of("version", "4.7.0", "clock", "c:0:0:1"))), rootPaths, env, finder, new TestConsole(), clock, Optional.empty());
assertEquals(ImmutableSet.of(Watchman.Capability.DIRNAME, Watchman.Capability.SUPPORTS_PROJECT_WATCH, Watchman.Capability.WILDMATCH_GLOB, Watchman.Capability.WILDMATCH_MULTISLASH, Watchman.Capability.GLOB_GENERATOR, Watchman.Capability.CLOCK_SYNC_TIMEOUT), watchman.getCapabilities());
assertEquals(ImmutableMap.of(Paths.get(root), "c:0:0:1"), watchman.getClockIds());
}
use of com.facebook.buck.timing.SettableFakeClock in project buck by facebook.
the class WatchmanTest method shouldFailIfWatchProjectNotAvailable.
@Test
public void shouldFailIfWatchProjectNotAvailable() throws InterruptedException, IOException {
SettableFakeClock clock = new SettableFakeClock(0, 0);
FakeListeningProcessExecutor executor = new FakeListeningProcessExecutor(ImmutableMultimap.<ProcessExecutorParams, FakeListeningProcessState>builder().putAll(ProcessExecutorParams.ofCommand(exe, "--output-encoding=bser", "get-sockname"), FakeListeningProcessState.ofStdoutBytes(bserSerialized(ImmutableMap.of("version", "3.8.0", "sockname", "/path/to/sock"))), FakeListeningProcessState.ofExit(0)).build(), clock);
Watchman watchman = Watchman.build(executor, fakeWatchmanConnector(Paths.get("/path/to/sock"), 0, ImmutableMap.of(VERSION_QUERY, ImmutableMap.of("version", "3.8.0", "capabilities", ImmutableMap.of("term-dirname", true, "cmd-watch-project", false, "wildmatch", false, "wildmatch_multislash", false, "glob_generator", false), "error", "client required capabilty `cmd-watch-project` is not supported by this " + "server"))), rootPaths, env, finder, new TestConsole(), clock, Optional.empty());
assertEquals(Watchman.NULL_WATCHMAN, watchman);
}
use of com.facebook.buck.timing.SettableFakeClock in project buck by facebook.
the class WatchmanTest method capabilitiesDetectedForVersion38AndLater.
@Test
public void capabilitiesDetectedForVersion38AndLater() throws InterruptedException, IOException {
SettableFakeClock clock = new SettableFakeClock(0, 0);
FakeListeningProcessExecutor executor = new FakeListeningProcessExecutor(ImmutableMultimap.<ProcessExecutorParams, FakeListeningProcessState>builder().putAll(ProcessExecutorParams.ofCommand(exe, "--output-encoding=bser", "get-sockname"), FakeListeningProcessState.ofStdoutBytes(bserSerialized(ImmutableMap.of("version", "3.8.0", "sockname", "/path/to/sock"))), FakeListeningProcessState.ofExit(0)).build(), clock);
Watchman watchman = Watchman.build(executor, fakeWatchmanConnector(Paths.get("/path/to/sock"), 0, ImmutableMap.of(VERSION_QUERY, ImmutableMap.of("version", "3.8.0", "capabilities", ImmutableMap.<String, Boolean>builder().put("term-dirname", true).put("cmd-watch-project", true).put("wildmatch", true).put("wildmatch_multislash", true).put("glob_generator", false).put("clock-sync-timeout", false).build()), ImmutableList.of("watch-project", root), ImmutableMap.of("version", "3.8.0", "watch", root), ImmutableList.of("clock", root, ImmutableMap.of()), ImmutableMap.of("version", "3.8.0", "clock", "c:0:0:1"))), rootPaths, env, finder, new TestConsole(), clock, Optional.empty());
assertEquals(ImmutableSet.of(Watchman.Capability.DIRNAME, Watchman.Capability.SUPPORTS_PROJECT_WATCH, Watchman.Capability.WILDMATCH_GLOB, Watchman.Capability.WILDMATCH_MULTISLASH), watchman.getCapabilities());
assertEquals(ImmutableMap.of(Paths.get(root), "c:0:0:1"), watchman.getClockIds());
}
use of com.facebook.buck.timing.SettableFakeClock in project buck by facebook.
the class FakeProjectFilesystemTest method fileModifiedTimeIsSetOnInitialWrite.
@Test
public void fileModifiedTimeIsSetOnInitialWrite() throws IOException {
SettableFakeClock clock = new SettableFakeClock(49152, 0);
FakeProjectFilesystem filesystem = new FakeProjectFilesystem(clock);
filesystem.touch(Paths.get("foo"));
assertEquals(filesystem.getLastModifiedTime(Paths.get("foo")), 49152);
}
use of com.facebook.buck.timing.SettableFakeClock in project buck by facebook.
the class FakeProjectFilesystemTest method testDirectoryContentsAreInSortedOrder.
@Test
public void testDirectoryContentsAreInSortedOrder() throws IOException {
SettableFakeClock clock = new SettableFakeClock(1000, 0);
FakeProjectFilesystem filesystem = new FakeProjectFilesystem(clock);
filesystem.touch(Paths.get("foo/foo"));
filesystem.touch(Paths.get("foo/bar"));
filesystem.touch(Paths.get("foo/baz"));
assertThat(filesystem.getDirectoryContents(Paths.get("foo")), // Yes, contains() is an order-dependent matcher, despite its name.
contains(Paths.get("foo/bar"), Paths.get("foo/baz"), Paths.get("foo/foo")));
FakeProjectFilesystem filesystem2 = new FakeProjectFilesystem(clock);
filesystem2.touch(Paths.get("foo/baz"));
filesystem2.touch(Paths.get("foo/bar"));
filesystem2.touch(Paths.get("foo/foo"));
assertThat(filesystem2.getDirectoryContents(Paths.get("foo")), contains(Paths.get("foo/bar"), Paths.get("foo/baz"), Paths.get("foo/foo")));
}
Aggregations