2024-10-09 22:21:57 +03:00
|
|
|
|
package _VisualDVM.TestingSystem.DVM.DVMTasks;
|
2024-10-07 14:22:52 +03:00
|
|
|
|
import Common.CommonConstants;
|
2024-10-07 00:58:29 +03:00
|
|
|
|
import Common.Database.Objects.DBObject;
|
2024-10-14 15:19:13 +03:00
|
|
|
|
import _VisualDVM.Constants;
|
2024-10-07 00:58:29 +03:00
|
|
|
|
import _VisualDVM.Global;
|
2024-10-09 22:21:57 +03:00
|
|
|
|
import _VisualDVM.GlobalData.Tasks.TaskState;
|
|
|
|
|
|
import _VisualDVM.TestingSystem.Common.Group.Group;
|
|
|
|
|
|
import _VisualDVM.TestingSystem.Common.Test.Test;
|
|
|
|
|
|
import _VisualDVM.TestingSystem.Common.Test.TestType;
|
|
|
|
|
|
import _VisualDVM.TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
|
|
|
|
|
|
import _VisualDVM.TestingSystem.DVM.DVMSettings.DVMSettings;
|
2024-10-14 15:19:13 +03:00
|
|
|
|
import _VisualDVM.Utils;
|
2023-12-12 16:09:14 +03:00
|
|
|
|
import com.google.gson.annotations.Expose;
|
2023-12-12 01:01:36 +03:00
|
|
|
|
|
2023-12-17 21:38:54 +03:00
|
|
|
|
import java.io.File;
|
|
|
|
|
|
import java.nio.file.Paths;
|
2023-12-12 01:01:36 +03:00
|
|
|
|
import java.util.Vector;
|
|
|
|
|
|
public class DVMRunTask extends DVMTask {
|
2023-12-12 16:09:14 +03:00
|
|
|
|
@Expose
|
2024-10-07 14:22:52 +03:00
|
|
|
|
public int dvmcompilationtask_id = CommonConstants.Nan;
|
2023-12-12 16:09:14 +03:00
|
|
|
|
@Expose
|
2023-12-12 01:01:36 +03:00
|
|
|
|
public String matrix = "";
|
2023-12-12 16:09:14 +03:00
|
|
|
|
@Expose
|
2023-12-12 01:01:36 +03:00
|
|
|
|
public String args = "";
|
2023-12-12 16:09:14 +03:00
|
|
|
|
@Expose
|
2023-12-12 01:01:36 +03:00
|
|
|
|
public double CleanTime = 0.0;
|
2023-12-12 16:09:14 +03:00
|
|
|
|
@Expose
|
2023-12-12 01:01:36 +03:00
|
|
|
|
public int progress = 0;
|
2023-12-12 16:09:14 +03:00
|
|
|
|
@Expose
|
2023-12-12 01:01:36 +03:00
|
|
|
|
public int cube = 1;
|
2023-12-12 16:09:14 +03:00
|
|
|
|
@Expose
|
2023-12-12 01:01:36 +03:00
|
|
|
|
public String environments = "";
|
2023-12-12 16:09:14 +03:00
|
|
|
|
@Expose
|
2023-12-12 01:01:36 +03:00
|
|
|
|
public String usr_par = "";
|
2023-12-12 16:09:14 +03:00
|
|
|
|
@Expose
|
2023-12-12 01:01:36 +03:00
|
|
|
|
public int compilation_maxtime = 40;
|
2023-12-12 16:09:14 +03:00
|
|
|
|
@Expose
|
2023-12-12 01:01:36 +03:00
|
|
|
|
public TaskState compilation_state = TaskState.Waiting;
|
2023-12-12 16:09:14 +03:00
|
|
|
|
@Expose
|
2023-12-12 01:01:36 +03:00
|
|
|
|
public double compilation_time = 0.0;
|
2024-10-01 17:33:08 +03:00
|
|
|
|
public DVMRunTask(DVMConfiguration configuration, DVMSettings settings,
|
2023-12-12 01:01:36 +03:00
|
|
|
|
Group group, Test test,
|
|
|
|
|
|
String matrix_in, String flags_in,
|
|
|
|
|
|
String environments_in,
|
2023-12-12 16:09:14 +03:00
|
|
|
|
int kernels_in
|
|
|
|
|
|
) {
|
2023-12-12 01:01:36 +03:00
|
|
|
|
super(configuration, group, test, flags_in);
|
|
|
|
|
|
//--------------------------
|
|
|
|
|
|
//инфа о компиляции.
|
|
|
|
|
|
compilation_maxtime = configuration.c_maxtime;
|
|
|
|
|
|
compilation_state = TaskState.Waiting;
|
|
|
|
|
|
//инфа о запуске
|
2024-10-01 17:33:08 +03:00
|
|
|
|
cube = settings.cube;
|
2024-09-14 00:18:27 +03:00
|
|
|
|
maxtime = configuration.maxtime;
|
2023-12-12 01:01:36 +03:00
|
|
|
|
environments = environments_in;
|
2024-10-01 17:33:08 +03:00
|
|
|
|
usr_par = settings.getParamsText();
|
2023-12-12 01:01:36 +03:00
|
|
|
|
args = test.args;
|
|
|
|
|
|
//---------
|
|
|
|
|
|
matrix = matrix_in;
|
2023-12-12 16:09:14 +03:00
|
|
|
|
kernels = (test_type == TestType.Performance) ? kernels_in :
|
|
|
|
|
|
Math.min(Utils.getMatrixProcessors(matrix), kernels_in);
|
2023-12-12 01:01:36 +03:00
|
|
|
|
}
|
|
|
|
|
|
public DVMRunTask() {
|
|
|
|
|
|
}
|
2024-10-14 15:19:13 +03:00
|
|
|
|
public DVMRunTask(DVMRunTask src) {
|
|
|
|
|
|
this.SynchronizeFields(src);
|
|
|
|
|
|
}
|
2023-12-12 01:01:36 +03:00
|
|
|
|
@Override
|
|
|
|
|
|
public void SynchronizeFields(DBObject src) {
|
|
|
|
|
|
super.SynchronizeFields(src);
|
|
|
|
|
|
DVMRunTask rt = (DVMRunTask) src;
|
|
|
|
|
|
dvmcompilationtask_id = rt.dvmcompilationtask_id;
|
|
|
|
|
|
matrix = rt.matrix;
|
|
|
|
|
|
CleanTime = rt.CleanTime;
|
|
|
|
|
|
progress = rt.progress;
|
|
|
|
|
|
language = rt.language;
|
|
|
|
|
|
cube = rt.cube;
|
|
|
|
|
|
maxtime = rt.maxtime;
|
|
|
|
|
|
environments = rt.environments;
|
|
|
|
|
|
usr_par = rt.usr_par;
|
|
|
|
|
|
compilation_maxtime = rt.compilation_maxtime;
|
|
|
|
|
|
compilation_state = rt.compilation_state;
|
|
|
|
|
|
compilation_time = rt.compilation_time;
|
|
|
|
|
|
args = rt.args;
|
|
|
|
|
|
}
|
|
|
|
|
|
//-
|
|
|
|
|
|
@Override
|
2023-12-14 18:45:41 +03:00
|
|
|
|
public Vector<String> pack(Object arg) {
|
2023-12-12 01:01:36 +03:00
|
|
|
|
Vector<String> res = new Vector<>();
|
|
|
|
|
|
res.add(String.valueOf(id)); //1
|
|
|
|
|
|
res.add(String.valueOf(maxtime)); //2
|
|
|
|
|
|
res.add(String.valueOf(dvmcompilationtask_id)); //3
|
|
|
|
|
|
res.add(matrix); //4
|
|
|
|
|
|
res.add(environments); //5
|
|
|
|
|
|
res.add(usr_par.replace("\n", "|")); //6
|
|
|
|
|
|
res.add(args); //7
|
2023-12-14 18:45:41 +03:00
|
|
|
|
res.add(String.valueOf(kernels)); //8
|
2023-12-12 01:01:36 +03:00
|
|
|
|
return res;
|
|
|
|
|
|
}
|
|
|
|
|
|
public String getEnvironments() {
|
|
|
|
|
|
return environments.replace("\n", ";");
|
|
|
|
|
|
}
|
|
|
|
|
|
public String getUsrPar() {
|
|
|
|
|
|
return usr_par.replace("\n", ";");
|
|
|
|
|
|
}
|
2023-12-17 21:38:54 +03:00
|
|
|
|
public File getCompilationTaskWorkspace() {
|
|
|
|
|
|
return Paths.get(
|
2023-12-18 15:44:48 +03:00
|
|
|
|
Global.DVMPackagesDirectory.getAbsolutePath(),
|
2023-12-17 21:38:54 +03:00
|
|
|
|
String.valueOf(dvm_package_id),
|
|
|
|
|
|
"results",
|
|
|
|
|
|
String.valueOf(dvmcompilationtask_id)
|
|
|
|
|
|
).toFile();
|
|
|
|
|
|
}
|
2023-12-16 16:52:17 +03:00
|
|
|
|
public String getCompilationOutput() {
|
2024-10-14 15:19:13 +03:00
|
|
|
|
return getResultFile(new File(getCompilationTaskWorkspace(), Constants.out_file));
|
2023-12-16 16:52:17 +03:00
|
|
|
|
}
|
|
|
|
|
|
public String getCompilationErrors() {
|
2024-10-14 15:19:13 +03:00
|
|
|
|
return getResultFile(new File(getCompilationTaskWorkspace(), Constants.err_file));
|
2023-12-16 16:52:17 +03:00
|
|
|
|
}
|
|
|
|
|
|
public String getStatistic() {
|
2023-12-17 21:38:54 +03:00
|
|
|
|
return getResultFile(new File(getLocalWorkspace(), Constants.statistic + ".txt"));
|
2023-12-16 16:52:17 +03:00
|
|
|
|
}
|
2023-12-12 01:01:36 +03:00
|
|
|
|
}
|
|
|
|
|
|
//--
|