/**
   * Build a list of the tests that will be run when TestTPCCSuite gets run by JUnit. Use helper
   * classes that are part of the RegressionSuite framework. This particular class runs all tests on
   * the the local JNI backend with both one and two partition configurations, as well as on the
   * hsql backend.
   *
   * @return The TestSuite containing all the tests to be run.
   */
  public static Test suite() {
    // the suite made here will all be using the tests from this class
    MultiConfigSuiteBuilder builder =
        new MultiConfigSuiteBuilder(TestSneakyExecutionOrderSuite.class);

    // build up a project builder for the workload
    VoltProjectBuilder project = new VoltProjectBuilder("sneaky");
    project.addSchema(MultiPartition.class.getResource("sneaky-ddl.sql"));
    project.addTablePartitionInfo("P1", "P");
    project.addProcedures(PROCEDURES);

    /////////////////////////////////////////////////////////////
    // CONFIG #1: 1 Local Site/Partition running on HSQL backend
    /////////////////////////////////////////////////////////////

    // VoltServerConfig config = new LocalCluster("sneaky.jar", 2, 2, BackendTarget.NATIVE_EE_JNI);
    VoltServerConfig config =
        new LocalSingleProcessServer("sneaky-twosites.jar", 2, BackendTarget.NATIVE_EE_JNI);
    boolean success = config.compile(project);
    assert (success);
    builder.addServerConfig(config);

    // Cluster
    config = new LocalCluster("sneaky-cluster.jar", 2, 2, 1, BackendTarget.NATIVE_EE_JNI);
    config.compile(project);
    builder.addServerConfig(config);

    return builder;
  }