fix
v++
This commit is contained in:
@@ -3,6 +3,7 @@ import Common.Constants;
|
||||
import Common.Current;
|
||||
import Common.Database.Database;
|
||||
import Common.Global;
|
||||
import Common.UI.UI;
|
||||
import Common.Utils.Utils;
|
||||
import GlobalData.Compiler.CompilerType;
|
||||
import GlobalData.Machine.MachineType;
|
||||
@@ -18,6 +19,8 @@ import TestingSystem.DVM.DVMTasks.DVMCompilationTask;
|
||||
import TestingSystem.DVM.DVMTasks.DVMRunTask;
|
||||
import Visual_DVM_2021.Passes.AddObjectPass;
|
||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||
|
||||
import java.util.Vector;
|
||||
public class CloneDVMPackage extends AddObjectPass<DVMPackage> {
|
||||
DVMPackage src;
|
||||
public CloneDVMPackage() {
|
||||
@@ -92,83 +95,89 @@ public class CloneDVMPackage extends AddObjectPass<DVMPackage> {
|
||||
//--
|
||||
target.tasksCount = 0;
|
||||
//--
|
||||
return true;
|
||||
src.readJson();
|
||||
target.package_json = new DVMPackage_json();
|
||||
//--
|
||||
Vector<String> inexistingTests = new Vector<>();
|
||||
//--
|
||||
for (DVMCompilationTask src_compilationTask : src.package_json.compilationTasks) {
|
||||
if (Global.testingServer.db.tests.containsKey(src_compilationTask.test_id)
|
||||
) {
|
||||
Group group = Global.testingServer.db.groups.get(src_compilationTask.group_id);
|
||||
Test test = Global.testingServer.db.tests.get(src_compilationTask.test_id);
|
||||
//--
|
||||
DVMCompilationTask compilationTask = new DVMCompilationTask();
|
||||
//--
|
||||
compilationTask.group_id = group.id;
|
||||
compilationTask.group_description = group.description;
|
||||
compilationTask.language = src_compilationTask.language;
|
||||
//--
|
||||
compilationTask.test_id = test.id;
|
||||
compilationTask.test_description = test.description;
|
||||
compilationTask.test_type = group.type;
|
||||
//--
|
||||
compilationTask.maxtime = src_compilationTask.maxtime;
|
||||
//--
|
||||
compilationTask.flags = src_compilationTask.flags;
|
||||
compilationTask.kernels = 1;
|
||||
//---
|
||||
for (DVMRunTask src_runTask : src_compilationTask.runTasks) {
|
||||
DVMRunTask runTask = new DVMRunTask();
|
||||
//--
|
||||
runTask.group_id = group.id;
|
||||
runTask.group_description = group.description;
|
||||
runTask.language = src_runTask.language;
|
||||
//--
|
||||
runTask.test_id = test.id;
|
||||
runTask.test_description = test.description;
|
||||
runTask.test_type = group.type;
|
||||
//--
|
||||
runTask.compilation_maxtime = src_runTask.compilation_maxtime;
|
||||
runTask.compilation_state = TaskState.Waiting;
|
||||
runTask.maxtime = src_runTask.maxtime;
|
||||
//--
|
||||
runTask.cube = src_runTask.cube;
|
||||
runTask.min_dim = src_runTask.min_dim;
|
||||
runTask.max_dim = src_runTask.max_dim;
|
||||
runTask.matrix = src_runTask.matrix;
|
||||
runTask.environments = src_runTask.environments;
|
||||
runTask.usr_par = src_runTask.usr_par;
|
||||
runTask.args = test.args;
|
||||
//--
|
||||
runTask.flags = src_runTask.flags;
|
||||
runTask.kernels = (group.type == TestType.Performance) ? target.kernels :
|
||||
Math.min(Utils.getMatrixProcessors(src_runTask.matrix), target.kernels);
|
||||
compilationTask.runTasks.add(runTask);
|
||||
}
|
||||
//--
|
||||
target.package_json.compilationTasks.add(compilationTask);
|
||||
//-
|
||||
} else {
|
||||
inexistingTests.add(String.valueOf(src_compilationTask.test_id));
|
||||
}
|
||||
}
|
||||
///-
|
||||
//инициализируем идентификаторы задач.
|
||||
for (DVMCompilationTask compilationTask : target.package_json.compilationTasks) {
|
||||
//--
|
||||
compilationTask.id = target.package_json.getMaxTaskId();
|
||||
//-
|
||||
for (DVMRunTask runTask : compilationTask.runTasks) {
|
||||
runTask.id = target.package_json.getMaxTaskId();
|
||||
runTask.dvmcompilationtask_id = compilationTask.id;
|
||||
target.tasksCount++;
|
||||
}
|
||||
}
|
||||
//--
|
||||
for (String test_id: inexistingTests){
|
||||
System.out.println("Тест "+test_id+" не найден!");
|
||||
}
|
||||
return inexistingTests.isEmpty()|| UI.Question(inexistingTests.size()+ " тестов отсутствует. Продолжить");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
protected void body() throws Exception {
|
||||
// надо скопировать все задачи.
|
||||
src.readJson();
|
||||
target.package_json = new DVMPackage_json();
|
||||
//--
|
||||
for (DVMCompilationTask src_compilationTask : src.package_json.compilationTasks) {
|
||||
if (Global.testingServer.db.groups.containsKey(src_compilationTask.group_id) &&
|
||||
Global.testingServer.db.tests.containsKey(src_compilationTask.test_id)
|
||||
) {
|
||||
Group group = Global.testingServer.db.groups.get(src_compilationTask.group_id);
|
||||
Test test = Global.testingServer.db.tests.get(src_compilationTask.test_id);
|
||||
//--
|
||||
DVMCompilationTask compilationTask = new DVMCompilationTask();
|
||||
//--
|
||||
compilationTask.group_id = group.id;
|
||||
compilationTask.group_description = group.description;
|
||||
compilationTask.language = src_compilationTask.language;
|
||||
//--
|
||||
compilationTask.test_id = test.id;
|
||||
compilationTask.test_description = test.description;
|
||||
compilationTask.test_type = group.type;
|
||||
//--
|
||||
compilationTask.maxtime = src_compilationTask.maxtime;
|
||||
//--
|
||||
compilationTask.flags = src_compilationTask.flags;
|
||||
compilationTask.kernels = 1;
|
||||
//---
|
||||
for (DVMRunTask src_runTask : src_compilationTask.runTasks) {
|
||||
DVMRunTask runTask = new DVMRunTask();
|
||||
//--
|
||||
runTask.group_id = group.id;
|
||||
runTask.group_description = group.description;
|
||||
runTask.language = src_runTask.language;
|
||||
//--
|
||||
runTask.test_id = test.id;
|
||||
runTask.test_description = test.description;
|
||||
runTask.test_type = group.type;
|
||||
//--
|
||||
runTask.compilation_maxtime = src_runTask.compilation_maxtime;
|
||||
runTask.compilation_state = TaskState.Waiting;
|
||||
runTask.maxtime = src_runTask.maxtime;
|
||||
//--
|
||||
runTask.cube = src_runTask.cube;
|
||||
runTask.min_dim = src_runTask.min_dim;
|
||||
runTask.max_dim = src_runTask.max_dim;
|
||||
runTask.matrix = src_runTask.matrix;
|
||||
runTask.environments = src_runTask.environments;
|
||||
runTask.usr_par = src_runTask.usr_par;
|
||||
runTask.args = test.args;
|
||||
//--
|
||||
runTask.flags = src_runTask.flags;
|
||||
runTask.kernels = (group.type == TestType.Performance) ? target.kernels :
|
||||
Math.min(Utils.getMatrixProcessors(src_runTask.matrix), target.kernels);
|
||||
compilationTask.runTasks.add(runTask);
|
||||
}
|
||||
//--
|
||||
target.package_json.compilationTasks.add(compilationTask);
|
||||
//-
|
||||
}
|
||||
}
|
||||
///-
|
||||
//инициализируем идентификаторы задач.
|
||||
for (DVMCompilationTask compilationTask : target.package_json.compilationTasks) {
|
||||
//--
|
||||
compilationTask.id = target.package_json.getMaxTaskId();
|
||||
//-
|
||||
for (DVMRunTask runTask : compilationTask.runTasks) {
|
||||
runTask.id = target.package_json.getMaxTaskId();
|
||||
runTask.dvmcompilationtask_id = compilationTask.id;
|
||||
target.tasksCount++;
|
||||
}
|
||||
}
|
||||
//черновик не вставляется в бд. идет только как элемент списка.
|
||||
Global.testingServer.db.dvmPackages.Data.put(target.id, target);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user