Skip to content

Commit

Permalink
RAP-121 Fixed Regression test report inconsistent due to the concurre…
Browse files Browse the repository at this point in the history
…nt running test
  • Loading branch information
QuyenLy87 committed Jan 10, 2025
1 parent b4f67f4 commit e035af1
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 14 deletions.
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
package org.ihtsdo.buildcloud.core.service.build.compare;

import org.ihtsdo.buildcloud.core.dao.BuildDAO;
import org.ihtsdo.buildcloud.core.entity.Build;
import org.ihtsdo.buildcloud.core.service.PublishService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.io.IOException;
Expand Down Expand Up @@ -51,12 +54,22 @@ public enum ComparisonState {
@Autowired
private List<ComponentComparison> componentComparisonChecks;

@Autowired
private BuildDAO buildDAO;

@Autowired
private PublishService publishService;

@Value("${rvf.url}")
private String releaseValidationFrameworkUrl;

public List<HighLevelComparisonReport> runBuildComparisons(final Build leftBuild, final Build rightBuild) throws IOException {
List<HighLevelComparisonReport> reports = new ArrayList<>();
componentComparisonChecks.sort(orderTestComparator);
for (ComponentComparison thisCheck : componentComparisonChecks) {
thisCheck.findDiff(leftBuild, rightBuild);
reports.add(thisCheck.getReport());
ComponentComparison instance = thisCheck.newInstance(buildDAO, publishService, releaseValidationFrameworkUrl);
instance.findDiff(leftBuild, rightBuild);
reports.add(instance.getReport());
}

return reports;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package org.ihtsdo.buildcloud.core.service.build.compare;

import org.ihtsdo.buildcloud.core.dao.BuildDAO;
import org.ihtsdo.buildcloud.core.entity.Build;
import org.ihtsdo.buildcloud.core.service.PublishService;

import java.io.IOException;

Expand All @@ -12,6 +14,8 @@ public abstract class ComponentComparison {

public abstract void findDiff(Build leftBuild, Build rightBuild) throws IOException;

public abstract ComponentComparison newInstance(BuildDAO buildDAO, PublishService publishService, String releaseValidationFrameworkUrl);

protected void pass() {
this.state = HighLevelComparisonReport.State.PASS;
}
Expand All @@ -30,7 +34,7 @@ public HighLevelComparisonReport getReport() {
HighLevelComparisonReport report = new HighLevelComparisonReport();
report.setTestName(getTestName());
report.setTestShortName(getTestNameShortname());
report.setResult(state);
report.setResult(this.state);
report.setDetails(this.details);
return report;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package org.ihtsdo.buildcloud.core.service.build.compare.type;

import org.ihtsdo.buildcloud.core.dao.BuildDAO;
import org.ihtsdo.buildcloud.core.entity.Build;
import org.ihtsdo.buildcloud.core.service.PublishService;
import org.ihtsdo.buildcloud.core.service.build.compare.BuildComparisonManager;
import org.ihtsdo.buildcloud.core.service.build.compare.ComponentComparison;
import org.ihtsdo.buildcloud.core.service.build.compare.DefaultComponentComparisonReport;
Expand Down Expand Up @@ -38,4 +40,9 @@ public void findDiff(Build leftBuild, Build rightBuild) throws IOException {
fail(dto);
}
}

@Override
public ComponentComparison newInstance(BuildDAO buildDAO, PublishService publishService, String releaseValidationFrameworkUrl) {
return new BuildStatusComparison();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,9 @@ public class PostConditionCheckComparison extends ComponentComparison {

private static final Logger LOGGER = LoggerFactory.getLogger(PostConditionCheckComparison.class);

@Autowired
private BuildDAO buildDAO;
private final BuildDAO buildDAO;

@Autowired
private PublishService publishService;
private final PublishService publishService;

@Override
public String getTestName() {
Expand All @@ -45,6 +43,12 @@ public int getTestOrder() {
return BuildComparisonManager.TestType.POST_CONDITION_TEST.getTestOrder();
}

@Autowired
public PostConditionCheckComparison(BuildDAO buildDAO, PublishService publishService) {
this.buildDAO = buildDAO;
this.publishService = publishService;
}

@Override
public void findDiff(Build leftBuild, Build rightBuild) throws IOException {
List<DefaultComponentComparisonReport> reports = new ArrayList<>();
Expand Down Expand Up @@ -116,6 +120,11 @@ public void findDiff(Build leftBuild, Build rightBuild) throws IOException {
}
}

@Override
public ComponentComparison newInstance(BuildDAO buildDAO, PublishService publishService, String releaseValidationFrameworkUrl) {
return new PostConditionCheckComparison(buildDAO, publishService);
}

private List<PostConditionCheckReport> getPostConditionCheckReport(Build build) throws IOException {
List<PostConditionCheckReport> report = new ArrayList<>();
Build found = buildDAO.find(build.getReleaseCenterKey(), build.getProductKey(), build.getId(), false, false, false, null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,15 @@ public class PreConditionCheckComparison extends ComponentComparison {

private static final Logger LOGGER = LoggerFactory.getLogger(PreConditionCheckComparison.class);

@Autowired
private BuildDAO buildDAO;
private final BuildDAO buildDAO;

private final PublishService publishService;

@Autowired
private PublishService publishService;
public PreConditionCheckComparison(BuildDAO buildDAO, PublishService publishService) {
this.buildDAO = buildDAO;
this.publishService = publishService;
}

@Override
public String getTestName() {
Expand Down Expand Up @@ -116,6 +120,11 @@ public void findDiff(Build leftBuild, Build rightBuild) {
}
}

@Override
public ComponentComparison newInstance(BuildDAO buildDAO, PublishService publishService, String releaseValidationFrameworkUrl) {
return new PreConditionCheckComparison(buildDAO, publishService);
}

private List<PreConditionCheckReport> getPreConditionCheckReport(Build build) throws IOException {
List<PreConditionCheckReport> report = new ArrayList<>();
Build found = buildDAO.find(build.getReleaseCenterKey(), build.getProductKey(), build.getId(), false, false, false, null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.ihtsdo.buildcloud.core.dao.BuildDAO;
import org.ihtsdo.buildcloud.core.entity.Build;
import org.ihtsdo.buildcloud.core.service.PublishService;
import org.ihtsdo.buildcloud.core.service.build.compare.BuildComparisonManager;
import org.ihtsdo.buildcloud.core.service.build.compare.ComponentComparison;
import org.ihtsdo.buildcloud.core.service.build.compare.DefaultComponentComparisonReport;
Expand All @@ -24,9 +26,13 @@ public class RVFReportComparison extends ComponentComparison {

public static final String REPORTS = "reports";

@Value("${rvf.url}")

private String releaseValidationFrameworkUrl;

public RVFReportComparison(@Value("${rvf.url}") String releaseValidationFrameworkUrl) {
this.releaseValidationFrameworkUrl = releaseValidationFrameworkUrl;
}

public enum RVFTestName {
REPORT_URL("RVF report URL"), STATUS("RVF status"), TOTAL_FAILURES("RVF total failures"), TOTAL_WARNINGS("RVF total warnings");

Expand Down Expand Up @@ -86,6 +92,11 @@ public void findDiff(Build leftBuild, Build rightBuild) throws IOException {
}
}

@Override
public ComponentComparison newInstance(BuildDAO buildDAO, PublishService publishService, String releaseValidationFrameworkUrl) {
return new RVFReportComparison(releaseValidationFrameworkUrl);
}

private String getValidationComparisonReport(String leftUrl, String rightUrl) throws InterruptedException, BusinessServiceException, JsonProcessingException {
RestTemplate rvfRestTemplate = new RestTemplate();
URI uri = rvfRestTemplate.postForLocation(releaseValidationFrameworkUrl + "compare?prospectiveReportUrl=" + rightUrl + "&previousReportUrl=" + leftUrl, null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,15 @@ public String getLabel() {
}
}

@Autowired
private BuildDAO buildDAO;
private final BuildDAO buildDAO;

private final PublishService publishService;

@Autowired
private PublishService publishService;
public ReleasePackageComparison(BuildDAO buildDAO, PublishService publishService) {
this.buildDAO = buildDAO;
this.publishService =publishService;
}

@Override
public String getTestName() {
Expand Down Expand Up @@ -118,6 +122,11 @@ public void findDiff(Build leftBuild, Build rightBuild) throws IOException {
}
}

@Override
public ComponentComparison newInstance(BuildDAO buildDAO, PublishService publishService, String releaseValidationFrameworkUrl) {
return new ReleasePackageComparison(buildDAO, publishService);
}

private void compareFiles(File leftDir, File rightDir, List<DefaultComponentComparisonReport> result) throws IOException {
File[] leftFiles = leftDir.listFiles();
File[] rightFiles = rightDir.listFiles();
Expand Down

0 comments on commit e035af1

Please sign in to comment.