From 6dafab8a7a0d56bbd2889f679ea833a3e0055678 Mon Sep 17 00:00:00 2001 From: Arunachalam Thirupathi Date: Thu, 30 Jun 2022 22:53:03 -0700 Subject: [PATCH 1/2] Fix thee retryAnalyzer Annotations RetryAnalyzer is set to Class.class which masks the actual Test failure errror. Mask optional exit code from the LocalCliProcess. Presto when query fails exits with 1, but there are tests to verify failure. --- .../ConventionBasedTestProxyGenerator.java | 6 ++++-- .../io/prestodb/tempto/process/LocalCliProcess.java | 13 +++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/tempto-core/src/main/java/io/prestodb/tempto/internal/convention/ConventionBasedTestProxyGenerator.java b/tempto-core/src/main/java/io/prestodb/tempto/internal/convention/ConventionBasedTestProxyGenerator.java index 54298eda..e01d22cc 100644 --- a/tempto-core/src/main/java/io/prestodb/tempto/internal/convention/ConventionBasedTestProxyGenerator.java +++ b/tempto-core/src/main/java/io/prestodb/tempto/internal/convention/ConventionBasedTestProxyGenerator.java @@ -25,8 +25,10 @@ import net.bytebuddy.dynamic.loading.ClassLoadingStrategy; import net.bytebuddy.implementation.MethodCall; import org.slf4j.Logger; +import org.testng.IRetryAnalyzer; import org.testng.annotations.CustomAttribute; import org.testng.annotations.Test; +import org.testng.internal.annotations.DisabledRetryAnalyzer; import java.lang.annotation.Annotation; import java.lang.reflect.InvocationTargetException; @@ -267,9 +269,9 @@ public boolean singleThreaded() } @Override - public Class retryAnalyzer() + public Class retryAnalyzer() { - return Class.class; + return DisabledRetryAnalyzer.class; } @Override diff --git a/tempto-core/src/main/java/io/prestodb/tempto/process/LocalCliProcess.java b/tempto-core/src/main/java/io/prestodb/tempto/process/LocalCliProcess.java index ac7b47d4..a6e0bd81 100644 --- a/tempto-core/src/main/java/io/prestodb/tempto/process/LocalCliProcess.java +++ b/tempto-core/src/main/java/io/prestodb/tempto/process/LocalCliProcess.java @@ -16,7 +16,9 @@ import io.prestodb.tempto.internal.process.CliProcessBase; import java.time.Duration; +import java.util.OptionalInt; +import static java.util.Objects.requireNonNull; import static java.util.concurrent.TimeUnit.MILLISECONDS; /** @@ -26,11 +28,18 @@ public class LocalCliProcess extends CliProcessBase { private final Process process; + private final OptionalInt expectedExitValue; - public LocalCliProcess(Process process) + public LocalCliProcess(Process process, OptionalInt expectedExitValue) { super(process.getInputStream(), process.getErrorStream(), process.getOutputStream()); this.process = process; + this.expectedExitValue = requireNonNull(expectedExitValue, "expectedExitValue is null"); + } + + public LocalCliProcess(Process process) + { + this(process, OptionalInt.empty()); } @Override @@ -43,7 +52,7 @@ public void waitForWithTimeoutAndKill(Duration timeout) } int exitValue = process.exitValue(); - if (exitValue != 0) { + if (exitValue != 0 && exitValue != expectedExitValue.orElse(0)) { throw new RuntimeException("Child process exited with non-zero code: " + exitValue); } } From 9c247c0145cca51fded43981df57cc4752e92ce6 Mon Sep 17 00:00:00 2001 From: Arunachalam Thirupathi Date: Thu, 30 Jun 2022 22:56:32 -0700 Subject: [PATCH 2/2] Release the version 1.53 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index caace249..d08a9a5e 100644 --- a/build.gradle +++ b/build.gradle @@ -113,7 +113,7 @@ ext.tempto_runner = project(':tempto-runner') ext.tempto_ldap = project(':tempto-ldap') ext.tempto_kafka = project(':tempto-kafka') ext.expected_result_generator = project(':expected-result-generator') -ext.tempto_version = '1.53-SNAPSHOT' +ext.tempto_version = '1.53' ext.tempto_group = "io.prestodb.tempto" ext.isReleaseVersion = !tempto_version.endsWith("SNAPSHOT")