diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 7cb527a5..72792799 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -7,52 +7,47 @@ - - - - + + + + + + + + + + - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + - - diff --git a/src/Common/Constants.java b/src/Common/Constants.java index dc815e30..a52ceb1f 100644 --- a/src/Common/Constants.java +++ b/src/Common/Constants.java @@ -477,7 +477,7 @@ public class Constants { public static String all_forbidden_characters_string = ""; public static Vector admins_mails = new Vector_<>( - "vmk-post@yandex.ru", - "79854210702@ya.ru" + "vmk-post@yandex.ru" + // "79854210702@ya.ru" ); } diff --git a/src/Common/Current.java b/src/Common/Current.java index 3c51938e..344bfc70 100644 --- a/src/Common/Current.java +++ b/src/Common/Current.java @@ -101,7 +101,6 @@ public enum Current { //- PackageVersion, SapforConfiguration, - SapforConfigurationCommand, SapforProfile, SapforProfileSetting, //-- @@ -109,7 +108,8 @@ public enum Current { SubscriberWorkspace, DVMRunTask, SapforSettings, - SapforSettingsCommand + SapforSettingsCommand, + DVMSettings, ; //- private static final LinkedHashMap objects = new LinkedHashMap<>(); @@ -383,10 +383,12 @@ public enum Current { //-------------------------------------------- public String getDescription() { switch (this) { + case DVMSettings: + return "Параметры тестирования DVM системы"; case SapforSettings: - return "Настройки системы SAPFOR"; + return "Параметры тестирования системы SAPFOR"; case SapforSettingsCommand: - return "Команда настроек тестирования SAPFOR"; + return "Команда SAPFOR"; case DVMRunTask: return "Задача DVM тестирования"; case SapforPackage: @@ -413,8 +415,6 @@ public enum Current { return "Адресат"; case SelectedFunction: return "Выбранный узел графа процедур"; - case SapforConfigurationCommand: - return "Команда конфигурации тестирования SAPFOR"; case SapforConfiguration: return "Конфигурация тестирования SAPFOR"; case PackageVersion: diff --git a/src/Common/UI/UI.java b/src/Common/UI/UI.java index d8547291..3d171ebe 100644 --- a/src/Common/UI/UI.java +++ b/src/Common/UI/UI.java @@ -70,6 +70,8 @@ import TestingSystem.DVM.DVMConfiguration.DVMConfigurationDBTable; import TestingSystem.DVM.DVMConfiguration.DVMConfigurationsMenuBar; import TestingSystem.DVM.DVMPackage.DVMPackageDBTable; import TestingSystem.DVM.DVMPackage.DVMPackagesBar; +import TestingSystem.DVM.DVMSettings.DVMSettingsDBTable; +import TestingSystem.DVM.DVMSettings.UI.DVMSettingsBar; import TestingSystem.DVM.DVMTasks.DVMRunTasksBar; import TestingSystem.DVM.DVMTasks.DVMRunTasksSet; import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable; @@ -259,6 +261,7 @@ public class UI { menuBars.put(ServerSapforsDBTable.class, new ServerSapforsBar()); menuBars.put(SapforSettingsDBTable.class, new SapforSettingsBar()); menuBars.put(SapforSettingsCommandsDBTable.class, new SapforSettingsCommandsBar()); + menuBars.put(DVMSettingsDBTable.class, new DVMSettingsBar()); //---->> } public static void CreateWindows() { diff --git a/src/Common/UI/VisualCache/ConfigurationCache.java b/src/Common/UI/VisualCache/ConfigurationCache.java index f6a24b96..d89ea324 100644 --- a/src/Common/UI/VisualCache/ConfigurationCache.java +++ b/src/Common/UI/VisualCache/ConfigurationCache.java @@ -13,18 +13,17 @@ import TestingSystem.Common.Test.Test; import java.util.LinkedHashMap; import java.util.Vector; -public class ConfigurationCache extends VisualCache{ +public class ConfigurationCache extends VisualCache { public GroupsJson groupsJson = null; public TestsJson testsJson = null; public SettingsArrayJson settingsJson = null; public String settingsSummary = null; - public Vector groupsSummary= null; + public Vector groupsSummary = null; //-- public ConfigurationCache(Configuration configuration) { if (configuration.packedGroupsJson.isEmpty()) { groupsJson = new GroupsJson(); //просто пустой - } - else { + } else { groupsJson = Utils.gson.fromJson(configuration.packedGroupsJson, GroupsJson.class); } //-- @@ -43,19 +42,19 @@ public class ConfigurationCache extends VisualCache{ } //- LinkedHashMap> gmap = new LinkedHashMap<>(); - for (GroupJson groupJson: groupsJson.array){ + for (GroupJson groupJson : groupsJson.array) { Vector vector = null; - if (gmap.containsKey(groupJson.language)){ + if (gmap.containsKey(groupJson.language)) { vector = gmap.get(groupJson.language); - }else { + } 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))); + for (String language : gmap.keySet()) { + groupsSummary.add(language + ": " + String.join(";", gmap.get(language))); } Vector settingsDescriptionsVector = new Vector<>(); for (SettingsJson settingsJson : settingsJson.array) @@ -65,23 +64,31 @@ public class ConfigurationCache extends VisualCache{ public int getTestsCount() { return testsJson.array.size(); } - public String getSettingsDescriptions() { - return settingsSummary; - } - public Vector getGroups(){ + public Vector getGroups() { Vector groups = new Vector<>(); - for (GroupJson groupJson : groupsJson.array){ + for (GroupJson groupJson : groupsJson.array) { if (Global.testingServer.db.groups.containsKey(groupJson.id)) groups.add(Global.testingServer.db.groups.get(groupJson.id)); } return groups; } - public Vector getTests(){ + public Vector getTests() { Vector tests = new Vector<>(); - for (TestJson testJson : testsJson.array){ + for (TestJson testJson : testsJson.array) { if (Global.testingServer.db.tests.containsKey(testJson.id)) tests.add(Global.testingServer.db.tests.get(testJson.id)); } return tests; } + public Vector getGroupTests(Group group) { + Vector tests = new Vector<>(); + for (TestJson testJson : testsJson.array) { + if (Global.testingServer.db.tests.containsKey(testJson.id)) { + Test test = Global.testingServer.db.tests.get(testJson.id); + if (test.group_id == group.id) + tests.add(test); + } + } + return tests; + } } diff --git a/src/Common/UI/VisualCache/DVMConfigurationCache.java b/src/Common/UI/VisualCache/DVMConfigurationCache.java new file mode 100644 index 00000000..13b8b810 --- /dev/null +++ b/src/Common/UI/VisualCache/DVMConfigurationCache.java @@ -0,0 +1,20 @@ +package Common.UI.VisualCache; +import Common.Global; +import TestingSystem.Common.Configuration.Configuration; +import TestingSystem.Common.Settings.Json.SettingsJson; +import TestingSystem.DVM.DVMSettings.DVMSettings; + +import java.util.Vector; +public class DVMConfigurationCache extends ConfigurationCache{ + public DVMConfigurationCache(Configuration configuration) { + super(configuration); + } + public Vector getSettings(){ + Vector res = new Vector<>(); + for (SettingsJson settingsJson : settingsJson.array){ + if (Global.testingServer.db.dvmSettings.containsKey(settingsJson.id)) + res.add(Global.testingServer.db.dvmSettings.get(settingsJson.id)); + } + return res; + } +} diff --git a/src/Common/UI/VisualCache/VisualCaches.java b/src/Common/UI/VisualCache/VisualCaches.java index 270f839c..233560ec 100644 --- a/src/Common/UI/VisualCache/VisualCaches.java +++ b/src/Common/UI/VisualCache/VisualCaches.java @@ -24,7 +24,7 @@ public class VisualCaches { if (object instanceof SapforConfiguration) return new SapforConfigurationCache((Configuration) object); if (object instanceof DVMConfiguration) - return new ConfigurationCache((Configuration) object); + return new DVMConfigurationCache((Configuration) object); if (object instanceof TestingPackage) return new PackageCache((TestingPackage) object); return new VisualCache(); diff --git a/src/TestingSystem/Common/Configuration/Configuration.java b/src/TestingSystem/Common/Configuration/Configuration.java index 5e2d0caa..0cca1873 100644 --- a/src/TestingSystem/Common/Configuration/Configuration.java +++ b/src/TestingSystem/Common/Configuration/Configuration.java @@ -36,13 +36,6 @@ public class Configuration extends riDBObject { return Utils.getIcon("/icons/" + (autoTesting == 1 ? "RedPick" : "NotPick") + ".png"); } //-- - public String getFlags() { - return ""; - } - public Vector getFlagsArray() { - return new Vector<>(); - } - //-- @Description("DEFAULT ''") public String packedGroupsJson = ""; @Description("DEFAULT ''") diff --git a/src/TestingSystem/Common/TestingServer.java b/src/TestingSystem/Common/TestingServer.java index 1bff573f..d129b117 100644 --- a/src/TestingSystem/Common/TestingServer.java +++ b/src/TestingSystem/Common/TestingServer.java @@ -613,6 +613,8 @@ public class TestingServer extends RepositoryServer { account.email = Constants.MailAddress; //- int sapforId = Integer.parseInt(request.arg); + System.out.println("Sapfor_id = "+request.arg); + if (!db.serverSapfors.containsKey(sapforId)) { Log.Writeln_("Версия SAPFOR " + sapforId + " не существует."); return; diff --git a/src/TestingSystem/Common/TestsDatabase.java b/src/TestingSystem/Common/TestsDatabase.java index 1cf4ea5f..cb90a3d3 100644 --- a/src/TestingSystem/Common/TestsDatabase.java +++ b/src/TestingSystem/Common/TestsDatabase.java @@ -14,6 +14,7 @@ import TestingSystem.Common.TestingPackageToKill.TestingPackagesToKillDBTable; import TestingSystem.DVM.DVMConfiguration.DVMConfigurationDBTable; import TestingSystem.DVM.DVMPackage.DVMPackage; import TestingSystem.DVM.DVMPackage.DVMPackageDBTable; +import TestingSystem.DVM.DVMSettings.DVMSettingsDBTable; import TestingSystem.DVM.DVMTasks.DVMRunTasksSet; import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable; import TestingSystem.SAPFOR.SapforPackage.SapforPackage; @@ -50,6 +51,7 @@ public class TestsDatabase extends SQLiteDatabase { public SapforSettingsDBTable sapforSettings; public SapforSettingsCommandsDBTable sapforSettingsCommands; //-- + public DVMSettingsDBTable dvmSettings; public TestsDatabase() { super(Paths.get(System.getProperty("user.dir"), "Data", Constants.tests_db_name + ".sqlite").toFile()); } @@ -66,6 +68,7 @@ public class TestsDatabase extends SQLiteDatabase { addTable(serverSapfors = new ServerSapforsDBTable()); addTable(sapforSettings = new SapforSettingsDBTable()); addTable(sapforSettingsCommands = new SapforSettingsCommandsDBTable()); + addTable(dvmSettings=new DVMSettingsDBTable()); } @Override public PassCode_2021 getSynchronizePassCode() { diff --git a/src/TestingSystem/DVM/DVMConfiguration/DVMConfiguration.java b/src/TestingSystem/DVM/DVMConfiguration/DVMConfiguration.java index 2f43a994..ee01cfeb 100644 --- a/src/TestingSystem/DVM/DVMConfiguration/DVMConfiguration.java +++ b/src/TestingSystem/DVM/DVMConfiguration/DVMConfiguration.java @@ -7,96 +7,12 @@ import TestingSystem.Common.Configuration.Configuration; import java.util.Vector; //конфгурация тестирования ДВМ public class DVMConfiguration extends Configuration { - //компиляция. - public String flags = "\n"; public int c_maxtime = 40; - //матрица - public int cube = 0; // - public int max_proc_count = 4; - public int min_dim_proc_count = 1; - public int max_dim_proc_count = 4; - //запуск - public String environments="\n"; - public String usr_par = ""; - //- - //под флагами понимается в данном случае набор цепочек флагов запакованных через энтер. - // скорее всего будет лишь одна цепочка. с окружением похожая ситуация. - @Override - public String getFlags() { - return flags; - } - @Override - public Vector getFlagsArray() { - return Utils.unpackStrings(flags); - } - //- - public Vector getEnvironments() { - return Utils.unpackStrings(environments); - } - public Vector getParams() { - return Utils.unpackStrings(usr_par); - } - public Vector getMatrixes(int testDim) { - Vector> res_ = new Vector<>(); - Vector res = new Vector<>(); - if ((max_proc_count==0) || (min_dim_proc_count == 0 && max_dim_proc_count == 0)) { - res.add(""); - } else { - if (testDim > 0) { - Vector min_border = new Vector<>(); - Vector max_border = new Vector<>(); - for (int i = 1; i <= testDim; ++i) { - min_border.add(String.valueOf(min_dim_proc_count)); - max_border.add(String.valueOf(max_dim_proc_count)); - } - Vector from = RunConfiguration.getBounds(String.join(" ", min_border)); - Vector to = RunConfiguration.getBounds(String.join(" ", max_border)); - if (from.size() != to.size()) { - return res; - } - if (from.size() != testDim) { - return res; - } - //1 стадия. заполнение. - for (int j = from.get(0); j <= to.get(0); ++j) { - Vector m = new Vector<>(); - res_.add(m); - m.add(j); - } - //--- - if (testDim > 1) RunConfiguration.gen_rec(from, to, res_, 1, testDim, cube == 1); - for (Vector m : res_) { - Vector ms = new Vector<>(); - int proc = 1; - for (int i : m) { - ms.add(String.valueOf(i)); - proc *= i; - } - if (proc <= max_proc_count) - res.add(String.join(" ", ms)); - } - } else res.add(""); - } - return res; - } - public String getParamsText() { - Vector params = getParams(); - if ((params.size() == 1) && params.get(0).isEmpty()) return ""; - return String.join("\n", params); - } - //- @Override public void SynchronizeFields(DBObject src) { super.SynchronizeFields(src); DVMConfiguration c = (DVMConfiguration) src; - flags = c.flags; c_maxtime=c.c_maxtime; - cube= c.cube; - max_proc_count=c.max_proc_count; - min_dim_proc_count=c.min_dim_proc_count; - max_dim_proc_count=c.max_dim_proc_count; - environments=c.environments; - usr_par=c.usr_par; } public DVMConfiguration(DVMConfiguration src){ this.SynchronizeFields(src); diff --git a/src/TestingSystem/DVM/DVMConfiguration/DVMConfigurationDBTable.java b/src/TestingSystem/DVM/DVMConfiguration/DVMConfigurationDBTable.java index af827aac..389c3e7d 100644 --- a/src/TestingSystem/DVM/DVMConfiguration/DVMConfigurationDBTable.java +++ b/src/TestingSystem/DVM/DVMConfiguration/DVMConfigurationDBTable.java @@ -2,17 +2,11 @@ package TestingSystem.DVM.DVMConfiguration; import Common.Current; import Common.Database.DBObject; import Common.Database.iDBTable; -import Common.Global; import Common.UI.DataSetControlForm; -import Common.UI.Tables.DBObjectSelector; -import Common.UI.Tables.TableEditors; import Common.UI.Tables.TableRenderers; import Common.UI.VisualCache.ConfigurationCache; -import Common.UI.VisualCache.VisualCache; import Common.UI.VisualCache.VisualCaches; -import Common.UI.VisualiserStringList; import Common.UI.Windows.Dialog.DBObjectDialog; -import Common.Utils.Utils; import TestingSystem.DVM.DVMConfiguration.UI.ConfigurationFields; public class DVMConfigurationDBTable extends iDBTable { public DVMConfigurationDBTable() { @@ -39,11 +33,8 @@ public class DVMConfigurationDBTable extends iDBTable { } @Override protected void AdditionalInitColumns() { - columns.get(5).setRenderer(TableRenderers.RendererMultiline); - columns.get(5).setMaxWidth(500); - columns.get(7).setRenderer(TableRenderers.RendererMultiline); - columns.get(8).setRenderer(TableRenderers.RendererMultiline); - columns.get(15).setRenderer(TableRenderers.RendererMultiline); + columns.get(6).setRenderer(TableRenderers.RendererMultiline); + columns.get(6).setMaxWidth(500); } }; } @@ -53,17 +44,11 @@ public class DVMConfigurationDBTable extends iDBTable { "имя", "автор", "ядра", + "параметры", "группы", "тестов", - "флаги", - "окружение", - "c_time", - "куб", - "max", - "min dim", - "max dim", - "r_time", - "usr.par" + "компиляция(с)", + "запуск(с)" }; } @Override @@ -76,32 +61,16 @@ public class DVMConfigurationDBTable extends iDBTable { return object.sender_name; case 4: return object.kernels; - case 5: - return cache.groupsSummary; + return cache.settingsSummary; case 6: - return cache.getTestsCount(); - //todo упростить. и флаги и окружение будут просто одной строкой. мульти не актуально. + return cache.groupsSummary; case 7: - return Utils.unpackStrings(object.flags, true); + return cache.getTestsCount(); case 8: - return Utils.unpackStrings(object.environments, true); - //------------------------------------------------------------------------------------ - - case 9: return object.c_maxtime; - case 10: - return object.cube; - case 11: - return object.max_proc_count; - case 12: - return object.min_dim_proc_count; - case 13: - return object.max_dim_proc_count; - case 14: + case 9: return object.maxtime; - case 15: - return Utils.unpackStrings(object.usr_par, true); default: return null; } @@ -111,70 +80,32 @@ public class DVMConfigurationDBTable extends iDBTable { return new DBObjectDialog(ConfigurationFields.class) { @Override public int getDefaultHeight() { - return 480; + return 300; } @Override public int getDefaultWidth() { - return 1000; - } - @Override - public void validateFields() { - int min = (int) fields.sMinDimProc.getValue(); - int max = (int) fields.sMaxDimProc.getValue(); - if (max < min) - Log.Writeln_("Некорректный диапазон размерностей: максимум меньше минимума"); - if ((min == 0) && (max != 0) || (min != 0) && (max == 0)) - Log.Writeln_("Некорректный диапазон размерностей. " + - "'0' допускается только одновременно на обеих границах,\n" + - "и подразумевает единственный запуск без решётки"); + return 500; } @Override public void fillFields() { fields.tfName.setText(Result.description); //------->>>> - ((VisualiserStringList) (fields.flagsList)).fill(Result.getFlagsArray()); - ((VisualiserStringList) (fields.environmentsList)).fill(Result.getEnvironments()); - ((VisualiserStringList) (fields.parList)).fill(Result.getParams()); - //------->>>> fields.sCompilationMaxtime.setValue(Result.c_maxtime); - //- - fields.sMinDimProc.setValue(Result.min_dim_proc_count); - fields.sMaxDimProc.setValue(Result.max_dim_proc_count); - fields.cbCube.setSelected(Result.cube == 1); fields.sRunMaxtime.setValue(Result.maxtime); - //- - fields.sMaxProc.setValue(Result.max_proc_count); fields.sKernels.setValue(Result.kernels); } @Override public void ProcessResult() { Result.description = fields.tfName.getText(); Result.c_maxtime = (int) fields.sCompilationMaxtime.getValue(); - Result.min_dim_proc_count = (int) fields.sMinDimProc.getValue(); - Result.max_dim_proc_count = (int) fields.sMaxDimProc.getValue(); - Result.cube = fields.cbCube.isSelected() ? 1 : 0; - Result.max_proc_count = (int) fields.sMaxProc.getValue(); Result.maxtime = (int) fields.sRunMaxtime.getValue(); - Result.flags = ((VisualiserStringList) (fields.flagsList)).pack(); - Result.environments = ((VisualiserStringList) (fields.environmentsList)).pack(); - Result.usr_par = ((VisualiserStringList) (fields.parList)).pack(); - Result.kernels= (int)fields.sKernels.getValue(); + Result.kernels = (int) fields.sKernels.getValue(); } @Override public void SetReadonly() { fields.tfName.setEnabled(false); fields.sCompilationMaxtime.setEnabled(false); fields.sRunMaxtime.setEnabled(false); - fields.sMinDimProc.setEnabled(false); - fields.sMaxDimProc.setEnabled(false); - fields.cbCube.setEnabled(false); - fields.sMaxProc.setEnabled(false); - fields.bAddFlags.setEnabled(false); - fields.bDeleteFlags.setEnabled(false); - fields.bAddEnvironments.setEnabled(false); - fields.bDeleteEnvironment.setEnabled(false); - fields.bAddPar.setEnabled(false); - fields.bDeletePar.setEnabled(false); } }; } diff --git a/src/TestingSystem/DVM/DVMConfiguration/UI/ConfigurationFields.form b/src/TestingSystem/DVM/DVMConfiguration/UI/ConfigurationFields.form index e19605d7..136747da 100644 --- a/src/TestingSystem/DVM/DVMConfiguration/UI/ConfigurationFields.form +++ b/src/TestingSystem/DVM/DVMConfiguration/UI/ConfigurationFields.form @@ -3,420 +3,103 @@ - + - + + - - - + - - - - + - - + - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/src/TestingSystem/DVM/DVMConfiguration/UI/ConfigurationFields.java b/src/TestingSystem/DVM/DVMConfiguration/UI/ConfigurationFields.java index e475cd6e..d4a0a2ba 100644 --- a/src/TestingSystem/DVM/DVMConfiguration/UI/ConfigurationFields.java +++ b/src/TestingSystem/DVM/DVMConfiguration/UI/ConfigurationFields.java @@ -14,29 +14,10 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class ConfigurationFields implements DialogFields { public JTextField tfName; - public JSpinner sMinDimProc; - public JSpinner sMaxDimProc; public JSpinner sCompilationMaxtime; public JSpinner sRunMaxtime; - public JCheckBox cbCube; - public JSpinner sMaxProc; - public JList flagsList; - public JList environmentsList; - public JList parList; //- private JPanel content; - private JSplitPane SC1; - private JSplitPane SC2; - private JToolBar flagsTools; - public JButton bAddFlags; - public JButton bDeleteFlags; - private JSplitPane SC3; - private JToolBar parTools; - public JButton bAddPar; - public JButton bDeletePar; - private JToolBar environmentsTools; - public JButton bAddEnvironments; - public JButton bDeleteEnvironment; public JSpinner sKernels; @Override public Component getContent() { @@ -45,64 +26,14 @@ public class ConfigurationFields implements DialogFields { private void createUIComponents() { // TODO: place custom component creation code here tfName = new StyledTextField(); - //- - flagsList = new VisualiserStringList(); - environmentsList = new VisualiserStringList(); - parList = new VisualiserStringList(); } public ConfigurationFields(){ - sMinDimProc.setModel(new SpinnerNumberModel(1, 0, 128, 1)); - sMaxDimProc.setModel(new SpinnerNumberModel(1, 0, 128, 1)); - sMaxProc.setModel(new SpinnerNumberModel(0, 0, 128, 1)); sCompilationMaxtime.setModel(new SpinnerNumberModel(40, 5, 3600, 1 )); sRunMaxtime.setModel(new SpinnerNumberModel(40, 5, 3600, 1 )); - bAddFlags.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - Pass_2021 pass = Pass_2021.passes.get(PassCode_2021.PickCompilerOptions); - if (pass.Do(Current.getCompiler())) - ((VisualiserStringList) flagsList).addElement((String) pass.target); - } - }); - bDeleteFlags.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - ((VisualiserStringList) flagsList).removeElement(flagsList.getSelectedValue()); - } - }); - bAddEnvironments.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - Pass_2021 pass = Pass_2021.passes.get(PassCode_2021.PickCompilerEnvironmentsForTesting); - if (pass.Do(Current.getCompiler())) - ((VisualiserStringList) environmentsList).addElement((String) pass.target); - } - }); - bDeleteEnvironment.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - ((VisualiserStringList) environmentsList).removeElement(environmentsList.getSelectedValue()); - } - }); - bDeletePar.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - ((VisualiserStringList) parList).removeElement(parList.getSelectedValue()); - } - }); - bAddPar.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - Pass_2021 pass = Pass_2021.passes.get(PassCode_2021.AddDVMParameterForTesting); - if (pass.Do()) { - ((VisualiserStringList) parList).addElement((String) pass.target); - } - } - }); sKernels.setModel(new SpinnerNumberModel(1, 1, Utils.getTestingMaxKernels(), 1)); diff --git a/src/TestingSystem/DVM/DVMPackage/DVMPackage.java b/src/TestingSystem/DVM/DVMPackage/DVMPackage.java index 5b7f5233..0610a377 100644 --- a/src/TestingSystem/DVM/DVMPackage/DVMPackage.java +++ b/src/TestingSystem/DVM/DVMPackage/DVMPackage.java @@ -3,13 +3,19 @@ import Common.Constants; import Common.Current; import Common.Database.DBObject; import Common.Global; +import Common.UI.VisualCache.DVMConfigurationCache; +import Common.UI.VisualCache.VisualCaches; import GlobalData.Account.Account; import GlobalData.Compiler.Compiler; import GlobalData.Machine.Machine; import GlobalData.Machine.MachineType; import GlobalData.User.User; +import TestingSystem.Common.Group.Group; import TestingSystem.Common.TasksPackageState; +import TestingSystem.Common.Test.Test; import TestingSystem.Common.TestingPackage.TestingPackage; +import TestingSystem.DVM.DVMConfiguration.DVMConfiguration; +import TestingSystem.DVM.DVMSettings.DVMSettings; import TestingSystem.DVM.DVMTasks.DVMCompilationTask; import TestingSystem.DVM.DVMTasks.DVMRunTask; @@ -27,7 +33,12 @@ public class DVMPackage extends TestingPackage { //--- public DVMPackage() { } - public DVMPackage(Account account, Machine machine, User user, Compiler compiler, int kernels_in){ + public DVMPackage(Account account, + Machine machine, + User user, + Compiler compiler, + Vector configurations, + int neeedsEmail_in) { id = Constants.Nan; //- sender_name = account.name; @@ -44,12 +55,29 @@ public class DVMPackage extends TestingPackage { drv = compiler.call_command; version = compiler.getVersionInfo(); //- - kernels = kernels_in; //Global.properties.TestingKernels; - needsEmail = Global.properties.EmailOnTestingProgress ? 1 : 0; - //-- - package_json = new DVMPackage_json(); + needsEmail = neeedsEmail_in; //-- state = TasksPackageState.Queued; + //-- + for (DVMConfiguration configuration : configurations) + kernels = Math.max(configuration.kernels, kernels); + //- + tasksCount = 0; + Vector compilationTasks = new Vector(); + for (DVMConfiguration configuration : configurations) { + DVMConfigurationCache cache = (DVMConfigurationCache) VisualCaches.GetCache(configuration); + for (Group group : cache.getGroups()) { + for (Test test : cache.getGroupTests(group)) { + for (DVMSettings dvmSettings : cache.getSettings()) { + DVMCompilationTask compilationTask = new DVMCompilationTask(configuration, dvmSettings, group, test, kernels); + compilationTasks.add(compilationTask); + tasksCount += compilationTask.runTasks.size(); + } + } + } + } + package_json = new DVMPackage_json(compilationTasks); + saveConfigurationsAsJson(configurations); } @Override public Class getJsonClass() { @@ -83,25 +111,8 @@ public class DVMPackage extends TestingPackage { } @Override public boolean isVisible() { - return (!DVMPackageDBTable.filterMyOnly || Current.getAccount().email.equals(sender_address))&& - (!DVMPackageDBTable.filterActive || state.isActive() ); - } - public void saveTasks(Vector tasks, int allTasksCount){ - tasksCount=allTasksCount; - //-- - package_json=new DVMPackage_json(); - DVMPackage_json json = package_json; - //инициализируем идентификаторы задач. - for (DVMCompilationTask compilationTask : tasks) { - //-- - compilationTask.id = json.getMaxTaskId(); - //- - for (DVMRunTask runTask : compilationTask.runTasks) { - runTask.id = json.getMaxTaskId(); - runTask.dvmcompilationtask_id = compilationTask.id; - } - } - json.compilationTasks.addAll(tasks); + return (!DVMPackageDBTable.filterMyOnly || Current.getAccount().email.equals(sender_address)) && + (!DVMPackageDBTable.filterActive || state.isActive()); } } diff --git a/src/TestingSystem/DVM/DVMPackage/DVMPackage_json.java b/src/TestingSystem/DVM/DVMPackage/DVMPackage_json.java index bb43f562..bb7985db 100644 --- a/src/TestingSystem/DVM/DVMPackage/DVMPackage_json.java +++ b/src/TestingSystem/DVM/DVMPackage/DVMPackage_json.java @@ -1,5 +1,6 @@ package TestingSystem.DVM.DVMPackage; import TestingSystem.DVM.DVMTasks.DVMCompilationTask; +import TestingSystem.DVM.DVMTasks.DVMRunTask; import com.google.gson.annotations.Expose; import java.io.Serializable; @@ -13,5 +14,16 @@ public class DVMPackage_json implements Serializable { public int getMaxTaskId() { return max_task_id++; } - + public DVMPackage_json(){} + public DVMPackage_json(List tasks){ + for (DVMCompilationTask compilationTask : tasks) { + compilationTask.id = getMaxTaskId(); + //- + for (DVMRunTask runTask : compilationTask.runTasks) { + runTask.id = getMaxTaskId(); + runTask.dvmcompilationtask_id = compilationTask.id; + } + } + compilationTasks.addAll(tasks); + } } diff --git a/src/TestingSystem/DVM/DVMSettings/DVMSettings.java b/src/TestingSystem/DVM/DVMSettings/DVMSettings.java index 567d4ade..028b24fb 100644 --- a/src/TestingSystem/DVM/DVMSettings/DVMSettings.java +++ b/src/TestingSystem/DVM/DVMSettings/DVMSettings.java @@ -1,4 +1,88 @@ package TestingSystem.DVM.DVMSettings; +import Common.Database.DBObject; +import GlobalData.RunConfiguration.RunConfiguration; import TestingSystem.Common.Settings.Settings; +import TestingSystem.DVM.DVMConfiguration.DVMConfiguration; +import com.sun.org.glassfish.gmbal.Description; + +import java.util.Vector; public class DVMSettings extends Settings { + //todo.хранить флаги и окружение в json чтобы можно было в форме их видеть. + public String environments=""; + @Description("DEFAULT 0") + public int Is_DVM_STAT= 0; //флаг вмест usr par, которые не использовались. + // public String usr_par = ""; + //--- + public int cube = 0; // + public int max_proc_count = 4; + public int min_dim_proc_count = 1; + public int max_dim_proc_count = 4; + // + public DVMSettings(){} + public DVMSettings(DVMSettings src){ + this.SynchronizeFields(src); + } + @Override + public void SynchronizeFields(DBObject src) { + super.SynchronizeFields(src); + DVMSettings c = (DVMSettings) src; + environments=c.environments; + Is_DVM_STAT = c.Is_DVM_STAT; + // usr_par=c.usr_par; + //- + cube= c.cube; + max_proc_count=c.max_proc_count; + min_dim_proc_count=c.min_dim_proc_count; + max_dim_proc_count=c.max_dim_proc_count; + } + public String printUsrPar(){ + return "Is_DVM_STAT="+Is_DVM_STAT; + } + public Vector getMatrixes(int testDim) { + Vector> res_ = new Vector<>(); + Vector res = new Vector<>(); + if ((max_proc_count==0) || (min_dim_proc_count == 0 && max_dim_proc_count == 0)) { + res.add(""); + } else { + if (testDim > 0) { + Vector min_border = new Vector<>(); + Vector max_border = new Vector<>(); + for (int i = 1; i <= testDim; ++i) { + min_border.add(String.valueOf(min_dim_proc_count)); + max_border.add(String.valueOf(max_dim_proc_count)); + } + Vector from = RunConfiguration.getBounds(String.join(" ", min_border)); + Vector to = RunConfiguration.getBounds(String.join(" ", max_border)); + if (from.size() != to.size()) { + return res; + } + if (from.size() != testDim) { + return res; + } + //1 стадия. заполнение. + for (int j = from.get(0); j <= to.get(0); ++j) { + Vector m = new Vector<>(); + res_.add(m); + m.add(j); + } + //--- + if (testDim > 1) RunConfiguration.gen_rec(from, to, res_, 1, testDim, cube == 1); + for (Vector m : res_) { + Vector ms = new Vector<>(); + int proc = 1; + for (int i : m) { + ms.add(String.valueOf(i)); + proc *= i; + } + if (proc <= max_proc_count) + res.add(String.join(" ", ms)); + } + } else res.add(""); + } + return res; + } + public String getParamsText() { + return "Is_DVM_STAT="+Is_DVM_STAT; + } } + diff --git a/src/TestingSystem/DVM/DVMSettings/DVMSettingsDBTable.java b/src/TestingSystem/DVM/DVMSettings/DVMSettingsDBTable.java new file mode 100644 index 00000000..2fe259ba --- /dev/null +++ b/src/TestingSystem/DVM/DVMSettings/DVMSettingsDBTable.java @@ -0,0 +1,149 @@ +package TestingSystem.DVM.DVMSettings; +import Common.Current; +import Common.Database.DBObject; +import Common.Database.iDBTable; +import Common.UI.DataSetControlForm; +import Common.UI.VisualiserStringList; +import Common.UI.Windows.Dialog.DBObjectDialog; +import TestingSystem.DVM.DVMConfiguration.DVMConfiguration; +import TestingSystem.DVM.DVMConfiguration.UI.ConfigurationFields; +import TestingSystem.DVM.DVMSettings.UI.DVMSettingsFields; +public class DVMSettingsDBTable extends iDBTable { + public DVMSettingsDBTable() { + super(DVMSettings.class); + } + @Override + public Current CurrentName() { + return Current.DVMSettings; + } + @Override + public String getSingleDescription() { + return "параметры тестирования DVM системы"; + } + @Override + public String getPluralDescription() { + return "параметры тестирования DVM системы"; + } + //-- + @Override + public String[] getUIColumnNames() { + return new String[]{ + "имя", + "автор", + "флаги", + "окружение", + "usr.par", + "куб", + "max", + "min dim", + "max dim" + }; + } + //-- + @Override + public Object getFieldAt(DVMSettings object, int columnIndex) { + switch (columnIndex) { + case 2: + return object.description; + case 3: + return object.sender_name; + case 4: + return object.flags; + case 5: + return object.environments; + case 6: + return object.printUsrPar(); + case 7: + return object.cube; + case 8: + return object.max_proc_count; + case 9: + return object.min_dim_proc_count; + case 10: + return object.max_dim_proc_count; + default: + return null; + } + } + //- + @Override + protected DataSetControlForm createUI() { + return new DataSetControlForm(this) { + @Override + public boolean hasCheckBox() { + return true; + } + @Override + protected void AdditionalInitColumns() { + /* + columns.get(5).setRenderer(TableRenderers.RendererMultiline); + columns.get(5).setMaxWidth(500); + columns.get(7).setRenderer(TableRenderers.RendererMultiline); + columns.get(8).setRenderer(TableRenderers.RendererMultiline); + columns.get(15).setRenderer(TableRenderers.RendererMultiline); + */ + } + }; + } + @Override + public DBObjectDialog getDialog() { + return new DBObjectDialog(DVMSettingsFields.class) { + @Override + public int getDefaultHeight() { + return 400; + } + @Override + public int getDefaultWidth() { + return 800; + } + @Override + public void validateFields() { + int min = (int) fields.sMinDimProc.getValue(); + int max = (int) fields.sMaxDimProc.getValue(); + if (max < min) + Log.Writeln_("Некорректный диапазон размерностей: максимум меньше минимума"); + if ((min == 0) && (max != 0) || (min != 0) && (max == 0)) + Log.Writeln_("Некорректный диапазон размерностей. " + + "'0' допускается только одновременно на обеих границах,\n" + + "и подразумевает единственный запуск без решётки"); + } + @Override + public void fillFields() { + fields.tfName.setText(Result.description); + //------->>> + fields.tfFlags.setText(Result.flags); + fields.tfEnvironments.setText(Result.environments); + //------->>> + fields.sMinDimProc.setValue(Result.min_dim_proc_count); + fields.sMaxDimProc.setValue(Result.max_dim_proc_count); + fields.cbCube.setSelected(Result.cube == 1); + //- + fields.sMaxProc.setValue(Result.max_proc_count); + fields.cbDvmStat.setSelected(Result.Is_DVM_STAT!=0); + } + @Override + public void ProcessResult() { + Result.description = fields.tfName.getText(); + Result.min_dim_proc_count = (int) fields.sMinDimProc.getValue(); + Result.max_dim_proc_count = (int) fields.sMaxDimProc.getValue(); + Result.cube = fields.cbCube.isSelected() ? 1 : 0; + Result.max_proc_count = (int) fields.sMaxProc.getValue(); + Result.flags = fields.tfFlags.getText(); + Result.environments = fields.tfEnvironments.getText(); + Result.Is_DVM_STAT = fields.cbDvmStat.isSelected()?1:0; + } + @Override + public void SetReadonly() { + fields.tfName.setEnabled(false); + fields.sMinDimProc.setEnabled(false); + fields.sMaxDimProc.setEnabled(false); + fields.cbCube.setEnabled(false); + fields.sMaxProc.setEnabled(false); + } + }; + } + @Override + public boolean ShowEditObjectDialog(DBObject object) { + return (Current.getAccount().CheckAccessRights(((DVMSettings) object).sender_address, null)) ? super.ShowEditObjectDialog(object) : ViewObject(object); + } +} diff --git a/src/TestingSystem/DVM/DVMSettings/UI/DVMSettingsBar.java b/src/TestingSystem/DVM/DVMSettings/UI/DVMSettingsBar.java new file mode 100644 index 00000000..0a4cd96b --- /dev/null +++ b/src/TestingSystem/DVM/DVMSettings/UI/DVMSettingsBar.java @@ -0,0 +1,13 @@ +package TestingSystem.DVM.DVMSettings.UI; +import Common.UI.Menus_2023.DataMenuBar; +import Visual_DVM_2021.Passes.PassCode_2021; +public class DVMSettingsBar extends DataMenuBar { + public DVMSettingsBar() { + super("параметры тестированя", + + PassCode_2021.PublishDVMSettings, + PassCode_2021.EditDVMSettings, + PassCode_2021.DeleteDVMSettings + ); + } +} diff --git a/src/TestingSystem/DVM/DVMSettings/UI/DVMSettingsFields.form b/src/TestingSystem/DVM/DVMSettings/UI/DVMSettingsFields.form new file mode 100644 index 00000000..3a652ce8 --- /dev/null +++ b/src/TestingSystem/DVM/DVMSettings/UI/DVMSettingsFields.form @@ -0,0 +1,227 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/TestingSystem/DVM/DVMSettings/UI/DVMSettingsFields.java b/src/TestingSystem/DVM/DVMSettings/UI/DVMSettingsFields.java new file mode 100644 index 00000000..26d3b11e --- /dev/null +++ b/src/TestingSystem/DVM/DVMSettings/UI/DVMSettingsFields.java @@ -0,0 +1,68 @@ +package TestingSystem.DVM.DVMSettings.UI; +import Common.Current; +import Common.UI.TextField.StyledTextField; +import Common.UI.Windows.Dialog.DialogFields; +import Visual_DVM_2021.Passes.PassCode_2021; +import Visual_DVM_2021.Passes.Pass_2021; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +public class DVMSettingsFields implements DialogFields { + private JPanel content; + public JTextField tfName; + public JSpinner sMinDimProc; + public JSpinner sMaxDimProc; + public JSpinner sMaxProc; + public JCheckBox cbCube; + public JTextField tfFlags; + public JTextField tfEnvironments; + private JButton bAddFlags; + private JButton bAddEnvironments; + private JButton bDeleteFlags; + private JButton bDeleteEnvironment; + public JCheckBox cbDvmStat; + @Override + public Component getContent() { + return content; + } + private void createUIComponents() { + // TODO: place custom component creation code here + tfName = new StyledTextField(); + } + public DVMSettingsFields(){ + sMinDimProc.setModel(new SpinnerNumberModel(1, 0, 128, 1)); + sMaxDimProc.setModel(new SpinnerNumberModel(1, 0, 128, 1)); + sMaxProc.setModel(new SpinnerNumberModel(0, 0, 128, 1)); + bAddFlags.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + Pass_2021 pass = Pass_2021.passes.get(PassCode_2021.PickCompilerOptions); + if (pass.Do(Current.getCompiler())) { + tfFlags.setText((String)pass.target); + } + } + }); + bAddEnvironments.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + Pass_2021 pass = Pass_2021.passes.get(PassCode_2021.PickCompilerEnvironmentsForTesting); + if (pass.Do(Current.getCompiler())) + tfEnvironments.setText((String)pass.target); + } + }); + bDeleteFlags.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + tfFlags.setText(""); + } + }); + bDeleteEnvironment.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + tfEnvironments.setText(""); + } + }); + } +} diff --git a/src/TestingSystem/DVM/DVMTasks/DVMCompilationTask.java b/src/TestingSystem/DVM/DVMTasks/DVMCompilationTask.java index 849b05e6..74fe4787 100644 --- a/src/TestingSystem/DVM/DVMTasks/DVMCompilationTask.java +++ b/src/TestingSystem/DVM/DVMTasks/DVMCompilationTask.java @@ -1,7 +1,9 @@ package TestingSystem.DVM.DVMTasks; +import Common.Utils.Utils; import TestingSystem.Common.Group.Group; import TestingSystem.Common.Test.Test; import TestingSystem.DVM.DVMConfiguration.DVMConfiguration; +import TestingSystem.DVM.DVMSettings.DVMSettings; import com.google.gson.annotations.Expose; import java.util.List; @@ -10,14 +12,6 @@ public class DVMCompilationTask extends DVMTask { @Expose public List runTasks = new Vector<>(); //- - public DVMCompilationTask(DVMConfiguration configuration, - Group group, - Test test, - String flags_in - ) { - super(configuration, group, test, flags_in); - maxtime = configuration.c_maxtime; - } public DVMCompilationTask() { } @@ -30,4 +24,51 @@ public class DVMCompilationTask extends DVMTask { res.add(arg.toString().replace("\n", "|")); //4 return res; } + //-- + 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 DVMCompilationTask(DVMConfiguration configuration, DVMSettings dvmSettings, Group group, Test test, int kernels_in){ + super (configuration, group, test,checkFlags(dvmSettings.flags)); + Vector matrixes = dvmSettings.getMatrixes(test.max_dim); + String checkedEnvironments = checkEnvironments(dvmSettings.environments); + if (dvmSettings.flags.trim().equalsIgnoreCase("-s")) { + runTasks.add(new DVMRunTask( + configuration, + dvmSettings, + group, + test, + "", + flags, + checkedEnvironments, + kernels_in + )); + } else + for (String matrix : matrixes) { + runTasks.add(new DVMRunTask( + configuration, + dvmSettings, + group, + test, + matrix, + flags, + checkedEnvironments, + kernels_in)); + } + } } diff --git a/src/TestingSystem/DVM/DVMTasks/DVMRunTask.java b/src/TestingSystem/DVM/DVMTasks/DVMRunTask.java index bf3016e5..5334e705 100644 --- a/src/TestingSystem/DVM/DVMTasks/DVMRunTask.java +++ b/src/TestingSystem/DVM/DVMTasks/DVMRunTask.java @@ -8,6 +8,7 @@ import TestingSystem.Common.Group.Group; import TestingSystem.Common.Test.Test; import TestingSystem.Common.Test.TestType; import TestingSystem.DVM.DVMConfiguration.DVMConfiguration; +import TestingSystem.DVM.DVMSettings.DVMSettings; import com.google.gson.annotations.Expose; import java.io.File; @@ -40,11 +41,10 @@ public class DVMRunTask extends DVMTask { public TaskState compilation_state = TaskState.Waiting; @Expose public double compilation_time = 0.0; - public DVMRunTask(DVMConfiguration configuration, + public DVMRunTask(DVMConfiguration configuration, DVMSettings settings, Group group, Test test, String matrix_in, String flags_in, String environments_in, - String par_in, int kernels_in ) { super(configuration, group, test, flags_in); @@ -53,12 +53,12 @@ public class DVMRunTask extends DVMTask { compilation_maxtime = configuration.c_maxtime; compilation_state = TaskState.Waiting; //инфа о запуске - cube = configuration.cube; - min_dim = configuration.max_dim_proc_count; - max_dim = configuration.max_dim_proc_count; + cube = settings.cube; + min_dim = settings.max_dim_proc_count; + max_dim = settings.max_dim_proc_count; maxtime = configuration.maxtime; environments = environments_in; - usr_par = par_in; + usr_par = settings.getParamsText(); args = test.args; //--------- matrix = matrix_in; diff --git a/src/TestingSystem/SAPFOR/Json/SapforConfiguration_json.java b/src/TestingSystem/SAPFOR/Json/SapforConfiguration_json.java index e32c3248..7b4afcee 100644 --- a/src/TestingSystem/SAPFOR/Json/SapforConfiguration_json.java +++ b/src/TestingSystem/SAPFOR/Json/SapforConfiguration_json.java @@ -1,5 +1,6 @@ package TestingSystem.SAPFOR.Json; import Common.Constants; +import TestingSystem.SAPFOR.SapforSettings.SapforSettings; import Visual_DVM_2021.Passes.PassCode_2021; import com.google.gson.annotations.Expose; @@ -11,9 +12,18 @@ public class SapforConfiguration_json implements Serializable { @Expose public int id = Constants.Nan; @Expose - public String name=""; + public String name = ""; @Expose public String flags = ""; @Expose public List codes = new Vector<>(); + //-- + public SapforConfiguration_json() { + } + public SapforConfiguration_json(SapforSettings sapforSettings) { + id = sapforSettings.id; + name = sapforSettings.description; + flags = sapforSettings.flags; + codes = sapforSettings.getCheckedCodes(); + } } diff --git a/src/TestingSystem/SAPFOR/Json/SapforPackage_json.java b/src/TestingSystem/SAPFOR/Json/SapforPackage_json.java index 135c35e2..19bc4759 100644 --- a/src/TestingSystem/SAPFOR/Json/SapforPackage_json.java +++ b/src/TestingSystem/SAPFOR/Json/SapforPackage_json.java @@ -1,11 +1,14 @@ package TestingSystem.SAPFOR.Json; import GlobalData.Tasks.TaskState; import TestingSystem.Common.TasksPackageState; +import TestingSystem.Common.Test.Test; +import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration; import TestingSystem.SAPFOR.SapforPackage.SapforPackage; import TestingSystem.SAPFOR.SapforTask.ComparisonState; import TestingSystem.SAPFOR.SapforTask.SapforTask; import TestingSystem.SAPFOR.SapforTasksPackage.UI.PackageComparisonSummary; import TestingSystem.SAPFOR.SapforTasksPackage.UI.PackageSummary; +import TestingSystem.SAPFOR.ServerSapfor.ServerSapfor; import com.google.gson.annotations.Expose; import javax.swing.tree.DefaultMutableTreeNode; @@ -13,6 +16,7 @@ import java.io.File; import java.io.Serializable; import java.nio.file.Paths; import java.util.Comparator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Vector; public class SapforPackage_json implements Serializable { @@ -31,9 +35,9 @@ public class SapforPackage_json implements Serializable { public int getMaxTaskId() { return max_task_id++; } - //-- + //--в отличие от пакета двм,где достаточно инфы о задачах, тут есть инфа о тестах и конфигурациях @Expose - public List testingSets = new Vector<>(); //сет = конфигурации + тесты. + public List testingSets = new Vector<>(); //по факту, сет один. Наследие формирования пакетов. @Expose public List tasks = new Vector<>(); //-- @@ -161,8 +165,8 @@ public class SapforPackage_json implements Serializable { } public Vector getConfigurationsNames() { Vector names = new Vector<>(); - for (SapforTestingSet_json set: testingSets){ - for (SapforConfiguration_json configurationJson: set.configurations){ + for (SapforTestingSet_json set : testingSets) { + for (SapforConfiguration_json configurationJson : set.configurations) { if (!names.contains(configurationJson.name)) names.add(configurationJson.name); } @@ -175,10 +179,33 @@ public class SapforPackage_json implements Serializable { }); return names; } - public TasksPackageState getState(){ - for (SapforTask task: tasks) + public TasksPackageState getState() { + for (SapforTask task : tasks) if (!task.state.equals(TaskState.Done)) return TasksPackageState.DoneWithErrors; return TasksPackageState.Done; } + //--- + public SapforPackage_json() { + } + public SapforPackage_json(ServerSapfor serverSapfor, LinkedHashMap testsByDescriptions, Vector configurations, int kernels_in) { + sapfor_drv=serverSapfor.call_command; + kernels = kernels_in; + //рудимент от формирования пакетов. возможно, объединить с текущим классом. + SapforTestingSet_json testingSet = new SapforTestingSet_json(testsByDescriptions, configurations); + testingSet.id = getMaxSetId(); + testingSets.add(testingSet); + //формирование задач + LinkedHashMap sortedTasks = new LinkedHashMap<>(); + for (SapforConfiguration_json sapforConfiguration_json : testingSet.configurations) { + for (SapforTest_json test : testingSet.tests) { + SapforTask task = new SapforTask(testingSet, test, sapforConfiguration_json); + if (!sortedTasks.containsKey(task.getUniqueKey())) { + task.id = getMaxTaskId(); + sortedTasks.put(task.getUniqueKey(), task); + } + } + } + tasks.addAll(sortedTasks.values()); + } } diff --git a/src/TestingSystem/SAPFOR/Json/SapforTest_json.java b/src/TestingSystem/SAPFOR/Json/SapforTest_json.java index e5c6fa57..088003d1 100644 --- a/src/TestingSystem/SAPFOR/Json/SapforTest_json.java +++ b/src/TestingSystem/SAPFOR/Json/SapforTest_json.java @@ -1,4 +1,6 @@ package TestingSystem.SAPFOR.Json; +import Common.Global; +import TestingSystem.Common.Test.Test; import com.google.gson.annotations.Expose; import java.io.Serializable; @@ -9,4 +11,10 @@ public class SapforTest_json implements Serializable { public String description = ""; @Expose public String group_description = ""; + public SapforTest_json(){} + public SapforTest_json(Test test){ + id = test.id; + description = test.description; + group_description = Global.testingServer.db.groups.get(test.group_id).description; + } } diff --git a/src/TestingSystem/SAPFOR/Json/SapforTestingSet_json.java b/src/TestingSystem/SAPFOR/Json/SapforTestingSet_json.java index 6ab34859..58bfe1ee 100644 --- a/src/TestingSystem/SAPFOR/Json/SapforTestingSet_json.java +++ b/src/TestingSystem/SAPFOR/Json/SapforTestingSet_json.java @@ -1,10 +1,16 @@ package TestingSystem.SAPFOR.Json; import Common.Constants; +import Common.UI.VisualCache.SapforConfigurationCache; +import Common.UI.VisualCache.VisualCaches; +import TestingSystem.Common.Test.Test; +import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration; +import TestingSystem.SAPFOR.SapforSettings.SapforSettings; import TestingSystem.SAPFOR.SapforTask.SapforTask; import Visual_DVM_2021.Passes.PassCode_2021; import com.google.gson.annotations.Expose; import java.io.Serializable; +import java.util.LinkedHashMap; import java.util.List; import java.util.Vector; public class SapforTestingSet_json implements Serializable { @@ -13,31 +19,14 @@ public class SapforTestingSet_json implements Serializable { @Expose public List tests = new Vector<>(); @Expose - public List configurations = new Vector<>();//todo переименовать в настройки? - public Vector createTasks() { - Vector tasks = new Vector<>(); - //- - for (SapforConfiguration_json sapforConfiguration_json : configurations) { - for (SapforTest_json test : tests) { - SapforTask task = new SapforTask(); - //-- - task.id = Constants.Nan; - task.sapfortaskspackage_id = Constants.Nan; - //-- unique key-- - task.group_description = test.group_description; - task.test_description = test.description; - task.sapfor_configuration_id = sapforConfiguration_json.id; - //--------------- - task.flags = sapforConfiguration_json.flags; - task.set_id = id; - tasks.add(task); - Vector codes_s = new Vector<>(); - for (PassCode_2021 code : sapforConfiguration_json.codes) - codes_s.add(code.toString()); - task.codes = String.join(" ", codes_s); - } + public List configurations = new Vector<>(); + public SapforTestingSet_json(){} + public SapforTestingSet_json(LinkedHashMap testsByDescriptions, Vector sapforConfigurations) { + for (Test test : testsByDescriptions.values()) + tests.add(new SapforTest_json(test)); + for (SapforConfiguration configuration : sapforConfigurations) { + for (SapforSettings sapforSettings : ((SapforConfigurationCache) VisualCaches.GetCache(configuration)).getSettings()) + configurations.add(new SapforConfiguration_json(sapforSettings)); } - //- - return tasks; } } diff --git a/src/TestingSystem/SAPFOR/SapforConfiguration/SapforConfigurationDBTable.java b/src/TestingSystem/SAPFOR/SapforConfiguration/SapforConfigurationDBTable.java index c97a31ee..f95d01be 100644 --- a/src/TestingSystem/SAPFOR/SapforConfiguration/SapforConfigurationDBTable.java +++ b/src/TestingSystem/SAPFOR/SapforConfiguration/SapforConfigurationDBTable.java @@ -73,7 +73,7 @@ public class SapforConfigurationDBTable extends iDBTable { case 5: return object.kernels; case 6: - return cache.getSettingsDescriptions(); + return cache.settingsSummary; case 7: return cache.groupsSummary; case 8: diff --git a/src/TestingSystem/SAPFOR/SapforPackage/SapforPackage.java b/src/TestingSystem/SAPFOR/SapforPackage/SapforPackage.java index ec709921..eaca9e41 100644 --- a/src/TestingSystem/SAPFOR/SapforPackage/SapforPackage.java +++ b/src/TestingSystem/SAPFOR/SapforPackage/SapforPackage.java @@ -33,26 +33,6 @@ public class SapforPackage extends TestingPackage { public SapforPackage(SapforPackage sapforPackage) { SynchronizeFields(sapforPackage); } - public SapforPackage(Account account, ServerSapfor serverSapfor, int kernels_in) { - id = Constants.Nan; - //- - sender_name = account.name; - sender_address = account.email; - //- - sapforId = serverSapfor.id; - //- - drv = serverSapfor.call_command; - version = serverSapfor.version; - kernels = kernels_in;//Global.properties.TestingKernels; - needsEmail = Global.properties.EmailOnTestingProgress ? 1 : 0; - ///------------------------------- - package_json = new SapforPackage_json(); - package_json.kernels = kernels; - package_json.sapfor_drv = serverSapfor.call_command; - //- - state = TasksPackageState.Queued; - //- - } @Override public void SynchronizeFields(DBObject src) { super.SynchronizeFields(src); @@ -75,21 +55,6 @@ public class SapforPackage extends TestingPackage { saveJson(); package_json = null; // объект больше не нужен. } - //-проверка, какие задачи из набора, не пересекаются с уже имеющимися в пакете. - public Vector getActualTestingSetTasks(SapforTestingSet_json testingSet) { - Vector possible_tasks = testingSet.createTasks(); - Vector keys = package_json.getTasksKeys(); - Vector new_tasks = new Vector<>(); - //---- - for (SapforTask task : possible_tasks) { - String key = task.getUniqueKey(); - if (!keys.contains(key)) { - keys.add(key); - new_tasks.add(task); - } - } - return new_tasks; - } @Override public boolean isVisible() { return (!SapforPackageDBTable.filterMyOnly || Current.getAccount().email.equals(sender_address)) && @@ -112,8 +77,6 @@ public class SapforPackage extends TestingPackage { version = serverSapfor.version; ///------------------------------- needsEmail = neeedsEmail_in; - package_json = new SapforPackage_json(); - package_json.sapfor_drv = serverSapfor.call_command; //- state = TasksPackageState.Queued; //-- @@ -141,50 +104,9 @@ public class SapforPackage extends TestingPackage { valid= Log.isEmpty(); //формирование задач. if (valid){ - //-- - tasksCount=0; - package_json.kernels = kernels; - //-- - SapforTestingSet_json testingSet = new SapforTestingSet_json(); - Vector new_tasks = new Vector<>(); - //-- - testingSet.id = package_json.getMaxSetId(); - for (Test test : testsByDescriptions.values()) { - SapforTest_json test_json = new SapforTest_json(); - test_json.id = test.id; - test_json.description = test.description; - test_json.group_description = Global.testingServer.db.groups.get(test.group_id).description; - testingSet.tests.add(test_json); - } - for (SapforConfiguration configuration : configurations) { - SapforConfigurationCache cache = (SapforConfigurationCache) VisualCaches.GetCache(configuration); - Vector settingsVector=cache.getSettings(); - //-- - for (SapforSettings sapforSettings: settingsVector) { - //-- - SapforConfiguration_json settings_json = new SapforConfiguration_json(); - settings_json.id = sapforSettings.id; - settings_json.name = sapforSettings.description; - settings_json.flags = sapforSettings.flags; - Vector codes = sapforSettings.getCodes(); - //--- коррекцию кода нельзя вызвать если инклуды есть. в общем случае. - if (!codes.firstElement().equals(PassCode_2021.SPF_InsertIncludesPass)) - settings_json.codes.add(PassCode_2021.SPF_CorrectCodeStylePass); //всегда добавляется. - //-- - settings_json.codes.addAll(codes); - //--->> - testingSet.configurations.add(settings_json); - //-->> - } - } - new_tasks = getActualTestingSetTasks(testingSet); + package_json= new SapforPackage_json(serverSapfor, testsByDescriptions, configurations, kernels); + tasksCount = package_json.tasks.size(); saveConfigurationsAsJson(configurations); - package_json.testingSets.add(testingSet); - for (SapforTask task : new_tasks) { - task.id = package_json.getMaxTaskId(); - package_json.tasks.add(task); - } - tasksCount += new_tasks.size(); } } } diff --git a/src/TestingSystem/SAPFOR/SapforSettings/SapforSettings.java b/src/TestingSystem/SAPFOR/SapforSettings/SapforSettings.java index 24a245c2..53872264 100644 --- a/src/TestingSystem/SAPFOR/SapforSettings/SapforSettings.java +++ b/src/TestingSystem/SAPFOR/SapforSettings/SapforSettings.java @@ -7,6 +7,7 @@ import TestingSystem.Common.Settings.Settings; import TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsCommand; import Visual_DVM_2021.Passes.PassCode_2021; +import java.util.List; import java.util.Vector; public class SapforSettings extends Settings { //настройки. @@ -54,6 +55,12 @@ public class SapforSettings extends Settings { if (command.sapforsettings_id == id) res.add(command.passCode); return res; } + public List getCheckedCodes(){ + Vector res = getCodes(); + if (!res.firstElement().equals(PassCode_2021.SPF_InsertIncludesPass)) + res.insertElementAt(PassCode_2021.SPF_CorrectCodeStylePass,0); //всегда добавляется. + return res; + } @Override public boolean validate(TextLog Log) { boolean res = true; diff --git a/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java b/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java index e262c5b6..1b84d2aa 100644 --- a/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java +++ b/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java @@ -3,8 +3,7 @@ import Common.Constants; import Common.Database.DBObject; import Common.Utils.Utils; import GlobalData.Tasks.TaskState; -import TestingSystem.SAPFOR.Json.SapforVersion_json; -import TestingSystem.SAPFOR.Json.VersionComparisonState; +import TestingSystem.SAPFOR.Json.*; import TestingSystem.SAPFOR.SapforTasksPackage.UI.SapforPackageTreeNode; import TestingSystem.SAPFOR.SapforTasksPackage.UI.SapforTaskNode; import TestingSystem.SAPFOR.SapforTasksPackage.UI.VersionNode; @@ -223,4 +222,20 @@ public class SapforTask extends DBObject { res.add(versions_info); return res; } + //- + public SapforTask(SapforTestingSet_json testingSet, SapforTest_json test, SapforConfiguration_json sapforConfiguration_json) { + id = Constants.Nan; + set_id = testingSet.id; + sapfortaskspackage_id = Constants.Nan; + //-- unique key-- + group_description = test.group_description; + test_description = test.description; + sapfor_configuration_id = sapforConfiguration_json.id; + //--------------- + flags = sapforConfiguration_json.flags; + Vector codes_s = new Vector<>(); + for (PassCode_2021 code : sapforConfiguration_json.codes) + codes_s.add(code.toString()); + codes = String.join(" ", codes_s); + } } diff --git a/src/TestingSystem/SAPFOR/SapforTestingPlanner.java b/src/TestingSystem/SAPFOR/SapforTestingPlanner.java index e53ceb46..eaeaf238 100644 --- a/src/TestingSystem/SAPFOR/SapforTestingPlanner.java +++ b/src/TestingSystem/SAPFOR/SapforTestingPlanner.java @@ -262,7 +262,7 @@ public class SapforTestingPlanner extends TestingPlanner { UpdateSapforState(ServerSapforState.Done); EmailSapforAssembly(current_version, true, sapforOut, sapforErr); //запуск автоматического тестирования. - ServerCommand(ServerCode.PerformAutoSapforTesting, String.valueOf(sapfor.id)); + ServerCommand(ServerCode.PerformAutoSapforTesting, String.valueOf(sapfor.id), null); } else { UpdateSapforState(ServerSapforState.DoneWithErrors); EmailSapforAssembly(current_version, false, sapforOut, sapforErr); diff --git a/src/Visual_DVM_2021/Passes/All/CloneSapforPackage.java b/src/Visual_DVM_2021/Passes/All/CloneSapforPackage.java index 97f81672..55e6d7ea 100644 --- a/src/Visual_DVM_2021/Passes/All/CloneSapforPackage.java +++ b/src/Visual_DVM_2021/Passes/All/CloneSapforPackage.java @@ -149,6 +149,7 @@ public class CloneSapforPackage extends AddObjectPass { 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 { 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(); } diff --git a/src/Visual_DVM_2021/Passes/All/DeleteDVMSettings.java b/src/Visual_DVM_2021/Passes/All/DeleteDVMSettings.java new file mode 100644 index 00000000..1f19f6e7 --- /dev/null +++ b/src/Visual_DVM_2021/Passes/All/DeleteDVMSettings.java @@ -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 { + public DeleteDVMSettings() { + super(Global.testingServer, DVMSettings.class); + } +} diff --git a/src/Visual_DVM_2021/Passes/All/EditDVMSettings.java b/src/Visual_DVM_2021/Passes/All/EditDVMSettings.java new file mode 100644 index 00000000..4abacef6 --- /dev/null +++ b/src/Visual_DVM_2021/Passes/All/EditDVMSettings.java @@ -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 { + public EditDVMSettings() { + super(Global.testingServer, DVMSettings.class); + } +} diff --git a/src/Visual_DVM_2021/Passes/All/PublishDVMSettings.java b/src/Visual_DVM_2021/Passes/All/PublishDVMSettings.java new file mode 100644 index 00000000..ab042003 --- /dev/null +++ b/src/Visual_DVM_2021/Passes/All/PublishDVMSettings.java @@ -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 { + public PublishDVMSettings() { + super(Global.testingServer, DVMSettings.class); + } +} diff --git a/src/Visual_DVM_2021/Passes/All/ShowCurrentDVMConfigurationTests.java b/src/Visual_DVM_2021/Passes/All/ShowCurrentDVMConfigurationTests.java index 4db2bbcd..9eeff07e 100644 --- a/src/Visual_DVM_2021/Passes/All/ShowCurrentDVMConfigurationTests.java +++ b/src/Visual_DVM_2021/Passes/All/ShowCurrentDVMConfigurationTests.java @@ -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 { @Override public Current currentName() { return Current.DVMConfiguration; } + @Override + protected void showDone() throws Exception { + super.showDone(); + DVMConfigurationCache cache = (DVMConfigurationCache) VisualCaches.GetCache(target); + Vector settings = cache.getSettings(); + for (DVMSettings s: settings) + s.Select(true); + //-- + if (!settings.isEmpty()){ + Global.testingServer.db.sapforSettings.ShowUI(settings.lastElement().id); + } + } } diff --git a/src/Visual_DVM_2021/Passes/All/StartSelectedDVMConfigurations.java b/src/Visual_DVM_2021/Passes/All/StartSelectedDVMConfigurations.java index 5bc00192..dd52f27a 100644 --- a/src/Visual_DVM_2021/Passes/All/StartSelectedDVMConfigurations.java +++ b/src/Visual_DVM_2021/Passes/All/StartSelectedDVMConfigurations.java @@ -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 { - Vector configurations; - Vector groups; - Vector tests; - LinkedHashMap> testByGroups; - Vector tasks; - int tasks_count; public StartSelectedDVMConfigurations() { super(Global.testingServer, DVMPackage.class); } @@ -35,89 +30,11 @@ public class StartSelectedDVMConfigurations extends PublishServerObject createTasksCGT( - DVMConfiguration configuration, - Group group, - Test test - ) { - Vector compilationTasks = new Vector<>(); - for (String flags : configuration.getFlagsArray()) { - String checked_flags = checkFlags(flags); - DVMCompilationTask dvmCompilationTask = new DVMCompilationTask( - configuration, - group, - test, - checked_flags - ); - Vector matrixes = configuration.getMatrixes(test.max_dim); - Vector 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 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 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 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 + " задач. Продолжить"); } } diff --git a/src/Visual_DVM_2021/Passes/All/SynchronizeTests.java b/src/Visual_DVM_2021/Passes/All/SynchronizeTests.java index bd4a77c4..0a484f44 100644 --- a/src/Visual_DVM_2021/Passes/All/SynchronizeTests.java +++ b/src/Visual_DVM_2021/Passes/All/SynchronizeTests.java @@ -41,6 +41,7 @@ public class SynchronizeTests extends TestingSystemPass { 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 { server.db.dvmPackages.ShowUI(); server.db.sapforPackages.ShowUI(); server.db.sapforSettings.ShowUI(); + server.db.dvmSettings.ShowUI(); server.db.RestoreLastSelections(); //---- ? объединить с RestoreCredentials UI.getMainWindow().ShowCheckedTestsCount(); } diff --git a/src/Visual_DVM_2021/Passes/PassCode_2021.java b/src/Visual_DVM_2021/Passes/PassCode_2021.java index 7363efbf..b057f5d3 100644 --- a/src/Visual_DVM_2021/Passes/PassCode_2021.java +++ b/src/Visual_DVM_2021/Passes/PassCode_2021.java @@ -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: diff --git a/src/Visual_DVM_2021/UI/Main/TestingForm.form b/src/Visual_DVM_2021/UI/Main/TestingForm.form index 98300ead..8e84e022 100644 --- a/src/Visual_DVM_2021/UI/Main/TestingForm.form +++ b/src/Visual_DVM_2021/UI/Main/TestingForm.form @@ -170,7 +170,7 @@ - + @@ -185,12 +185,47 @@ - + - + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Visual_DVM_2021/UI/Main/TestingForm.java b/src/Visual_DVM_2021/UI/Main/TestingForm.java index b3d21cde..7e3efa61 100644 --- a/src/Visual_DVM_2021/UI/Main/TestingForm.java +++ b/src/Visual_DVM_2021/UI/Main/TestingForm.java @@ -36,6 +36,7 @@ public class TestingForm implements FormWithSplitters, TestingWindow { public JSplitPane SC19; public JSplitPane SC80; public JSplitPane SC83; + public JSplitPane SC85; //--- private JTabbedPane testingTabs; private JPanel dvmPackagesTab; @@ -62,6 +63,7 @@ public class TestingForm implements FormWithSplitters, TestingWindow { private JPanel credentialsPanel; private JPanel sapforSettingsPanel; private JPanel sapforSettingsCommandsPanel; + private JPanel dvmSettingsPanel; private JPanel testsRunTasksBackground; private JCheckBox filterFinished; private JButton bTest; @@ -136,6 +138,7 @@ public class TestingForm implements FormWithSplitters, TestingWindow { Global.testingServer.db.sapforPackages.mountUI(sapforPackagesPanel); Global.testingServer.db.sapforSettings.mountUI(sapforSettingsPanel); Global.testingServer.db.sapforSettingsCommands.mountUI(sapforSettingsCommandsPanel); + Global.testingServer.db.dvmSettings.mountUI(dvmSettingsPanel); //-- if (Global.properties.collapseCredentials) CollapseCredentials(); @@ -151,6 +154,7 @@ public class TestingForm implements FormWithSplitters, TestingWindow { Global.testingServer.db.serverSapfors.ShowUI(); Global.testingServer.db.sapforConfigurations.ShowUI(); Global.testingServer.db.dvmRunTasks.ShowUI(); + Global.testingServer.db.dvmSettings.ShowUI(); Global.testingServer.db.sapforSettings.ShowUI(); //--- RestoreLastCredentials(); diff --git a/src/Visual_DVM_2021/UI/Main/buffer_.form b/src/Visual_DVM_2021/UI/Main/buffer_.form index f9cd43c1..11a69489 100644 --- a/src/Visual_DVM_2021/UI/Main/buffer_.form +++ b/src/Visual_DVM_2021/UI/Main/buffer_.form @@ -6,13 +6,6 @@ - - - - - - - - + diff --git a/src/Visual_DVM_2021/UI/Main/buffer_.java b/src/Visual_DVM_2021/UI/Main/buffer_.java index 6f0d20cf..c1e411be 100644 --- a/src/Visual_DVM_2021/UI/Main/buffer_.java +++ b/src/Visual_DVM_2021/UI/Main/buffer_.java @@ -2,6 +2,5 @@ package Visual_DVM_2021.UI.Main; import javax.swing.*; public class buffer_ { private JPanel panel1; - private JPanel sapforConfigurationsPanel; //Скачать пакет задач }