blob: 899ee29eed8d234f27342c6d73d8eda08c50bf36 [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.testing.framework;
import java.util.*;
/**
* Performance test interface used for sharing behavoir and
* result with EJB and core.
*/
public interface PerformanceComparisonTest extends TestEntity {
/** Number of times to repeat the test run (to compute average/stddv) */
int REPEATS = 5;
/** Default total time to run each test run (default is 2s). */
int DEFAULT_TEST_TIME = 10000;
/** Default for allowable % difference between tests and baseline test. */
double DEFAULT_ALLOWABLE_DECREASE = -5;
/**
* Return the count of the iterations.
* This is maintained by the test to allow concurrent tests to manage the count.
*/
int getIterations();
/**
* Increment the iteration count.
* This is maintained by the test to allow concurrent tests to manage the count.
*/
void incrementIterations();
/**
* Reset the iteration count.
* This is maintained by the test to allow concurrent tests to manage the count.
*/
void resetIterations();
/**
* Allows any test specific setup before starting the test run.
*/
void startTest();
/**
* Allows any test specific setup before starting the test run.
*/
void endTest();
/**
* Return the total time (ms) to run each of the test runs.
* This is used to compute the number of test iterations to use,
* the tests are then still timed based on that number of iterations.
*/
long getTestRunTime();
/**
* Set the total time (ms) to run each of the test runs.
* This is used to compute the number of test iterations to use,
* the tests are then still timed based on that number of iterations.
*/
void setTestRunTime(long testRunTime);
/**
* Return the allowable percentage difference for test compared to the baseline.
*/
double getAllowableDecrease();
/**
* Set the allowable percentage difference for test compared to the baseline.
*/
void setAllowableDecrease(double allowableDecrease);
/**
* Return the performance tests to compare the base-line with.
*/
List getTests();
/**
* Add a performance tests to compare the base-line with.
*/
void addTest(TestCase test);
}