From 1ebc5f6c955d0a095b41f3dc307b3eb59d859e7f Mon Sep 17 00:00:00 2001 From: even <827656971@qq.com> Date: Mon, 7 Jul 2025 15:23:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B0=B4=E6=9C=A8=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E3=80=81afl=E5=AD=97=E6=AE=B5=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cd/casic/ci/api/ShuiMuController.java | 6 +++++ .../process/constant/ShuiMuUrlConstant.java | 2 ++ .../dto/req/shuimu/ShuiMuTestProblemReq.java | 11 ++++++++ .../resp/shuimu/ShuiMuTestProblemResp.java | 23 ++++++++++++++++ .../constant/PipelineVariableConstant.java | 1 + .../process/engine/worker/afl/AFLWorker.java | 1 + .../process/service/shuimu/ShuiMuService.java | 8 +++++- .../shuimu/impl/ShuiMuServiceImpl.java | 27 ++++++++++++++++--- 8 files changed, 74 insertions(+), 5 deletions(-) create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/shuimu/ShuiMuTestProblemReq.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/shuimu/ShuiMuTestProblemResp.java diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/ShuiMuController.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/ShuiMuController.java index efe44472..84fb7ef5 100644 --- a/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/ShuiMuController.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/ShuiMuController.java @@ -2,9 +2,11 @@ package cd.casic.ci.api; import cd.casic.ci.process.dto.req.shuimu.ShuiMuBuildAndSaveReq; import cd.casic.ci.process.dto.req.shuimu.ShuiMuProjectCreateReq; +import cd.casic.ci.process.dto.req.shuimu.ShuiMuTestProblemReq; import cd.casic.ci.process.dto.req.shuimu.ShuiMuUpdateWFuzzJsonReq; import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectInfoResp; import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectVersionResp; +import cd.casic.ci.process.dto.resp.shuimu.ShuiMuTestProblemResp; import cd.casic.ci.process.process.service.shuimu.ShuiMuService; import cd.casic.framework.commons.pojo.CommonResult; import jakarta.annotation.Resource; @@ -63,4 +65,8 @@ public class ShuiMuController { shuiMuService.uploadWfuzzJson(req); return CommonResult.success(); } + @PostMapping("/problemsOfTest") + public CommonResult problemsOfTest(@RequestBody ShuiMuTestProblemReq req){ + return null; + } } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/constant/ShuiMuUrlConstant.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/constant/ShuiMuUrlConstant.java index c00a6895..64f371e5 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/constant/ShuiMuUrlConstant.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/constant/ShuiMuUrlConstant.java @@ -16,4 +16,6 @@ public class ShuiMuUrlConstant { public static final String getProjectResource = "/api/project/getProjectResource"; public static final String uploadWfuzzJson = "/api/project/code/uploadWfuzzJson"; public static final String executeAllEntrypointsTest ="/api/driverGeneration/executeAllEntrypointsTest"; + + public static final String problemsOfTest = "/api/test/problemsOfTest"; } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/shuimu/ShuiMuTestProblemReq.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/shuimu/ShuiMuTestProblemReq.java new file mode 100644 index 00000000..2a601536 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/shuimu/ShuiMuTestProblemReq.java @@ -0,0 +1,11 @@ +package cd.casic.ci.process.dto.req.shuimu; + +import cd.casic.framework.commons.pojo.PageParam; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class ShuiMuTestProblemReq extends PageParam { + private String projectId; +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/shuimu/ShuiMuTestProblemResp.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/shuimu/ShuiMuTestProblemResp.java new file mode 100644 index 00000000..f925912b --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/shuimu/ShuiMuTestProblemResp.java @@ -0,0 +1,23 @@ +package cd.casic.ci.process.dto.resp.shuimu; + +import lombok.Data; + +@Data +public class ShuiMuTestProblemResp { + private String id; + private String name; + private String type; + private String state; + private String tag; + private String count; + private String passCount; + private String testid; + private String testGroupId; + private String createAt; + private String description; + private String cwe; + private String testGroupIdAndproblemId; + private String product; + private String projectName; + private String moduleName; +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/constant/PipelineVariableConstant.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/constant/PipelineVariableConstant.java index 42fb5ec4..ccebfc08 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/constant/PipelineVariableConstant.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/constant/PipelineVariableConstant.java @@ -27,4 +27,5 @@ public class PipelineVariableConstant { public static final String COMPILE_RESULT_KEY ="compileResult"; public static final String AFL_RESOURCE_MANAGER_ID_KEY = "managerId"; public static final String IMAGE_NAME = "IMAGE_NAME"; + public static final String EXECUTABLE_NAME_KEY = "executableName"; } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/afl/AFLWorker.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/afl/AFLWorker.java index 81fd42bb..86b163d9 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/afl/AFLWorker.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/afl/AFLWorker.java @@ -102,6 +102,7 @@ public class AFLWorker extends DockerWorker { toBadEnding(); } localVariables.put(DIYImageExecuteCommandConstant.STATUS_CODE, statusCode); + putGlobalVariable(context, EXECUTABLE_NAME_KEY,imageName); } } public String cdSourceName(String fileName){ diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/ShuiMuService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/ShuiMuService.java index a4f46784..2685b6bb 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/ShuiMuService.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/ShuiMuService.java @@ -2,10 +2,14 @@ package cd.casic.ci.process.process.service.shuimu; import cd.casic.ci.process.dto.req.shuimu.ShuiMuBuildAndSaveReq; import cd.casic.ci.process.dto.req.shuimu.ShuiMuProjectCreateReq; +import cd.casic.ci.process.dto.req.shuimu.ShuiMuTestProblemReq; import cd.casic.ci.process.dto.req.shuimu.ShuiMuUpdateWFuzzJsonReq; import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectInfoResp; import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectResourceResp; import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectVersionResp; +import cd.casic.ci.process.dto.resp.shuimu.ShuiMuTestProblemResp; +import cd.casic.framework.commons.pojo.CommonResult; +import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -31,5 +35,7 @@ public interface ShuiMuService { void buildAndSaveConfig(ShuiMuBuildAndSaveReq req); void uploadWfuzzJson(ShuiMuUpdateWFuzzJsonReq req); void executeAllEntrypointsTest(String projectId,Integer fuzzMinutes); - ShuiMuProjectResourceResp getProjectResource (String projectId); + ShuiMuProjectResourceResp getProjectResource(String projectId); + + List problemsOfTest(ShuiMuTestProblemReq req); } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/impl/ShuiMuServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/impl/ShuiMuServiceImpl.java index 8986bedd..df837bed 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/impl/ShuiMuServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/impl/ShuiMuServiceImpl.java @@ -2,11 +2,9 @@ package cd.casic.ci.process.process.service.shuimu.impl; import cd.casic.ci.process.dto.req.shuimu.ShuiMuBuildAndSaveReq; import cd.casic.ci.process.dto.req.shuimu.ShuiMuProjectCreateReq; +import cd.casic.ci.process.dto.req.shuimu.ShuiMuTestProblemReq; import cd.casic.ci.process.dto.req.shuimu.ShuiMuUpdateWFuzzJsonReq; -import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectInfoResp; -import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectResourceResp; -import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectVersionResp; -import cd.casic.ci.process.dto.resp.shuimu.ShuiMuTokenResp; +import cd.casic.ci.process.dto.resp.shuimu.*; import cd.casic.ci.process.engine.manager.RunContextManager; import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline; import cd.casic.ci.process.process.dataObject.target.TargetVersion; @@ -279,6 +277,27 @@ public class ShuiMuServiceImpl implements ShuiMuService { return null; } } + + @Override + public List problemsOfTest(ShuiMuTestProblemReq req) { + HttpHeaders headers = getHeaders(); + HttpEntity entity = new HttpEntity<>(null,headers); + String skip = String.valueOf((req.getPageNo()-1)*req.getPageSize()); + String limit = String.valueOf(req.getPageSize()); + String product = "code"; + String projectId = req.getProjectId(); + String uriString = UriComponentsBuilder.fromUriString(shuiMuProperties.getBaseUrl() + problemsOfTest) + .queryParam("skip", skip) + .queryParam("limit", limit) + .queryParam("product", product) + .queryParam("projectId", projectId).toUriString(); + ResponseEntity exchange = restTemplate.exchange(uriString, HttpMethod.GET, entity, String.class, new HashMap<>()); + JSONObject jsonObject = JSON.parseObject(exchange.getBody()); + JSONArray data = jsonObject.getJSONArray("data"); + + return null; + } + private HttpHeaders getHeaders(){ HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.APPLICATION_JSON);