diff options
author | liamfallon <liam.fallon@est.tech> | 2020-03-29 13:10:38 +0100 |
---|---|---|
committer | liamfallon <liam.fallon@est.tech> | 2020-03-30 16:48:26 +0100 |
commit | af205c14be4d3ff59c1aaa5e011e93a8860b5a37 (patch) | |
tree | 62e8c19327932e477883668a8a9a1b1d3ec4cf67 /examples/examples-grpc | |
parent | 1073b156167d93ce51f020963a8d3f4166ff6315 (diff) |
Fix timeout issues in gRPC tests
When running the gRPC tests in a slow or overloaded environment, the
timeupts must be set longer.
Issue-ID: POLICY-2106
Change-Id: Id152f1f82ef47f646c7b0488b4486425c6816e31
Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'examples/examples-grpc')
3 files changed, 29 insertions, 12 deletions
diff --git a/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/GrpcTestDummyGrpcServer.java b/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/GrpcTestDummyGrpcServer.java index bef0a81c8..c8e38bc54 100644 --- a/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/GrpcTestDummyGrpcServer.java +++ b/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/GrpcTestDummyGrpcServer.java @@ -17,17 +17,21 @@ * SPDX-License-Identifier: Apache-2.0 * ============LICENSE_END========================================================= */ + package org.onap.policy.apex.examples.grpc; import com.google.protobuf.InvalidProtocolBufferException; import com.google.protobuf.util.JsonFormat; + import io.grpc.Server; import io.grpc.netty.NettyServerBuilder; import io.grpc.stub.StreamObserver; + import java.io.IOException; import java.net.InetSocketAddress; import java.nio.file.Files; import java.nio.file.Paths; + import org.onap.ccsdk.cds.controllerblueprints.processing.api.BluePrintProcessingServiceGrpc.BluePrintProcessingServiceImplBase; import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput; import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput; @@ -40,12 +44,18 @@ import org.onap.policy.apex.service.engine.event.ApexEventRuntimeException; public class GrpcTestDummyGrpcServer { private Server server; + /** + * Dummy server for gRPC. + * + * @param host hostname of the server + * @param port port of the server + */ public GrpcTestDummyGrpcServer(String host, int port) { // Implement the dummy gRPC server BluePrintProcessingServiceImplBase testCdsBlueprintServerImpl = new BluePrintProcessingServiceImplBase() { @Override - public StreamObserver<ExecutionServiceInput> process( - final StreamObserver<ExecutionServiceOutput> responseObserver) { + public StreamObserver<ExecutionServiceInput> + process(final StreamObserver<ExecutionServiceOutput> responseObserver) { return new StreamObserver<ExecutionServiceInput>() { @Override public void onNext(final ExecutionServiceInput executionServiceInput) { diff --git a/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/GrpcTestServerSim.java b/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/GrpcTestServerSim.java index ae35d1ff2..fcdf55322 100644 --- a/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/GrpcTestServerSim.java +++ b/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/GrpcTestServerSim.java @@ -47,14 +47,14 @@ public class GrpcTestServerSim { restServer.addServletClass(null, GrpcTestRestSimEndpoint.class.getName()); restServer.setSerializationProvider(GsonMessageBodyHandler.class.getName()); restServer.start(); - if (!NetworkUtil.isTcpPortOpen(HOST, restServerPort, 2000, 1L)) { + if (!NetworkUtil.isTcpPortOpen(HOST, restServerPort, 50, 200L)) { throw new IllegalStateException("port " + restServerPort + " is still not in use"); } int grpcServerPort = 54322; grpcServer = new GrpcTestDummyGrpcServer(HOST, grpcServerPort); grpcServer.start(); - if (!NetworkUtil.isTcpPortOpen(HOST, grpcServerPort, 2000, 1L)) { + if (!NetworkUtil.isTcpPortOpen(HOST, grpcServerPort, 50, 200L)) { throw new IllegalStateException("port " + grpcServerPort + " is still not in use"); } } diff --git a/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/TestApexGrpcExample.java b/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/TestApexGrpcExample.java index 06d1d33f9..05d6e4ce5 100644 --- a/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/TestApexGrpcExample.java +++ b/examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/TestApexGrpcExample.java @@ -17,6 +17,7 @@ * SPDX-License-Identifier: Apache-2.0 * ============LICENSE_END========================================================= */ + package org.onap.policy.apex.examples.grpc; import static org.awaitility.Awaitility.await; @@ -25,18 +26,20 @@ import static org.junit.Assert.assertEquals; import java.nio.file.Files; import java.nio.file.Paths; import java.util.concurrent.TimeUnit; + import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.core.Response; + import org.junit.Test; import org.onap.policy.apex.auth.clieditor.ApexCommandLineEditorMain; import org.onap.policy.apex.service.engine.main.ApexMain; /** - * Test class to run an example policy for APEX-CDS interaction over gRPC. - * Event received on unauthenticated.DCAE_CL_OUTPUT DMaaP topic (dummy REST Endpoint here) triggers the policy - * Based on the event, a create/delete subscription gRPC request is triggered to the CDS (a dummy gRPC server here). - * Response received from CDS is used to send a final output Log event on POLICY_CL_MGT topic. + * Test class to run an example policy for APEX-CDS interaction over gRPC. Event received on + * unauthenticated.DCAE_CL_OUTPUT DMaaP topic (dummy REST Endpoint here) triggers the policy Based on the event, a + * create/delete subscription gRPC request is triggered to the CDS (a dummy gRPC server here). Response received from + * CDS is used to send a final output Log event on POLICY_CL_MGT topic. */ public class TestApexGrpcExample { @Test @@ -65,21 +68,25 @@ public class TestApexGrpcExample { }; // @formatter:on - GrpcTestServerSim sim = new GrpcTestServerSim(); + final GrpcTestServerSim sim = new GrpcTestServerSim(); + final Client client = ClientBuilder.newClient(); - String expectedLoggedOutputEvent = Files - .readString(Paths.get("src/main/resources/examples/events/APEXgRPC/LogEvent.json")).replaceAll("\r", ""); final ApexMain apexMain = new ApexMain(apexArgs); + await().atMost(5000, TimeUnit.MILLISECONDS).until(() -> apexMain.isAlive()); + String getLoggedEventUrl = "http://localhost:54321/GrpcTestRestSim/sim/event/getLoggedEvent"; // wait for success response code to be received, until a timeout - await().atMost(5000, TimeUnit.MILLISECONDS).until(() -> { + await().atMost(20000, TimeUnit.MILLISECONDS).until(() -> { return 200 == client.target(getLoggedEventUrl).request("application/json").get().getStatus(); }); apexMain.shutdown(); Response response = client.target(getLoggedEventUrl).request("application/json").get(); sim.tearDown(); String responseEntity = response.readEntity(String.class); + + String expectedLoggedOutputEvent = Files + .readString(Paths.get("src/main/resources/examples/events/APEXgRPC/LogEvent.json")).replaceAll("\r", ""); assertEquals(expectedLoggedOutputEvent, responseEntity); } } |