Add a flag for evidence trackers that allows to disable/enable ignoring the test files
This commit is contained in:
parent
911f22334b
commit
debe8e21ab
|
@ -12,8 +12,10 @@ public abstract class AbstractEvidenceTracker {
|
|||
protected Set<Changes> changes;
|
||||
protected Set<String> commits = new LinkedHashSet<>();
|
||||
protected Set<String> restOfCommits = new LinkedHashSet<>();
|
||||
protected boolean ignoreChangesToTests;
|
||||
|
||||
public AbstractEvidenceTracker(RepoWrapper wrapper, String fixedRev) throws Exception {
|
||||
public AbstractEvidenceTracker(RepoWrapper wrapper, String fixedRev, boolean ignoreChangesToTests) throws Exception {
|
||||
this.ignoreChangesToTests = ignoreChangesToTests;
|
||||
this.fixedRevision = fixedRev;
|
||||
this.repoPath = wrapper.getBasePath();
|
||||
this.repoWrapper = wrapper;
|
||||
|
@ -26,6 +28,10 @@ public abstract class AbstractEvidenceTracker {
|
|||
this.changes = repoWrapper.inferChangesFromDiff(initDiff, vulnRevision, fixedRevision);
|
||||
}
|
||||
|
||||
public AbstractEvidenceTracker(RepoWrapper wrapper, String fixedRev) throws Exception {
|
||||
this(wrapper, fixedRev, true);
|
||||
}
|
||||
|
||||
public RepoWrapper getRepoWrapper() {
|
||||
return this.repoWrapper;
|
||||
}
|
||||
|
@ -42,9 +48,16 @@ public abstract class AbstractEvidenceTracker {
|
|||
protected Set<Changes> filterNonJavaChanges(Set<Changes> changes) {
|
||||
Set<Changes> filteredChanges = new HashSet<>();
|
||||
for (Changes change : changes) {
|
||||
if (!change.getPath().endsWith(".java") || change.getPath().toLowerCase().contains("test")) {
|
||||
// ignore non-Java files
|
||||
if (!change.getPath().endsWith(".java")) {
|
||||
filteredChanges.add(change);
|
||||
}
|
||||
else {
|
||||
// ignore tests if the corresponding setting is set
|
||||
if (ignoreChangesToTests && change.getPath().toLowerCase().contains("test")) {
|
||||
filteredChanges.add(change);
|
||||
}
|
||||
}
|
||||
this.repoWrapper.filterCommentsAndBlanks(change.getDeletions());
|
||||
this.repoWrapper.filterCommentsAndBlanks(change.getAdditions());
|
||||
}
|
||||
|
|
|
@ -11,7 +11,11 @@ import java.util.Set;
|
|||
public class DeletionVulnerabilityEvidenceTracker extends VulnerabilityEvidenceTracker {
|
||||
|
||||
public DeletionVulnerabilityEvidenceTracker(RepoWrapper wrapper, String fixedRev) throws Exception {
|
||||
super(wrapper, fixedRev);
|
||||
super(wrapper, fixedRev, true);
|
||||
}
|
||||
|
||||
public DeletionVulnerabilityEvidenceTracker(RepoWrapper wrapper, String fixedRev, boolean ignoreChangesToTests) throws Exception {
|
||||
super(wrapper, fixedRev, ignoreChangesToTests);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -12,9 +12,12 @@ import java.util.Set;
|
|||
public class EnhancedDeletionVulnerabilityEvidenceTracker extends DeletionVulnerabilityEvidenceTracker{
|
||||
|
||||
public EnhancedDeletionVulnerabilityEvidenceTracker(RepoWrapper wrapper, String fixedRev) throws Exception {
|
||||
super(wrapper, fixedRev);
|
||||
super(wrapper, fixedRev, true);
|
||||
}
|
||||
|
||||
public EnhancedDeletionVulnerabilityEvidenceTracker(RepoWrapper wrapper, String fixedRev, boolean ignoreChangesToTests) throws Exception {
|
||||
super(wrapper, fixedRev, ignoreChangesToTests);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Set<VulnerabilityEvidence> getInitialVulnerabilityEvidence(Changes changes) throws Exception {
|
||||
|
|
|
@ -15,7 +15,11 @@ public class FixStatisticsVulnerabilityEvidenceTracker extends VulnerabilityEvid
|
|||
private int touchedMethods = 0;
|
||||
|
||||
public FixStatisticsVulnerabilityEvidenceTracker(RepoWrapper wrapper, String fixedRev) throws Exception {
|
||||
super(wrapper, fixedRev);
|
||||
super(wrapper, fixedRev, true);
|
||||
}
|
||||
|
||||
public FixStatisticsVulnerabilityEvidenceTracker(RepoWrapper wrapper, String fixedRev, boolean ignoreChangesToTests) throws Exception {
|
||||
super(wrapper, fixedRev, ignoreChangesToTests);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -12,7 +12,11 @@ import java.util.Set;
|
|||
public class PatchedMethodBodyTracker extends VulnerabilityEvidenceTracker {
|
||||
|
||||
public PatchedMethodBodyTracker(RepoWrapper wrapper, String fixedRev) throws Exception {
|
||||
super(wrapper, fixedRev);
|
||||
super(wrapper, fixedRev, true);
|
||||
}
|
||||
|
||||
public PatchedMethodBodyTracker(RepoWrapper wrapper, String fixedRev, boolean ignoreChangesToTests) throws Exception {
|
||||
super(wrapper, fixedRev, ignoreChangesToTests);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -11,7 +11,11 @@ import java.util.Set;
|
|||
public class SliceDecayVulnerabilityEvidenceTracker extends SliceVulnerabilityEvidenceTracker {
|
||||
|
||||
public SliceDecayVulnerabilityEvidenceTracker(RepoWrapper wrapper, String fixedRev) throws Exception {
|
||||
super(wrapper, fixedRev);
|
||||
super(wrapper, fixedRev, true);
|
||||
}
|
||||
|
||||
public SliceDecayVulnerabilityEvidenceTracker(RepoWrapper wrapper, String fixedRev, boolean ignoreChangesToTests) throws Exception {
|
||||
super(wrapper, fixedRev, ignoreChangesToTests);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -14,7 +14,11 @@ import java.util.TreeMap;
|
|||
public class SliceVulnerabilityEvidenceTracker extends VulnerabilityEvidenceTracker {
|
||||
|
||||
public SliceVulnerabilityEvidenceTracker(RepoWrapper wrapper, String fixedRev) throws Exception {
|
||||
super(wrapper, fixedRev);
|
||||
super(wrapper, fixedRev, true);
|
||||
}
|
||||
|
||||
public SliceVulnerabilityEvidenceTracker(RepoWrapper wrapper, String fixedRev, boolean ignoreChangesToTests) throws Exception {
|
||||
super(wrapper, fixedRev, ignoreChangesToTests);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -13,7 +13,11 @@ public abstract class VulnerabilityEvidenceTracker extends AbstractEvidenceTrack
|
|||
protected Map<String, Set<VulnerabilityEvidence>> evidences = new LinkedHashMap<String, Set<VulnerabilityEvidence>>();
|
||||
|
||||
public VulnerabilityEvidenceTracker(RepoWrapper wrapper, String fixedRev) throws Exception {
|
||||
super(wrapper, fixedRev);
|
||||
super(wrapper, fixedRev, true);
|
||||
}
|
||||
|
||||
public VulnerabilityEvidenceTracker(RepoWrapper wrapper, String fixedRev, boolean ignoreChangesToTests) throws Exception {
|
||||
super(wrapper, fixedRev, ignoreChangesToTests);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -43,7 +43,8 @@ public class VulnerabilityEvidenceTrackerFactory {
|
|||
break;
|
||||
|
||||
case "fixstatisticsvulnerabilityevidencetracker":
|
||||
vulnerabilityEvidenceTracker = new FixStatisticsVulnerabilityEvidenceTracker(wrapper, fixedRev);
|
||||
// include also commits where only tests have been changed
|
||||
vulnerabilityEvidenceTracker = new FixStatisticsVulnerabilityEvidenceTracker(wrapper, fixedRev, false);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
Loading…
Reference in New Issue