| /* |
| * Copyright (c) 2011, 2012, 2015 Eike Stepper (Berlin, Germany) and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Eike Stepper - initial API and implementation |
| */ |
| package org.eclipse.emf.cdo.tests.performance.framework; |
| |
| import org.eclipse.emf.cdo.tests.config.IScenario; |
| import org.eclipse.emf.cdo.tests.config.impl.ConfigTest; |
| import org.eclipse.emf.cdo.tests.config.impl.ConfigTestSuite; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| /** |
| * @author Eike Stepper |
| */ |
| public abstract class PerformanceTestSuite extends ConfigTestSuite |
| { |
| public static final int DEFAULT_RUNS_PER_TEST_CASE = 10; |
| |
| private final List<PerformanceRecord> performanceRecords = new ArrayList<PerformanceRecord>(); |
| |
| private final int runsPerTestCase; |
| |
| public PerformanceTestSuite(int runsPerTestCase) |
| { |
| this.runsPerTestCase = runsPerTestCase; |
| } |
| |
| public PerformanceTestSuite() |
| { |
| this(DEFAULT_RUNS_PER_TEST_CASE); |
| } |
| |
| public int getRunsPerTestCase() |
| { |
| return runsPerTestCase; |
| } |
| |
| protected PerformanceRecord createPerformanceRecord(IScenario scenario, String testName, String testCaseName, |
| int runs) |
| { |
| PerformanceRecord performanceRecord = new PerformanceRecord(scenario, testName, testCaseName, runs); |
| performanceRecords.add(performanceRecord); |
| return performanceRecord; |
| } |
| |
| protected IPerformanceRecordAnalyzer createPerformanceRecordAnalyzer() |
| { |
| return new PrintStreamPerformanceRecordAnalyzer(); |
| } |
| |
| @Override |
| protected void prepareTest(ConfigTest configTest) |
| { |
| super.prepareTest(configTest); |
| if (configTest instanceof PerformanceTest) |
| { |
| PerformanceTest performanceTest = (PerformanceTest)configTest; |
| performanceTest.setSuite(this); |
| } |
| } |
| |
| @Override |
| protected void mainSuiteFinished() |
| { |
| super.mainSuiteFinished(); |
| |
| IPerformanceRecordAnalyzer performanceRecordAnalyzer = createPerformanceRecordAnalyzer(); |
| performanceRecordAnalyzer.analyze(performanceRecords); |
| } |
| } |