no message

This commit is contained in:
2024-10-09 22:21:57 +03:00
parent 54c80c516b
commit 6252af944e
699 changed files with 2634 additions and 1997 deletions

View File

@@ -0,0 +1,74 @@
package _VisualDVM.TestingSystem.DVM.DVMTasks;
import Common.Utils.CommonUtils;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
import _VisualDVM.TestingSystem.DVM.DVMSettings.DVMSettings;
import com.google.gson.annotations.Expose;
import java.util.List;
import java.util.Vector;
public class DVMCompilationTask extends DVMTask {
@Expose
public List<DVMRunTask> runTasks = new Vector<>();
//-
public DVMCompilationTask() {
}
@Override
public Vector<String> pack(Object arg) {
Vector<String> res = new Vector<>();
res.add(String.valueOf(id)); //1
res.add(String.valueOf(maxtime)); //2
res.add(String.valueOf(test_id)); //3
res.add(arg.toString().replace("\n", "|")); //4
return res;
}
//--
public static String checkFlags(String flags_in) {
if (!flags_in.contains("-shared-dvm")) {
if (flags_in.isEmpty())
return "-shared-dvm";
else return flags_in + " -shared-dvm";
} else
return flags_in;
}
public static String checkEnvironments(String environmentsSet_in) {
if (!environmentsSet_in.contains("DVMH_NO_DIRECT_COPY")) {
if (environmentsSet_in.isEmpty())
return "DVMH_NO_DIRECT_COPY=" + CommonUtils.DQuotes("1");
else
return environmentsSet_in + " " + "DVMH_NO_DIRECT_COPY=" + CommonUtils.DQuotes("1");
} else
return environmentsSet_in;
}
//--
public DVMCompilationTask(DVMConfiguration configuration, DVMSettings dvmSettings, Group group, Test test, int kernels_in){
super (configuration, group, test,checkFlags(dvmSettings.flags));
Vector<String> matrixes = dvmSettings.getMatrixes(test.max_dim);
String checkedEnvironments = checkEnvironments(dvmSettings.environments);
if (dvmSettings.flags.trim().equalsIgnoreCase("-s")) {
runTasks.add(new DVMRunTask(
configuration,
dvmSettings,
group,
test,
"",
flags,
checkedEnvironments,
kernels_in
));
} else
for (String matrix : matrixes) {
runTasks.add(new DVMRunTask(
configuration,
dvmSettings,
group,
test,
matrix,
flags,
checkedEnvironments,
kernels_in));
}
}
}

View File

@@ -0,0 +1,136 @@
package _VisualDVM.TestingSystem.DVM.DVMTasks;
import Common.CommonConstants;
import _VisualDVM.Constants;
import Common.Database.Objects.DBObject;
import _VisualDVM.Global;
import _VisualDVM.Utils;
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;
import com.google.gson.annotations.Expose;
import java.io.File;
import java.nio.file.Paths;
import java.util.Vector;
public class DVMRunTask extends DVMTask {
@Expose
public int dvmcompilationtask_id = CommonConstants.Nan;
@Expose
public String matrix = "";
@Expose
public String args = "";
@Expose
public double CleanTime = 0.0;
@Expose
public int progress = 0;
@Expose
public int cube = 1;
@Expose
public int min_dim = 1;
@Expose
public int max_dim = 1;
@Expose
public String environments = "";
@Expose
public String usr_par = "";
@Expose
public int compilation_maxtime = 40;
@Expose
public TaskState compilation_state = TaskState.Waiting;
@Expose
public double compilation_time = 0.0;
public DVMRunTask(DVMConfiguration configuration, DVMSettings settings,
Group group, Test test,
String matrix_in, String flags_in,
String environments_in,
int kernels_in
) {
super(configuration, group, test, flags_in);
//--------------------------
//инфа о компиляции.
compilation_maxtime = configuration.c_maxtime;
compilation_state = TaskState.Waiting;
//инфа о запуске
cube = settings.cube;
min_dim = settings.max_dim_proc_count;
max_dim = settings.max_dim_proc_count;
maxtime = configuration.maxtime;
environments = environments_in;
usr_par = settings.getParamsText();
args = test.args;
//---------
matrix = matrix_in;
kernels = (test_type == TestType.Performance) ? kernels_in :
Math.min(Utils.getMatrixProcessors(matrix), kernels_in);
}
public DVMRunTask() {
}
@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;
min_dim = rt.min_dim;
max_dim = rt.max_dim;
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;
}
public DVMRunTask(DVMRunTask src) {
this.SynchronizeFields(src);
}
//-
@Override
public Vector<String> pack(Object arg) {
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
return res;
}
public String getEnvironments() {
return environments.replace("\n", ";");
}
public String getUsrPar() {
return usr_par.replace("\n", ";");
}
@Override
public boolean isVisible() {
return Global.testingServer.db.dvmRunTasks.applyFilters(this);
}
public File getCompilationTaskWorkspace() {
return Paths.get(
Global.DVMPackagesDirectory.getAbsolutePath(),
String.valueOf(dvm_package_id),
"results",
String.valueOf(dvmcompilationtask_id)
).toFile();
}
public String getCompilationOutput() {
return getResultFile(new File(getCompilationTaskWorkspace(),Constants.out_file));
}
public String getCompilationErrors() {
return getResultFile(new File(getCompilationTaskWorkspace(),Constants.err_file));
}
public String getStatistic() {
return getResultFile(new File(getLocalWorkspace(), Constants.statistic + ".txt"));
}
}
//--

View File

@@ -0,0 +1,9 @@
package _VisualDVM.TestingSystem.DVM.DVMTasks;
import Common.Visual.Menus.DataMenuBar;
import Visual_DVM_2021.Passes.PassCode_2021;
public class DVMRunTasksBar extends DataMenuBar {
public DVMRunTasksBar() {
super("задачи",
PassCode_2021.CompareDVMRunTasks, PassCode_2021.DownloadTaskTest);
}
}

View File

@@ -0,0 +1,165 @@
package _VisualDVM.TestingSystem.DVM.DVMTasks;
import _VisualDVM.Current;
import Common.Visual.DBObjectFilter;
import Common.Database.Tables.DataSet;
import Common.Visual.DataSetFilter;
import Common.Visual.DataSetControlForm;
import _VisualDVM.GlobalData.Tasks.TaskState;
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
import java.util.Comparator;
import static Common.Visual.Tables.TableRenderers.RendererProgress;
import static Common.Visual.Tables.TableRenderers.RendererStatusEnum;
public class DVMRunTasksSet extends DataSet<Integer, DVMRunTask> {
//todo обобщить бы наличие фильтров для всех таблиц.
DVMPackage target;
@Override
protected void createFilters() {
filters.add(new DataSetFilter<DVMRunTask>("Компиляция", this) {
@Override
public void fill() {
for (TaskState state : TaskState.values()) {
if (state.isVisible()) {
field_filters.add(new DBObjectFilter<DVMRunTask>(dataSet, state.getDescription()) {
@Override
protected boolean validate(DVMRunTask object) {
return object.compilation_state.equals(state);
}
});
}
}
}
});
filters.add(new DataSetFilter<DVMRunTask>("Запуск", this) {
@Override
public void fill() {
for (TaskState state : TaskState.values()) {
if (state.isVisible()) {
field_filters.add(new DBObjectFilter<DVMRunTask>(dataSet, state.getDescription()) {
@Override
protected boolean validate(DVMRunTask object) {
return object.state.equals(state);
}
});
}
}
}
});
}
public DVMRunTasksSet() {
super(Integer.class, DVMRunTask.class);
}
@Override
public String getSingleDescription() {
return "задача";
}
@Override
public String getPluralDescription() {
return "задачи";
}
@Override
protected DataSetControlForm createUI() {
return new DataSetControlForm(this) {
@Override
public boolean hasCheckBox() {
return true;
}
@Override
protected void AdditionalInitColumns() {
columns.get(5).setRenderer(RendererStatusEnum);
columns.get(6).setRenderer(RendererStatusEnum);
columns.get(13).setRenderer(RendererProgress);
}
};
}
@Override
public String[] getUIColumnNames() {
return new String[]{
"Тест",
"Язык",
"Флаги",
"Компиляция",
"Запуск",
"Матрица",
"Окружение",
"usr.par",
"Время компиляции (с)",
"Время запуска (с)",
"Чистое время (с)",
"Прогресс",
};
}
@Override
public Object getFieldAt(DVMRunTask object, int columnIndex) {
switch (columnIndex) {
case 2:
return object.test_description;
case 3:
return object.language;
case 4:
return object.flags;
case 5:
return object.compilation_state;
case 6:
return object.state;
case 7:
return object.matrix;
case 8:
return object.getEnvironments();
case 9:
return object.getUsrPar();
case 10:
return object.compilation_time;
case 11:
return object.Time;
case 12:
return object.CleanTime;
case 13:
return object.progress;
default:
return null;
}
}
@Override
public Current CurrentName() {
return Current.DVMRunTask;
}
public void ShowDVMPackage(DVMPackage dvmPackage) {
target = dvmPackage;
ClearUI();
Data.clear();
if (dvmPackage.package_json == null) {
if (dvmPackage.getJsonFile().exists()) {
try {
dvmPackage.readJson();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
if (dvmPackage.package_json != null) {
for (DVMCompilationTask compilationTask : dvmPackage.package_json.compilationTasks) {
for (DVMRunTask runTask : compilationTask.runTasks) {
Data.put(runTask.id, runTask);
}
}
ShowUI();
}
}
public void ShowNoPackage() {
ClearUI();
Data.clear();
target = null;
}
@Override
public Comparator<DVMRunTask> getComparator() {
return new Comparator<DVMRunTask>() {
@Override
public int compare(DVMRunTask o1, DVMRunTask o2) {
return o1.state.ordinal() - o2.state.ordinal();
}
};
// return Comparator.comparingInt(o -> o.).reversed();
}
}

View File

@@ -0,0 +1,107 @@
package _VisualDVM.TestingSystem.DVM.DVMTasks;
import Common.CommonConstants;
import _VisualDVM.Constants;
import Common.Database.Objects.DBObject;
import Common.Database.Objects.iDBObject;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Tasks.TaskState;
import _VisualDVM.ProjectData.LanguageName;
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 com.google.gson.annotations.Expose;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.nio.file.Paths;
import java.util.Vector;
public class DVMTask extends iDBObject {
@Expose
public int dvm_package_id = CommonConstants.Nan;
@Expose
public int group_id = CommonConstants.Nan;
@Expose
public String group_description = "";
@Expose
public int test_id = CommonConstants.Nan;
@Expose
public String test_description = "";
@Expose
public LanguageName language = LanguageName.fortran;
@Expose
public String flags = "";
@Expose
public int kernels = 1;
@Expose
public TaskState state = TaskState.Inactive;
@Expose
public int maxtime = 40;
@Expose
public TestType test_type = TestType.Default;
//результаты-------------------------------
@Expose
public double Time; //время выполнения.
//------------------------------------------------------
@Override
public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src);
DVMTask t = (DVMTask) src;
group_id = t.group_id;
group_description = t.group_description;
test_id = t.test_id;
test_description = t.test_description;
language = t.language;
flags = t.flags;
kernels = t.kernels;
state = t.state;
maxtime = t.maxtime;
test_type = t.test_type;
Time = t.Time;
}
public DVMTask(DVMTask src) {
this.SynchronizeFields(src);
}
public DVMTask() {
}
public DVMTask(DVMConfiguration configuration,
Group group, Test test, String flags_in) {
group_id = group.id;
test_id = test.id;
group_description = group.description;
test_description = test.description;
test_type = group.type;
language = group.language;
flags = flags_in;
}
public File getLocalWorkspace() {
return
Paths.get(Global.DVMPackagesDirectory.getAbsolutePath(),
String.valueOf(dvm_package_id),
"results",
String.valueOf(id)).toFile();
}
public Vector<String> pack(Object arg) {
return null;
}
public String getResultFile(File resultFile) {
String res = "";
if (dvm_package_id == CommonConstants.Nan) res = "задача ещё не выполнялась";
else {
if (resultFile.exists()) {
try {
res = FileUtils.readFileToString(resultFile);
} catch (Exception ex) {
ex.printStackTrace();
}
} else res = "не существует";
}
return res;
}
public String getOutput() {
return getResultFile(new File(getLocalWorkspace(), Constants.out_file));
}
public String getErrors() {
return getResultFile(new File(getLocalWorkspace(), Constants.err_file));
}
}