44import java .util .Arrays ;
55import java .util .List ;
66import java .util .Set ;
7+ import org .apache .commons .io .FilenameUtils ;
78import org .jenkinsci .plugins .workflow .steps .Step ;
89import org .jenkinsci .plugins .workflow .steps .StepContext ;
910import org .jenkinsci .plugins .workflow .steps .StepDescriptor ;
1011import org .jenkinsci .plugins .workflow .steps .StepExecution ;
1112import org .kohsuke .stapler .DataBoundConstructor ;
1213import org .kohsuke .stapler .DataBoundSetter ;
1314import com .google .common .collect .ImmutableSet ;
15+ import com .mathworks .ci .RunMatlabTestsBuilder .PdfArtifact ;
1416import hudson .EnvVars ;
1517import hudson .Extension ;
1618import hudson .FilePath ;
@@ -26,7 +28,14 @@ public class RunMatlabTestsStep extends Step {
2628 private String codeCoverageCobertura ;
2729 private String testResultsSimulinkTest ;
2830 private String modelCoverageCobertura ;
29-
31+ private static final String PDF_REPORT_PATH = "'PDFReportPath'" ;
32+ private static final String TAP_RESULTS_PATH = "'TAPResultsPath'" ;
33+ private static final String JUNIT_RESULTS_PATH = "'JUnitResultsPath'" ;
34+ private static final String COBERTURA_CODE_COVERAGE_PATH = "'CoberturaCodeCoveragePath'" ;
35+ private static final String STM_RESULTS_PATH = "'SimulinkTestResultsPath'" ;
36+ private static final String COBERTURA_MODEL_COVERAGE_PATH = "'CoberturaModelCoveragePath'" ;
37+ private static boolean COPY_SCRATCH_FILE = true ;
38+
3039 @ DataBoundConstructor
3140 public RunMatlabTestsStep () {
3241
@@ -91,7 +100,7 @@ public void setModelCoverageCobertura(String modelCoverageCobertura) {
91100 @ Override
92101 public StepExecution start (StepContext context ) throws Exception {
93102
94- return new MatlabCommandStepExecution (context ,getInputArgs (), true );
103+ return new MatlabStepExecution (context ,constructCommandForTest ( getInputArgs ()), COPY_SCRATCH_FILE );
95104 }
96105
97106 @ Extension
@@ -109,21 +118,29 @@ public String getFunctionName() {
109118 }
110119 }
111120
121+ public String constructCommandForTest (String inputArguments ) {
122+ final String matlabFunctionName =
123+ FilenameUtils .removeExtension (MatlabBuilderConstants .MATLAB_TESTS_RUNNER_TARGET_FILE );
124+ final String runCommand = "exit(" + matlabFunctionName + "(" + inputArguments + "))" ;
125+ return runCommand ;
126+ }
127+
128+
112129 private String getInputArgs () {
113130 List <String > inputArgs = new ArrayList <>();
114- addInputArgs (MatlabBuilderConstants . PDF_REPORT_PATH , getTestResultsPdf (),inputArgs );
115- addInputArgs (MatlabBuilderConstants . TAP_RESULTS_PATH , getTestResultsTAP (), inputArgs );
116- addInputArgs (MatlabBuilderConstants . JUNIT_RESULTS_PATH , getTestResultsJUnit (), inputArgs );
117- addInputArgs (MatlabBuilderConstants . STM_RESULTS_PATH , getTestResultsSimulinkTest (), inputArgs );
118- addInputArgs (MatlabBuilderConstants . COBERTURA_CODE_COVERAGE_PATH ,
131+ addInputArgs (PDF_REPORT_PATH , getTestResultsPdf (),inputArgs );
132+ addInputArgs (TAP_RESULTS_PATH , getTestResultsTAP (), inputArgs );
133+ addInputArgs (JUNIT_RESULTS_PATH , getTestResultsJUnit (), inputArgs );
134+ addInputArgs (STM_RESULTS_PATH , getTestResultsSimulinkTest (), inputArgs );
135+ addInputArgs (COBERTURA_CODE_COVERAGE_PATH ,
119136 getCodeCoverageCobertura (), inputArgs );
120- addInputArgs (MatlabBuilderConstants . COBERTURA_MODEL_COVERAGE_PATH ,
137+ addInputArgs (COBERTURA_MODEL_COVERAGE_PATH ,
121138 getModelCoverageCobertura (), inputArgs );
122139
123140 if (inputArgs .isEmpty ()) {
124141 return "" ;
125- }
126-
142+ }
143+
127144 return String .join ("," , inputArgs );
128145 }
129146
@@ -132,5 +149,4 @@ private void addInputArgs(String reportName, String reportPath, List<String> inp
132149 inputArgs .add (reportName + "," + "'" + reportPath + "'" );
133150 }
134151 }
135-
136152}
0 commit comments