Search in sources :

Example 66 with Timeout

use of org.junit.jupiter.api.Timeout in project zaproxy by zaproxy.

the class DownloadManagerUnitTest method shouldDownloadAllFiles.

@Test
@Timeout(30)
void shouldDownloadAllFiles() throws Exception {
    // Given
    nano.addHandler(new NanoServerHandler("/") {

        @Override
        protected Response serve(IHTTPSession session) {
            return newFixedLengthResponse("");
        }
    });
    downloadManager.start();
    int numberOfDownloads = 1000;
    // When
    for (int i = 0; i < numberOfDownloads; i++) {
        downloadManager.downloadFile(createDownloadUrl(i), createTargetFile(i), 0L, HASH);
    }
    // Then
    waitDownloadManagerFinished();
    List<Downloader> progress = downloadManager.getProgress();
    assertThat(progress, hasSize(numberOfDownloads));
    progress.forEach(download -> {
        assertThat(download.getFinished(), is(not(nullValue())));
    });
}
Also used : Response(fi.iki.elonen.NanoHTTPD.Response) NanoHTTPD.newFixedLengthResponse(fi.iki.elonen.NanoHTTPD.newFixedLengthResponse) NanoServerHandler(org.zaproxy.zap.testutils.NanoServerHandler) IHTTPSession(fi.iki.elonen.NanoHTTPD.IHTTPSession) Test(org.junit.jupiter.api.Test) Timeout(org.junit.jupiter.api.Timeout)

Example 67 with Timeout

use of org.junit.jupiter.api.Timeout in project disruptor by LMAX-Exchange.

the class DisruptorTest method shouldThrowTimeoutExceptionIfShutdownDoesNotCompleteNormally.

@Test
@Timeout(value = 2000, unit = TimeUnit.MILLISECONDS)
public void shouldThrowTimeoutExceptionIfShutdownDoesNotCompleteNormally() throws Exception {
    assertThrows(TimeoutException.class, () -> {
        // Given
        final DelayedEventHandler delayedEventHandler = createDelayedEventHandler();
        disruptor.handleEventsWith(delayedEventHandler);
        publishEvent();
        // Then
        disruptor.shutdown(1, SECONDS);
    });
}
Also used : DelayedEventHandler(com.lmax.disruptor.dsl.stubs.DelayedEventHandler) Test(org.junit.jupiter.api.Test) Timeout(org.junit.jupiter.api.Timeout)

Example 68 with Timeout

use of org.junit.jupiter.api.Timeout in project zookeeper by apache.

the class ReadOnlyModeTest method testConnectionEvents.

/**
 * Ensures that upon connection to a read-only server client receives
 * ConnectedReadOnly state notification.
 */
@Test
@Timeout(value = 90)
public void testConnectionEvents() throws Exception {
    qu.enableLocalSession(true);
    qu.startQuorum();
    CountdownWatcher watcher = new CountdownWatcher();
    ZooKeeper zk = new ZooKeeper(qu.getConnString(), CONNECTION_TIMEOUT, watcher, true);
    boolean success = false;
    for (int i = 0; i < 30; i++) {
        try {
            zk.create("/test", "test".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
            success = true;
            break;
        } catch (KeeperException.ConnectionLossException e) {
            Thread.sleep(1000);
        }
    }
    assertTrue(success, "Did not succeed in connecting in 30s");
    assertFalse(watcher.readOnlyConnected, "The connection should not be read-only yet");
    // kill peer and wait no more than 5 seconds for read-only server
    // to be started (which should take one tickTime (2 seconds))
    qu.shutdown(2);
    // Re-connect the client (in case we were connected to the shut down
    // server and the local session was not persisted).
    zk = new ZooKeeper(qu.getConnString(), CONNECTION_TIMEOUT, watcher, true);
    long start = Time.currentElapsedTime();
    while (!(zk.getState() == States.CONNECTEDREADONLY)) {
        Thread.sleep(200);
        // TODO this was originally 5 seconds, but realistically, on random/slow/virt hosts, there is no way to guarantee this
        assertTrue(Time.currentElapsedTime() - start < 30000, "Can't connect to the server");
    }
    watcher.waitForReadOnlyConnected(5000);
    zk.close();
}
Also used : ZooKeeper(org.apache.zookeeper.ZooKeeper) CountdownWatcher(org.apache.zookeeper.test.ClientBase.CountdownWatcher) KeeperException(org.apache.zookeeper.KeeperException) Test(org.junit.jupiter.api.Test) Timeout(org.junit.jupiter.api.Timeout)

Example 69 with Timeout

use of org.junit.jupiter.api.Timeout in project zookeeper by apache.

the class ReadOnlyModeTest method testSessionEstablishment.

/**
 * Tests a situation when client firstly connects to a read-only server and
 * then connects to a majority server. Transition should be transparent for
 * the user.
 */
@Test
@Timeout(value = 90)
public void testSessionEstablishment() throws Exception {
    qu.enableLocalSession(true);
    qu.startQuorum();
    qu.shutdown(2);
    CountdownWatcher watcher = new CountdownWatcher();
    ZooKeeper zk = new ZooKeeper(qu.getConnString(), CONNECTION_TIMEOUT, watcher, true);
    watcher.waitForConnected(CONNECTION_TIMEOUT);
    assertSame(States.CONNECTEDREADONLY, zk.getState(), "should be in r/o mode");
    long fakeId = zk.getSessionId();
    LOG.info("Connected as r/o mode with state {} and session id {}", zk.getState(), fakeId);
    watcher.reset();
    qu.start(2);
    assertTrue(ClientBase.waitForServerUp("127.0.0.1:" + qu.getPeer(2).clientPort, CONNECTION_TIMEOUT), "waiting for server up");
    LOG.info("Server 127.0.0.1:{} is up", qu.getPeer(2).clientPort);
    // ZOOKEEPER-2722: wait until we can connect to a read-write server after the quorum
    // is formed. Otherwise, it is possible that client first connects to a read-only server,
    // then drops the connection because of shutting down of the read-only server caused
    // by leader election / quorum forming between the read-only server and the newly started
    // server. If we happen to execute the zk.create after the read-only server is shutdown and
    // before the quorum is formed, we will get a ConnectLossException.
    watcher.waitForSyncConnected(CONNECTION_TIMEOUT);
    assertEquals(States.CONNECTED, zk.getState(), "Should be in read-write mode");
    LOG.info("Connected as rw mode with state {} and session id {}", zk.getState(), zk.getSessionId());
    zk.create("/test", "test".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
    assertFalse(zk.getSessionId() == fakeId, "fake session and real session have same id");
    zk.close();
}
Also used : ZooKeeper(org.apache.zookeeper.ZooKeeper) CountdownWatcher(org.apache.zookeeper.test.ClientBase.CountdownWatcher) Test(org.junit.jupiter.api.Test) Timeout(org.junit.jupiter.api.Timeout)

Example 70 with Timeout

use of org.junit.jupiter.api.Timeout in project zookeeper by apache.

the class ReadOnlyModeTest method testGlobalSessionInRO.

@Test
@Timeout(value = 90)
public void testGlobalSessionInRO() throws Exception {
    qu.startQuorum();
    CountdownWatcher watcher = new CountdownWatcher();
    ZooKeeper zk = new ZooKeeper(qu.getConnString(), CONNECTION_TIMEOUT, watcher, true);
    watcher.waitForConnected(CONNECTION_TIMEOUT);
    LOG.info("global session created 0x{}", Long.toHexString(zk.getSessionId()));
    watcher.reset();
    qu.shutdown(2);
    try {
        watcher.waitForConnected(CONNECTION_TIMEOUT);
        fail("Should not be able to renew a global session");
    } catch (TimeoutException e) {
    }
    zk.close();
    watcher.reset();
    zk = new ZooKeeper(qu.getConnString(), CONNECTION_TIMEOUT, watcher, true);
    try {
        watcher.waitForConnected(CONNECTION_TIMEOUT);
        fail("Should not be able to create a global session");
    } catch (TimeoutException e) {
    }
    zk.close();
    qu.getPeer(1).peer.enableLocalSessions(true);
    zk = new ZooKeeper(qu.getConnString(), CONNECTION_TIMEOUT, watcher, true);
    try {
        watcher.waitForConnected(CONNECTION_TIMEOUT);
    } catch (TimeoutException e) {
        fail("Should be able to create a local session");
    }
    zk.close();
}
Also used : ZooKeeper(org.apache.zookeeper.ZooKeeper) CountdownWatcher(org.apache.zookeeper.test.ClientBase.CountdownWatcher) TimeoutException(java.util.concurrent.TimeoutException) Test(org.junit.jupiter.api.Test) Timeout(org.junit.jupiter.api.Timeout)

Aggregations

Timeout (org.junit.jupiter.api.Timeout)291 Test (org.junit.jupiter.api.Test)235 CountDownLatch (java.util.concurrent.CountDownLatch)71 ZooKeeper (org.apache.zookeeper.ZooKeeper)33 AtomicReference (java.util.concurrent.atomic.AtomicReference)32 ArrayList (java.util.ArrayList)31 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)29 RepeatedTest (org.junit.jupiter.api.RepeatedTest)29 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)29 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)28 LocalChannel (io.netty.channel.local.LocalChannel)27 CountdownWatcher (org.apache.zookeeper.test.ClientBase.CountdownWatcher)26 ServerBootstrap (io.netty.bootstrap.ServerBootstrap)25 IOException (java.io.IOException)25 Bootstrap (io.netty.bootstrap.Bootstrap)24 MethodSource (org.junit.jupiter.params.provider.MethodSource)24 Channel (io.netty.channel.Channel)23 NioEventLoopGroup (io.netty.channel.nio.NioEventLoopGroup)21 ChannelHandlerContext (io.netty.channel.ChannelHandlerContext)19 ChannelInboundHandlerAdapter (io.netty.channel.ChannelInboundHandlerAdapter)19