промежуточный.переработка объекта пакета тестирования

This commit is contained in:
2024-09-13 00:19:15 +03:00
parent 3201742848
commit 756c2d214f
5 changed files with 133 additions and 14 deletions

12
.idea/workspace.xml generated
View File

@@ -7,15 +7,11 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment=""> <list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/SaveCurrentDVMPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/Test/TestDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Test/TestDBTable.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TasksPackageState.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TasksPackageState.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPackage/TestingPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPackage/TestingPackage.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddDVMPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackageDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackageDBTable.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddTasksToDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddTasksToDVMPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackagesBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackagesBar.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/SaveCurrentDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/SaveCurrentDVMPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ShowCurrentDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ShowCurrentDVMPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/ShowTestingPackage.java" beforeDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -10,6 +10,7 @@ import java.util.stream.Collectors;
public enum TasksPackageState implements StatusEnum { public enum TasksPackageState implements StatusEnum {
Draft, Draft,
//-- //--
Inactive, //пакет просто есть. не запущен.
Queued, Queued,
//-- //--
TestsSynchronize, //оставить. TestsSynchronize, //оставить.
@@ -33,6 +34,7 @@ public enum TasksPackageState implements StatusEnum {
; ;
public boolean isActive() { public boolean isActive() {
switch (this) { switch (this) {
case Inactive:
case Done: case Done:
case Aborted: case Aborted:
case Draft: case Draft:
@@ -61,10 +63,12 @@ public enum TasksPackageState implements StatusEnum {
//- //-
public String getDescription() { public String getDescription() {
switch (this) { switch (this) {
case Inactive:
return "неактивен";
case Draft: case Draft:
return "Подготовка к публикации"; return "Подготовка к публикации";
case Aborted: case Aborted:
return "Прерван"; return "прерван";
case Queued: case Queued:
return "в очереди"; return "в очереди";
case TestsSynchronize: case TestsSynchronize:
@@ -92,7 +96,7 @@ public enum TasksPackageState implements StatusEnum {
case Done: case Done:
return "завершен"; return "завершен";
case ConnectionError: case ConnectionError:
return "Сбой связи"; return "сбой связи";
default: default:
return StatusEnum.super.getDescription(); return StatusEnum.super.getDescription();
} }

View File

@@ -70,6 +70,7 @@ public class AddDVMPackage extends AddObjectPass<DVMPackage> {
target.needsEmail = Global.properties.EmailOnTestingProgress ? 1 : 0; target.needsEmail = Global.properties.EmailOnTestingProgress ? 1 : 0;
//-- //--
target.package_json = new DVMPackage_json(); target.package_json = new DVMPackage_json();
target.state= TasksPackageState.Inactive;
return true; return true;
} }
return false; return false;

View File

@@ -161,6 +161,7 @@ public class AddTasksToDVMPackage extends Pass_2021<DVMPackage> {
} }
@Override @Override
protected void body() throws Exception { protected void body() throws Exception {
target.package_json = new DVMPackage_json();
DVMPackage_json json = target.package_json; DVMPackage_json json = target.package_json;
//инициализируем идентификаторы задач. //инициализируем идентификаторы задач.
for (DVMCompilationTask compilationTask : tasks) { for (DVMCompilationTask compilationTask : tasks) {
@@ -179,6 +180,7 @@ public class AddTasksToDVMPackage extends Pass_2021<DVMPackage> {
target.addTests(tests); target.addTests(tests);
//-- //--
target.tasksCount += tasks_count; target.tasksCount += tasks_count;
target.state= TasksPackageState.Inactive;
Global.testingServer.db.Update(target); Global.testingServer.db.Update(target);
//-- //--
// target.printCGT(); // target.printCGT();

View File

@@ -2,11 +2,15 @@ package Visual_DVM_2021.Passes.All;
import Common.Constants; import Common.Constants;
import Common.Current; import Common.Current;
import Common.Global; import Common.Global;
import Common.UI.UI;
import Common.Utils.Utils; import Common.Utils.Utils;
import TestingSystem.Common.Group.Group; import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Test.Test; import TestingSystem.Common.Test.Test;
import TestingSystem.DVM.Configuration.Configuration; import TestingSystem.DVM.Configuration.Configuration;
import TestingSystem.DVM.DVMPackage.DVMPackage; import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMPackage.DVMPackage_json;
import TestingSystem.DVM.DVMTasks.DVMCompilationTask;
import TestingSystem.DVM.DVMTasks.DVMRunTask;
import Visual_DVM_2021.Passes.Pass_2021; import Visual_DVM_2021.Passes.Pass_2021;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
@@ -20,6 +24,10 @@ public class SaveCurrentDVMPackage extends Pass_2021<DVMPackage> {
Vector<String> configurationsNames; Vector<String> configurationsNames;
Vector<String> groupsNames; Vector<String> groupsNames;
//-- //--
LinkedHashMap<Integer, Vector<Test>> testsByGroups;
int tasks_count;
Vector<DVMCompilationTask> tasks;
//--
@Override @Override
public String getIconPath() { public String getIconPath() {
return "/icons/Save.png"; return "/icons/Save.png";
@@ -28,6 +36,72 @@ public class SaveCurrentDVMPackage extends Pass_2021<DVMPackage> {
public String getButtonText() { public String getButtonText() {
return ""; return "";
} }
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=" + Utils.DQuotes("1");
else
return environmentsSet_in + " " + "DVMH_NO_DIRECT_COPY=" + Utils.DQuotes("1");
} else
return environmentsSet_in;
}
//--
public Vector<DVMCompilationTask> createTasksCGT(
Configuration configuration,
Group group,
Test test
) {
Vector<DVMCompilationTask> compilationTasks = new Vector<>();
for (String flags : configuration.getFlags()) {
String checked_flags = checkFlags(flags);
DVMCompilationTask dvmCompilationTask = new DVMCompilationTask(
configuration,
group,
test,
checked_flags
);
Vector<String> matrixes = configuration.getMatrixes(test.max_dim);
Vector<String> environments = configuration.getEnvironments();
for (String environmentSet : environments) {
String checkedEnvironments = checkEnvironments(environmentSet);
if (flags.trim().equalsIgnoreCase("-s")) {
dvmCompilationTask.runTasks.add(new DVMRunTask(
configuration,
group,
test,
"",
checked_flags,
checkedEnvironments,
configuration.getParamsText(),
target.kernels
));
tasks_count++;
} else
for (String matrix : matrixes) {
dvmCompilationTask.runTasks.add(new DVMRunTask(
configuration,
group,
test,
matrix,
checked_flags,
checkedEnvironments,
configuration.getParamsText(),
target.kernels));
tasks_count++;
}
}
compilationTasks.add(dvmCompilationTask);
}
return compilationTasks;
}
@Override @Override
protected boolean canStart(Object... args) throws Exception { protected boolean canStart(Object... args) throws Exception {
target = null; target = null;
@@ -39,9 +113,17 @@ public class SaveCurrentDVMPackage extends Pass_2021<DVMPackage> {
configurationsNames = new Vector<>(); configurationsNames = new Vector<>();
groupsNames = new Vector<>(); groupsNames = new Vector<>();
//--- //---
tasks_count = 0;
tasks = new Vector<>();
testsByGroups = new LinkedHashMap<>();
//---
if (!Current.Check(Log, Current.DVMPackage)) return false; if (!Current.Check(Log, Current.DVMPackage)) return false;
//-- //--
target = Current.getDVMPackage(); target = Current.getDVMPackage();
if (target.state.isActive()) {
Log.Writeln_("Возможно редактировать только неактивный пакет!");
return false;
}
for (Configuration configuration : Global.testingServer.db.configurations.getCheckedItems()) { for (Configuration configuration : Global.testingServer.db.configurations.getCheckedItems()) {
configurations.add(configuration); configurations.add(configuration);
configurationsNames.add(configuration.description); configurationsNames.add(configuration.description);
@@ -49,13 +131,34 @@ public class SaveCurrentDVMPackage extends Pass_2021<DVMPackage> {
for (Group group : Global.testingServer.db.groups.getCheckedItems()) { for (Group group : Global.testingServer.db.groups.getCheckedItems()) {
groups.add(group); groups.add(group);
groupsNames.add(group.description); groupsNames.add(group.description);
tests.addAll(Global.testingServer.db.tests.getSelectedGroupTests(group)); Vector<Test> groupTests = Global.testingServer.db.tests.getSelectedGroupTests(group);
tests.addAll(groupTests);
testsByGroups.put(group.id, groupTests);
} }
return true; //---
//создание задач
for (Configuration configuration : configurations) {
configurations.add(configuration);
for (Group group : groups) {
Vector<Test> groupTests = testsByGroups.get(group.id);
for (Test test: groupTests){
tasks.addAll(createTasksCGT(configuration, group, test));
}
}
}
//---
if (tasks.isEmpty()) {
Log.Writeln_("Не удалось добавить задачи.\n" +
"Для создания задач отметьте требуемые конфигурации,\n" +
"Отметьте группы, или отдельные тесты в отмеченной текущей группе");
return false;
}
//---
return UI.Question("Будет создано " + tasks_count + " задач. Продолжить");
} }
//проход не создает задачи. Проход просто фиксирует конфигурации группы и тесты.
@Override @Override
protected void body() throws Exception { protected void body() throws Exception {
//занесение информации об участвующих группах конфигурациях и тестах
target.addConfigurations(configurations); target.addConfigurations(configurations);
target.addGroups(groups); target.addGroups(groups);
target.addTests(tests); target.addTests(tests);
@@ -66,10 +169,23 @@ public class SaveCurrentDVMPackage extends Pass_2021<DVMPackage> {
//-- //--
target.configurationsNames = String.join(";", configurationsNames); target.configurationsNames = String.join(";", configurationsNames);
target.groupsNames = String.join(";", groupsNames); target.groupsNames = String.join(";", groupsNames);
//---
target.tasksCount=tasks_count;
DVMPackage_json json = target.package_json;
//инициализируем идентификаторы задач.
for (DVMCompilationTask compilationTask : tasks) {
//--
compilationTask.id = json.getMaxTaskId();
//-
for (DVMRunTask runTask : compilationTask.runTasks) {
runTask.id = json.getMaxTaskId();
runTask.dvmcompilationtask_id = compilationTask.id;
}
}
json.compilationTasks.addAll(tasks);
//-- //--
if (target.id != Constants.Nan) if (target.id != Constants.Nan)
Global.testingServer.db.Update(target); Global.testingServer.db.Update(target);
//--
} }
@Override @Override
protected void showDone() throws Exception { protected void showDone() throws Exception {