/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 org.apache.hadoop.hive.cli.control;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.hadoop.hive.ql.QTestUtil;
import org.apache.hadoop.hive.ql.QTestUtil.MiniClusterType;
import org.apache.hadoop.hive.ql.parse.CoreParseNegative;
public class CliConfigs {
private static URL testConfigProps = getTestPropsURL();
private static URL getTestPropsURL() {
try {
return new File(
AbstractCliConfig.HIVE_ROOT + "/itests/src/test/resources/testconfiguration.properties")
.toURI().toURL();
} catch (MalformedURLException e) {
throw new RuntimeException(e);
}
}
public static class CliConfig extends AbstractCliConfig {
public CliConfig() {
super(CoreCliDriver.class);
try {
setQueryDir("ql/src/test/queries/clientpositive");
excludesFrom(testConfigProps, "minillap.query.files");
excludesFrom(testConfigProps, "minillaplocal.query.files");
excludesFrom(testConfigProps, "minimr.query.files");
excludesFrom(testConfigProps, "minitez.query.files");
excludesFrom(testConfigProps, "encrypted.query.files");
excludesFrom(testConfigProps, "spark.only.query.files");
excludesFrom(testConfigProps, "disabled.query.files");
setResultsDir("ql/src/test/results/clientpositive");
setLogDir("itests/qtest/target/qfile-results/clientpositive");
setInitScript("q_test_init.sql");
setCleanupScript("q_test_cleanup.sql");
setHiveConfDir("");
setClusterType(MiniClusterType.none);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class ParseNegativeConfig extends AbstractCliConfig {
public ParseNegativeConfig() {
super(CoreParseNegative.class);
try {
setQueryDir("ql/src/test/queries/negative");
setResultsDir("ql/src/test/results/compiler/errors");
setLogDir("itests/qtest/target/qfile-results/negative");
setInitScript("q_test_init.sql");
setCleanupScript("q_test_cleanup.sql");
setHiveConfDir("data/conf/perf-reg/");
setClusterType(MiniClusterType.none);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class MinimrCliConfig extends AbstractCliConfig {
public MinimrCliConfig() {
super(CoreCliDriver.class);
try {
setQueryDir("ql/src/test/queries/clientpositive");
includesFrom(testConfigProps, "minimr.query.files");
setResultsDir("ql/src/test/results/clientpositive");
setLogDir("itests/qtest/target/qfile-results/clientpositive");
setInitScript("q_test_init_for_minimr.sql");
setCleanupScript("q_test_cleanup.sql");
setHiveConfDir("");
setClusterType(MiniClusterType.mr);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class MiniTezCliConfig extends AbstractCliConfig {
public MiniTezCliConfig() {
super(CoreCliDriver.class);
try {
setQueryDir("ql/src/test/queries/clientpositive");
includesFrom(testConfigProps, "minitez.query.files");
includesFrom(testConfigProps, "minitez.query.files.shared");
excludesFrom(testConfigProps, "minillap.query.files");
excludesFrom(testConfigProps, "minillap.shared.query.files");
setResultsDir("ql/src/test/results/clientpositive/tez");
setLogDir("itests/qtest/target/qfile-results/clientpositive");
setInitScript("q_test_init_tez.sql");
setCleanupScript("q_test_cleanup_tez.sql");
setHiveConfDir("data/conf/tez");
setClusterType(MiniClusterType.tez);
setMetastoreType(MetastoreType.sql);
setFsType(QTestUtil.FsType.hdfs);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class MiniLlapCliConfig extends AbstractCliConfig {
public MiniLlapCliConfig() {
super(CoreCliDriver.class);
try {
setQueryDir("ql/src/test/queries/clientpositive");
includesFrom(testConfigProps, "minillap.query.files");
includesFrom(testConfigProps, "minillap.shared.query.files");
setResultsDir("ql/src/test/results/clientpositive/llap");
setLogDir("itests/qtest/target/qfile-results/clientpositive");
setInitScript("q_test_init.sql");
setCleanupScript("q_test_cleanup.sql");
setHiveConfDir("data/conf/llap");
setClusterType(MiniClusterType.llap);
setMetastoreType(MetastoreType.sql);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class MiniLlapLocalCliConfig extends AbstractCliConfig {
public MiniLlapLocalCliConfig() {
super(CoreCliDriver.class);
try {
setQueryDir("ql/src/test/queries/clientpositive");
includesFrom(testConfigProps, "minillaplocal.query.files");
includesFrom(testConfigProps, "minillaplocal.shared.query.files");
setResultsDir("ql/src/test/results/clientpositive/llap");
setLogDir("itests/qtest/target/qfile-results/clientpositive");
setInitScript("q_test_init.sql");
setCleanupScript("q_test_cleanup.sql");
setHiveConfDir("data/conf/llap");
setClusterType(MiniClusterType.llap_local);
setMetastoreType(MetastoreType.sql);
setFsType(QTestUtil.FsType.local);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class EncryptedHDFSCliConfig extends AbstractCliConfig {
public EncryptedHDFSCliConfig() {
super(CoreCliDriver.class);
try {
setQueryDir("ql/src/test/queries/clientpositive");
includesFrom(testConfigProps, "encrypted.query.files");
setResultsDir("ql/src/test/results/clientpositive/encrypted");
setLogDir("itests/qtest/target/qfile-results/clientpositive");
setInitScript("q_test_init_src.sql");
setCleanupScript("q_test_cleanup_src.sql");
setClusterType(MiniClusterType.mr);
setFsType(QTestUtil.FsType.encrypted_hdfs);
if (getClusterType() == MiniClusterType.tez) {
setHiveConfDir("data/conf/tez");
} else {
setHiveConfDir("data/conf");
}
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class ContribCliConfig extends AbstractCliConfig {
public ContribCliConfig() {
super(CoreCliDriver.class);
try {
setQueryDir("contrib/src/test/queries/clientpositive");
setResultsDir("contrib/src/test/results/clientpositive");
setLogDir("itests/qtest/target/qfile-results/contribclientpositive");
setInitScript("q_test_init_contrib.sql");
setCleanupScript("q_test_cleanup_contrib.sql");
setHiveConfDir("");
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class PerfCliConfig extends AbstractCliConfig {
public PerfCliConfig() {
super(CorePerfCliDriver.class);
try {
setQueryDir("ql/src/test/queries/clientpositive/perf");
excludesFrom(testConfigProps, "minimr.query.files");
excludesFrom(testConfigProps, "minitez.query.files");
excludesFrom(testConfigProps, "encrypted.query.files");
setResultsDir("ql/src/test/results/clientpositive/perf/");
setLogDir("itests/qtest/target/qfile-results/clientpositive/");
setInitScript("q_perf_test_init.sql");
setCleanupScript("q_perf_test_cleanup.sql");
setHiveConfDir("data/conf/perf-reg/");
setClusterType(MiniClusterType.tez);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class CompareCliConfig extends AbstractCliConfig {
public CompareCliConfig() {
super(CoreCompareCliDriver.class);
try {
setQueryDir("ql/src/test/queries/clientcompare");
setResultsDir("ql/src/test/results/clientcompare");
setLogDir("itests/qtest/target/qfile-results/clientcompare");
setInitScript("q_test_init_compare.sql");
setCleanupScript("q_test_cleanup_compare.sql");
setHiveConfDir("");
setClusterType(MiniClusterType.none);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class NegativeCliConfig extends AbstractCliConfig {
public NegativeCliConfig() {
super(CoreNegativeCliDriver.class);
try {
setQueryDir("ql/src/test/queries/clientnegative");
excludesFrom(testConfigProps, "minimr.query.negative.files");
excludeQuery("authorization_uri_import.q");
excludeQuery("spark_job_max_tasks.q");
setResultsDir("ql/src/test/results/clientnegative");
setLogDir("itests/qtest/target/qfile-results/clientnegative");
setInitScript("q_test_init.sql");
setCleanupScript("q_test_cleanup.sql");
setHiveConfDir("");
setClusterType(MiniClusterType.none);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class NegativeMinimrCli extends AbstractCliConfig {
public NegativeMinimrCli() {
super(CoreNegativeCliDriver.class);
try {
setQueryDir("ql/src/test/queries/clientnegative");
includesFrom(testConfigProps, "minimr.query.negative.files");
setResultsDir("ql/src/test/results/clientnegative");
setLogDir("itests/qtest/target/qfile-results/clientnegative");
setInitScript("q_test_init_src.sql");
setCleanupScript("q_test_cleanup_src.sql");
setHiveConfDir("");
setClusterType(MiniClusterType.mr);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class HBaseCliConfig extends AbstractCliConfig {
public HBaseCliConfig() {
super(CoreHBaseCliDriver.class);
try {
setQueryDir("hbase-handler/src/test/queries/positive");
setResultsDir("hbase-handler/src/test/results/positive");
setLogDir("itests/qtest/target/qfile-results/hbase-handler/positive");
setInitScript("q_test_init_src_with_stats.sql");
setCleanupScript("q_test_cleanup_src.sql");
setHiveConfDir("");
setClusterType(MiniClusterType.none);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class DummyConfig extends AbstractCliConfig {
public DummyConfig() {
super(CoreDummy.class);
try {
setQueryDir("ql/src/test/queries/clientcompare");
setResultsDir("ql/src/test/results/clientcompare");
setLogDir("itests/qtest/target/qfile-results/clientcompare");
setInitScript("q_test_init_compare.sql");
setCleanupScript("q_test_cleanup_compare.sql");
setHiveConfDir("");
setClusterType(MiniClusterType.none);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class HBaseNegativeCliConfig extends AbstractCliConfig {
public HBaseNegativeCliConfig() {
super(CoreHBaseNegativeCliDriver.class);
try {
setQueryDir("hbase-handler/src/test/queries/negative");
setResultsDir("hbase-handler/src/test/results/negative");
setLogDir("itests/qtest/target/qfile-results/hbase-handler/negative");
setInitScript("q_test_init_src.sql");
setCleanupScript("q_test_cleanup_src.sql");
setHiveConfDir("");
setClusterType(MiniClusterType.none);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class ContribNegativeCliConfig extends AbstractCliConfig {
public ContribNegativeCliConfig() {
super(CoreNegativeCliDriver.class);
try {
setQueryDir("contrib/src/test/queries/clientnegative");
setResultsDir("contrib/src/test/results/clientnegative");
setLogDir("itests/qtest/target/qfile-results/contribclientnegative");
setInitScript("q_test_init.sql");
setCleanupScript("q_test_cleanup.sql");
setHiveConfDir("");
setClusterType(MiniClusterType.none);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class BeeLineConfig extends AbstractCliConfig {
public BeeLineConfig() {
super(CoreBeeLineDriver.class);
try {
setQueryDir("ql/src/test/queries/clientpositive");
includesFrom(testConfigProps, "beeline.positive.include");
setResultsDir("ql/src/test/results/clientpositive/beeline");
setLogDir("itests/qtest/target/qfile-results/beelinepositive");
setInitScript("q_test_init_src.sql");
setCleanupScript("q_test_cleanup_src.sql");
setHiveConfDir("");
setClusterType(MiniClusterType.none);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class AccumuloCliConfig extends AbstractCliConfig {
public AccumuloCliConfig() {
super(CoreAccumuloCliDriver.class);
try {
setQueryDir("accumulo-handler/src/test/queries/positive");
setResultsDir("accumulo-handler/src/test/results/positive");
setLogDir("itests/qtest/target/qfile-results/accumulo-handler/positive");
setInitScript("q_test_init_src_with_stats.sql");
setCleanupScript("q_test_cleanup_src.sql");
setHiveConfDir("");
setClusterType(MiniClusterType.none);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class SparkCliConfig extends AbstractCliConfig {
public SparkCliConfig() {
super(CoreCliDriver.class);
try {
setQueryDir("ql/src/test/queries/clientpositive");
includesFrom(testConfigProps, "spark.query.files");
setResultsDir("ql/src/test/results/clientpositive/spark");
setLogDir("itests/qtest-spark/target/qfile-results/clientpositive/spark");
setInitScript("q_test_init.sql");
setCleanupScript("q_test_cleanup.sql");
setHiveConfDir("data/conf/spark/standalone");
setClusterType(MiniClusterType.spark);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class SparkOnYarnCliConfig extends AbstractCliConfig {
public SparkOnYarnCliConfig() {
super(CoreCliDriver.class);
try {
setQueryDir("ql/src/test/queries/clientpositive");
includesFrom(testConfigProps, "miniSparkOnYarn.query.files");
includesFrom(testConfigProps, "spark.only.query.files");
setResultsDir("ql/src/test/results/clientpositive/spark");
setLogDir("itests/qtest-spark/target/qfile-results/clientpositive/spark");
setInitScript("q_test_init.sql");
setCleanupScript("q_test_cleanup.sql");
setHiveConfDir("data/conf/spark/yarn-client");
setClusterType(MiniClusterType.miniSparkOnYarn);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class SparkNegativeCliConfig extends AbstractCliConfig {
public SparkNegativeCliConfig() {
super(CoreNegativeCliDriver.class);
try {
setQueryDir("ql/src/test/queries/clientnegative");
includesFrom(testConfigProps, "spark.query.negative.files");
setResultsDir("ql/src/test/results/clientnegative/spark");
setLogDir("itests/qtest-spark/target/qfile-results/clientnegative/spark");
setInitScript("q_test_init.sql");
setCleanupScript("q_test_cleanup.sql");
setHiveConfDir("data/conf/spark/standalone");
setClusterType(MiniClusterType.spark);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class BlobstoreCliConfig extends AbstractCliConfig {
public BlobstoreCliConfig() {
super(CoreBlobstoreCliDriver.class);
try {
setQueryDir("itests/hive-blobstore/src/test/queries/clientpositive");
setResultsDir("itests/hive-blobstore/src/test/results/clientpositive");
setLogDir("itests/hive-blobstore/target/qfile-results/clientpositive");
setInitScript("blobstore_test_init.q");
setCleanupScript("blobstore_test_cleanup.q");
setHiveConfDir("itests/hive-blobstore/src/test/resources");
setClusterType(MiniClusterType.none);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
public static class BlobstoreNegativeCliConfig extends AbstractCliConfig {
public BlobstoreNegativeCliConfig() {
super(CoreBlobstoreNegativeCliDriver.class);
try {
setQueryDir("itests/hive-blobstore/src/test/queries/clientnegative");
setResultsDir("itests/hive-blobstore/src/test/results/clientnegative");
setLogDir("itests/hive-blobstore/target/qfile-results/clientnegative");
setInitScript("blobstore_test_init.q");
setCleanupScript("blobstore_test_cleanup.q");
setHiveConfDir("itests/hive-blobstore/src/test/resources");
setClusterType(MiniClusterType.none);
} catch (Exception e) {
throw new RuntimeException("can't construct cliconfig", e);
}
}
}
}