Search in sources :

Example 26 with MockP

use of com.hazelcast.jet.core.TestProcessors.MockP in project hazelcast by hazelcast.

the class ExecutionLifecycleTest method when_processorNonCooperativeCompleteThrows_then_failJob.

@Test
public void when_processorNonCooperativeCompleteThrows_then_failJob() {
    // Given
    DAG dag = new DAG();
    dag.newVertex("faulty", new MockPMS(() -> new MockPS(() -> new MockP().nonCooperative().setCompleteError(MOCK_ERROR), MEMBER_COUNT)));
    // When
    Job job = runJobExpectFailure(dag, false);
    // Then
    assertPClosedWithError();
    assertPsClosedWithError();
    assertPmsClosedWithError();
    assertJobFailed(job, MOCK_ERROR);
}
Also used : MockPMS(com.hazelcast.jet.core.TestProcessors.MockPMS) MockPS(com.hazelcast.jet.core.TestProcessors.MockPS) MockP(com.hazelcast.jet.core.TestProcessors.MockP) Job(com.hazelcast.jet.Job) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 27 with MockP

use of com.hazelcast.jet.core.TestProcessors.MockP in project hazelcast by hazelcast.

the class ExecutionLifecycleTest method when_oneOfTwoJobsFails_then_theOtherContinues.

@Test
public void when_oneOfTwoJobsFails_then_theOtherContinues() throws Exception {
    // Given
    DAG dagFaulty = new DAG().vertex(new Vertex("faulty", new MockPMS(() -> new MockPS(() -> new MockP().setCompleteError(MOCK_ERROR), MEMBER_COUNT))));
    DAG dagGood = new DAG();
    dagGood.newVertex("good", () -> new NoOutputSourceP());
    // When
    Job jobGood = newJob(dagGood);
    NoOutputSourceP.executionStarted.await();
    runJobExpectFailure(dagFaulty, false);
    // Then
    assertTrueAllTheTime(() -> assertFalse(jobGood.getFuture().isDone()), 2);
    NoOutputSourceP.proceedLatch.countDown();
    jobGood.join();
}
Also used : MockPMS(com.hazelcast.jet.core.TestProcessors.MockPMS) MockPS(com.hazelcast.jet.core.TestProcessors.MockPS) MockP(com.hazelcast.jet.core.TestProcessors.MockP) NoOutputSourceP(com.hazelcast.jet.core.TestProcessors.NoOutputSourceP) Job(com.hazelcast.jet.Job) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 28 with MockP

use of com.hazelcast.jet.core.TestProcessors.MockP in project hazelcast by hazelcast.

the class ExecutionLifecycleTest method when_memberLeft_then_jobFails.

@Test
public void when_memberLeft_then_jobFails() {
    // Test for https://github.com/hazelcast/hazelcast/issues/18844
    // This test doesn't use the shared cluster because it shuts down one of the members
    HazelcastInstance inst1 = createHazelcastInstance();
    HazelcastInstance inst2 = createHazelcastInstance();
    DAG dag = new DAG();
    dag.newVertex("v", () -> new MockP().streaming());
    Job job = inst1.getJet().newLightJob(dag);
    assertJobRunningEventually(inst1, job, null);
    inst2.getLifecycleService().terminate();
    assertThatThrownBy(() -> job.join()).hasRootCauseInstanceOf(MemberLeftException.class);
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) MockP(com.hazelcast.jet.core.TestProcessors.MockP) Job(com.hazelcast.jet.Job) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 29 with MockP

use of com.hazelcast.jet.core.TestProcessors.MockP in project hazelcast by hazelcast.

the class ExecutionLifecycleTest method when_clientJoinBeforeAndAfterComplete_then_exceptionEquals.

@Test
public void when_clientJoinBeforeAndAfterComplete_then_exceptionEquals() {
    // not applicable to light jobs - we can't connect to light jobs after they complete
    assumeFalse(useLightJob);
    DAG dag = new DAG();
    Vertex noop = dag.newVertex("noop", (SupplierEx<Processor>) NoOutputSourceP::new).localParallelism(1);
    Vertex faulty = dag.newVertex("faulty", () -> new MockP().setCompleteError(MOCK_ERROR)).localParallelism(1);
    dag.edge(between(noop, faulty));
    Job job = newJob(client(), dag, null);
    assertJobStatusEventually(job, RUNNING);
    NoOutputSourceP.proceedLatch.countDown();
    Throwable excBeforeComplete;
    Throwable excAfterComplete;
    try {
        job.join();
        throw new AssertionError("should have failed");
    } catch (Exception e) {
        excBeforeComplete = e;
    }
    // create a new client that will join the job after completion
    HazelcastInstance client2 = factory().newHazelcastClient();
    Job job2 = client2.getJet().getJob(job.getId());
    try {
        job2.join();
        throw new AssertionError("should have failed");
    } catch (Exception e) {
        excAfterComplete = e;
    }
    logger.info("exception before completion", excBeforeComplete);
    logger.info("exception after completion", excAfterComplete);
    // Then
    assertInstanceOf(CompletionException.class, excBeforeComplete);
    assertInstanceOf(CompletionException.class, excAfterComplete);
    Throwable causeBefore = excBeforeComplete.getCause();
    Throwable causeAfter = excAfterComplete.getCause();
    assertEquals(causeBefore.getClass(), causeAfter.getClass());
    assertContains(causeAfter.getMessage(), causeBefore.getMessage());
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) MockP(com.hazelcast.jet.core.TestProcessors.MockP) NoOutputSourceP(com.hazelcast.jet.core.TestProcessors.NoOutputSourceP) SupplierEx(com.hazelcast.function.SupplierEx) Job(com.hazelcast.jet.Job) JobTerminateRequestedException(com.hazelcast.jet.impl.exception.JobTerminateRequestedException) CancellationException(java.util.concurrent.CancellationException) CompletionException(java.util.concurrent.CompletionException) ExpectedException(org.junit.rules.ExpectedException) MemberLeftException(com.hazelcast.core.MemberLeftException) IOException(java.io.IOException) NotSerializableException(java.io.NotSerializableException) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 30 with MockP

use of com.hazelcast.jet.core.TestProcessors.MockP in project hazelcast by hazelcast.

the class ExecutionLifecycleTest method when_pmsGetThrows_then_jobFails.

@Test
public void when_pmsGetThrows_then_jobFails() {
    // Given
    DAG dag = new DAG().vertex(new Vertex("faulty", new MockPMS(() -> new MockPS(MockP::new, MEMBER_COUNT)).setGetError(MOCK_ERROR)));
    // When
    Job job = runJobExpectFailure(dag, false);
    // Then
    assertPmsClosedWithError();
    assertJobFailed(job, MOCK_ERROR);
}
Also used : MockPMS(com.hazelcast.jet.core.TestProcessors.MockPMS) MockPS(com.hazelcast.jet.core.TestProcessors.MockPS) MockP(com.hazelcast.jet.core.TestProcessors.MockP) Job(com.hazelcast.jet.Job) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Aggregations

MockP (com.hazelcast.jet.core.TestProcessors.MockP)56 Test (org.junit.Test)54 Job (com.hazelcast.jet.Job)49 ParallelJVMTest (com.hazelcast.test.annotation.ParallelJVMTest)35 QuickTest (com.hazelcast.test.annotation.QuickTest)35 MockPS (com.hazelcast.jet.core.TestProcessors.MockPS)30 MockPMS (com.hazelcast.jet.core.TestProcessors.MockPMS)26 HazelcastInstance (com.hazelcast.core.HazelcastInstance)14 JobConfig (com.hazelcast.jet.config.JobConfig)11 DAG (com.hazelcast.jet.core.DAG)9 ExecutionException (java.util.concurrent.ExecutionException)8 ExpectedException (org.junit.rules.ExpectedException)5 JetException (com.hazelcast.jet.JetException)4 Processor (com.hazelcast.jet.core.Processor)4 ExpectedRuntimeException (com.hazelcast.test.ExpectedRuntimeException)4 NoOutputSourceP (com.hazelcast.jet.core.TestProcessors.NoOutputSourceP)3 Config (com.hazelcast.config.Config)2 JetInstance (com.hazelcast.jet.JetInstance)2 StuckProcessor (com.hazelcast.jet.core.TestProcessors.StuckProcessor)2 NightlyTest (com.hazelcast.test.annotation.NightlyTest)2