промежуточный. тестирую новую версий конфигураций

This commit is contained in:
2024-09-15 01:36:19 +03:00
parent 1e782daa3d
commit 7ea64c49d1
18 changed files with 488 additions and 52 deletions

View File

@@ -0,0 +1,53 @@
package Visual_DVM_2021.Passes.All;
import Common.Current;
import Common.Global;
import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Test.Test;
import TestingSystem.Common.TestingServer;
import TestingSystem.DVM.Configuration.DVMConfiguration;
import Visual_DVM_2021.Passes.Server.EditServerObject;
import java.util.Vector;
public class SaveCurrentDVMConfiguration extends EditServerObject<TestingServer, DVMConfiguration> {
Vector<Group> groups;
Vector<Test> tests;
//--
Vector<String> groupsNames;
//--
public SaveCurrentDVMConfiguration() {
super(Global.testingServer, DVMConfiguration.class);
}
@Override
public String getIconPath() {
return "/icons/Save.png";
}
@Override
public String getButtonText() {
return "";
}
@Override
protected boolean canStart(Object... args) throws Exception {
if (!Current.Check(Log, Current.DVMConfiguration)) return false;
target = Current.getDVMConfiguration();
//--
groups = new Vector<>();
tests = new Vector<>();
//---
groupsNames = new Vector<>();
for (Group group : Global.testingServer.db.groups.getCheckedItems()) {
groups.add(group);
groupsNames.add(group.description);
Vector<Test> groupTests = Global.testingServer.db.tests.getSelectedGroupTests(group);
tests.addAll(groupTests);
}
return true;
}
@Override
protected void ServerAction() throws Exception {
//занесение информации об участвующих группах конфигурациях и тестах
target.saveGroups(groups);
target.saveTests(tests);
//--
super.ServerAction();
}
}

View File

@@ -0,0 +1,53 @@
package Visual_DVM_2021.Passes.All;
import Common.Current;
import Common.Global;
import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Test.Test;
import TestingSystem.DVM.Configuration.DVMConfiguration;
import Visual_DVM_2021.Passes.Pass_2021;
import java.util.Vector;
public class ShowCurrentDVMConfigurationTests extends Pass_2021<DVMConfiguration> {
@Override
public String getIconPath() {
return "/icons/ShowPassword.png";
}
@Override
public String getButtonText() {
return "";
}
@Override
protected boolean canStart(Object... args) throws Exception {
target = null;
if (Current.Check(Log, Current.DVMConfiguration)) {
target = Current.getDVMConfiguration();
return true;
}
return false;
}
@Override
protected void showPreparation() throws Exception {
Global.testingServer.db.UnselectAllGTC();
}
@Override
protected void showDone() throws Exception {
System.out.println("package="+target.id);
Vector<Group> groups = target.getGroups();
Vector<Test> tests = target.getTests();
//-----
//--
for (Group group: groups)
group.Select(true);
for (Test test: tests)
test.Select(true);
//--
if (!groups.isEmpty()){
Global.testingServer.db.groups.ShowUI(groups.lastElement().id);
}
if (!tests.isEmpty()){
Global.testingServer.db.tests.ShowUI(tests.lastElement().id);
}
}
}

View File

@@ -0,0 +1,167 @@
package Visual_DVM_2021.Passes.All;
import Common.Current;
import Common.Global;
import Common.UI.UI;
import Common.Utils.Utils;
import GlobalData.Compiler.CompilerType;
import GlobalData.Machine.MachineType;
import GlobalData.User.UserState;
import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Test.Test;
import TestingSystem.Common.TestingServer;
import TestingSystem.DVM.Configuration.DVMConfiguration;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMTasks.DVMCompilationTask;
import TestingSystem.DVM.DVMTasks.DVMRunTask;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Server.PublishServerObject;
import java.util.LinkedHashMap;
import java.util.Vector;
public class StartCurrentDVMConfiguration extends PublishServerObject<TestingServer, DVMPackage> {
Vector<DVMConfiguration> configurations;
Vector<Group> groups;
Vector<Test> tests;
LinkedHashMap<Integer, Vector<Test>> testByGroups;
Vector<DVMCompilationTask> tasks;
int tasks_count;
public StartCurrentDVMConfiguration() {
super(Global.testingServer, DVMPackage.class);
}
//пока пусть будет одна конфигурация и один пакет.
@Override
public String getIconPath() {
return "/icons/Start.png";
}
//--
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(
DVMConfiguration configuration,
Group group,
Test test
) {
Vector<DVMCompilationTask> compilationTasks = new Vector<>();
for (String flags : configuration.getFlagsArray()) {
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
protected boolean canStart(Object... args) throws Exception {
configurations = new Vector<>();
groups = new Vector<>();
tests = new Vector<>();
testByGroups = new LinkedHashMap<>();
tasks = new Vector<>();
tasks_count=0;
//---
if (!Current.getAccount().CheckRegistered(Log)) {
return false;
}
if (!Current.Check(Log, Current.DVMConfiguration)) {
return false;
}
if (Current.Check(Log, Current.Machine, Current.User, Current.Compiler)) {
if (!Current.getMachine().type.equals(MachineType.Server)) {
Log.Writeln_("Тестирование поддерживается только на одиночном удалённом сервере.");
return false;
}
if (!Current.getUser().state.equals(UserState.ready_to_work)) {
Log.Writeln_("Пользователь не готов к работе. Выполните инициализацию пользователя!");
return false;
}
if (!Current.getCompiler().type.equals(CompilerType.dvm)) {
Log.Writeln_("Тестирование поддерживается только для DVM компиляторов.");
return false;
}
if (!Current.getCompiler().versionLoaded)
passes.get(PassCode_2021.ShowCompilerVersion).Do(Current.getCompiler(), false);
//--
target = new DVMPackage(
Current.getAccount(),
Current.getMachine(),
Current.getUser(),
Current.getCompiler()
);
//----
DVMConfiguration configuration = Current.getDVMConfiguration();
configurations.add(configuration);
//--
groups = configuration.getGroups();
tests = configuration.getTests(groups, testByGroups);
//--
for (Group group : groups) {
Vector<Test> groupTests = testByGroups.get(group.id);
for (Test test : groupTests)
tasks.addAll(createTasksCGT(configuration, group, test));
}
return UI.Question("Будет запущено " + tasks_count + " задач. Продолжить");
}
return false;
}
@Override
protected void ServerAction() throws Exception {
//занесение информации об участвующих группах конфигурациях и тестах
target.saveConfigurations(configurations);
target.saveGroups(groups);
target.saveTests(tests);
//--
target.saveTasks(tasks, tasks_count);
super.ServerAction();
}
}

View File

@@ -343,17 +343,27 @@ public enum PassCode_2021 {
ShowSapforCompilationErr,
GetOldBugReports,
ShowCurrentDVMPackage,
SaveCurrentDVMPackage
SaveCurrentDVMPackage,
ShowCurrentDVMConfigurationTests,
SaveCurrentDVMConfiguration,
StartCurrentDVMConfiguration,
;
//--
public String getDescription() {
switch (this) {
case Undefined:
return "?";
case StartCurrentDVMConfiguration:
return "Запустить текущую конфигурацию тестирования DVM системы";
case ShowCurrentDVMConfigurationTests:
return "Отметить группы и тесты, участвующие в текущей конфигурации DVM системы";
case SaveCurrentDVMConfiguration:
return "Сохранить информацию о тестах текущей конфигурации DVM системы";
case SaveCurrentDVMPackage:
return "Сохранить текущий пакет тестирования DVM";
return "Сохранить текущий пакет тестирования DVM системы";
case ShowCurrentDVMPackage:
return "Редактировать пакет тестирования DVM";
return "Редактировать пакет тестирования DVM системы";
case GetOldBugReports:
return "Получить неиспользуемые баг репорты";
case SPF_RenameIncludes: