Files
VisualSapfor/src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMRunTask.java

132 lines
4.5 KiB
Java
Raw Normal View History

2024-10-09 22:21:57 +03:00
package _VisualDVM.TestingSystem.DVM.DVMTasks;
2024-10-07 14:22:52 +03:00
import Common.CommonConstants;
import Common.Database.Objects.DBObject;
import Common.Utils.Index;
2024-10-14 15:19:13 +03:00
import _VisualDVM.Constants;
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;
import com.google.gson.annotations.Expose;
2023-12-12 01:01:36 +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 {
@Expose
2024-10-07 14:22:52 +03:00
public int dvmcompilationtask_id = CommonConstants.Nan;
@Expose
public int ethalon_id = CommonConstants.Nan; //эталон если есть.
@Expose
2023-12-12 01:01:36 +03:00
public String matrix = "";
@Expose
2023-12-12 01:01:36 +03:00
public String args = "";
@Expose
2023-12-12 01:01:36 +03:00
public double CleanTime = 0.0;
@Expose
2023-12-12 01:01:36 +03:00
public int progress = 0;
@Expose
2023-12-12 01:01:36 +03:00
public int cube = 1;
@Expose
2023-12-12 01:01:36 +03:00
public String environments = "";
@Expose
2023-12-12 01:01:36 +03:00
public String usr_par = "";
@Expose
2023-12-12 01:01:36 +03:00
public int compilation_maxtime = 40;
@Expose
2023-12-12 01:01:36 +03:00
public TaskState compilation_state = TaskState.Waiting;
@Expose
2023-12-12 01:01:36 +03:00
public double compilation_time = 0.0;
public DVMRunTask(Index index,
DVMCompilationTask dvmCompilationTask,
DVMConfiguration configuration, int cube_in, String paramsText_in,
2023-12-12 01:01:36 +03:00
Group group, Test test,
String matrix_in, String flags_in,
String environments_in,
int kernels_in
) {
super(index,configuration, group, test, flags_in);
2023-12-12 01:01:36 +03:00
//--------------------------
dvmcompilationtask_id = dvmCompilationTask.id;
2023-12-12 01:01:36 +03:00
//инфа о компиляции.
compilation_maxtime = configuration.c_maxtime;
compilation_state = TaskState.Waiting;
//инфа о запуске
cube = cube_in;
usr_par = paramsText_in;
2024-09-14 00:18:27 +03:00
maxtime = configuration.maxtime;
2023-12-12 01:01:36 +03:00
environments = environments_in;
args = test.args;
//---------
matrix = matrix_in;
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;
ethalon_id = rt.ethalon_id;
2023-12-12 01:01:36 +03:00
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
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
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", ";");
}
public File getCompilationTaskWorkspace() {
return Paths.get(
Global.DVMPackagesDirectory.getAbsolutePath(),
String.valueOf(dvm_package_id),
"results",
String.valueOf(dvmcompilationtask_id)
).toFile();
}
public String getCompilationOutput() {
2024-10-14 15:19:13 +03:00
return getResultFile(new File(getCompilationTaskWorkspace(), Constants.out_file));
}
public String getCompilationErrors() {
2024-10-14 15:19:13 +03:00
return getResultFile(new File(getCompilationTaskWorkspace(), Constants.err_file));
}
public String getStatistic() {
return getResultFile(new File(getLocalWorkspace(), Constants.statistic + ".txt"));
}
2023-12-12 01:01:36 +03:00
}
//--