Search in sources :

Example 11 with SettableFakeClock

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());
}
Also used : FakeListeningProcessExecutor(com.facebook.buck.util.FakeListeningProcessExecutor) SettableFakeClock(com.facebook.buck.timing.SettableFakeClock) TestConsole(com.facebook.buck.testutil.TestConsole) Test(org.junit.Test)

Example 12 with SettableFakeClock

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);
}
Also used : FakeListeningProcessExecutor(com.facebook.buck.util.FakeListeningProcessExecutor) SettableFakeClock(com.facebook.buck.timing.SettableFakeClock) TestConsole(com.facebook.buck.testutil.TestConsole) Test(org.junit.Test)

Example 13 with SettableFakeClock

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());
}
Also used : FakeListeningProcessExecutor(com.facebook.buck.util.FakeListeningProcessExecutor) SettableFakeClock(com.facebook.buck.timing.SettableFakeClock) TestConsole(com.facebook.buck.testutil.TestConsole) Test(org.junit.Test)

Example 14 with SettableFakeClock

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);
}
Also used : SettableFakeClock(com.facebook.buck.timing.SettableFakeClock) Test(org.junit.Test)

Example 15 with SettableFakeClock

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")));
}
Also used : SettableFakeClock(com.facebook.buck.timing.SettableFakeClock) Test(org.junit.Test)

Aggregations

SettableFakeClock (com.facebook.buck.timing.SettableFakeClock)24 Test (org.junit.Test)21 FakeProjectFilesystem (com.facebook.buck.testutil.FakeProjectFilesystem)9 TestConsole (com.facebook.buck.testutil.TestConsole)8 FakeListeningProcessExecutor (com.facebook.buck.util.FakeListeningProcessExecutor)8 Hasher (com.google.common.hash.Hasher)4 Before (org.junit.Before)3 Path (java.nio.file.Path)2 NSString (com.dd.plist.NSString)1 AppleConfig (com.facebook.buck.apple.AppleConfig)1 BuckConfig (com.facebook.buck.cli.BuckConfig)1 FakeBuckConfig (com.facebook.buck.cli.FakeBuckConfig)1 CxxBuckConfig (com.facebook.buck.cxx.CxxBuckConfig)1 HalideBuckConfig (com.facebook.buck.halide.HalideBuckConfig)1 ReactNativeBuckConfig (com.facebook.buck.js.ReactNativeBuckConfig)1 TestCellBuilder (com.facebook.buck.rules.TestCellBuilder)1 SwiftBuckConfig (com.facebook.buck.swift.SwiftBuckConfig)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)1