diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerificationContext.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerificationContext.java index 0fdaf78f78829..16939271632ba 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerificationContext.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerificationContext.java @@ -20,26 +20,50 @@ import java.util.Set; import static com.google.common.collect.ImmutableList.toImmutableList; +import static java.util.Objects.requireNonNull; public class VerificationContext { + private final String sourceQueryName; + private final String suite; + private final int resubmissionCount; private final Set queryExceptions; - private VerificationContext(int resubmissionCount, Set queryExceptions) + private VerificationContext( + String sourceQueryName, + String suite, + int resubmissionCount, + Set queryExceptions) { + this.sourceQueryName = requireNonNull(sourceQueryName, "sourceQueryName is null"); + this.suite = requireNonNull(suite, "suite is null"); this.resubmissionCount = resubmissionCount; this.queryExceptions = new HashSet<>(queryExceptions); } - public static VerificationContext create() + public static VerificationContext create(String sourceQueryName, String suite) { - return new VerificationContext(0, new HashSet<>()); + return new VerificationContext(sourceQueryName, suite, 0, new HashSet<>()); } public static VerificationContext createForResubmission(VerificationContext existing) { - return new VerificationContext(existing.resubmissionCount + 1, existing.queryExceptions); + return new VerificationContext( + existing.sourceQueryName, + existing.suite, + existing.resubmissionCount + 1, + existing.queryExceptions); + } + + public String getSourceQueryName() + { + return sourceQueryName; + } + + public String getSuite() + { + return suite; } public int getResubmissionCount() diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerificationFactory.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerificationFactory.java index 286b1445eb8b3..538c46f7c2584 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerificationFactory.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerificationFactory.java @@ -73,7 +73,8 @@ public Verification get(SourceQuery sourceQuery, Optional e QueryType queryType = QueryType.of(sqlParser.createStatement(sourceQuery.getControlQuery(), PARSING_OPTIONS)); switch (queryType.getCategory()) { case DATA_PRODUCING: - VerificationContext verificationContext = existingContext.map(VerificationContext::createForResubmission).orElseGet(VerificationContext::create); + VerificationContext verificationContext = existingContext.map(VerificationContext::createForResubmission) + .orElseGet(() -> VerificationContext.create(sourceQuery.getName(), sourceQuery.getSuite())); QueryActions queryActions = queryActionsFactory.create(sourceQuery, verificationContext); QueryRewriter queryRewriter = queryRewriterFactory.create(queryActions.getHelperAction()); DeterminismAnalyzer determinismAnalyzer = new DeterminismAnalyzer( diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerifierConfig.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerifierConfig.java index 1a11ea91608e6..986dbdfec9357 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerifierConfig.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerifierConfig.java @@ -38,6 +38,7 @@ public class VerifierConfig private Optional humanReadableEventLogFile = Optional.empty(); private String testId; + private Optional testName = Optional.empty(); private int maxConcurrency = 10; private int suiteRepetitions = 1; private int queryRepetitions = 1; @@ -144,7 +145,7 @@ public String getTestId() return testId; } - @ConfigDescription("A customizable string that will be logged with the results") + @ConfigDescription("A customizable string that will be passed into query client info and logged with the results") @Config("test-id") public VerifierConfig setTestId(String testId) { @@ -152,6 +153,20 @@ public VerifierConfig setTestId(String testId) return this; } + @NotNull + public Optional getTestName() + { + return testName; + } + + @ConfigDescription("A customizable string that will be passed into query client info") + @Config("test-name") + public VerifierConfig setTestName(String testName) + { + this.testName = Optional.ofNullable(testName); + return this; + } + @Min(1) public int getMaxConcurrency() { diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/prestoaction/ClientInfo.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/prestoaction/ClientInfo.java new file mode 100644 index 0000000000000..4cbe34f4957bf --- /dev/null +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/prestoaction/ClientInfo.java @@ -0,0 +1,80 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.verifier.prestoaction; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.util.Optional; + +import static java.util.Objects.requireNonNull; + +public class ClientInfo +{ + private static final String CLIENT_INFO_TYPE = "VERIFIER"; + + private final String testId; + private final Optional testName; + private final String sourceQueryName; + private final String suite; + + public ClientInfo(String testId, Optional testName, String sourceQueryName, String suite) + { + this.testId = requireNonNull(testId, "testId is null"); + this.testName = requireNonNull(testName, "testName is null"); + this.sourceQueryName = requireNonNull(sourceQueryName, "sourceQueryName is null"); + this.suite = requireNonNull(suite, "suite is null"); + } + + @JsonProperty + public String getType() + { + return CLIENT_INFO_TYPE; + } + + @JsonProperty + public String getTestId() + { + return testId; + } + + @JsonProperty + public Optional getTestName() + { + return testName; + } + + @JsonProperty + public String getSourceQueryName() + { + return sourceQueryName; + } + + @JsonProperty + public String getSuite() + { + return suite; + } + + public String serialize() + { + try { + return new ObjectMapper().writeValueAsString(this); + } + catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } +} diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/prestoaction/JdbcPrestoAction.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/prestoaction/JdbcPrestoAction.java index c96897578e233..7bd4d6a99cd94 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/prestoaction/JdbcPrestoAction.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/prestoaction/JdbcPrestoAction.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.verifier.prestoaction; +import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.jdbc.PrestoConnection; import com.facebook.presto.jdbc.PrestoStatement; import com.facebook.presto.jdbc.QueryStats; @@ -25,6 +26,7 @@ import com.facebook.presto.verifier.framework.QueryResult; import com.facebook.presto.verifier.framework.QueryStage; import com.facebook.presto.verifier.framework.VerificationContext; +import com.facebook.presto.verifier.framework.VerifierConfig; import com.facebook.presto.verifier.retry.ForClusterConnection; import com.facebook.presto.verifier.retry.ForPresto; import com.facebook.presto.verifier.retry.RetryConfig; @@ -41,6 +43,7 @@ import java.util.Optional; import java.util.function.Consumer; +import static com.facebook.airlift.json.JsonCodec.jsonCodec; import static com.facebook.presto.sql.SqlFormatter.formatSql; import static com.facebook.presto.verifier.prestoaction.QueryActionUtil.mangleSessionProperties; import static com.google.common.base.Preconditions.checkState; @@ -50,14 +53,18 @@ public class JdbcPrestoAction implements PrestoAction { public static final String QUERY_ACTION_TYPE = "presto-jdbc"; + private static final JsonCodec CLIENT_INFO_JSON_CODEC = jsonCodec(ClientInfo.class); private final SqlExceptionClassifier exceptionClassifier; private final QueryConfiguration queryConfiguration; + private final VerificationContext verificationContext; private final String jdbcUrl; private final Duration queryTimeout; private final Duration metadataTimeout; private final Duration checksumTimeout; + private final String testId; + private final Optional testName; private final RetryDriver networkRetry; private final RetryDriver prestoRetry; @@ -70,15 +77,19 @@ public JdbcPrestoAction( Duration metadataTimeout, Duration checksumTimeout, @ForClusterConnection RetryConfig networkRetryConfig, - @ForPresto RetryConfig prestoRetryConfig) + @ForPresto RetryConfig prestoRetryConfig, + VerifierConfig verifierConfig) { this.exceptionClassifier = requireNonNull(exceptionClassifier, "exceptionClassifier is null"); this.queryConfiguration = requireNonNull(queryConfiguration, "queryConfiguration is null"); + this.verificationContext = requireNonNull(verificationContext, "verificationContext is null"); this.jdbcUrl = requireNonNull(prestoActionConfig.getJdbcUrl(), "jdbcUrl is null"); this.queryTimeout = requireNonNull(prestoActionConfig.getQueryTimeout(), "queryTimeout is null"); this.metadataTimeout = requireNonNull(metadataTimeout, "metadataTimeout is null"); this.checksumTimeout = requireNonNull(checksumTimeout, "checksumTimeout is null"); + this.testId = requireNonNull(verifierConfig.getTestId(), "testId is null"); + this.testName = requireNonNull(verifierConfig.getTestName(), "testName is null"); this.networkRetry = new RetryDriver<>( networkRetryConfig, @@ -116,8 +127,13 @@ private T execute(Statement statement, QueryStage queryStage, StatementExecu private T executeOnce(Statement statement, QueryStage queryStage, StatementExecutor statementExecutor) { String query = formatSql(statement, Optional.empty()); + String clientInfo = new ClientInfo( + testId, + testName, + verificationContext.getSourceQueryName(), + verificationContext.getSuite()).serialize(); - try (PrestoConnection connection = getConnection(queryStage)) { + try (PrestoConnection connection = getConnection(queryStage, clientInfo)) { try (java.sql.Statement jdbcStatement = connection.createStatement()) { PrestoStatement prestoStatement = jdbcStatement.unwrap(PrestoStatement.class); prestoStatement.setProgressMonitor(statementExecutor.getProgressMonitor()); @@ -129,7 +145,7 @@ private T executeOnce(Statement statement, QueryStage queryStage, StatementE } } - private PrestoConnection getConnection(QueryStage queryStage) + private PrestoConnection getConnection(QueryStage queryStage, String clientInfo) throws SQLException { PrestoConnection connection = DriverManager.getConnection( @@ -140,6 +156,7 @@ private PrestoConnection getConnection(QueryStage queryStage) try { connection.setClientInfo("ApplicationName", "verifier-test"); + connection.setClientInfo("ClientInfo", clientInfo); connection.setCatalog(queryConfiguration.getCatalog()); connection.setSchema(queryConfiguration.getSchema()); } diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/prestoaction/JdbcPrestoActionFactory.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/prestoaction/JdbcPrestoActionFactory.java index afab7591ad141..054c6fd992aca 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/prestoaction/JdbcPrestoActionFactory.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/prestoaction/JdbcPrestoActionFactory.java @@ -15,6 +15,7 @@ import com.facebook.presto.verifier.framework.QueryConfiguration; import com.facebook.presto.verifier.framework.VerificationContext; +import com.facebook.presto.verifier.framework.VerifierConfig; import com.facebook.presto.verifier.retry.RetryConfig; import io.airlift.units.Duration; @@ -29,6 +30,7 @@ public class JdbcPrestoActionFactory private final RetryConfig prestoRetryConfig; private final Duration metadataTimeout; private final Duration checksumTimeout; + private final VerifierConfig verifierConfig; public JdbcPrestoActionFactory( SqlExceptionClassifier exceptionClassifier, @@ -36,7 +38,8 @@ public JdbcPrestoActionFactory( RetryConfig networkRetryConfig, RetryConfig prestoRetryConfig, Duration metadataTimeout, - Duration checksumTimeout) + Duration checksumTimeout, + VerifierConfig verifierConfig) { this.exceptionClassifier = requireNonNull(exceptionClassifier, "exceptionClassifier is null"); this.prestoActionConfig = requireNonNull(prestoActionConfig, "prestoClusterConfig is null"); @@ -44,6 +47,7 @@ public JdbcPrestoActionFactory( this.prestoRetryConfig = requireNonNull(prestoRetryConfig, "prestoRetryConfig is null"); this.metadataTimeout = requireNonNull(metadataTimeout, "metadataTimeout is null"); this.checksumTimeout = requireNonNull(checksumTimeout, "checksumTimeout is null"); + this.verifierConfig = requireNonNull(verifierConfig, "verifierConfig is null"); } @Override @@ -57,6 +61,7 @@ public JdbcPrestoAction create(QueryConfiguration queryConfiguration, Verificati metadataTimeout, checksumTimeout, networkRetryConfig, - prestoRetryConfig); + prestoRetryConfig, + verifierConfig); } } diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/prestoaction/QueryActionsModule.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/prestoaction/QueryActionsModule.java index 5fbe28ab302d3..f2bd66443c7f8 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/prestoaction/QueryActionsModule.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/prestoaction/QueryActionsModule.java @@ -17,6 +17,7 @@ import com.facebook.presto.verifier.annotation.ForControl; import com.facebook.presto.verifier.annotation.ForHelper; import com.facebook.presto.verifier.annotation.ForTest; +import com.facebook.presto.verifier.framework.VerifierConfig; import com.facebook.presto.verifier.retry.ForClusterConnection; import com.facebook.presto.verifier.retry.ForPresto; import com.facebook.presto.verifier.retry.RetryConfig; @@ -113,7 +114,8 @@ public PrestoActionFactory get() injector.getInstance(Key.get(RetryConfig.class, ForClusterConnection.class)), injector.getInstance(Key.get(RetryConfig.class, ForPresto.class)), queryActionsConfig.getMetadataTimeout(), - queryActionsConfig.getChecksumTimeout()); + queryActionsConfig.getChecksumTimeout(), + injector.getInstance(VerifierConfig.class)); } } } diff --git a/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDataVerification.java b/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDataVerification.java index 917e5512b91e8..e481cd448b9aa 100644 --- a/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDataVerification.java +++ b/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDataVerification.java @@ -109,7 +109,7 @@ private Optional runVerification(String controlQuery, String private Optional runVerification(SourceQuery sourceQuery, Optional mockPrestoAction, DeterminismAnalyzerConfig determinismAnalyzerConfig) { PrestoExceptionClassifier exceptionClassifier = PrestoExceptionClassifier.defaultBuilder().build(); - VerificationContext verificationContext = VerificationContext.create(); + VerificationContext verificationContext = VerificationContext.create(NAME, SUITE); VerifierConfig verifierConfig = new VerifierConfig().setTestId(TEST_ID); RetryConfig retryConfig = new RetryConfig(); QueryActionsConfig queryActionsConfig = new QueryActionsConfig(); @@ -125,7 +125,8 @@ private Optional runVerification(SourceQuery sourceQuery, Op queryActionsConfig.getMetadataTimeout(), queryActionsConfig.getChecksumTimeout(), retryConfig, - retryConfig); + retryConfig, + verifierConfig); }); QueryRewriter queryRewriter = new VerificationQueryRewriterFactory( new SqlParser(new SqlParserOptions().allowIdentifierSymbol(COLON, AT_SIGN)), diff --git a/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDeterminismAnalyzer.java b/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDeterminismAnalyzer.java index d4efda01e9d81..9955f00804250 100644 --- a/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDeterminismAnalyzer.java +++ b/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDeterminismAnalyzer.java @@ -44,6 +44,8 @@ public class TestDeterminismAnalyzer { + private static final String SUITE = "test-suite"; + private static final String NAME = "test-query"; private static final SqlParser sqlParser = new SqlParser(new SqlParserOptions().allowIdentifierSymbol(COLON, AT_SIGN)); @Test @@ -62,7 +64,7 @@ private static boolean isMutableCatalogReferenced(DeterminismAnalyzer determinis private static DeterminismAnalyzer createDeterminismAnalyzer(String mutableCatalogPattern) { QueryConfiguration configuration = new QueryConfiguration(CATALOG, SCHEMA, Optional.of("user"), Optional.empty(), Optional.empty()); - VerificationContext verificationContext = VerificationContext.create(); + VerificationContext verificationContext = VerificationContext.create(SUITE, NAME); VerifierConfig verifierConfig = new VerifierConfig().setTestId("test-id"); RetryConfig retryConfig = new RetryConfig(); QueryActionsConfig queryActionsConfig = new QueryActionsConfig(); @@ -75,7 +77,8 @@ private static DeterminismAnalyzer createDeterminismAnalyzer(String mutableCatal queryActionsConfig.getMetadataTimeout(), queryActionsConfig.getChecksumTimeout(), retryConfig, - retryConfig); + retryConfig, + verifierConfig); QueryRewriter queryRewriter = new QueryRewriter( sqlParser, typeManager, diff --git a/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestVerificationContext.java b/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestVerificationContext.java index f60a592ea6c8f..b86211caad31e 100644 --- a/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestVerificationContext.java +++ b/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestVerificationContext.java @@ -28,12 +28,14 @@ public class TestVerificationContext { + private static final String SUITE = "test-suite"; + private static final String NAME = "test-query"; private static final QueryStage QUERY_STAGE = CONTROL_MAIN; @Test public void testDuplicateExceptions() { - VerificationContext context = VerificationContext.create(); + VerificationContext context = VerificationContext.create(SUITE, NAME); QueryException queryException = new PrestoQueryException(new RuntimeException(), false, QUERY_STAGE, Optional.of(REMOTE_HOST_GONE), Optional.empty()); context.addException(queryException); @@ -48,7 +50,7 @@ public void testDuplicateExceptions() @Test public void testMultipleExceptions() { - VerificationContext context = VerificationContext.create(); + VerificationContext context = VerificationContext.create(SUITE, NAME); context.addException(new ClusterConnectionException(new SocketTimeoutException(), QUERY_STAGE)); context.addException(new ClusterConnectionException(new SocketTimeoutException(), QUERY_STAGE)); diff --git a/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestVerifierConfig.java b/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestVerifierConfig.java index 2c2154f8e6104..bdd3ef7e52092 100644 --- a/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestVerifierConfig.java +++ b/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestVerifierConfig.java @@ -35,6 +35,7 @@ public void testDefault() .setJsonEventLogFile(null) .setHumanReadableEventLogFile(null) .setTestId(null) + .setTestName(null) .setMaxConcurrency(10) .setSuiteRepetitions(1) .setQueryRepetitions(1) @@ -57,6 +58,7 @@ public void testExplicitPropertyMappings() .put("json.log-file", "verifier-json.log") .put("human-readable.log-file", "verifier-human-readable.log") .put("test-id", "12345") + .put("test-name", "experiment") .put("max-concurrency", "100") .put("suite-repetitions", "2") .put("query-repetitions", "3") @@ -75,6 +77,7 @@ public void testExplicitPropertyMappings() .setJsonEventLogFile("verifier-json.log") .setHumanReadableEventLogFile("verifier-human-readable.log") .setTestId("12345") + .setTestName("experiment") .setMaxConcurrency(100) .setSuiteRepetitions(2) .setQueryRepetitions(3) diff --git a/presto-verifier/src/test/java/com/facebook/presto/verifier/prestoaction/TestJdbcPrestoAction.java b/presto-verifier/src/test/java/com/facebook/presto/verifier/prestoaction/TestJdbcPrestoAction.java index ee1820dda680b..1000b1e6f7c4e 100644 --- a/presto-verifier/src/test/java/com/facebook/presto/verifier/prestoaction/TestJdbcPrestoAction.java +++ b/presto-verifier/src/test/java/com/facebook/presto/verifier/prestoaction/TestJdbcPrestoAction.java @@ -23,6 +23,7 @@ import com.facebook.presto.verifier.framework.QueryResult; import com.facebook.presto.verifier.framework.QueryStage; import com.facebook.presto.verifier.framework.VerificationContext; +import com.facebook.presto.verifier.framework.VerifierConfig; import com.facebook.presto.verifier.retry.RetryConfig; import com.google.common.collect.ImmutableList; import org.testng.annotations.BeforeClass; @@ -51,6 +52,8 @@ @Test(singleThreaded = true) public class TestJdbcPrestoAction { + private static final String SUITE = "test-suite"; + private static final String NAME = "test-query"; private static final QueryStage QUERY_STAGE = CONTROL_MAIN; private static final QueryConfiguration CONFIGURATION = new QueryConfiguration(CATALOG, SCHEMA, Optional.of("user"), Optional.empty(), Optional.empty()); private static final SqlParser sqlParser = new SqlParser(new SqlParserOptions().allowIdentifierSymbol(COLON, AT_SIGN)); @@ -72,7 +75,7 @@ public void setupQueryRunner() public void setup() { QueryActionsConfig queryActionsConfig = new QueryActionsConfig(); - verificationContext = VerificationContext.create(); + verificationContext = VerificationContext.create(SUITE, NAME); prestoAction = new JdbcPrestoAction( PrestoExceptionClassifier.defaultBuilder().build(), CONFIGURATION, @@ -83,7 +86,8 @@ public void setup() queryActionsConfig.getMetadataTimeout(), queryActionsConfig.getChecksumTimeout(), new RetryConfig(), - new RetryConfig()); + new RetryConfig(), + new VerifierConfig().setTestId("test")); } @Test diff --git a/presto-verifier/src/test/java/com/facebook/presto/verifier/retry/TestRetryDriver.java b/presto-verifier/src/test/java/com/facebook/presto/verifier/retry/TestRetryDriver.java index 34265b93aea75..1afc38485d219 100644 --- a/presto-verifier/src/test/java/com/facebook/presto/verifier/retry/TestRetryDriver.java +++ b/presto-verifier/src/test/java/com/facebook/presto/verifier/retry/TestRetryDriver.java @@ -66,6 +66,8 @@ public Integer run() Logging.initialize().setLevel(RetryDriver.class.getName(), DEBUG); } + private static final String SUITE = "test-suite"; + private static final String NAME = "test-query"; private static final QueryStage QUERY_STAGE = CONTROL_MAIN; private static final QueryException RETRYABLE_EXCEPTION = new ClusterConnectionException(new SocketTimeoutException(), QUERY_STAGE); private static final QueryException NON_RETRYABLE_EXCEPTION = new PrestoQueryException(new RuntimeException(), false, QUERY_STAGE, Optional.of(REMOTE_HOST_GONE), Optional.empty()); @@ -76,7 +78,7 @@ public Integer run() @BeforeMethod public void setup() { - verificationContext = VerificationContext.create(); + verificationContext = VerificationContext.create(SUITE, NAME); retryDriver = new RetryDriver<>( new RetryConfig() .setMaxAttempts(5) diff --git a/presto-verifier/src/test/java/com/facebook/presto/verifier/rewrite/TestQueryRewriter.java b/presto-verifier/src/test/java/com/facebook/presto/verifier/rewrite/TestQueryRewriter.java index 2a668235e6d2e..5c91a44e88547 100644 --- a/presto-verifier/src/test/java/com/facebook/presto/verifier/rewrite/TestQueryRewriter.java +++ b/presto-verifier/src/test/java/com/facebook/presto/verifier/rewrite/TestQueryRewriter.java @@ -24,6 +24,7 @@ import com.facebook.presto.verifier.framework.QueryBundle; import com.facebook.presto.verifier.framework.QueryConfiguration; import com.facebook.presto.verifier.framework.VerificationContext; +import com.facebook.presto.verifier.framework.VerifierConfig; import com.facebook.presto.verifier.prestoaction.JdbcPrestoAction; import com.facebook.presto.verifier.prestoaction.PrestoAction; import com.facebook.presto.verifier.prestoaction.PrestoActionConfig; @@ -56,6 +57,8 @@ @Test public class TestQueryRewriter { + private static final String SUITE = "test-suite"; + private static final String NAME = "test-query"; private static final QueryConfiguration CONFIGURATION = new QueryConfiguration(CATALOG, SCHEMA, Optional.of("user"), Optional.empty(), Optional.empty()); private static final ParsingOptions PARSING_OPTIONS = ParsingOptions.builder().setDecimalLiteralTreatment(AS_DOUBLE).build(); private static final QueryRewriteConfig QUERY_REWRITE_CONFIG = new QueryRewriteConfig() @@ -75,14 +78,15 @@ public void setup() prestoAction = new JdbcPrestoAction( PrestoExceptionClassifier.defaultBuilder().build(), CONFIGURATION, - VerificationContext.create(), + VerificationContext.create(SUITE, NAME), new PrestoActionConfig() .setHost(queryRunner.getServer().getAddress().getHost()) .setJdbcPort(queryRunner.getServer().getAddress().getPort()), new QueryActionsConfig().getMetadataTimeout(), new QueryActionsConfig().getChecksumTimeout(), new RetryConfig(), - new RetryConfig()); + new RetryConfig(), + new VerifierConfig().setTestId("test")); } @AfterClass