Commit 60c86be0 authored by terrymanu's avatar terrymanu
Browse files

for #601: enhance performance

parent e57349db
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
package io.shardingsphere.dbtest.cases.assertion;

import com.google.common.base.Preconditions;
import io.shardingsphere.core.constant.DatabaseType;
import io.shardingsphere.dbtest.cases.assertion.ddl.DDLIntegrateTestCase;
import io.shardingsphere.dbtest.cases.assertion.dml.DMLIntegrateTestCase;
import io.shardingsphere.dbtest.cases.assertion.ddl.DDLIntegrateTestCases;
@@ -67,6 +68,9 @@ public final class IntegrateTestCasesLoader {
    @Getter
    private final Collection<String> shardingRuleTypes;
    
    @Getter
    private final Collection<DatabaseType> databaseTypes;
    
    private final Map<String, IntegrateTestCase> dqlIntegrateTestCaseMap;
    
    private final Map<String, IntegrateTestCase> dmlIntegrateTestCaseMap;
@@ -75,6 +79,7 @@ public final class IntegrateTestCasesLoader {
    
    private IntegrateTestCasesLoader() {
        shardingRuleTypes = new HashSet<>();
        databaseTypes = new HashSet<>();
        try {
            dqlIntegrateTestCaseMap = loadIntegrateTestCases(DQL_INTEGRATE_TEST_CASES_FILE_PREFIX);
            dmlIntegrateTestCaseMap = loadIntegrateTestCases(DML_INTEGRATE_TEST_CASES_FILE_PREFIX);
@@ -115,6 +120,7 @@ public final class IntegrateTestCasesLoader {
            result.put(each.getSqlCaseId(), each);
            each.setPath(file);
            shardingRuleTypes.addAll(each.getShardingRuleTypes());
            databaseTypes.addAll(each.getDatabaseTypes());
        }
        return result;
    }
+15 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
package io.shardingsphere.dbtest.cases.assertion.root;

import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import io.shardingsphere.core.constant.DatabaseType;
import lombok.Getter;
import lombok.Setter;
@@ -25,6 +26,7 @@ import lombok.Setter;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -66,4 +68,17 @@ public abstract class IntegrateTestCase {
        }
        return result;
    }
    
    /**
     * Get database types.
     * 
     * @return database types
     */
    public Collection<DatabaseType> getDatabaseTypes() {
        Collection<DatabaseType> result = new HashSet<>();
        for (String each : Splitter.on(",").trimResults().splitToList(databaseTypes)) {
            result.add(DatabaseType.valueOf(each));
        }
        return result;
    }
}
+6 −16
Original line number Diff line number Diff line
@@ -17,22 +17,21 @@

package io.shardingsphere.dbtest.engine;

import com.google.common.base.Splitter;
import io.shardingsphere.core.api.yaml.YamlMasterSlaveDataSourceFactory;
import io.shardingsphere.core.api.yaml.YamlShardingDataSourceFactory;
import io.shardingsphere.core.constant.DatabaseType;
import io.shardingsphere.dbtest.env.dataset.DataSetEnvironmentManager;
import io.shardingsphere.dbtest.env.DatabaseTypeEnvironment;
import io.shardingsphere.dbtest.env.EnvironmentPath;
import io.shardingsphere.dbtest.env.IntegrateTestEnvironment;
import io.shardingsphere.dbtest.env.datasource.DataSourceUtil;
import io.shardingsphere.dbtest.env.schema.SchemaEnvironmentManager;
import io.shardingsphere.dbtest.cases.assertion.IntegrateTestCasesLoader;
import io.shardingsphere.dbtest.cases.assertion.ddl.DDLIntegrateTestCaseAssertion;
import io.shardingsphere.dbtest.cases.assertion.dml.DMLIntegrateTestCaseAssertion;
import io.shardingsphere.dbtest.cases.assertion.dql.DQLIntegrateTestCaseAssertion;
import io.shardingsphere.dbtest.cases.assertion.root.IntegrateTestCase;
import io.shardingsphere.dbtest.cases.assertion.root.IntegrateTestCaseAssertion;
import io.shardingsphere.dbtest.env.DatabaseTypeEnvironment;
import io.shardingsphere.dbtest.env.EnvironmentPath;
import io.shardingsphere.dbtest.env.IntegrateTestEnvironment;
import io.shardingsphere.dbtest.env.dataset.DataSetEnvironmentManager;
import io.shardingsphere.dbtest.env.datasource.DataSourceUtil;
import io.shardingsphere.dbtest.env.schema.SchemaEnvironmentManager;
import io.shardingsphere.test.sql.SQLCaseType;
import io.shardingsphere.test.sql.SQLCasesLoader;
import lombok.AccessLevel;
@@ -50,7 +49,6 @@ import java.sql.SQLException;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

@RunWith(Parameterized.class)
@@ -144,14 +142,6 @@ public abstract class BaseIntegrateTest {
        return result;
    }
    
    protected static List<DatabaseType> getDatabaseTypes(final String databaseTypes) {
        List<DatabaseType> result = new LinkedList<>();
        for (String each : Splitter.on(",").trimResults().splitToList(databaseTypes)) {
            result.add(DatabaseType.valueOf(each));
        }
        return result;
    }
    
    @BeforeClass
    public static void createDatabasesAndTables() throws JAXBException, IOException {
        if (isInitialized) {
+1 −1
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@ public final class DDLIntegrateTest extends BaseIntegrateTest {
            if (null == integrateTestCase) {
                continue;
            }
            if (getDatabaseTypes(integrateTestCase.getDatabaseTypes()).contains(databaseType)) {
            if (integrateTestCase.getDatabaseTypes().contains(databaseType)) {
                result.addAll(getParameters(databaseType, caseType, integrateTestCase));
            }
            
+1 −1
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ public final class DMLIntegrateTest extends BaseIntegrateTest {
            if (null == integrateTestCase) {
                continue;
            }
            if (getDatabaseTypes(integrateTestCase.getDatabaseTypes()).contains(databaseType)) {
            if (integrateTestCase.getDatabaseTypes().contains(databaseType)) {
                result.addAll(getParameters(databaseType, caseType, integrateTestCase));
            }
            
Loading