fix умножения сапфоровских задач

v++
This commit is contained in:
2025-02-13 18:40:53 +03:00
parent dd1f7f8040
commit 91f4ed4a17
12 changed files with 69 additions and 60 deletions

26
.idea/workspace.xml generated
View File

@@ -7,28 +7,18 @@
</component>
<component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/PublishServerPass.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/ShutdownServerPass.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/StartServerPass.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PingComponentsServer.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PingTestingServer.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishComponentsServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishComponentsServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishTestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishTestingServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ShutdownComponentsServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ShutdownComponentsServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ShutdownTestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ShutdownTestingServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/StartComponentsServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/StartComponentsServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/StartTestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/StartTestingServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/TestPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/TestPass.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/SSH/RepositoryServerSSHPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/SSH/RepositoryServerSSHPass.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/Visual/Tables/DataTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Visual/Tables/DataTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Visualiser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Visualiser.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/RepositoryServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ComponentsServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ComponentsServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/Test/Test.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/Test/Test.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/Json/SapforPackage_json.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/Json/SapforPackage_json.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/Json/SapforTestingSet_json.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/Json/SapforTestingSet_json.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/SapforConfiguration/SapforConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/SapforConfiguration/SapforConfiguration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/SapforPackage/SapforPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/SapforPackage/SapforPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/SapforTask/SapforTask.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/SapforTask/SapforTask.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Visual/Menus/MainMenuBar/MainMenuBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Visual/Menus/MainMenuBar/MainMenuBar.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Visual/Windows/TestingForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Visual/Windows/TestingForm.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -1,6 +1,6 @@
{
"Workspace": "E:\\Tests",
"ProjectsSearchDirectory": "E:\\Tests\\Downloads",
"ProjectsSearchDirectory": "E:\\Tests\\Downloads\\test_routine_5_1739460626\\test_routine_5\\v1\\v1\\v1",
"VisualiserPath": "C:\\Users\\misha\\Downloads",
"Sapfor_FPath": "E:\\_sapfor_x64\\Components\\Sapfor_F",
"Visualizer_2Path": "C:\\Users\\misha\\Documents",
@@ -22,7 +22,7 @@
"Kernels": 8,
"LocalMakePathWindows": "C:\\MinGW\\msys\\1.0\\bin\\make.exe",
"CheckTestingIntervalSeconds": 10,
"AutoCheckTesting": false,
"AutoCheckTesting": true,
"EmailOnTestingProgress": true,
"lastMachineId": 13,
"lastUserId": 24,

View File

@@ -21,7 +21,7 @@ public abstract class DataTable extends StyledTable implements DataControl {
}
}
}
//-------------------------------
//------------------------------
/*
public void SelectRow(int r) {
getSelectionModel().setSelectionInterval(r, r);

View File

@@ -62,7 +62,7 @@ public class Visualiser extends Component {
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
@Override
public void GetVersionInfo() {
version = 1162;
version = 1163;
String pattern = "MMM dd yyyy HH:mm:ss";
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
date_text = df.format(getClassBuildTime());

View File

@@ -29,6 +29,8 @@ public class Test extends riDBObject {
public int group_id = CommonConstants.Nan;
@Description("DEFAULT ''")
public String files = ""; //файлы теста
@Description("DEFAULT ''")
public String extended_description="";
//--------------------------------------------->>>
@Description("IGNORE")
public String temp_project_name = "";
@@ -48,6 +50,7 @@ public class Test extends riDBObject {
max_dim = t.max_dim;
args = t.args;
group_id = t.group_id;
extended_description = t.extended_description;
}
@Override
public void select(boolean flag) {

View File

@@ -1,7 +1,8 @@
package _VisualDVM.TestingSystem.SAPFOR.Json;
import Common.CommonConstants;
import _VisualDVM.GlobalData.Tasks.TaskState;
import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.ServerObjectsCache.SapforConfigurationCache;
import _VisualDVM.ServerObjectsCache.VisualCaches;
import _VisualDVM.TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
import _VisualDVM.TestingSystem.SAPFOR.SapforPackage.SapforPackage;
import _VisualDVM.TestingSystem.SAPFOR.SapforTask.ComparisonState;
@@ -40,15 +41,16 @@ public class SapforPackage_json implements Serializable {
//---
public SapforPackage_json() {
}
public SapforPackage_json(ServerSapfor serverSapfor, LinkedHashMap<String, Test> testsByDescriptions, Vector<SapforConfiguration> configurations, int kernels_in) {
public SapforPackage_json(ServerSapfor serverSapfor, Vector<SapforConfiguration> configurations, int kernels_in) {
sapfor_drv = serverSapfor.call_command;
kernels = kernels_in;
//рудимент от формирования пакетов. возможно, объединить с текущим классом.
SapforTestingSet_json testingSet = new SapforTestingSet_json(testsByDescriptions, configurations);
for (SapforConfiguration sapforConfiguration : configurations) {
SapforTestingSet_json testingSet = new SapforTestingSet_json(((SapforConfigurationCache) VisualCaches.GetCache(sapforConfiguration)).getTests(), sapforConfiguration);
testingSet.id = getMaxSetId();
testingSets.add(testingSet);
//формирование задач
// формирование задач
LinkedHashMap<String, SapforTask> sortedTasks = new LinkedHashMap<>();
//здесь из за совместимости. на самом деле это параметры а не конфигурации. но название старое.
for (SapforConfiguration_json sapforConfiguration_json : testingSet.configurations) {
for (SapforTest_json test : testingSet.tests) {
SapforTask task = new SapforTask(testingSet, test, sapforConfiguration_json);
@@ -60,6 +62,7 @@ public class SapforPackage_json implements Serializable {
}
tasks.addAll(sortedTasks.values());
}
}
public int getMaxSetId() {
return max_set_id++;
}
@@ -187,8 +190,6 @@ public class SapforPackage_json implements Serializable {
}
}
}
public Vector<String> getConfigurationsNames() {
Vector<String> names = new Vector<>();
for (SapforTestingSet_json set : testingSets) {

View File

@@ -8,24 +8,23 @@ import _VisualDVM.TestingSystem.SAPFOR.SapforSettings.SapforSettings;
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 {
//устаревшее название. на самом деле соответствует конфигурации
@Expose
public int id = CommonConstants.Nan;
@Expose
public List<SapforTest_json> tests = new Vector<>();
//устаревшее название. на самом деле соответствует параметрам тестирования
@Expose
public List<SapforConfiguration_json> configurations = new Vector<>();
public SapforTestingSet_json() {
}
public SapforTestingSet_json(LinkedHashMap<String, Test> testsByDescriptions, Vector<SapforConfiguration> sapforConfigurations) {
for (Test test : testsByDescriptions.values())
public SapforTestingSet_json(Vector<Test> tests_in, SapforConfiguration configuration) {
for (Test test : tests_in)
tests.add(new SapforTest_json(test));
for (SapforConfiguration configuration : sapforConfigurations) {
for (SapforSettings sapforSettings : ((SapforConfigurationCache) VisualCaches.GetCache(configuration)).getSettings())
configurations.add(new SapforConfiguration_json(sapforSettings));
}
}
}

View File

@@ -5,8 +5,10 @@ import _VisualDVM.ServerObjectsCache.SapforConfigurationCache;
import _VisualDVM.ServerObjectsCache.VisualCaches;
import _VisualDVM.TestingSystem.Common.Configuration.Configuration;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.TestingSystem.SAPFOR.SapforSettings.SapforSettings;
import java.util.LinkedHashMap;
import java.util.Vector;
public class SapforConfiguration extends Configuration {
public SapforConfiguration(SapforConfiguration sapforConfiguration) {
@@ -20,6 +22,7 @@ public class SapforConfiguration extends Configuration {
//--
Vector<Group> groups = cache.getGroups();
Vector<SapforSettings> settingsArray = cache.getSettings();
Vector<Test> tests= cache.getTests();
//--
Vector<LanguageName> groupsLanguages = new Vector<>();
for (Group group : groups) {
@@ -39,6 +42,16 @@ public class SapforConfiguration extends Configuration {
Log.Writeln_("Поддерживается пакетный режим только для языка Fortran");
}
//-
LinkedHashMap<String, Test> testsByDescriptions = new LinkedHashMap<>();
for (Test test : tests) {
String l_description = test.description.toLowerCase();
if (testsByDescriptions.containsKey(l_description)) {
Log.Writeln_("В конфигурацию тестирования SAPFOR не могут входить тесты с одинаковыми именами (без учета регистра):" + test.description.toLowerCase());
} else {
testsByDescriptions.put(l_description, test);
}
}
//-
return Log.isEmpty();
}
}

View File

@@ -54,29 +54,18 @@ public class SapforPackage extends TestingPackage<SapforPackage_json> {
//--
boolean valid = true;
//проверка исходных данных тестов и групп
LinkedHashMap<String, Test> testsByDescriptions = new LinkedHashMap<>();
//--
kernels = 1;
for (SapforConfiguration configuration : configurations) {
kernels = Math.max(configuration.kernels, kernels);
configuration.validate(Log);
//-
ConfigurationCache cache = (ConfigurationCache) VisualCaches.GetCache(configuration);
//--
for (Test test : cache.getTests()) {
String l_description = test.description.toLowerCase();
if (testsByDescriptions.containsKey(l_description)) {
Log.Writeln_("В пакет не могут входить тесты с одинаковыми именами (без учета регистра):" + test.description.toLowerCase());
valid = false;
} else {
testsByDescriptions.put(l_description, test);
}
}
}
valid = Log.isEmpty();
//формирование задач.
if (valid) {
package_json = new SapforPackage_json(serverSapfor, testsByDescriptions, configurations, kernels);
//тесты в рамках конфиги уникальны значит пересечения по папкам уже не будет.
package_json = new SapforPackage_json(serverSapfor, configurations, kernels);
tasksCount = package_json.tasks.size();
saveConfigurationsAsJson(configurations);
if (configurations.size() == 1 && configurations.get(0).ethalon_id != CommonConstants.Nan) {

View File

@@ -32,6 +32,8 @@ public class SapforTask extends DBObject {
@Expose
public String group_description = "";
@Expose
public String configuration_description = "";
@Expose
public String flags = "";
@Expose
public String codes = "";
@@ -69,6 +71,7 @@ public class SapforTask extends DBObject {
//-- unique key--
group_description = test.group_description;
test_description = test.description;
configuration_description = sapforConfiguration_json.name;
sapfor_configuration_id = sapforConfiguration_json.id;
//---------------
flags = sapforConfiguration_json.flags;
@@ -109,6 +112,7 @@ public class SapforTask extends DBObject {
//-
test_description = t.test_description;
group_description = t.group_description;
configuration_description = t.configuration_description;
versionsDescription = t.versionsDescription;
//--
codes = t.codes;
@@ -222,8 +226,13 @@ public class SapforTask extends DBObject {
}
@Override
public String toString() {
return
"#" + id + " группа " + Utils_.Brackets(group_description) + " тест " + Utils_.Brackets(test_description) + " параметры " + Utils_.Brackets(sapfor_configuration_id);
"#" + id + " группа "
+ Utils_.Brackets(group_description) +
" тест " + Utils_.Brackets(test_description)
+ " параметры "
+ Utils_.Brackets(configuration_description.isEmpty()?sapfor_configuration_id: configuration_description);
// getUniqueKey();
}
public String getPassesInfo() {

View File

@@ -61,6 +61,7 @@ public class MainMenuBar extends VisualiserMenuBar {
//-
setPreferredSize(new Dimension(0, 30));
//--
/*
add(new MenuBarButton() {
{
setIcon("/Common/icons/Apply.png");
@@ -70,6 +71,7 @@ public class MainMenuBar extends VisualiserMenuBar {
});
}
});
*/
//--
add(new JSeparator());
add(MachineButton = new MenuBarButton() {

View File

@@ -265,6 +265,9 @@ public class TestingForm implements FormWithSplitters, TestingWindow {
roText.setText(object.getOutput());
reText.setText(object.getErrors());
stsText.setText(object.getStatistic());
//-
Global.testingServer.db.groups.getUI().SetCurrentByPK(object.group_id);
Global.testingServer.db.tests.getUI().SetCurrentByPK(object.test_id);
}
@Override
public void ShowNoCurrentDVMTask() {