Skip to content
Merged
7 changes: 6 additions & 1 deletion .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ container:
resources:
requests:
cpu: 7500m
memory: 30G
memory: 60G
volumes:
- name: docker-sock
emptyDir: {}
Expand All @@ -52,6 +52,7 @@ steps:

- label: ":java: Unit test with test services"
artifact_paths:
- "build/reports/tests/test/**/*"
- "build/reports/jacoco/test/jacocoTestReport.xml"
- "build/reports/metadata.txt"
timeout_in_minutes: 30
Expand Down Expand Up @@ -80,6 +81,8 @@ steps:
automatic:
- exit_status: "*"
limit: 3
artifact_paths:
- "build/reports/tests/test/**/*"
plugins:
- kubernetes:
<<: *kubernetes
Expand All @@ -100,6 +103,8 @@ steps:
automatic:
- exit_status: "*"
limit: 3
artifact_paths:
- "build/reports/tests/test/**/*"
plugins:
- kubernetes:
<<: *kubernetes
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ test {
events 'passed', 'skipped', 'failed'
exceptionFormat 'full'
// Uncomment the following line if you want to see test logs in gradlew run.
showStandardStreams true
showStandardStreams false
}
}

Expand Down
8 changes: 3 additions & 5 deletions src/test/java/com/uber/cadence/RegisterTestDomain.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,20 @@
import static com.uber.cadence.testUtils.TestEnvironment.DOMAIN;
import static com.uber.cadence.testUtils.TestEnvironment.DOMAIN2;

import com.uber.cadence.serviceclient.ClientOptions;
import com.uber.cadence.serviceclient.IWorkflowService;
import com.uber.cadence.serviceclient.WorkflowServiceTChannel;
import com.uber.cadence.testUtils.TestEnvironment;
import org.apache.thrift.TException;

/** Waits for local service to become available and registers UnitTest domain. */
public class RegisterTestDomain {
private static final boolean useDockerService =
Boolean.parseBoolean(System.getenv("USE_DOCKER_SERVICE"));
private static final boolean useDockerService = TestEnvironment.isUseDockerService();

public static void main(String[] args) throws InterruptedException {
if (!useDockerService) {
return;
}

IWorkflowService service = new WorkflowServiceTChannel(ClientOptions.defaultInstance());
IWorkflowService service = TestEnvironment.getDockerService();
registerDomain(service, DOMAIN);
registerDomain(service, DOMAIN2);
System.exit(0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import com.uber.cadence.serviceclient.ClientOptions;
import com.uber.cadence.serviceclient.IWorkflowService;
import com.uber.cadence.serviceclient.WorkflowServiceTChannel;
import com.uber.cadence.testUtils.TestEnvironment;
import com.uber.cadence.worker.Worker;
import com.uber.cadence.worker.WorkerFactory;
import com.uber.cadence.worker.WorkerFactoryOptions;
Expand Down Expand Up @@ -138,8 +139,7 @@ public Integer Double(Integer n) {
}
}

private static final boolean useDockerService =
Boolean.parseBoolean(System.getenv("USE_DOCKER_SERVICE"));
private static final boolean useDockerService = TestEnvironment.isUseDockerService();
private static final Logger logger = LoggerFactory.getLogger(StartWorkflowTest.class);
private static final String DOMAIN = "test-domain";
private static final String TASK_LIST = "test-tasklist";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,10 @@
*/
package com.uber.cadence.testUtils;

import com.uber.cadence.FeatureFlags;
import com.uber.cadence.client.WorkflowClient;
import com.uber.cadence.client.WorkflowClientOptions;
import com.uber.cadence.internal.worker.PollerOptions;
import com.uber.cadence.serviceclient.ClientOptions;
import com.uber.cadence.serviceclient.IWorkflowService;
import com.uber.cadence.serviceclient.WorkflowServiceTChannel;
import com.uber.cadence.testing.TestEnvironmentOptions;
import com.uber.cadence.testing.TestWorkflowEnvironment;
import com.uber.cadence.worker.Worker;
Expand Down Expand Up @@ -223,12 +220,7 @@ public static CadenceTestContext forRealService(
WorkerFactoryOptions workerFactoryOptions) {
TracingWorkflowInterceptorFactory tracer = new TracingWorkflowInterceptorFactory();

IWorkflowService wfService =
new WorkflowServiceTChannel(
ClientOptions.newBuilder()
.setFeatureFlags(
new FeatureFlags().setWorkflowExecutionAlreadyCompletedErrorEnabled(true))
.build());
IWorkflowService wfService = TestEnvironment.getDockerService();
WorkflowClient workflowClient = WorkflowClient.newInstance(wfService, clientOptions);
WorkerFactory workerFactory = new WorkerFactory(workflowClient, workerFactoryOptions);
ScheduledExecutorService scheduledExecutor = new ScheduledThreadPoolExecutor(1);
Expand Down
10 changes: 10 additions & 0 deletions src/test/java/com/uber/cadence/testUtils/TestEnvironment.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@
*/
package com.uber.cadence.testUtils;

import com.uber.cadence.internal.compatibility.Thrift2ProtoAdapter;
import com.uber.cadence.internal.compatibility.proto.serviceclient.IGrpcServiceStubs;
import com.uber.cadence.serviceclient.ClientOptions;
import com.uber.cadence.serviceclient.IWorkflowService;

public final class TestEnvironment {
public static final String DOMAIN = "UnitTest";
public static final String DOMAIN2 = "UnitTest2";
Expand All @@ -35,4 +40,9 @@ public static boolean isDebuggerTimeouts() {
public static boolean isUseDockerService() {
return USE_DOCKER_SERVICE;
}

public static IWorkflowService getDockerService() {
return new Thrift2ProtoAdapter(
IGrpcServiceStubs.newInstance(ClientOptions.newBuilder().setPort(7833).build()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,8 @@
import com.uber.cadence.client.WorkflowClient;
import com.uber.cadence.client.WorkflowClientOptions;
import com.uber.cadence.client.WorkflowOptions;
import com.uber.cadence.serviceclient.ClientOptions;
import com.uber.cadence.serviceclient.IWorkflowService;
import com.uber.cadence.serviceclient.WorkflowServiceTChannel;
import com.uber.cadence.testUtils.TestEnvironment;
import com.uber.cadence.testing.TestEnvironmentOptions;
import com.uber.cadence.testing.TestWorkflowEnvironment;
import com.uber.cadence.workflow.Workflow;
Expand All @@ -57,8 +56,7 @@
@RunWith(Parameterized.class)
public class CleanWorkerShutdownTest {

private static final boolean useDockerService =
Boolean.parseBoolean(System.getenv("USE_DOCKER_SERVICE"));
private static final boolean useDockerService = TestEnvironment.isUseDockerService();

@Parameterized.Parameter public boolean useExternalService;

Expand All @@ -81,7 +79,7 @@ public static Object[] data() {
@Before
public void setUp() {
if (useExternalService) {
service = new WorkflowServiceTChannel(ClientOptions.defaultInstance());
service = TestEnvironment.getDockerService();
}
}

Expand Down
23 changes: 11 additions & 12 deletions src/test/java/com/uber/cadence/worker/StickyWorkerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@
import com.uber.cadence.internal.metrics.MetricsType;
import com.uber.cadence.internal.metrics.NoopScope;
import com.uber.cadence.internal.replay.DeciderCache;
import com.uber.cadence.serviceclient.ClientOptions;
import com.uber.cadence.serviceclient.WorkflowServiceTChannel;
import com.uber.cadence.serviceclient.IWorkflowService;
import com.uber.cadence.testUtils.TestEnvironment;
import com.uber.cadence.testing.TestEnvironmentOptions;
import com.uber.cadence.testing.TestWorkflowEnvironment;
import com.uber.cadence.workflow.Async;
Expand Down Expand Up @@ -71,8 +71,7 @@
@RunWith(Parameterized.class)
public class StickyWorkerTest {

private static final boolean useDockerService =
Boolean.parseBoolean(System.getenv("USE_DOCKER_SERVICE"));
private static final boolean useDockerService = TestEnvironment.isUseDockerService();
private static final String STICKY_TASK_LIST_METRIC_TAG = "__sticky__";

@Parameterized.Parameter public boolean useExternalService;
Expand All @@ -91,12 +90,12 @@ public static Object[] data() {

@Rule public TestName testName = new TestName();

private static WorkflowServiceTChannel service;
private static IWorkflowService service;

@BeforeClass
public static void setUp() {
if (useDockerService) {
service = new WorkflowServiceTChannel(ClientOptions.defaultInstance());
service = TestEnvironment.getDockerService();
}
}

Expand Down Expand Up @@ -479,12 +478,6 @@ public void workflowsCanBeQueried() throws Exception {
// Act
WorkflowClient.start(workflow::getGreeting);

Thread.sleep(200); // Wait for workflow to start

DeciderCache cache = factory.getCache();
assertNotNull(cache);
assertEquals(1, cache.size());

// Assert
assertEquals(workflow.getProgress(), GreetingSignalWorkflow.Status.WAITING_FOR_NAME);

Expand All @@ -493,7 +486,13 @@ public void workflowsCanBeQueried() throws Exception {

assertEquals("Hello World!", greeting);
assertEquals(workflow.getProgress(), GreetingSignalWorkflow.Status.GREETING_GENERATED);

DeciderCache cache = factory.getCache();
assertNotNull(cache);
assertEquals(1, cache.size());

wrapper.close();
factory.shutdown();
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,8 @@
import com.uber.cadence.client.WorkflowClientOptions;
import com.uber.cadence.client.WorkflowOptions;
import com.uber.cadence.client.WorkflowStub;
import com.uber.cadence.serviceclient.ClientOptions;
import com.uber.cadence.serviceclient.IWorkflowService;
import com.uber.cadence.serviceclient.WorkflowServiceTChannel;
import com.uber.cadence.testUtils.TestEnvironment;
import com.uber.cadence.testing.TestEnvironmentOptions;
import com.uber.cadence.testing.TestWorkflowEnvironment;
import com.uber.cadence.workflow.Async;
Expand All @@ -53,8 +52,7 @@
@RunWith(Parameterized.class)
public class WorkerStressTests {

private static final boolean useDockerService =
Boolean.parseBoolean(System.getenv("USE_DOCKER_SERVICE"));
private static final boolean useDockerService = TestEnvironment.isUseDockerService();

@Parameterized.Parameter public boolean useExternalService;

Expand Down Expand Up @@ -181,7 +179,7 @@ public TestEnvironmentWrapper(WorkerFactoryOptions options) {
WorkflowClientOptions clientOptions =
WorkflowClientOptions.newBuilder().setDomain(DOMAIN).build();
if (useDockerService) {
IWorkflowService service = new WorkflowServiceTChannel(ClientOptions.defaultInstance());
IWorkflowService service = TestEnvironment.getDockerService();
WorkflowClient client = WorkflowClient.newInstance(service, clientOptions);
factory = WorkerFactory.newInstance(client, options);
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,8 @@
import static org.junit.Assert.*;

import com.uber.cadence.client.WorkflowClient;
import com.uber.cadence.serviceclient.ClientOptions;
import com.uber.cadence.serviceclient.IWorkflowService;
import com.uber.cadence.serviceclient.WorkflowServiceTChannel;
import com.uber.cadence.testUtils.TestEnvironment;
import com.uber.cadence.worker.WorkerFactory;
import java.util.concurrent.TimeUnit;
import org.junit.After;
Expand All @@ -33,8 +32,7 @@

public class WorkerFactoryTests {

private static final boolean useDockerService =
Boolean.parseBoolean(System.getenv("USE_DOCKER_SERVICE"));
private static final boolean useDockerService = TestEnvironment.isUseDockerService();

@BeforeClass
public static void beforeClass() {
Expand All @@ -47,7 +45,7 @@ public static void beforeClass() {

@Before
public void setUp() {
service = new WorkflowServiceTChannel(ClientOptions.defaultInstance());
service = TestEnvironment.getDockerService();
client = WorkflowClient.newInstance(service);
factory = WorkerFactory.newInstance(client);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,13 +177,6 @@ public void run() {

activities.reset();

result = Async.function(activities::asyncActivity);
activities.failAsyncActivityById("4");
expectFailureWithDetails(result, "4");
expectFailure(() -> activities.failAsyncActivityById("again"));

activities.reset();

// Need to request cancellation, then the activity can respond with the cancel
CompletablePromise<String> completablePromise = Workflow.newPromise();
CancellationScope scope =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import com.uber.cadence.migration.MigrationInterceptorFactory;
import com.uber.cadence.serviceclient.IWorkflowService;
import com.uber.cadence.testUtils.CadenceTestRule;
import com.uber.cadence.testUtils.RequiresDockerService;
import com.uber.cadence.worker.Worker;
import com.uber.cadence.worker.WorkerFactory;
import com.uber.cadence.worker.WorkerFactoryOptions;
Expand Down Expand Up @@ -149,6 +150,7 @@ public void execute(int iter) {
}

@Test
@RequiresDockerService // test service doesn't support describe API yet
public void cronWorkflowMigration() {
String workflowID = UUID.randomUUID().toString();
try {
Expand All @@ -166,6 +168,7 @@ public void cronWorkflowMigration() {
}

@Test
@RequiresDockerService // test service doesn't support describe API yet
public void continueAsNewWorkflowMigration() {
String workflowID = UUID.randomUUID().toString();
try {
Expand Down