/*
 * 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 io.trino.tests.product.launcher.env.configs;

import io.trino.tests.product.launcher.env.EnvironmentConfig;
import io.trino.tests.product.launcher.env.EnvironmentDefaults;

import static com.google.common.base.MoreObjects.toStringHelper;
import static io.trino.tests.product.launcher.Configurations.nameForConfigClass;

public class ConfigDefault
        implements EnvironmentConfig
{
    @Override
    public String getHadoopBaseImage()
    {
        return EnvironmentDefaults.HADOOP_BASE_IMAGE;
    }

    @Override
    public String getImagesVersion()
    {
        return EnvironmentDefaults.DOCKER_IMAGES_VERSION;
    }

    @Override
    public String getHadoopImagesVersion()
    {
        return EnvironmentDefaults.HADOOP_IMAGES_VERSION;
    }

    @Override
    public String getTemptoEnvironmentConfigFile()
    {
        return EnvironmentDefaults.TEMPTO_ENVIRONMENT_CONFIG;
    }

    @Override
    public String getConfigName()
    {
        return nameForConfigClass(getClass());
    }

    @Override
    public String toString()
    {
        return toStringHelper(this)
                .add("hadoopBaseImage", getHadoopBaseImage())
                .add("hadoopImagesVersion", getHadoopImagesVersion())
                .add("imagesVersion", getImagesVersion())
                .add("excludedGroups", getExcludedGroups())
                .add("excludedTests", getExcludedTests())
                .add("temptoEnvironmentConfigFile", getTemptoEnvironmentConfigFile())
                .toString();
    }
}

@@ -732,24 +732,48 @@
 tDefaults;%0A%0A
+import java.util.List;%0A%0A
 import stati
@@ -1583,32 +1583,955 @@
 lass());%0A    %7D%0A%0A
+    @Override%0A    public List%3CString%3E getExcludedGroups()%0A    %7B%0A        return List.of(%0A                // 'default' config's Hive is slower than e.g. HDP3. Exclude some test groups to shorten product test execution time.%0A                // The groups excluded here do not explicitly depend on Hive version, so it's not important to run them for all%0A                // Hive versions.%0A                %22aggregate%22,%0A                %22group-by%22,%0A                %22join%22,%0A                %22orderby%22,%0A                %22union%22,%0A                %22window%22,%0A                %22with_clause%22,%0A                // This test group doesn't exercise hive connector, so it's enough to run it with one config. It's retained for ConfigHdp3.%0A                %22no_from%22,%0A                // This test group doesn't exercise hive connector, so it's enough to run it with one config. It's retained for ConfigHdp3.%0A                %22tpch_connector%22);%0A    %7D%0A%0A
     @Override%0A  

Exclude some test groups from suite1 on config-default