blob: f1a7bb81c9c3a5aac9f5b739e5e805941c99d335 [file]
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.coverage;
import com.intellij.execution.configurations.RunConfigurationBase;
import com.intellij.execution.configurations.RunnerSettings;
import com.intellij.execution.configurations.coverage.CoverageEnabledConfiguration;
import com.intellij.execution.process.ProcessHandler;
import com.intellij.openapi.util.InvalidDataException;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
public class CoverageHelper {
private CoverageHelper() {
}
public static void attachToProcess(@NotNull RunConfigurationBase configuration,
@NotNull ProcessHandler handler,
RunnerSettings runnerSettings) {
resetCoverageSuit(configuration);
// attach to process termination listener
CoverageDataManager.getInstance(configuration.getProject()).attachToProcess(handler, configuration, runnerSettings);
}
public static void resetCoverageSuit(RunConfigurationBase configuration) {
final CoverageEnabledConfiguration covConfig = CoverageEnabledConfiguration.getOrCreate(configuration);
// reset coverage suite
covConfig.setCurrentCoverageSuite(null);
// register new coverage suite
final CoverageDataManager coverageDataManager = CoverageDataManager.getInstance(configuration.getProject());
covConfig.setCurrentCoverageSuite(coverageDataManager.addCoverageSuite(covConfig));
}
public static void doReadExternal(RunConfigurationBase runConfiguration, Element element) throws InvalidDataException {
final CoverageEnabledConfiguration covConf = CoverageEnabledConfiguration.getOrCreate(runConfiguration);
covConf.readExternal(element);
}
public static void doWriteExternal(RunConfigurationBase runConfiguration, Element element) {
CoverageEnabledConfiguration.getOrCreate(runConfiguration).writeExternal(element);
}
}