Рефакторинг конструкторов объектов тестирования.

This commit is contained in:
2024-10-01 17:33:08 +03:00
parent b89283fc91
commit d18eb3327e
44 changed files with 1048 additions and 993 deletions

View File

@@ -149,6 +149,7 @@ public class CloneSapforPackage extends AddObjectPass<SapforPackage> {
target.package_json.sapfor_drv = target.drv;
//--
//- заполнение testing_set
/*
for (SapforPackage_json srcPackage : src_jsons) {
//--
for (SapforTestingSet_json src : srcPackage.testingSets) {
@@ -158,9 +159,10 @@ public class CloneSapforPackage extends AddObjectPass<SapforPackage> {
if (!new_tasks.isEmpty()) {
target.package_json.testingSets.add(dst);
target.package_json.tasks.addAll(new_tasks);
}
} PerformAutoSapforTesting
}
}
*/
for (SapforTask task : target.package_json.tasks) {
task.id = target.package_json.getMaxTaskId();
}

View File

@@ -0,0 +1,10 @@
package Visual_DVM_2021.Passes.All;
import Common.Global;
import TestingSystem.Common.TestingServer;
import TestingSystem.DVM.DVMSettings.DVMSettings;
import Visual_DVM_2021.Passes.Server.DeleteServerObjects;
public class DeleteDVMSettings extends DeleteServerObjects<TestingServer, DVMSettings> {
public DeleteDVMSettings() {
super(Global.testingServer, DVMSettings.class);
}
}

View File

@@ -0,0 +1,10 @@
package Visual_DVM_2021.Passes.All;
import Common.Global;
import TestingSystem.Common.TestingServer;
import TestingSystem.DVM.DVMSettings.DVMSettings;
import Visual_DVM_2021.Passes.Server.EditServerObject;
public class EditDVMSettings extends EditServerObject<TestingServer, DVMSettings> {
public EditDVMSettings() {
super(Global.testingServer, DVMSettings.class);
}
}

View File

@@ -0,0 +1,11 @@
package Visual_DVM_2021.Passes.All;
import Common.Global;
import TestingSystem.Common.Settings.Settings;
import TestingSystem.Common.TestingServer;
import TestingSystem.DVM.DVMSettings.DVMSettings;
import Visual_DVM_2021.Passes.Server.PublishServerObject;
public class PublishDVMSettings extends PublishServerObject<TestingServer, DVMSettings> {
public PublishDVMSettings() {
super(Global.testingServer, DVMSettings.class);
}
}

View File

@@ -1,9 +1,29 @@
package Visual_DVM_2021.Passes.All;
import Common.Current;
import Common.Global;
import Common.UI.VisualCache.DVMConfigurationCache;
import Common.UI.VisualCache.VisualCaches;
import TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
import TestingSystem.DVM.DVMSettings.DVMSettings;
import TestingSystem.SAPFOR.SapforSettings.SapforSettings;
import Visual_DVM_2021.Passes.ShowCurrentConfigurationTests;
public class ShowCurrentDVMConfigurationTests extends ShowCurrentConfigurationTests {
import java.util.Vector;
public class ShowCurrentDVMConfigurationTests extends ShowCurrentConfigurationTests<DVMConfiguration> {
@Override
public Current currentName() {
return Current.DVMConfiguration;
}
@Override
protected void showDone() throws Exception {
super.showDone();
DVMConfigurationCache cache = (DVMConfigurationCache) VisualCaches.GetCache(target);
Vector<DVMSettings> settings = cache.getSettings();
for (DVMSettings s: settings)
s.Select(true);
//--
if (!settings.isEmpty()){
Global.testingServer.db.sapforSettings.ShowUI(settings.lastElement().id);
}
}
}

View File

@@ -2,7 +2,7 @@ package Visual_DVM_2021.Passes.All;
import Common.Current;
import Common.Global;
import Common.UI.UI;
import Common.UI.VisualCache.ConfigurationCache;
import Common.UI.VisualCache.DVMConfigurationCache;
import Common.UI.VisualCache.VisualCaches;
import Common.Utils.Utils;
import GlobalData.Compiler.CompilerType;
@@ -13,6 +13,7 @@ import TestingSystem.Common.Test.Test;
import TestingSystem.Common.TestingServer;
import TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMSettings.DVMSettings;
import TestingSystem.DVM.DVMTasks.DVMCompilationTask;
import TestingSystem.DVM.DVMTasks.DVMRunTask;
import Visual_DVM_2021.Passes.PassCode_2021;
@@ -21,12 +22,6 @@ import Visual_DVM_2021.Passes.Server.PublishServerObject;
import java.util.LinkedHashMap;
import java.util.Vector;
public class StartSelectedDVMConfigurations 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 StartSelectedDVMConfigurations() {
super(Global.testingServer, DVMPackage.class);
}
@@ -35,89 +30,11 @@ public class StartSelectedDVMConfigurations extends PublishServerObject<TestingS
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 = Global.testingServer.db.dvm_configurations.getCheckedOrCurrent();
groups = new Vector<>();
tests = new Vector<>();
testByGroups = new LinkedHashMap<>();
tasks = new Vector<>();
tasks_count = 0;
//---
if (!Current.getAccount().CheckRegistered(Log)) {
return false;
}
if (configurations.isEmpty()) {
Log.Writeln_("Не отмечено ни одной конфигурации, или отсутствует текущая конфигурация.");
return false;
}
if (!Current.Check(Log, Current.Machine, Current.User, Current.Compiler))
return false;
if (!Current.getMachine().type.equals(MachineType.Server)) {
@@ -134,50 +51,26 @@ public class StartSelectedDVMConfigurations extends PublishServerObject<TestingS
}
if (!Current.getCompiler().versionLoaded)
passes.get(PassCode_2021.ShowCompilerVersion).Do(Current.getCompiler(), false);
//--
int max_kernels = 1;
for (DVMConfiguration configuration : configurations){
max_kernels = Math.max(configuration.kernels, max_kernels);
//-----
Vector<DVMConfiguration> configurations = Global.testingServer.db.dvm_configurations.getCheckedOrCurrent();
if (configurations.isEmpty()) {
Log.Writeln_("Не отмечено ни одной конфигурации, или отсутствует текущая конфигурация.");
return false;
}
target = new DVMPackage(
//---
target= new DVMPackage(
Current.getAccount(),
Current.getMachine(),
Current.getUser(),
Current.getCompiler(),
max_kernels
);
for (DVMConfiguration configuration : configurations) {
ConfigurationCache cache = (ConfigurationCache) VisualCaches.GetCache(configuration);
groups = cache.getGroups();
tests = cache.getTests();
//-
for (Group group : groups) {
Vector<Test> groupTests = new Vector<>();
for (Test test : tests) {
if (test.group_id == group.id)
groupTests.add(test);
}
testByGroups.put(group.id, groupTests);
}
//--
for (Group group : groups) {
Vector<Test> groupTests = testByGroups.get(group.id);
for (Test test : groupTests)
tasks.addAll(createTasksCGT(configuration, group, test));
}
}
configurations,
Global.properties.EmailOnTestingProgress ? 1 : 0
);
//----
if (tasks_count == 0) {
if (target.tasksCount == 0) {
Log.Writeln_("Задач не найдено.");
return false;
}
if (UI.Question("Будет запущено " + tasks_count + " задач. Продолжить")){
target.saveConfigurationsAsJson(configurations);
target.saveTasks(tasks, tasks_count);
return true;
}
return false;
return UI.Question("Будет запущено " + target.tasksCount + " задач. Продолжить");
}
}

View File

@@ -41,6 +41,7 @@ public class SynchronizeTests extends TestingSystemPass<Object> {
server.db.dvmPackages.ClearUI();
server.db.sapforPackages.ClearUI();
server.db.sapforSettings.ClearUI();
server.db.dvmSettings.ClearUI();
}
@Override
protected void ServerAction() throws Exception {
@@ -68,6 +69,7 @@ public class SynchronizeTests extends TestingSystemPass<Object> {
server.db.dvmPackages.ShowUI();
server.db.sapforPackages.ShowUI();
server.db.sapforSettings.ShowUI();
server.db.dvmSettings.ShowUI();
server.db.RestoreLastSelections(); //---- ? объединить с RestoreCredentials
UI.getMainWindow().ShowCheckedTestsCount();
}

View File

@@ -348,25 +348,34 @@ public enum PassCode_2021 {
DeleteSapforSettings,
PublishSapforSettingsCommand,
EditSapforSettingsCommand,
DeleteSapforSettingsCommand
DeleteSapforSettingsCommand,
PublishDVMSettings,
EditDVMSettings,
DeleteDVMSettings
;
//--
public String getDescription() {
switch (this) {
case Undefined:
return "?";
case PublishDVMSettings:
return "Опубликовать параметры тестирования ";
case EditDVMSettings:
return "Редактировать параметры тестирования ";
case DeleteDVMSettings:
return "Удалить параметры тестирования";
case PublishSapforSettingsCommand:
return "Опубликовать команду настроек SAPFOR";
return "Опубликовать команду SAPFOR";
case EditSapforSettingsCommand:
return "Редактировать команду настроек SAPFOR";
return "Редактировать команду SAPFOR";
case DeleteSapforSettingsCommand:
return "Удалить команду настроек SAPFOR";
return "Удалить команду SAPFOR";
case PublishSapforSettings:
return "Опубликовать настройки SAPFOR";
return "Опубликовать параметры тестирования SAPFOR";
case EditSapforSettings:
return "Редактировать настройки SAPFOR";
return "Редактировать параметры тестирования SAPFOR";
case DeleteSapforSettings:
return "Удалить настройки SAPFOR";
return "Удалить параметры тестирования SAPFOR";
case CloneCurrentDVMConfiguration:
return "Дублировать текущую конфигурацию тестирования DVM системы";
case StartSelectedSAPFORConfigurations: