рефакторинг конфигураций тестирования сапфор. кнфигурация сделана как пара - набор тестов+ наборы настроек. наборы настроек стали отдельным объектом

This commit is contained in:
2024-09-28 21:47:17 +03:00
parent 4547fd10bd
commit b89283fc91
50 changed files with 338 additions and 590 deletions

59
.idea/workspace.xml generated
View File

@@ -7,33 +7,56 @@
</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/TestingSystem/Common/Settings/Settings.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/src/Common/UI/VisualCache/SapforConfigurationCache.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettings/SapforSettings.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Settings/Json/SettingsArrayJson.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettings/SapforSettingsBar.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Settings/Json/SettingsJson.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettings/SapforSettingsCommandsBar.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMSettings/DVMSettings.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettings/SapforSettingsDBTable.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettings/UI/SapforSettingsCommandFields.form" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettings/UI/SapforSettingsCommandFields.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettings/UI/SapforSettingsFields.form" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettings/UI/SapforSettingsFields.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettingsCommand/SapforSettingsCommand.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettingsCommand/SapforSettingsCommandsDBTable.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DeleteSapforSettings.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DeleteSapforSettingsCommand.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/EditSapforSettings.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/EditSapforSettingsCommand.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/PublishSapforSettings.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/PublishSapforSettingsCommand.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/Common/Current.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Current.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Common/Current.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Current.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/UI/UI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/UI.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Common/UI/UI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/UI.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/UI/VisualCache/ConfigurationCache.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/VisualCache/ConfigurationCache.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/UI/VisualCache/VisualCaches.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/VisualCache/VisualCaches.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/Configuration/Configuration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Configuration/Configuration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/Group/Json/GroupJson.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Group/Json/GroupJson.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/Settings/Settings.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Settings/Settings.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestsDatabase.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestsDatabase.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestsDatabase.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestsDatabase.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/SynchronizeTests.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/SynchronizeTests.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMConfiguration/DVMConfigurationDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMConfiguration/DVMConfigurationDBTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/Json/SapforConfiguration_json.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/Json/SapforConfiguration_json.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/Json/SapforPackage_json.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/Json/SapforPackage_json.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/Json/SapforTestingSet_json.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/Json/SapforTestingSet_json.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfiguration/SapforConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfiguration/SapforConfiguration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfiguration/SapforConfigurationDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfiguration/SapforConfigurationDBTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfiguration/UI/SapforConfigurationFields.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfiguration/UI/SapforConfigurationFields.form" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfiguration/UI/SapforConfigurationFields.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfiguration/UI/SapforConfigurationFields.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfigurationCommand/SapforConfigurationCommand.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfigurationCommand/SapforConfigurationCommandsDBTable.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfigurationCommand/SapforConfigurationCommandsMenuBar.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfigurationCommand/UI/SapforConfigurationCommandFields.form" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfigurationCommand/UI/SapforConfigurationCommandFields.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforPackage/SapforPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforPackage/SapforPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettings/SapforSettings.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettings/SapforSettings.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettings/SapforSettingsBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettings/SapforSettingsBar.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettings/SapforSettingsCommandsBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettingsCommand/SapforSettingsCommandsBar.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettings/SapforSettingsDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettings/SapforSettingsDBTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettingsCommand/SapforSettingsCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettingsCommand/SapforSettingsCommand.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettingsCommand/SapforSettingsCommandsDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforSettingsCommand/SapforSettingsCommandsDBTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DeleteSapforConfigurationCommand.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/EditSapforConfigurationCommand.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/EditSapforSettingsCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/EditSapforSettingsCommand.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/PublishSapforConfigurationCommand.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/PublishSapforSettingsCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/PublishSapforSettingsCommand.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/SaveCurrentDVMConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/SaveCurrentDVMConfiguration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/SaveCurrentSAPFORConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/SaveCurrentSAPFORConfiguration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ShowCurrentSAPFORConfigurationTests.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ShowCurrentSAPFORConfigurationTests.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/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/SaveCurrentConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/SaveCurrentConfiguration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/ShowCurrentConfigurationTests.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/ShowCurrentConfigurationTests.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/TestingForm.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/TestingForm.form" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/TestingForm.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/TestingForm.form" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/TestingForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/TestingForm.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/TestingForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/TestingForm.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/buffer_.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/buffer_.form" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/buffer_.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/buffer_.form" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/buffer_.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/buffer_.java" afterDir="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

@@ -342,9 +342,6 @@ public enum Current {
public static boolean CheckID(Current name, int id) { public static boolean CheckID(Current name, int id) {
return (get(name) != null) && (((iDBObject) get(name)).id == id); return (get(name) != null) && (((iDBObject) get(name)).id == id);
} }
public static TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand getSapforConfigurationCommand() {
return (TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand) get(Current.SapforConfigurationCommand);
}
public static boolean HasSapforProfile() { public static boolean HasSapforProfile() {
return get(Current.SapforProfile) != null; return get(Current.SapforProfile) != null;
} }

View File

@@ -1,5 +1,4 @@
package Common.UI; package Common.UI;
import Common.Constants;
import Common.Current; import Common.Current;
import Common.Database.DataSet; import Common.Database.DataSet;
import Common.Global; import Common.Global;
@@ -17,7 +16,6 @@ import Common.UI.Trees.GraphTreeCellRenderer;
import Common.UI.Trees.SelectionTreeCellRenderer; import Common.UI.Trees.SelectionTreeCellRenderer;
import Common.UI.Windows.FormType; import Common.UI.Windows.FormType;
import Common.UI.Windows.SearchReplaceForm; import Common.UI.Windows.SearchReplaceForm;
import Common.Utils.Index;
import Common.Utils.Utils; import Common.Utils.Utils;
import GlobalData.Compiler.CompilersDBTable; import GlobalData.Compiler.CompilersDBTable;
import GlobalData.Compiler.CompilersMenuBar; import GlobalData.Compiler.CompilersMenuBar;
@@ -76,11 +74,9 @@ import TestingSystem.DVM.DVMTasks.DVMRunTasksBar;
import TestingSystem.DVM.DVMTasks.DVMRunTasksSet; import TestingSystem.DVM.DVMTasks.DVMRunTasksSet;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable; import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationsMenuBar; import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationsMenuBar;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommandsDBTable;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommandsMenuBar;
import TestingSystem.SAPFOR.SapforPackage.SapforPackageDBTable; import TestingSystem.SAPFOR.SapforPackage.SapforPackageDBTable;
import TestingSystem.SAPFOR.SapforSettings.SapforSettingsBar; import TestingSystem.SAPFOR.SapforSettings.SapforSettingsBar;
import TestingSystem.SAPFOR.SapforSettings.SapforSettingsCommandsBar; import TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsCommandsBar;
import TestingSystem.SAPFOR.SapforSettings.SapforSettingsDBTable; import TestingSystem.SAPFOR.SapforSettings.SapforSettingsDBTable;
import TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsCommandsDBTable; import TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsCommandsDBTable;
import TestingSystem.SAPFOR.SapforTasksPackage.UI.SapforPackagesBar; import TestingSystem.SAPFOR.SapforTasksPackage.UI.SapforPackagesBar;
@@ -248,7 +244,6 @@ public class UI {
menuBars.put(RunTasksDBTable.class, new DataMenuBar("задачи на запуск")); menuBars.put(RunTasksDBTable.class, new DataMenuBar("задачи на запуск"));
//---->> //---->>
menuBars.put(SapforConfigurationDBTable.class, new SapforConfigurationsMenuBar()); menuBars.put(SapforConfigurationDBTable.class, new SapforConfigurationsMenuBar());
menuBars.put(SapforConfigurationCommandsDBTable.class, new SapforConfigurationCommandsMenuBar());
//---->> //---->>
menuBars.put(RegionsSet.class, new DataMenuBar("области распараллеливания")); menuBars.put(RegionsSet.class, new DataMenuBar("области распараллеливания"));
menuBars.put(ArraysSet.class, new DataMenuBar("массивы")); menuBars.put(ArraysSet.class, new DataMenuBar("массивы"));

View File

@@ -5,15 +5,20 @@ import TestingSystem.Common.Configuration.Configuration;
import TestingSystem.Common.Group.Group; import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Group.Json.GroupJson; import TestingSystem.Common.Group.Json.GroupJson;
import TestingSystem.Common.Group.Json.GroupsJson; import TestingSystem.Common.Group.Json.GroupsJson;
import TestingSystem.Common.Settings.Json.SettingsArrayJson;
import TestingSystem.Common.Settings.Json.SettingsJson;
import TestingSystem.Common.Test.Json.TestJson; import TestingSystem.Common.Test.Json.TestJson;
import TestingSystem.Common.Test.Json.TestsJson; import TestingSystem.Common.Test.Json.TestsJson;
import TestingSystem.Common.Test.Test; import TestingSystem.Common.Test.Test;
import java.util.LinkedHashMap;
import java.util.Vector; import java.util.Vector;
public class ConfigurationCache extends VisualCache{ public class ConfigurationCache extends VisualCache{
public GroupsJson groupsJson = null; public GroupsJson groupsJson = null;
public String groupsDescriptions = null;
public TestsJson testsJson = null; public TestsJson testsJson = null;
public SettingsArrayJson settingsJson = null;
public String settingsSummary = null;
public Vector<String> groupsSummary= null;
//-- //--
public ConfigurationCache(Configuration configuration) { public ConfigurationCache(Configuration configuration) {
if (configuration.packedGroupsJson.isEmpty()) { if (configuration.packedGroupsJson.isEmpty()) {
@@ -30,16 +35,38 @@ public class ConfigurationCache extends VisualCache{
testsJson = Utils.gson.fromJson(configuration.packedTestsJson, TestsJson.class); testsJson = Utils.gson.fromJson(configuration.packedTestsJson, TestsJson.class);
} }
//- //-
Vector<String> groupsDescriptionsVector = new Vector<>(); if (settingsJson == null) {
for (GroupJson groupJson : groupsJson.array) if (configuration.packedSettingsJson.isEmpty())
groupsDescriptionsVector.add(groupJson.description); settingsJson = new SettingsArrayJson(); //просто пустой
groupsDescriptions= String.join(";", groupsDescriptionsVector); else
settingsJson = Utils.gson.fromJson(configuration.packedSettingsJson, SettingsArrayJson.class);
}
//-
LinkedHashMap<String, Vector<String>> gmap = new LinkedHashMap<>();
for (GroupJson groupJson: groupsJson.array){
Vector<String> vector = null;
if (gmap.containsKey(groupJson.language)){
vector = gmap.get(groupJson.language);
}else {
vector = new Vector<>();
gmap.put(groupJson.language, vector);
}
vector.add(groupJson.description);
}
groupsSummary = new Vector<>();
for (String language: gmap.keySet()){
groupsSummary.add(language+": "+String.join(";", gmap.get(language)));
}
Vector<String> settingsDescriptionsVector = new Vector<>();
for (SettingsJson settingsJson : settingsJson.array)
settingsDescriptionsVector.add(settingsJson.description);
settingsSummary = String.join(";", settingsDescriptionsVector);
} }
public int getTestsCount() { public int getTestsCount() {
return testsJson.array.size(); return testsJson.array.size();
} }
public String getGroupsDescriptions() { public String getSettingsDescriptions() {
return groupsDescriptions; return settingsSummary;
} }
public Vector<Group> getGroups(){ public Vector<Group> getGroups(){
Vector<Group> groups = new Vector<>(); Vector<Group> groups = new Vector<>();

View File

@@ -0,0 +1,22 @@
package Common.UI.VisualCache;
import Common.Global;
import TestingSystem.Common.Configuration.Configuration;
import TestingSystem.Common.Settings.Json.SettingsJson;
import TestingSystem.Common.Test.Json.TestJson;
import TestingSystem.Common.Test.Test;
import TestingSystem.SAPFOR.SapforSettings.SapforSettings;
import java.util.Vector;
public class SapforConfigurationCache extends ConfigurationCache{
public SapforConfigurationCache(Configuration configuration) {
super(configuration);
}
public Vector<SapforSettings> getSettings(){
Vector<SapforSettings> res = new Vector<>();
for (SettingsJson settingsJson : settingsJson.array){
if (Global.testingServer.db.sapforSettings.containsKey(settingsJson.id))
res.add(Global.testingServer.db.sapforSettings.get(settingsJson.id));
}
return res;
}
}

View File

@@ -2,6 +2,8 @@ package Common.UI.VisualCache;
import Common.Database.DBObject; import Common.Database.DBObject;
import TestingSystem.Common.Configuration.Configuration; import TestingSystem.Common.Configuration.Configuration;
import TestingSystem.Common.TestingPackage.TestingPackage; import TestingSystem.Common.TestingPackage.TestingPackage;
import TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
//нужен для серверных объектов, чтобы в сокет не класть лишнего. //нужен для серверных объектов, чтобы в сокет не класть лишнего.
@@ -19,7 +21,9 @@ public class VisualCaches {
} }
//чтобы не трогать сами объекты и не сбить сериализацию //чтобы не трогать сами объекты и не сбить сериализацию
static VisualCache createCache(Object object) { static VisualCache createCache(Object object) {
if (object instanceof Configuration) if (object instanceof SapforConfiguration)
return new SapforConfigurationCache((Configuration) object);
if (object instanceof DVMConfiguration)
return new ConfigurationCache((Configuration) object); return new ConfigurationCache((Configuration) object);
if (object instanceof TestingPackage) if (object instanceof TestingPackage)
return new PackageCache((TestingPackage) object); return new PackageCache((TestingPackage) object);

View File

@@ -5,6 +5,8 @@ import Common.Utils.TextLog;
import Common.Utils.Utils; import Common.Utils.Utils;
import TestingSystem.Common.Group.Group; import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Group.Json.GroupsJson; import TestingSystem.Common.Group.Json.GroupsJson;
import TestingSystem.Common.Settings.Json.SettingsArrayJson;
import TestingSystem.Common.Settings.Settings;
import TestingSystem.Common.Test.Json.TestsJson; import TestingSystem.Common.Test.Json.TestsJson;
import TestingSystem.Common.Test.Test; import TestingSystem.Common.Test.Test;
import com.sun.org.glassfish.gmbal.Description; import com.sun.org.glassfish.gmbal.Description;
@@ -21,7 +23,6 @@ public class Configuration extends riDBObject {
public int maxtime = 300; public int maxtime = 300;
@Description("DEFAULT 0") @Description("DEFAULT 0")
public int autoTesting = 0; public int autoTesting = 0;
@Description("DEFAULT 1") @Description("DEFAULT 1")
public int kernels = 1; //ядра public int kernels = 1; //ядра
//---- //----
@@ -29,10 +30,10 @@ public class Configuration extends riDBObject {
return autoTesting > 0 ? "Да" : "Нет"; return autoTesting > 0 ? "Да" : "Нет";
} }
public void SwitchAuto() { public void SwitchAuto() {
autoTesting = (autoTesting == 0)? 1:0; autoTesting = (autoTesting == 0) ? 1 : 0;
} }
public ImageIcon GetAutoIcon() { public ImageIcon GetAutoIcon() {
return Utils.getIcon("/icons/" + (autoTesting==1 ? "RedPick" : "NotPick") + ".png"); return Utils.getIcon("/icons/" + (autoTesting == 1 ? "RedPick" : "NotPick") + ".png");
} }
//-- //--
public String getFlags() { public String getFlags() {
@@ -46,6 +47,8 @@ public class Configuration extends riDBObject {
public String packedGroupsJson = ""; public String packedGroupsJson = "";
@Description("DEFAULT ''") @Description("DEFAULT ''")
public String packedTestsJson = ""; public String packedTestsJson = "";
@Description("DEFAULT ''")
public String packedSettingsJson = "";
//-- //--
public void saveGroupsAsJson(Vector<Group> groups) { public void saveGroupsAsJson(Vector<Group> groups) {
packedGroupsJson = Utils.jsonToPrettyFormat(Utils.gson.toJson(new GroupsJson(groups))); packedGroupsJson = Utils.jsonToPrettyFormat(Utils.gson.toJson(new GroupsJson(groups)));
@@ -53,6 +56,9 @@ public class Configuration extends riDBObject {
public void saveTestsAsJson(Vector<Test> tests) { public void saveTestsAsJson(Vector<Test> tests) {
packedTestsJson = Utils.jsonToPrettyFormat(Utils.gson.toJson(new TestsJson(tests))); packedTestsJson = Utils.jsonToPrettyFormat(Utils.gson.toJson(new TestsJson(tests)));
} }
public void saveSettingsAsJson(Vector<Settings> settings) {
packedSettingsJson = Utils.jsonToPrettyFormat(Utils.gson.toJson(new SettingsArrayJson(settings)));
}
//-- //--
@Override @Override
public void SynchronizeFields(DBObject src) { public void SynchronizeFields(DBObject src) {
@@ -65,9 +71,10 @@ public class Configuration extends riDBObject {
//- //-
packedGroupsJson = c.packedGroupsJson; packedGroupsJson = c.packedGroupsJson;
packedTestsJson = c.packedTestsJson; packedTestsJson = c.packedTestsJson;
packedSettingsJson = c.packedSettingsJson;
} }
//- для автоматического тестирования главным образом. //- для автоматического тестирования главным образом.
public boolean validate(TextLog log){ public boolean validate(TextLog log) {
return true; return true;
} }
} }

View File

@@ -11,7 +11,8 @@ public class GroupJson {
public String language; public String language;
public GroupJson(Group group) { public GroupJson(Group group) {
id = group.id; id = group.id;
description = group.description + Utils.RBrackets(group.language.getDescription()); language = group.language.toString();
description = group.description;
} }
public GroupJson() { public GroupJson() {
} }

View File

@@ -0,0 +1,19 @@
package TestingSystem.Common.Settings.Json;
import TestingSystem.Common.Settings.Settings;
import com.google.gson.annotations.Expose;
import java.util.List;
import java.util.Vector;
public class SettingsArrayJson {
@Expose
public List<SettingsJson> array =new Vector<>();
public SettingsArrayJson(){
}
//при создании пакета.
public SettingsArrayJson(Vector<? extends Settings> settings_in){
array =new Vector<>();
for (Settings settings: settings_in)
array.add(new SettingsJson(settings));
}
}

View File

@@ -0,0 +1,15 @@
package TestingSystem.Common.Settings.Json;
import TestingSystem.Common.Settings.Settings;
import com.google.gson.annotations.Expose;
public class SettingsJson {
@Expose
public int id;
@Expose
public String description;
public SettingsJson(Settings settings) {
id = settings.id;
description = settings.description;
}
public SettingsJson() {
}
}

View File

@@ -1,7 +1,7 @@
package TestingSystem.Common.Settings; package TestingSystem.Common.Settings;
import Common.Database.DBObject; import Common.Database.DBObject;
import Common.Database.riDBObject; import Common.Database.riDBObject;
import TestingSystem.SAPFOR.SapforSettings.SapforSettings; import Common.Utils.TextLog;
//предопределенный набор настроек тестируемой системы. сохраняется для упрощения. //предопределенный набор настроек тестируемой системы. сохраняется для упрощения.
public abstract class Settings extends riDBObject { public abstract class Settings extends riDBObject {
public String flags=""; public String flags="";
@@ -11,4 +11,5 @@ public abstract class Settings extends riDBObject {
Settings s = (Settings) src; Settings s = (Settings) src;
flags=s.flags; flags=s.flags;
} }
public boolean validate(TextLog Log){return true;}
} }

View File

@@ -23,7 +23,6 @@ import TestingSystem.DVM.DVMPackage.DVMPackage_json;
import TestingSystem.DVM.DVMTestingChecker; import TestingSystem.DVM.DVMTestingChecker;
import TestingSystem.SAPFOR.Json.SapforPackage_json; import TestingSystem.SAPFOR.Json.SapforPackage_json;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration; import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand;
import TestingSystem.SAPFOR.SapforPackage.SapforPackage; import TestingSystem.SAPFOR.SapforPackage.SapforPackage;
import TestingSystem.SAPFOR.SapforSettings.SapforSettings; import TestingSystem.SAPFOR.SapforSettings.SapforSettings;
import TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsCommand; import TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsCommand;
@@ -94,17 +93,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
((ServerSapfor) object).home_path ((ServerSapfor) object).home_path
) )
); );
} else if (object instanceof SapforConfiguration) { } else if (object instanceof DVMPackage) {
SapforConfiguration sapforConfiguration = (SapforConfiguration) object;
Vector<SapforConfigurationCommand> commands = new Vector<>();
for (SapforConfigurationCommand command : db.sapforConfigurationCommands.Data.values()) {
if (command.sapforconfiguration_id == sapforConfiguration.id)
commands.add(command);
}
for (SapforConfigurationCommand command : commands) {
db.Delete(command);
}
} else if (object instanceof DVMPackage) {
DVMPackage dvmPackage = (DVMPackage) object; DVMPackage dvmPackage = (DVMPackage) object;
File workspace = dvmPackage.getLocalWorkspace(); File workspace = dvmPackage.getLocalWorkspace();
Utils.forceDeleteWithCheck(workspace); Utils.forceDeleteWithCheck(workspace);

View File

@@ -16,7 +16,6 @@ import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMPackage.DVMPackageDBTable; import TestingSystem.DVM.DVMPackage.DVMPackageDBTable;
import TestingSystem.DVM.DVMTasks.DVMRunTasksSet; import TestingSystem.DVM.DVMTasks.DVMRunTasksSet;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable; import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommandsDBTable;
import TestingSystem.SAPFOR.SapforPackage.SapforPackage; import TestingSystem.SAPFOR.SapforPackage.SapforPackage;
import TestingSystem.SAPFOR.SapforPackage.SapforPackageDBTable; import TestingSystem.SAPFOR.SapforPackage.SapforPackageDBTable;
import TestingSystem.SAPFOR.SapforSettings.SapforSettingsDBTable; import TestingSystem.SAPFOR.SapforSettings.SapforSettingsDBTable;
@@ -44,7 +43,6 @@ public class TestsDatabase extends SQLiteDatabase {
public TestingPackagesToKillDBTable testingPackagesToKill; public TestingPackagesToKillDBTable testingPackagesToKill;
//-- //--
public SapforConfigurationDBTable sapforConfigurations; public SapforConfigurationDBTable sapforConfigurations;
public SapforConfigurationCommandsDBTable sapforConfigurationCommands;
//---- //----
public ServerSapforsDBTable serverSapfors; public ServerSapforsDBTable serverSapfors;
//--- //---
@@ -65,7 +63,6 @@ public class TestsDatabase extends SQLiteDatabase {
addTable(testingPackagesToKill = new TestingPackagesToKillDBTable()); addTable(testingPackagesToKill = new TestingPackagesToKillDBTable());
//- //-
addTable(sapforConfigurations = new SapforConfigurationDBTable()); addTable(sapforConfigurations = new SapforConfigurationDBTable());
addTable(sapforConfigurationCommands = new SapforConfigurationCommandsDBTable());
addTable(serverSapfors = new ServerSapforsDBTable()); addTable(serverSapfors = new ServerSapforsDBTable());
addTable(sapforSettings = new SapforSettingsDBTable()); addTable(sapforSettings = new SapforSettingsDBTable());
addTable(sapforSettingsCommands = new SapforSettingsCommandsDBTable()); addTable(sapforSettingsCommands = new SapforSettingsCommandsDBTable());

View File

@@ -39,7 +39,8 @@ public class DVMConfigurationDBTable extends iDBTable<DVMConfiguration> {
} }
@Override @Override
protected void AdditionalInitColumns() { protected void AdditionalInitColumns() {
columns.get(5).setMaxWidth(300); columns.get(5).setRenderer(TableRenderers.RendererMultiline);
columns.get(5).setMaxWidth(500);
columns.get(7).setRenderer(TableRenderers.RendererMultiline); columns.get(7).setRenderer(TableRenderers.RendererMultiline);
columns.get(8).setRenderer(TableRenderers.RendererMultiline); columns.get(8).setRenderer(TableRenderers.RendererMultiline);
columns.get(15).setRenderer(TableRenderers.RendererMultiline); columns.get(15).setRenderer(TableRenderers.RendererMultiline);
@@ -77,7 +78,7 @@ public class DVMConfigurationDBTable extends iDBTable<DVMConfiguration> {
return object.kernels; return object.kernels;
case 5: case 5:
return cache.getGroupsDescriptions(); return cache.groupsSummary;
case 6: case 6:
return cache.getTestsCount(); return cache.getTestsCount();
//todo упростить. и флаги и окружение будут просто одной строкой. мульти не актуально. //todo упростить. и флаги и окружение будут просто одной строкой. мульти не актуально.

View File

@@ -0,0 +1,4 @@
package TestingSystem.DVM.DVMSettings;
import TestingSystem.Common.Settings.Settings;
public class DVMSettings extends Settings {
}

View File

@@ -6,6 +6,7 @@ import com.google.gson.annotations.Expose;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Vector; import java.util.Vector;
//на самом деле уже settings. конфиграция = группы + настройки
public class SapforConfiguration_json implements Serializable { public class SapforConfiguration_json implements Serializable {
@Expose @Expose
public int id = Constants.Nan; public int id = Constants.Nan;

View File

@@ -61,16 +61,6 @@ public class SapforPackage_json implements Serializable {
return names; return names;
} }
//-- //--
public boolean hasConfiguration(int configuration_id) {
for (SapforTestingSet_json set : testingSets) {
for (SapforConfiguration_json configuration : set.configurations) {
if (configuration.id == configuration_id)
return true;
}
}
return false;
}
//--
public void sortTasks() { public void sortTasks() {
tasks.sort(new Comparator<SapforTask>() { tasks.sort(new Comparator<SapforTask>() {
@Override @Override

View File

@@ -13,7 +13,7 @@ public class SapforTestingSet_json implements Serializable {
@Expose @Expose
public List<SapforTest_json> tests = new Vector<>(); public List<SapforTest_json> tests = new Vector<>();
@Expose @Expose
public List<SapforConfiguration_json> configurations = new Vector<>(); public List<SapforConfiguration_json> configurations = new Vector<>();//todo переименовать в настройки?
public Vector<SapforTask> createTasks() { public Vector<SapforTask> createTasks() {
Vector<SapforTask> tasks = new Vector<>(); Vector<SapforTask> tasks = new Vector<>();
//- //-

View File

@@ -1,4 +1,5 @@
package TestingSystem.SAPFOR.SapforConfiguration; package TestingSystem.SAPFOR.SapforConfiguration;
import Common.Constants;
import Common.Database.DBObject; import Common.Database.DBObject;
import Common.Global; import Common.Global;
import Common.UI.VisualCache.ConfigurationCache; import Common.UI.VisualCache.ConfigurationCache;
@@ -9,54 +10,12 @@ import ProjectData.LanguageName;
import TestingSystem.Common.Configuration.Configuration; import TestingSystem.Common.Configuration.Configuration;
import TestingSystem.Common.Group.Group; import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Test.Test; import TestingSystem.Common.Test.Test;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand; import TestingSystem.SAPFOR.SapforSettings.SapforSettings;
import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.PassCode_2021;
import com.sun.org.glassfish.gmbal.Description;
import java.util.Vector; import java.util.Vector;
public class SapforConfiguration extends Configuration { public class SapforConfiguration extends Configuration {
//настройки.
public int FREE_FORM = 0; //"Свободный выходной стиль"; -f90
public int STATIC_SHADOW_ANALYSIS = 0;//"Оптимизация теневых обменов"; -sh
public int MAX_SHADOW_WIDTH = 50; // "Максимальный размер теневых граней"; (%) -shwidth значение поля
public int KEEP_SPF_DIRECTIVES = 0; //"Сохранять SPF директивы при построении параллельных вариантов"; -keepSPF
public int KEEP_DVM_DIRECTIVES = 0;// "Учитывать DVM директивы"; -keepDVM
//----
@Override
public String getFlags() {
Vector<String> res = new Vector<>();
if (FREE_FORM > 0)
res.add("-f90");
if (STATIC_SHADOW_ANALYSIS > 0)
res.add("-sh");
if (MAX_SHADOW_WIDTH > 0)
res.add("-shwidth " + MAX_SHADOW_WIDTH);
if (KEEP_DVM_DIRECTIVES > 0)
res.add("-keepDVM");
if (KEEP_SPF_DIRECTIVES > 0)
res.add("-keepSPF");
return String.join(" ", res);
}
//-
public Vector<PassCode_2021> getPassCodes() {
Vector<PassCode_2021> res = new Vector<>();
for (SapforConfigurationCommand command : Global.testingServer.db.sapforConfigurationCommands.Data.values()) {
if (command.sapforconfiguration_id == id) {
res.add(command.passCode);
}
}
return res;
}
//--
@Override
public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src);
SapforConfiguration c = (SapforConfiguration) src;
FREE_FORM = c.FREE_FORM;
STATIC_SHADOW_ANALYSIS = c.STATIC_SHADOW_ANALYSIS;
MAX_SHADOW_WIDTH = c.MAX_SHADOW_WIDTH;
KEEP_SPF_DIRECTIVES = c.KEEP_SPF_DIRECTIVES;
KEEP_DVM_DIRECTIVES = c.KEEP_DVM_DIRECTIVES;
}
public SapforConfiguration(SapforConfiguration sapforConfiguration) { public SapforConfiguration(SapforConfiguration sapforConfiguration) {
this.SynchronizeFields(sapforConfiguration); this.SynchronizeFields(sapforConfiguration);
} }
@@ -64,43 +23,17 @@ public class SapforConfiguration extends Configuration {
} }
@Override @Override
public boolean validate(TextLog Log) { public boolean validate(TextLog Log) {
//1. проверка цепочки команд на корректность
Vector<PassCode_2021> codes = Global.testingServer.db.sapforConfigurationCommands.getCodes(this);
if (codes.size() == 0) {
Log.Writeln_("Конфигурация:" + id + " не содержит ни одного прохода.");
return false;
}
int first = 0;
int last = codes.size() - 1;
Vector<PassCode_2021> matches = new Vector<>();
for (int i = 0; i < codes.size(); ++i) {
PassCode_2021 code = codes.get(i);
if (code.isSapforStart()) {
if (i > first) {
Log.Writeln_("Неверная конфигурация:" + id + ": проход" +
Utils.Brackets(code.getDescription()) +
" может быть только первым!");
}
}
if (code.isSapforTerminal()) {
if (i < last) {
Log.Writeln_("Неверная конфигурация:" + id + ": проход " +
Utils.Brackets(code.getDescription()) +
" может быть только последним!");
}
}
if (matches.contains(code)) {
Log.Writeln_("Неверная конфигурация:" + id + ": проход " +
Utils.Brackets(code.getDescription()) +
" запрещено применять более одного раза!");
} else matches.add(code);
}
//2. Проверка входящих групп на единственный язык фортран
ConfigurationCache cache = (ConfigurationCache) VisualCaches.GetCache(this); ConfigurationCache cache = (ConfigurationCache) VisualCaches.GetCache(this);
//-- //--
Vector<Group> groups = cache.getGroups(); Vector<Group> groups = cache.getGroups();
Vector<LanguageName> groupsLanguages = new Vector<>(); Vector<LanguageName> groupsLanguages = new Vector<>();
Vector<SapforSettings> settingsArray= new Vector<>();
//- //-
//1. проверка цепочек команд на корректность
for (SapforSettings sapforSettings: settingsArray){
sapforSettings.validate(Log);
}
//2. Проверка входящих групп на единственный язык фортран
for (Group group : groups) { for (Group group : groups) {
if (!groupsLanguages.contains(group.language)) if (!groupsLanguages.contains(group.language))
groupsLanguages.add(group.language); groupsLanguages.add(group.language);

View File

@@ -10,7 +10,6 @@ import Common.UI.Windows.Dialog.DBObjectDialog;
import Common.Utils.Utils; import Common.Utils.Utils;
import Common.Utils.Vector_; import Common.Utils.Vector_;
import TestingSystem.SAPFOR.SapforConfiguration.UI.SapforConfigurationFields; import TestingSystem.SAPFOR.SapforConfiguration.UI.SapforConfigurationFields;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Vector; import java.util.Vector;
@@ -39,11 +38,13 @@ public class SapforConfigurationDBTable extends iDBTable<SapforConfiguration> {
} }
@Override @Override
protected void AdditionalInitColumns() { protected void AdditionalInitColumns() {
columns.get(5).setRenderer(TableRenderers.RendererAutoConfiguration); columns.get(4).setRenderer(TableRenderers.RendererAutoConfiguration);
columns.get(5).setEditor(TableEditors.EditorAutoConfiguration); columns.get(4).setEditor(TableEditors.EditorAutoConfiguration);
columns.get(5).setMinWidth(25); columns.get(4).setMinWidth(25);
columns.get(5).setMaxWidth(25); columns.get(4).setMaxWidth(25);
columns.get(6).setMaxWidth(300); columns.get(6).setMaxWidth(500);
columns.get(7).setRenderer(TableRenderers.RendererMultiline);
columns.get(7).setMaxWidth(500);
} }
}; };
} }
@@ -52,11 +53,11 @@ public class SapforConfigurationDBTable extends iDBTable<SapforConfiguration> {
return new String[]{ return new String[]{
"имя", "имя",
"автор", "автор",
"ядра",
"", "",
"ядра",
"параметры",
"группы", "группы",
"тестов", "тестов"
"флаги",
}; };
} }
@Override @Override
@@ -68,15 +69,15 @@ public class SapforConfigurationDBTable extends iDBTable<SapforConfiguration> {
case 3: case 3:
return object.sender_name; return object.sender_name;
case 4: case 4:
return object.kernels;
case 5:
return object.printAuto(); return object.printAuto();
case 5:
return object.kernels;
case 6: case 6:
return cache.getGroupsDescriptions(); return cache.getSettingsDescriptions();
case 7: case 7:
return cache.getTestsCount(); return cache.groupsSummary;
case 8: case 8:
return object.getFlags(); return cache.getTestsCount();
default: default:
return null; return null;
} }
@@ -87,11 +88,11 @@ public class SapforConfigurationDBTable extends iDBTable<SapforConfiguration> {
return new DBObjectDialog<SapforConfiguration, SapforConfigurationFields>(SapforConfigurationFields.class) { return new DBObjectDialog<SapforConfiguration, SapforConfigurationFields>(SapforConfigurationFields.class) {
@Override @Override
public int getDefaultHeight() { public int getDefaultHeight() {
return 415; return 200;
} }
@Override @Override
public int getDefaultWidth() { public int getDefaultWidth() {
return 600; return 450;
} }
@Override @Override
public void validateFields() { public void validateFields() {
@@ -99,21 +100,11 @@ public class SapforConfigurationDBTable extends iDBTable<SapforConfiguration> {
@Override @Override
public void fillFields() { public void fillFields() {
fields.tfName.setText(Result.description); fields.tfName.setText(Result.description);
fields.cbFREE_FORM.setSelected(Result.FREE_FORM != 0);
fields.cbKEEP_DVM_DIRECTIVES.setSelected(Result.KEEP_DVM_DIRECTIVES != 0);
fields.cbKEEP_SPF_DIRECTIVES.setSelected(Result.KEEP_SPF_DIRECTIVES != 0);
fields.cbSTATIC_SHADOW_ANALYSIS.setSelected(Result.STATIC_SHADOW_ANALYSIS != 0);
fields.sMAX_SHADOW_WIDTH.setValue(Result.MAX_SHADOW_WIDTH);
fields.sKernels.setValue(Result.kernels); fields.sKernels.setValue(Result.kernels);
} }
@Override @Override
public void ProcessResult() { public void ProcessResult() {
Result.description = fields.tfName.getText(); Result.description = fields.tfName.getText();
Result.FREE_FORM = Utils.fromBoolean(fields.cbFREE_FORM.isSelected());
Result.KEEP_DVM_DIRECTIVES = Utils.fromBoolean(fields.cbKEEP_DVM_DIRECTIVES.isSelected());
Result.KEEP_SPF_DIRECTIVES = Utils.fromBoolean(fields.cbKEEP_SPF_DIRECTIVES.isSelected());
Result.STATIC_SHADOW_ANALYSIS = Utils.fromBoolean(fields.cbSTATIC_SHADOW_ANALYSIS.isSelected());
Result.MAX_SHADOW_WIDTH = fields.sMAX_SHADOW_WIDTH.getValue();
Result.kernels = (int) fields.sKernels.getValue(); Result.kernels = (int) fields.sKernels.getValue();
} }
@Override @Override
@@ -123,12 +114,6 @@ public class SapforConfigurationDBTable extends iDBTable<SapforConfiguration> {
} }
}; };
} }
@Override
public LinkedHashMap<Class<? extends DBObject>, FKBehaviour> getFKDependencies() {
LinkedHashMap<Class<? extends DBObject>, FKBehaviour> res = new LinkedHashMap<>();
res.put(SapforConfigurationCommand.class, new FKBehaviour(FKDataBehaviour.DELETE, FKCurrentObjectBehaviuor.ACTIVE));
return res;
}
public Vector<SapforConfiguration> getAutoConfigurations() { public Vector<SapforConfiguration> getAutoConfigurations() {
Vector<SapforConfiguration> res = new Vector_<>(); Vector<SapforConfiguration> res = new Vector_<>();
for (SapforConfiguration configuration : Data.values()) { for (SapforConfiguration configuration : Data.values()) {

View File

@@ -3,12 +3,12 @@
<grid id="27dc6" binding="content" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1"> <grid id="27dc6" binding="content" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/> <margin top="0" left="0" bottom="0" right="0"/>
<constraints> <constraints>
<xy x="20" y="20" width="883" height="400"/> <xy x="20" y="20" width="342" height="160"/>
</constraints> </constraints>
<properties/> <properties/>
<border type="none"/> <border type="none"/>
<children> <children>
<grid id="d1d6e" layout-manager="GridLayoutManager" row-count="9" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1"> <grid id="d1d6e" layout-manager="GridLayoutManager" row-count="3" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/> <margin top="0" left="0" bottom="0" right="0"/>
<constraints> <constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/> <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
@@ -19,7 +19,7 @@
<component id="3257b" class="javax.swing.JLabel"> <component id="3257b" class="javax.swing.JLabel">
<constraints> <constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="2" use-parent-layout="false"> <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="2" use-parent-layout="false">
<preferred-size width="284" height="20"/> <preferred-size width="99" height="20"/>
</grid> </grid>
</constraints> </constraints>
<properties> <properties>
@@ -29,11 +29,23 @@
</component> </component>
<vspacer id="224d6"> <vspacer id="224d6">
<constraints> <constraints>
<grid row="8" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"> <grid row="2" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false">
<preferred-size width="284" height="14"/> <preferred-size width="99" height="14"/>
</grid> </grid>
</constraints> </constraints>
</vspacer> </vspacer>
<component id="1eea4" class="javax.swing.JLabel">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="2" use-parent-layout="false">
<preferred-size width="99" height="20"/>
</grid>
</constraints>
<properties>
<font name="Times New Roman" size="16" style="2"/>
<text value="ядра"/>
<toolTipText value="количество ядер, задействованное при тестировани"/>
</properties>
</component>
<component id="ecbf1" class="javax.swing.JTextField" binding="tfName" custom-create="true"> <component id="ecbf1" class="javax.swing.JTextField" binding="tfName" custom-create="true">
<constraints> <constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false"> <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
@@ -44,95 +56,6 @@
</constraints> </constraints>
<properties/> <properties/>
</component> </component>
<component id="b644a" class="javax.swing.JCheckBox" binding="cbFREE_FORM">
<constraints>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false">
<preferred-size width="284" height="25"/>
</grid>
</constraints>
<properties>
<font name="Times New Roman" size="14" style="2"/>
<icon value="icons/NotPick.png"/>
<selectedIcon value="icons/Pick.png"/>
<text value="Свободный выходной стиль"/>
</properties>
</component>
<component id="7721e" class="javax.swing.JCheckBox" binding="cbKEEP_SPF_DIRECTIVES">
<constraints>
<grid row="5" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false">
<preferred-size width="284" height="25"/>
</grid>
</constraints>
<properties>
<font name="Times New Roman" size="14" style="2"/>
<icon value="icons/NotPick.png"/>
<selectedIcon value="icons/Pick.png"/>
<text value="Сохранять SPF директивы"/>
</properties>
</component>
<component id="f44c1" class="javax.swing.JLabel">
<constraints>
<grid row="6" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="3" use-parent-layout="false">
<preferred-size width="284" height="17"/>
</grid>
</constraints>
<properties>
<font name="Times New Roman" size="14" style="2"/>
<text value="Максимальный размер теневых граней, %"/>
</properties>
</component>
<component id="54e77" class="javax.swing.JCheckBox" binding="cbSTATIC_SHADOW_ANALYSIS">
<constraints>
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false">
<preferred-size width="284" height="25"/>
</grid>
</constraints>
<properties>
<font name="Times New Roman" size="14" style="2"/>
<icon value="icons/NotPick.png"/>
<selectedIcon value="icons/Pick.png"/>
<text value="Оптимизация теневых обменов"/>
</properties>
</component>
<component id="4e865" class="javax.swing.JCheckBox" binding="cbKEEP_DVM_DIRECTIVES">
<constraints>
<grid row="4" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false">
<preferred-size width="284" height="25"/>
</grid>
</constraints>
<properties>
<font name="Times New Roman" size="14" style="2"/>
<icon value="icons/NotPick.png"/>
<selectedIcon value="icons/Pick.png"/>
<text value="Учитывать DVM директивы"/>
</properties>
</component>
<component id="14243" class="javax.swing.JSlider" binding="sMAX_SHADOW_WIDTH">
<constraints>
<grid row="7" column="0" row-span="1" col-span="2" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<minimum-size width="500" height="40"/>
<preferred-size width="500" height="40"/>
<maximum-size width="500" height="40"/>
</grid>
</constraints>
<properties>
<majorTickSpacing value="25"/>
<minorTickSpacing value="1"/>
<paintLabels value="true"/>
<paintTicks value="true"/>
<snapToTicks value="false"/>
</properties>
</component>
<component id="1eea4" class="javax.swing.JLabel">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="2" use-parent-layout="false"/>
</constraints>
<properties>
<font name="Times New Roman" size="16" style="2"/>
<text value="ядра"/>
<toolTipText value="количество ядер, задействованное при тестировани"/>
</properties>
</component>
<component id="2a173" class="javax.swing.JSpinner" binding="sKernels"> <component id="2a173" class="javax.swing.JSpinner" binding="sKernels">
<constraints> <constraints>
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false"> <grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">

View File

@@ -9,11 +9,6 @@ public class SapforConfigurationFields implements DialogFields {
private JPanel content; private JPanel content;
public JTextField tfName; public JTextField tfName;
public JSpinner sTransformationMaxtime; public JSpinner sTransformationMaxtime;
public JCheckBox cbFREE_FORM;
public JSlider sMAX_SHADOW_WIDTH;
public JCheckBox cbSTATIC_SHADOW_ANALYSIS;
public JCheckBox cbKEEP_SPF_DIRECTIVES;
public JCheckBox cbKEEP_DVM_DIRECTIVES;
public JSpinner sKernels; public JSpinner sKernels;
//-- //--
@Override @Override

View File

@@ -1,28 +0,0 @@
package TestingSystem.SAPFOR.SapforConfigurationCommand;
import Common.Constants;
import Common.Current;
import Common.Database.DBObject;
import Common.Database.riDBObject;
import Visual_DVM_2021.Passes.PassCode_2021;
import com.sun.org.glassfish.gmbal.Description;
public class SapforConfigurationCommand extends riDBObject {
@Description("DEFAULT -1")
public int sapforconfiguration_id = Constants.Nan;
public PassCode_2021 passCode = PassCode_2021.SPF_RemoveDvmDirectives;
@Override
public boolean isVisible() {
return Current.HasSapforConfiguration() && (Current.getSapforConfiguration().id == sapforconfiguration_id);
}
@Override
public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src);
SapforConfigurationCommand c = (SapforConfigurationCommand) src;
sapforconfiguration_id = c.sapforconfiguration_id;
passCode = c.passCode;
}
public SapforConfigurationCommand() {
}
public SapforConfigurationCommand(SapforConfigurationCommand sapforConfigurationCommand) {
this.SynchronizeFields(sapforConfigurationCommand);
}
}

View File

@@ -1,82 +0,0 @@
package TestingSystem.SAPFOR.SapforConfigurationCommand;
import Common.Current;
import Common.Database.iDBTable;
import Common.UI.DataSetControlForm;
import Common.UI.UI;
import Common.UI.Windows.Dialog.DBObjectDialog;
import TestingSystem.Common.Configuration.Configuration;
import TestingSystem.SAPFOR.SapforConfigurationCommand.UI.SapforConfigurationCommandFields;
import Visual_DVM_2021.Passes.PassCode_2021;
import java.util.Vector;
public class SapforConfigurationCommandsDBTable extends iDBTable<SapforConfigurationCommand> {
public SapforConfigurationCommandsDBTable() {
super(SapforConfigurationCommand.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(0).setVisible(false);
}
};
}
@Override
public String[] getUIColumnNames() {
return new String[]{
"Проход"
};
}
@Override
public Object getFieldAt(SapforConfigurationCommand object, int columnIndex) {
switch (columnIndex) {
case 2:
return object.passCode.getDescription();
default:
return null;
}
}
@Override
public Current CurrentName() {
return Current.SapforConfigurationCommand;
}
@Override
public DBObjectDialog<SapforConfigurationCommand, SapforConfigurationCommandFields> getDialog() {
return new DBObjectDialog<SapforConfigurationCommand, SapforConfigurationCommandFields>(SapforConfigurationCommandFields.class) {
@Override
public int getDefaultHeight() {
return 250;
}
@Override
public void fillFields() {
UI.TrySelect(fields.cbPassCode, Result.passCode);
}
@Override
public void ProcessResult() {
Result.passCode = (PassCode_2021) fields.cbPassCode.getSelectedItem();
Result.sapforconfiguration_id = Current.getSapforConfiguration().id;
}
};
}
public Vector<PassCode_2021> getCodes(Configuration configuration) {
Vector<PassCode_2021> res = new Vector<>();
for (SapforConfigurationCommand command : Data.values()) {
if (command.sapforconfiguration_id == configuration.id)
res.add(command.passCode);
}
return res;
}
}

View File

@@ -1,12 +0,0 @@
package TestingSystem.SAPFOR.SapforConfigurationCommand;
import Common.UI.Menus_2023.DataMenuBar;
import Visual_DVM_2021.Passes.PassCode_2021;
public class SapforConfigurationCommandsMenuBar extends DataMenuBar {
public SapforConfigurationCommandsMenuBar() {
super("команды",
PassCode_2021.PublishSapforConfigurationCommand,
PassCode_2021.EditSapforConfigurationCommand,
PassCode_2021.DeleteSapforConfigurationCommand
);
}
}

View File

@@ -1,35 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="TestingSystem.SAPFOR.SapforConfigurationCommand.UI.SapforConfigurationCommandFields">
<grid id="27dc6" binding="content" layout-manager="GridLayoutManager" row-count="2" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<xy x="20" y="20" width="500" height="400"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<component id="97a3c" class="javax.swing.JLabel">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="2" use-parent-layout="false"/>
</constraints>
<properties>
<font name="Times New Roman" size="16" style="2"/>
<text value="проход"/>
</properties>
</component>
<vspacer id="7e4ea">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
</constraints>
</vspacer>
<component id="e95d0" class="javax.swing.JComboBox" binding="cbPassCode" custom-create="true">
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="8" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<toolTipText value="выберите проход"/>
</properties>
</component>
</children>
</grid>
</form>

View File

@@ -1,32 +0,0 @@
package TestingSystem.SAPFOR.SapforConfigurationCommand.UI;
import Common.Current;
import Common.UI.Tables.StyledCellLabel;
import Common.UI.Windows.Dialog.DialogFields;
import Repository.Component.Sapfor.Sapfor;
import Visual_DVM_2021.Passes.PassCode_2021;
import javax.swing.*;
import java.awt.*;
public class SapforConfigurationCommandFields implements DialogFields {
private JPanel content;
public JComboBox<PassCode_2021> cbPassCode;
@Override
public Component getContent() {
return content;
}
private void createUIComponents() {
// TODO: place custom component creation code here
cbPassCode = new JComboBox<>();
cbPassCode.setRenderer((list, value, index, isSelected, cellHasFocus) -> {
JLabel res = new StyledCellLabel();
res.setText(value.getDescription());
res.setBackground(isSelected ?
Current.getTheme().selection_background : Current.getTheme().background
);
return res;
});
//-
for (PassCode_2021 code : Sapfor.getScenariosCodes())
cbPassCode.addItem(code);
}
}

View File

@@ -4,6 +4,7 @@ import Common.Current;
import Common.Database.DBObject; import Common.Database.DBObject;
import Common.Global; import Common.Global;
import Common.UI.VisualCache.ConfigurationCache; import Common.UI.VisualCache.ConfigurationCache;
import Common.UI.VisualCache.SapforConfigurationCache;
import Common.UI.VisualCache.VisualCaches; import Common.UI.VisualCache.VisualCaches;
import Common.Utils.TextLog; import Common.Utils.TextLog;
import Common.Utils.Utils; import Common.Utils.Utils;
@@ -16,6 +17,7 @@ import TestingSystem.SAPFOR.Json.SapforPackage_json;
import TestingSystem.SAPFOR.Json.SapforTest_json; import TestingSystem.SAPFOR.Json.SapforTest_json;
import TestingSystem.SAPFOR.Json.SapforTestingSet_json; import TestingSystem.SAPFOR.Json.SapforTestingSet_json;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration; import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
import TestingSystem.SAPFOR.SapforSettings.SapforSettings;
import TestingSystem.SAPFOR.SapforTask.SapforTask; import TestingSystem.SAPFOR.SapforTask.SapforTask;
import TestingSystem.SAPFOR.ServerSapfor.ServerSapfor; import TestingSystem.SAPFOR.ServerSapfor.ServerSapfor;
import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.PassCode_2021;
@@ -155,20 +157,25 @@ public class SapforPackage extends TestingPackage<SapforPackage_json> {
testingSet.tests.add(test_json); testingSet.tests.add(test_json);
} }
for (SapforConfiguration configuration : configurations) { for (SapforConfiguration configuration : configurations) {
SapforConfigurationCache cache = (SapforConfigurationCache) VisualCaches.GetCache(configuration);
Vector<SapforSettings> settingsVector=cache.getSettings();
//-- //--
SapforConfiguration_json configuration_json = new SapforConfiguration_json(); for (SapforSettings sapforSettings: settingsVector) {
configuration_json.id = configuration.id; //--
configuration_json.name = configuration.description; SapforConfiguration_json settings_json = new SapforConfiguration_json();
configuration_json.flags = configuration.getFlags(); settings_json.id = sapforSettings.id;
Vector<PassCode_2021> codes = configuration.getPassCodes(); settings_json.name = sapforSettings.description;
//--- коррекцию кода нельзя вызвать если инклуды есть. в общем случае. settings_json.flags = sapforSettings.flags;
if (!codes.firstElement().equals(PassCode_2021.SPF_InsertIncludesPass)) Vector<PassCode_2021> codes = sapforSettings.getCodes();
configuration_json.codes.add(PassCode_2021.SPF_CorrectCodeStylePass); //всегда добавляется. //--- коррекцию кода нельзя вызвать если инклуды есть. в общем случае.
//-- if (!codes.firstElement().equals(PassCode_2021.SPF_InsertIncludesPass))
configuration_json.codes.addAll(codes); settings_json.codes.add(PassCode_2021.SPF_CorrectCodeStylePass); //всегда добавляется.
//--->> //--
testingSet.configurations.add(configuration_json); settings_json.codes.addAll(codes);
//-->> //--->>
testingSet.configurations.add(settings_json);
//-->>
}
} }
new_tasks = getActualTestingSetTasks(testingSet); new_tasks = getActualTestingSetTasks(testingSet);
saveConfigurationsAsJson(configurations); saveConfigurationsAsJson(configurations);

View File

@@ -1,6 +1,11 @@
package TestingSystem.SAPFOR.SapforSettings; package TestingSystem.SAPFOR.SapforSettings;
import Common.Database.DBObject; import Common.Database.DBObject;
import Common.Global;
import Common.Utils.TextLog;
import Common.Utils.Utils;
import TestingSystem.Common.Settings.Settings; import TestingSystem.Common.Settings.Settings;
import TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsCommand;
import Visual_DVM_2021.Passes.PassCode_2021;
import java.util.Vector; import java.util.Vector;
public class SapforSettings extends Settings { public class SapforSettings extends Settings {
@@ -25,7 +30,7 @@ public class SapforSettings extends Settings {
if (KEEP_SPF_DIRECTIVES > 0) if (KEEP_SPF_DIRECTIVES > 0)
res.add("-keepSPF"); res.add("-keepSPF");
//-- //--
flags= String.join(" ", res); flags = String.join(" ", res);
} }
//-- //--
@Override @Override
@@ -41,5 +46,52 @@ public class SapforSettings extends Settings {
public SapforSettings(SapforSettings sapforSettings) { public SapforSettings(SapforSettings sapforSettings) {
this.SynchronizeFields(sapforSettings); this.SynchronizeFields(sapforSettings);
} }
public SapforSettings(){} public SapforSettings() {
}
public Vector<PassCode_2021> getCodes() {
Vector<PassCode_2021> res = new Vector<>();
for (SapforSettingsCommand command : Global.testingServer.db.sapforSettingsCommands.Data.values())
if (command.sapforsettings_id == id) res.add(command.passCode);
return res;
}
@Override
public boolean validate(TextLog Log) {
boolean res = true;
Vector<PassCode_2021> codes = getCodes();
if (codes.size() == 0) {
Log.Writeln_("Настройки:" + id + " не содержат ни одного прохода.");
return false;
}
//-
int first = 0;
int last = codes.size() - 1;
Vector<PassCode_2021> matches = new Vector<>();
for (int i = 0; i < codes.size(); ++i) {
PassCode_2021 code = codes.get(i);
if (code.isSapforStart()) {
if (i > first) {
Log.Writeln_("Неверные настройки:" + id + ": проход" +
Utils.Brackets(code.getDescription()) +
" может быть только первым!");
res=false;
}
}
if (code.isSapforTerminal()) {
if (i < last) {
Log.Writeln_("Неверные настройки:" + id + ": проход " +
Utils.Brackets(code.getDescription()) +
" может быть только последним!");
res= false;
}
}
if (matches.contains(code)) {
Log.Writeln_("Неверные настройки:" + id + ": проход " +
Utils.Brackets(code.getDescription()) +
" запрещено применять более одного раза!");
res=false;
} else matches.add(code);
}
//-
return res;
}
} }

View File

@@ -3,7 +3,7 @@ import Common.UI.Menus_2023.DataMenuBar;
import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.PassCode_2021;
public class SapforSettingsBar extends DataMenuBar { public class SapforSettingsBar extends DataMenuBar {
public SapforSettingsBar() { public SapforSettingsBar() {
super("настройки", super("параметры тестирования",
PassCode_2021.PublishSapforSettings, PassCode_2021.PublishSapforSettings,
PassCode_2021.EditSapforSettings, PassCode_2021.EditSapforSettings,
PassCode_2021.DeleteSapforSettings PassCode_2021.DeleteSapforSettings

View File

@@ -18,11 +18,11 @@ public class SapforSettingsDBTable extends iDBTable<SapforSettings> {
} }
@Override @Override
public String getSingleDescription() { public String getSingleDescription() {
return "настройки системы SAPFOR"; return "параметры тестирования системы SAPFOR";
} }
@Override @Override
public String getPluralDescription() { public String getPluralDescription() {
return "настройки системы SAPFOR"; return "параметры тестирования системы SAPFOR";
} }
@Override @Override
protected DataSetControlForm createUI() { protected DataSetControlForm createUI() {

View File

@@ -3,7 +3,6 @@ import Common.Constants;
import Common.Current; import Common.Current;
import Common.Database.DBObject; import Common.Database.DBObject;
import Common.Database.riDBObject; import Common.Database.riDBObject;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand;
import TestingSystem.SAPFOR.SapforSettings.SapforSettings; import TestingSystem.SAPFOR.SapforSettings.SapforSettings;
import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.PassCode_2021;
import com.sun.org.glassfish.gmbal.Description; import com.sun.org.glassfish.gmbal.Description;

View File

@@ -1,4 +1,4 @@
package TestingSystem.SAPFOR.SapforSettings; package TestingSystem.SAPFOR.SapforSettingsCommand;
import Common.UI.Menus_2023.DataMenuBar; import Common.UI.Menus_2023.DataMenuBar;
import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.PassCode_2021;
public class SapforSettingsCommandsBar extends DataMenuBar { public class SapforSettingsCommandsBar extends DataMenuBar {

View File

@@ -4,8 +4,6 @@ import Common.Database.iDBTable;
import Common.UI.DataSetControlForm; import Common.UI.DataSetControlForm;
import Common.UI.UI; import Common.UI.UI;
import Common.UI.Windows.Dialog.DBObjectDialog; import Common.UI.Windows.Dialog.DBObjectDialog;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand;
import TestingSystem.SAPFOR.SapforConfigurationCommand.UI.SapforConfigurationCommandFields;
import TestingSystem.SAPFOR.SapforSettings.SapforSettings; import TestingSystem.SAPFOR.SapforSettings.SapforSettings;
import TestingSystem.SAPFOR.SapforSettings.UI.SapforSettingsCommandFields; import TestingSystem.SAPFOR.SapforSettings.UI.SapforSettingsCommandFields;
import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.PassCode_2021;

View File

@@ -168,7 +168,7 @@ public class SapforTask extends DBObject {
@Override @Override
public String toString() { public String toString() {
return return
"#" + id + " группа " + Utils.Brackets(group_description) + " тест " + Utils.Brackets(test_description) + " конфигурация " + Utils.Brackets(sapfor_configuration_id); "#" + id + " группа " + Utils.Brackets(group_description) + " тест " + Utils.Brackets(test_description) + " параметры " + Utils.Brackets(sapfor_configuration_id);
// getUniqueKey(); // getUniqueKey();
} }
public String getPassesInfo() { public String getPassesInfo() {

View File

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

View File

@@ -1,11 +0,0 @@
package Visual_DVM_2021.Passes.All;
import Common.Global;
import TestingSystem.Common.TestingServer;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand;
import Visual_DVM_2021.Passes.Server.EditServerObject;
public class EditSapforConfigurationCommand extends EditServerObject<TestingServer,SapforConfigurationCommand> {
public EditSapforConfigurationCommand() {
super(Global.testingServer,SapforConfigurationCommand.class);
}
}

View File

@@ -1,7 +1,6 @@
package Visual_DVM_2021.Passes.All; package Visual_DVM_2021.Passes.All;
import Common.Global; import Common.Global;
import TestingSystem.Common.TestingServer; import TestingSystem.Common.TestingServer;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand;
import TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsCommand; import TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsCommand;
import Visual_DVM_2021.Passes.Server.EditServerObject; import Visual_DVM_2021.Passes.Server.EditServerObject;
public class EditSapforSettingsCommand extends EditServerObject<TestingServer, SapforSettingsCommand> { public class EditSapforSettingsCommand extends EditServerObject<TestingServer, SapforSettingsCommand> {

View File

@@ -1,20 +0,0 @@
package Visual_DVM_2021.Passes.All;
import Common.Current;
import Common.Global;
import TestingSystem.Common.TestingServer;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand;
import Visual_DVM_2021.Passes.Server.PublishServerObject;
public class PublishSapforConfigurationCommand extends PublishServerObject<TestingServer, SapforConfigurationCommand> {
public PublishSapforConfigurationCommand() {
super(Global.testingServer, SapforConfigurationCommand.class);
}
@Override
public boolean fillObjectFields() throws Exception {
target.sapforconfiguration_id = Current.getSapforConfiguration().id;
return super.fillObjectFields();
}
@Override
protected boolean canStart(Object... args) throws Exception {
return Current.Check(Log, Current.SapforConfiguration)&&super.canStart(args);
}
}

View File

@@ -2,7 +2,6 @@ package Visual_DVM_2021.Passes.All;
import Common.Current; import Common.Current;
import Common.Global; import Common.Global;
import TestingSystem.Common.TestingServer; import TestingSystem.Common.TestingServer;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand;
import TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsCommand; import TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsCommand;
import Visual_DVM_2021.Passes.Server.PublishServerObject; import Visual_DVM_2021.Passes.Server.PublishServerObject;
public class PublishSapforSettingsCommand extends PublishServerObject<TestingServer, SapforSettingsCommand> { public class PublishSapforSettingsCommand extends PublishServerObject<TestingServer, SapforSettingsCommand> {

View File

@@ -1,17 +1,11 @@
package Visual_DVM_2021.Passes.All; package Visual_DVM_2021.Passes.All;
import Common.Current; import Common.Current;
import Common.Global;
import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Test.Test;
import TestingSystem.Common.TestingServer;
import TestingSystem.DVM.DVMConfiguration.DVMConfiguration; import TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
import TestingSystem.DVM.DVMSettings.DVMSettings;
import Visual_DVM_2021.Passes.SaveCurrentConfiguration; import Visual_DVM_2021.Passes.SaveCurrentConfiguration;
import Visual_DVM_2021.Passes.Server.EditServerObject; public class SaveCurrentDVMConfiguration extends SaveCurrentConfiguration<DVMConfiguration, DVMSettings> {
import java.util.Vector;
public class SaveCurrentDVMConfiguration extends SaveCurrentConfiguration<DVMConfiguration> {
public SaveCurrentDVMConfiguration() { public SaveCurrentDVMConfiguration() {
super(DVMConfiguration.class); super(DVMConfiguration.class, DVMSettings.class);
} }
@Override @Override
public Current currentName() { public Current currentName() {

View File

@@ -1,11 +1,11 @@
package Visual_DVM_2021.Passes.All; package Visual_DVM_2021.Passes.All;
import Common.Current; import Common.Current;
import TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration; import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
import TestingSystem.SAPFOR.SapforSettings.SapforSettings;
import Visual_DVM_2021.Passes.SaveCurrentConfiguration; import Visual_DVM_2021.Passes.SaveCurrentConfiguration;
public class SaveCurrentSAPFORConfiguration extends SaveCurrentConfiguration<SapforConfiguration> { public class SaveCurrentSAPFORConfiguration extends SaveCurrentConfiguration<SapforConfiguration, SapforSettings> {
public SaveCurrentSAPFORConfiguration() { public SaveCurrentSAPFORConfiguration() {
super(SapforConfiguration.class); super(SapforConfiguration.class, SapforSettings.class);
} }
@Override @Override
public Current currentName() { public Current currentName() {

View File

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

View File

@@ -274,10 +274,6 @@ public enum PassCode_2021 {
EditSapforConfiguration, EditSapforConfiguration,
DeleteSapforConfiguration, DeleteSapforConfiguration,
//- //-
PublishSapforConfigurationCommand,
EditSapforConfigurationCommand,
DeleteSapforConfigurationCommand,
//->
OpenSapforEtalonVersion, OpenSapforEtalonVersion,
OpenSapforVersion, OpenSapforVersion,
PublishServerSapfor, PublishServerSapfor,
@@ -538,12 +534,6 @@ public enum PassCode_2021 {
return "Установить тип для отмеченных файлов"; return "Установить тип для отмеченных файлов";
case DeleteDownloadedBugReports: case DeleteDownloadedBugReports:
return "Удалить загруженные отчёты об ошибках"; return "Удалить загруженные отчёты об ошибках";
case DeleteSapforConfigurationCommand:
return "Удалить команду конфигурации тестирования Sapfor";
case EditSapforConfigurationCommand:
return "Редактировать команду конфигурации тестирования Sapfor";
case PublishSapforConfigurationCommand:
return "Опубликовать команду конфигурации тестирования Sapfor";
case PublishSapforConfiguration: case PublishSapforConfiguration:
return "Опубликовать конфигурацию тестирования SAPFOR"; return "Опубликовать конфигурацию тестирования SAPFOR";
case EditSapforConfiguration: case EditSapforConfiguration:

View File

@@ -1,23 +1,23 @@
package Visual_DVM_2021.Passes; package Visual_DVM_2021.Passes;
import Common.Current; import Common.Current;
import Common.Global; import Common.Global;
import Common.UI.UI;
import Common.UI.VisualCache.ConfigurationCache;
import Common.UI.VisualCache.VisualCaches;
import Common.Utils.Utils;
import TestingSystem.Common.Configuration.Configuration; import TestingSystem.Common.Configuration.Configuration;
import TestingSystem.Common.Group.Group; import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Settings.Settings;
import TestingSystem.Common.Test.Test; import TestingSystem.Common.Test.Test;
import TestingSystem.Common.TestingServer; import TestingSystem.Common.TestingServer;
import Visual_DVM_2021.Passes.Server.EditServerObject; import Visual_DVM_2021.Passes.Server.EditServerObject;
import java.util.Vector; import java.util.Vector;
public abstract class SaveCurrentConfiguration<C extends Configuration> extends EditServerObject<TestingServer, C> { public abstract class SaveCurrentConfiguration<C extends Configuration, S extends Settings> extends EditServerObject<TestingServer, C> {
Vector<Group> groups; Vector<Group> groups;
Vector<Test> tests; Vector<Test> tests;
Class<S> s;
Vector<Settings> settings;
//-- //--
public SaveCurrentConfiguration(Class<C> d_in) { public SaveCurrentConfiguration(Class<C> d_in, Class<S> s_in) {
super(Global.testingServer, d_in); super(Global.testingServer, d_in);
s =s_in;
} }
@Override @Override
public String getIconPath() { public String getIconPath() {
@@ -31,12 +31,16 @@ public abstract class SaveCurrentConfiguration<C extends Configuration> extends
//-- //--
groups = new Vector<>(); groups = new Vector<>();
tests = new Vector<>(); tests = new Vector<>();
settings= new Vector<>();
//--- //---
for (Group group : Global.testingServer.db.groups.getCheckedItems()) { for (Group group : Global.testingServer.db.groups.getCheckedItems()) {
groups.add(group); groups.add(group);
Vector<Test> groupTests = Global.testingServer.db.tests.getSelectedGroupTests(group); Vector<Test> groupTests = Global.testingServer.db.tests.getSelectedGroupTests(group);
tests.addAll(groupTests); tests.addAll(groupTests);
} }
for (Object setting: Global.testingServer.db.tables.get(s).getCheckedItems()){
settings.add((Settings) setting);
}
return true; return true;
} }
@Override @Override
@@ -44,6 +48,7 @@ public abstract class SaveCurrentConfiguration<C extends Configuration> extends
//занесение информации об участвующих группах конфигурациях и тестах //занесение информации об участвующих группах конфигурациях и тестах
target.saveGroupsAsJson(groups); target.saveGroupsAsJson(groups);
target.saveTestsAsJson(tests); target.saveTestsAsJson(tests);
target.saveSettingsAsJson(settings);
//-- //--
super.ServerAction(); super.ServerAction();
} }

View File

@@ -8,7 +8,7 @@ import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Test.Test; import TestingSystem.Common.Test.Test;
import java.util.Vector; import java.util.Vector;
public abstract class ShowCurrentConfigurationTests extends Pass_2021<Configuration> { public abstract class ShowCurrentConfigurationTests<C extends Configuration> extends Pass_2021<C> {
@Override @Override
public String getIconPath() { public String getIconPath() {
return "/icons/ShowPassword.png"; return "/icons/ShowPassword.png";
@@ -22,7 +22,7 @@ public abstract class ShowCurrentConfigurationTests extends Pass_2021<Configurat
protected boolean canStart(Object... args) throws Exception { protected boolean canStart(Object... args) throws Exception {
target = null; target = null;
if (Current.Check(Log, currentName())) { if (Current.Check(Log, currentName())) {
target = (Configuration) Current.get(currentName()); target = (C) Current.get(currentName());
return true; return true;
} }
return false; return false;

View File

@@ -396,32 +396,12 @@
<properties/> <properties/>
<border type="none"/> <border type="none"/>
<children> <children>
<splitpane id="c70f1" binding="SC81"> <grid id="6109f" binding="sapforConfigurationsPanel" layout-manager="BorderLayout" hgap="0" vgap="0">
<constraints border-constraint="Center"/> <constraints border-constraint="Center"/>
<properties> <properties/>
<dividerLocation value="500"/>
<dividerSize value="3"/>
</properties>
<border type="none"/> <border type="none"/>
<children> <children/>
<grid id="2f93b" binding="sapforConfigurationsPanel" layout-manager="BorderLayout" hgap="0" vgap="0"> </grid>
<constraints>
<splitpane position="left"/>
</constraints>
<properties/>
<border type="none"/>
<children/>
</grid>
<grid id="3f00d" binding="sapforConfigurationCommandsPanel" layout-manager="BorderLayout" hgap="0" vgap="0">
<constraints>
<splitpane position="right"/>
</constraints>
<properties/>
<border type="none"/>
<children/>
</grid>
</children>
</splitpane>
</children> </children>
</grid> </grid>
<grid id="1ee44" layout-manager="BorderLayout" hgap="0" vgap="0"> <grid id="1ee44" layout-manager="BorderLayout" hgap="0" vgap="0">

View File

@@ -35,7 +35,6 @@ public class TestingForm implements FormWithSplitters, TestingWindow {
public JSplitPane SC18; public JSplitPane SC18;
public JSplitPane SC19; public JSplitPane SC19;
public JSplitPane SC80; public JSplitPane SC80;
public JSplitPane SC81;
public JSplitPane SC83; public JSplitPane SC83;
//--- //---
private JTabbedPane testingTabs; private JTabbedPane testingTabs;
@@ -54,7 +53,6 @@ public class TestingForm implements FormWithSplitters, TestingWindow {
private JPanel sapforConfigurationsPanel; private JPanel sapforConfigurationsPanel;
private JLabel sapforConfigurationsLabel; private JLabel sapforConfigurationsLabel;
private JLabel sapforConfigurationsCommandsLabel; private JLabel sapforConfigurationsCommandsLabel;
private JPanel sapforConfigurationCommandsPanel;
private JPanel sapforScenariosPanel; private JPanel sapforScenariosPanel;
private JPanel serverSapforsPanel; private JPanel serverSapforsPanel;
private JPanel sapforPackagesPanel; private JPanel sapforPackagesPanel;
@@ -134,7 +132,6 @@ public class TestingForm implements FormWithSplitters, TestingWindow {
Global.testingServer.db.dvmPackages.mountUI(dvmPackagesPanel); Global.testingServer.db.dvmPackages.mountUI(dvmPackagesPanel);
Global.testingServer.db.dvmRunTasks.mountUI(dvmRunTasksPanel); Global.testingServer.db.dvmRunTasks.mountUI(dvmRunTasksPanel);
Global.testingServer.db.sapforConfigurations.mountUI(sapforConfigurationsPanel); Global.testingServer.db.sapforConfigurations.mountUI(sapforConfigurationsPanel);
Global.testingServer.db.sapforConfigurationCommands.mountUI(sapforConfigurationCommandsPanel);
Global.testingServer.db.serverSapfors.mountUI(serverSapforsPanel); Global.testingServer.db.serverSapfors.mountUI(serverSapforsPanel);
Global.testingServer.db.sapforPackages.mountUI(sapforPackagesPanel); Global.testingServer.db.sapforPackages.mountUI(sapforPackagesPanel);
Global.testingServer.db.sapforSettings.mountUI(sapforSettingsPanel); Global.testingServer.db.sapforSettings.mountUI(sapforSettingsPanel);

View File

@@ -6,6 +6,13 @@
</constraints> </constraints>
<properties/> <properties/>
<border type="none"/> <border type="none"/>
<children/> <children>
<grid id="a1635" binding="sapforConfigurationsPanel" layout-manager="BorderLayout" hgap="0" vgap="0">
<constraints border-constraint="Center"/>
<properties/>
<border type="none"/>
<children/>
</grid>
</children>
</grid> </grid>
</form> </form>

View File

@@ -2,5 +2,6 @@ package Visual_DVM_2021.UI.Main;
import javax.swing.*; import javax.swing.*;
public class buffer_ { public class buffer_ {
private JPanel panel1; private JPanel panel1;
private JPanel sapforConfigurationsPanel;
//Скачать пакет задач //Скачать пакет задач
} }