private List<String> runTestPipeline(int parallelism, String savepoint,
Function<DataStream<String>, DataStream<String>> pipelinerBuilder) throws Exception {
if (!actions.isEmpty() && actions.getLast() instanceof CancelJob
&& ((CancelJob) actions.getLast()).isClusterActionTriggered()) {
cancelJob();
}
jobGraph = createJobGraph(parallelism, pipelinerBuilder).getStreamGraph().getJobGraph();
if (savepoint != null) {
jobGraph.setSavepointRestoreSettings(SavepointRestoreSettings.forPath(savepoint));
}
jobID = jobGraph.getJobID();
MiniClusterResourceFactory clusterFactory = createCluster(1, 2);
MiniClusterResource cluster = clusterFactory.get();
cluster.before();
client = cluster.getClusterClient();
try {
client.submitJob(jobGraph, BravoTestPipeline.class.getClassLoader());
} catch (ProgramInvocationException pie) {
if (!pie.getMessage().contains("Job was cancelled")
&& !pie.getCause().getMessage().contains("Job was cancelled")) {
throw pie;
}
} finally {
cluster.after();
}
return CollectingSink.OUTPUT;
}