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