blob: b0ede4e251e3ae359a377b673a85395b3b64d560 [file] [log] [blame]
/*
* Copyright (c) 1998, 2019 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.sql.Timestamp;
import java.util.*;
import org.eclipse.persistence.indirection.*;
import org.eclipse.persistence.sessions.DatabaseLogin;
import java.net.*;
import org.eclipse.persistence.*;
/**
* <b>Purpose</b>: holds all the test results and test summary of a loadBuild<p>
* <b>Description</b>: This class is used to save a load build to database<p>
* <b>Responsibilities</b>:<ul>
* <li>
* </ul>
* @author Steven Vo
*/
public class LoadBuildSummary {
public long id;
public String userName;
public String loginChoice;
public String os;
public String jvm;
public String machine;
public String toplinkVersion;
public int numberOfTests;
public int errors;
public int fatalErrors;
public DatabaseLogin databaseLogin;
public Timestamp timestamp;
protected ValueHolderInterface<Vector<TestResultsSummary>> summaries = new ValueHolder<>();
protected ValueHolderInterface<Vector<TestResult>> results = new ValueHolder<>();
/**
* LoadBuildSummary constructor comment.
*/
public LoadBuildSummary() {
try {
this.os = System.getProperty("os.name");
this.jvm = System.getProperty("java.vm.version");
this.toplinkVersion = Version.getVersion() + " :" + Version.getBuildNumber();
this.machine = InetAddress.getLocalHost().getHostName();
// Trim the machine name only because of network issues.
if (this.machine.indexOf(".") != -1) {
this.machine = this.machine.substring(0, this.machine.indexOf("."));
}
} catch (Exception ignore) {
}
}
public String getMachine() {
return machine;
}
public String getToplinkVersion() {
return toplinkVersion;
}
public String getJVM() {
return jvm;
}
public String getOS() {
return os;
}
public String getLoginChoice() {
return loginChoice;
}
/**
*
* @param result org.eclipse.persistence.testing.framework.TestResults
*/
public void addResult(TestResult result) {
if (results == null) {
results = new ValueHolder<>(new Vector<>());
} else if (results.getValue() == null) {
results.setValue(new Vector<>());
}
getResults().addElement(result);
}
/**
*
* @param summary org.eclipse.persistence.testing.framework.TestResultsSummary
*/
public void addSummary(TestResultsSummary summary) {
if (summaries == null) {
summaries = new ValueHolder<>(new Vector<>());
} else if (summaries.getValue() == null) {
summaries.setValue(new Vector<>());
}
for (Enumeration<TestResultsSummary> enumtr = getSummaries().elements(); enumtr.hasMoreElements();) {
TestResultsSummary element = enumtr.nextElement();
if (element.getName().equals(summary.getName())) {
getSummaries().removeElement(element);
}
}
getSummaries().addElement(summary);
}
public void computeNumberOfTestsAndErrors() {
Vector<TestResultsSummary> rootSummaries = new Vector<>();
numberOfTests = 0;
errors = 0;
fatalErrors = 0;
for (Enumeration<TestResultsSummary> enumtr = getSummaries().elements(); enumtr.hasMoreElements();) {
TestResultsSummary summary = enumtr.nextElement();
if (summary.getParent() == null) {
rootSummaries.addElement(summary);
}
}
for (Enumeration<TestResultsSummary> enumtr = rootSummaries.elements(); enumtr.hasMoreElements();) {
TestResultsSummary summary = enumtr.nextElement();
numberOfTests += summary.getTotalTests();
errors += summary.getErrors();
fatalErrors += summary.getFatalErrors();
}
for (Enumeration<TestResult> enumtr = getResults().elements(); enumtr.hasMoreElements();) {
TestResult result = enumtr.nextElement();
if (result.hasError()) {
errors++;
} else if (result.hasFatalError()) {
fatalErrors++;
}
}
numberOfTests += getResults().size();
}
/**
*
* @return java.util.Vector
*/
public Vector<TestResult> getResults() {
if (results == null) {
results = new ValueHolder<>(new Vector<>());
} else if (results.getValue() == null) {
results.setValue(new Vector<>());
}
return results.getValue();
}
public ValueHolderInterface<? extends Vector<TestResult>> getResultsHolder() {
return results;
}
public Vector<TestResultsSummary> getSummaries() {
if (summaries == null) {
summaries = new ValueHolder<>(new Vector<TestResultsSummary>());
} else if (summaries.getValue() == null) {
summaries.setValue(new Vector<>());
}
return summaries.getValue();
}
public ValueHolderInterface<? extends Vector<TestResultsSummary>> getSummariesHolder() {
return summaries;
}
public void initializeLoadBuild() {
if (getResults() != null) {
for (Enumeration<TestResult> enumtr = getResults().elements(); enumtr.hasMoreElements();) {
TestResult result = enumtr.nextElement();
result.setLoadBuildSummary(this);
}
}
if (getSummaries() != null) {
for (Enumeration<TestResultsSummary> enum1 = getSummaries().elements(); enum1.hasMoreElements();) {
TestResultsSummary summary = enum1.nextElement();
summary.setLoadBuildSummary(this);
for (Enumeration enum2 = summary.getResults().elements(); enum2.hasMoreElements();) {
TestResult result = (TestResult)enum2.nextElement();
result.setLoadBuildSummary(this);
}
}
}
// remove test result that belongs to a testSummary
for (int i = 0; i < getResults().size(); i++) {
if ((getResults().elementAt(i)).getSummary() != null) {
getResults().removeElementAt(i);
i--;
}
}
}
/**
*
* @return java.lang.Boolean
*/
public boolean isEmpty() {
return ((getSummaries().size() == 0) && (getResults().size() == 0));
}
public void setLoadBuildSummaryForTests() {
if (getResults() != null) {
for (Enumeration<TestResult> enumtr = getResults().elements(); enumtr.hasMoreElements();) {
TestResult result = enumtr.nextElement();
result.setLoadBuildSummary(this);
}
}
if (getSummaries() != null) {
for (Enumeration<TestResultsSummary> enum1 = getSummaries().elements(); enum1.hasMoreElements();) {
TestResultsSummary summary = enum1.nextElement();
summary.setLoadBuildSummary(this);
for (Enumeration enum2 = summary.getResults().elements(); enum2.hasMoreElements();) {
TestResult result = (TestResult)enum2.nextElement();
result.setLoadBuildSummary(this);
}
}
}
// remove test result that belongs to a testSummary
for (int i = 0; i < getResults().size(); i++) {
if ((getResults().elementAt(i)).getSummary() != null) {
getResults().removeElementAt(i);
i--;
}
}
}
public void setResults(Vector<TestResult> theResults) {
results.setValue(theResults);
}
public void setResultsHolder(ValueHolderInterface<Vector<TestResult>> holder) {
results = holder;
}
public void setSummaries(Vector<TestResultsSummary> theSummaries) {
summaries.setValue(theSummaries);
}
public void setSummariesHolder(ValueHolderInterface<Vector<TestResultsSummary>> holder) {
summaries = holder;
}
}