diff options
Diffstat (limited to 'plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/internal/vcast/operations/VCastValidateAggregateReportOperation.java')
-rw-r--r-- | plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/internal/vcast/operations/VCastValidateAggregateReportOperation.java | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/internal/vcast/operations/VCastValidateAggregateReportOperation.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/internal/vcast/operations/VCastValidateAggregateReportOperation.java deleted file mode 100644 index f5579f27429..00000000000 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/internal/vcast/operations/VCastValidateAggregateReportOperation.java +++ /dev/null @@ -1,184 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 Boeing. - * 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: - * Boeing - initial API and implementation - *******************************************************************************/ -package org.eclipse.osee.coverage.internal.vcast.operations; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.net.URI; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.coverage.internal.Activator; -import org.eclipse.osee.coverage.model.CoverageImport; -import org.eclipse.osee.coverage.model.CoverageOptionManager; -import org.eclipse.osee.coverage.model.CoverageUnit; -import org.eclipse.osee.coverage.model.ICoverage; -import org.eclipse.osee.framework.core.operation.AbstractOperation; -import org.eclipse.osee.framework.core.util.XResultData; -import org.eclipse.osee.framework.jdk.core.type.OseeStateException; -import org.eclipse.osee.framework.jdk.core.util.Lib; -import org.eclipse.osee.framework.jdk.core.util.Strings; -import org.eclipse.osee.vcast.model.AggregateCoverageUnitResult; - -/** - * @author Donald G. Dunne - */ -public class VCastValidateAggregateReportOperation extends AbstractOperation { - - /** - * For VectorCast Version 5.3: String NO_COVERAGE_DATA_EXISTS = "No Coverage Data Available"; For - * VectorCast Version 5.0: - */ - private static final String NO_COVERAGE_DATA_EXISTS_PATTERN = "No Coverage Data Exists"; - - private static final Pattern COVERAGE_UNIT_PATTERN = - Pattern.compile("Code Coverage for Unit: (.*?)<"); - private static final Pattern RESULTS_PATTERN = - Pattern.compile(" ([0-9]+) of ([0-9]+) Lines Covered "); - - private final XResultData logger; - private final CoverageImport coverageImport; - private final URI reportUri; - private final Matcher coverageUnitMatcher; - private final Matcher resultsMatcher; - - public VCastValidateAggregateReportOperation(XResultData logger, CoverageImport coverageImport, URI reportUri) { - super("Verify aggregate report", Activator.PLUGIN_ID); - this.logger = logger; - this.reportUri = reportUri; - this.coverageImport = coverageImport; - - this.coverageUnitMatcher = COVERAGE_UNIT_PATTERN.matcher(""); - this.resultsMatcher = RESULTS_PATTERN.matcher(""); - } - - private String getNoCoveragePattern() { - String toReturn = NO_COVERAGE_DATA_EXISTS_PATTERN; - String usevectorcast53 = System.getProperty("usevectorcast53", null); - if (Strings.isValid(usevectorcast53)) { - toReturn = "No Coverage Data Available"; - } - return toReturn; - } - - @Override - protected void doWork(IProgressMonitor monitor) throws Exception { - monitor.beginTask("Verifying aggregate.html report with Imported results", 1); - - logger.log("\nVerifying aggregate.html report with Imported results"); - - Map<String, CoverageUnit> coverageNameToCoverageUnit = getCoverageNameToUnits(); - String noCoveragePattern = getNoCoveragePattern(); - - boolean error = false; - AggregateCoverageUnitResult result = null; - - BufferedReader bufferedReader = null; - try { - bufferedReader = new BufferedReader(new InputStreamReader(reportUri.toURL().openStream(), "UTF-8")); - String line; - while ((line = bufferedReader.readLine()) != null) { - checkForCancelledStatus(monitor); - for (String subStr : line.split("<strong>")) { - checkForCancelledStatus(monitor); - - coverageUnitMatcher.reset(subStr); - resultsMatcher.reset(subStr); - if (coverageUnitMatcher.find()) { - if (result != null) { - throw new OseeStateException( - "Found coverage begin before last coverage end. Perhaps you forgot to define the uservectorcast53 system variable?"); - } - result = new AggregateCoverageUnitResult(coverageUnitMatcher.group(1)); - } - - if (resultsMatcher.find()) { - if (result == null) { - throw new OseeStateException("Found coverage end before begin"); - } - error = parseResults(logger, coverageNameToCoverageUnit, result); - result = null; - } - - if (subStr.contains(noCoveragePattern)) { - if (result == null) { - throw new OseeStateException("Found \"No Coverage Data Exists\" before result begin"); - } - result.setNotes("No Coverage Data Exists"); - result = null; - } - } - } - } finally { - Lib.close(bufferedReader); - } - - monitor.worked(1); - - if (!error) { - logger.log("Ok"); - } - } - - private Map<String, CoverageUnit> getCoverageNameToUnits() { - Map<String, CoverageUnit> coverageNameToCoverageUnit = new HashMap<String, CoverageUnit>(5000); - - Collection<? extends ICoverage> units = coverageImport.getChildren(true); - for (ICoverage unit : units) { - if (unit instanceof CoverageUnit) { - coverageNameToCoverageUnit.put(unit.getName(), (CoverageUnit) unit); - } - } - return coverageNameToCoverageUnit; - } - - private boolean parseResults(XResultData logger, Map<String, CoverageUnit> coverageNameToCoverageUnit, AggregateCoverageUnitResult result) { - boolean toReturn = false; - result.setNumCovered(new Integer(resultsMatcher.group(1))); - result.setNumLines(new Integer(resultsMatcher.group(2))); - - CoverageUnit coverageUnit = coverageNameToCoverageUnit.get(result.getName()); - if (coverageUnit == null) { - logger.error(String.format("Aggregate Check: Can't locate Coverage Unit for Aggregate unit [%s]", - result.getName())); - toReturn = true; - } else { - // clear out of map to recover memory - coverageNameToCoverageUnit.remove(result.getName()); - - int importCuItems = coverageUnit.getCoverageItems(true).size(); - int importCuCovered = coverageUnit.getCoverageItemsCount(true, CoverageOptionManager.Test_Unit); - if (result.getNumLines() == null || result.getNumLines() != importCuItems || result.getNumCovered() == null || result.getNumCovered() != importCuCovered) { - // Don't display error if this is the known ignore case - if (!isVectorCastIgnoreCase(result.getNotes(), importCuCovered, result.getNumCovered())) { - logger.error(String.format( - "Aggregate Check: Unit [%s] Import [%d] of [%d] doesn't match Aggregate [%d] of [%d] [%s]", - result.getName(), importCuCovered, importCuItems, result.getNumCovered(), result.getNumLines(), - Strings.isValid(result.getNotes()) ? " - " + result.getNotes() : "")); - toReturn = true; - } - } - } - return toReturn; - } - - /** - * VectorCast does not put break-out information for coverage units that have no coverage. Check for this case so we - * don't show lots of errors. - */ - public boolean isVectorCastIgnoreCase(String notes, Integer importCuCovered, Integer aggregateNumCovered) { - return notes.equals("No Coverage Data Exists") && importCuCovered == 0 && aggregateNumCovered == null; - } - -} |