diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 550c11b7..797b60ea 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -9,11 +9,8 @@
-
-
-
-
-
+
+
diff --git a/src/Common/Constants.java b/src/Common/Constants.java
index ceb22c6f..f3b47b4c 100644
--- a/src/Common/Constants.java
+++ b/src/Common/Constants.java
@@ -37,6 +37,9 @@ public class Constants {
public static final String package_json = "package_json";
public static final String results_json = "results_json";
//--
+ public static final PassCode_2021[] startingSapforTestingCodes = new PassCode_2021[]{
+ PassCode_2021.SPF_InsertIncludesPass
+ };
public static final PassCode_2021[] terminalSapforTestingCodes = new PassCode_2021[]{
PassCode_2021.CreateParallelVariants,
PassCode_2021.SPF_SharedMemoryParallelization,
diff --git a/src/Repository/Component/Visualiser.java b/src/Repository/Component/Visualiser.java
index 115d659f..85a171eb 100644
--- a/src/Repository/Component/Visualiser.java
+++ b/src/Repository/Component/Visualiser.java
@@ -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 = 1056;
+ version = 1057;
String pattern = "MMM dd yyyy HH:mm:ss";
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
date_text = df.format(getClassBuildTime());
diff --git a/src/Visual_DVM_2021/Passes/All/AddSapforPackage.java b/src/Visual_DVM_2021/Passes/All/AddSapforPackage.java
index d49a76ce..c053f555 100644
--- a/src/Visual_DVM_2021/Passes/All/AddSapforPackage.java
+++ b/src/Visual_DVM_2021/Passes/All/AddSapforPackage.java
@@ -7,8 +7,8 @@ import Common.UI.UI;
import Common.Utils.Index;
import ProjectData.LanguageName;
import TestingSystem.Common.Group.Group;
-import TestingSystem.Common.Test.Test;
import TestingSystem.Common.TasksPackageState;
+import TestingSystem.Common.Test.Test;
import TestingSystem.SAPFOR.Json.SapforConfiguration_json;
import TestingSystem.SAPFOR.Json.SapforTasksPackage_json;
import TestingSystem.SAPFOR.Json.SapforTest_json;
@@ -46,7 +46,7 @@ public class AddSapforPackage extends AddObjectPass {
Vector selectedGroupTests = new Vector<>();
//---
for (Test test : Global.testingServer.db.tests.Data.values()) {
- if (test.group_id==groupId) {
+ if (test.group_id == groupId) {
groupTests.add(test.id);
if (test.isSelected())
selectedGroupTests.add(test.id);
@@ -90,8 +90,26 @@ public class AddSapforPackage extends AddObjectPass {
}
return true;
}
+ boolean checkStartingCode(SapforConfiguration sapforConfiguration, PassCode_2021 code, int count, Vector codes) {
+ if (count > 2) {
+ Log.Writeln_("Неверная конфигурация:" + sapforConfiguration.id + ": " +
+ code.getDescription() +
+ " возможно только один раз.");
+ return false;
+ }
+ //--
+ if ((count == 1) && codes.size() > 1) {
+ if (!codes.firstElement().equals(code)) {
+ Log.Writeln_("Неверная конфигурация:" + sapforConfiguration.id + ": " +
+ code.getDescription() +
+ " может быть только первой командой!");
+ return false;
+ }
+ }
+ return true;
+ }
+ //--
public boolean getConfigurationCommands(SapforConfiguration sapforConfiguration) {
- int headers_count = 0;
//1. получить список всех команд.
Vector codes = new Vector<>();
//-- счетчик завершающих команд.
@@ -99,8 +117,12 @@ public class AddSapforPackage extends AddObjectPass {
for (PassCode_2021 code : Constants.terminalSapforTestingCodes)
terminalCodesCount.put(code, new Index());
//--
+ LinkedHashMap startingCodesCount = new LinkedHashMap<>();
+ for (PassCode_2021 code : Constants.startingSapforTestingCodes)
+ startingCodesCount.put(code, new Index());
+ //--
for (SapforConfigurationCommand command : Global.testingServer.db.sapforConfigurationCommands.Data.values()) {
- if (command.sapforconfiguration_id==sapforConfiguration.id) {
+ if (command.sapforconfiguration_id == sapforConfiguration.id) {
codes.add(command.passCode);
//---
for (PassCode_2021 t_code : Constants.terminalSapforTestingCodes) {
@@ -108,6 +130,10 @@ public class AddSapforPackage extends AddObjectPass {
terminalCodesCount.get(t_code).Inc();
}
//---
+ for (PassCode_2021 s_code : Constants.startingSapforTestingCodes) {
+ if (command.passCode.equals(s_code))
+ startingCodesCount.get(s_code).Inc();
+ }
}
}
//--
@@ -121,8 +147,13 @@ public class AddSapforPackage extends AddObjectPass {
))
return false;
}
-
-
+ //-
+ for (PassCode_2021 s_code : Constants.startingSapforTestingCodes) {
+ if (!checkStartingCode(sapforConfiguration, s_code,
+ startingCodesCount.get(s_code).getValue(), codes
+ ))
+ return false;
+ }
//--
return true;
}
@@ -152,7 +183,7 @@ public class AddSapforPackage extends AddObjectPass {
testsNames_lower = new Vector<>();
testsByDescriptions = new LinkedHashMap<>();
groupsLanguages = new Vector<>();
- testsIds =new Vector<>();
+ testsIds = new Vector<>();
configurationsIds = new Vector<>();
//--
if (Global.testingServer.db.sapforConfigurations.getCheckedCount() == 0) {
@@ -234,15 +265,19 @@ public class AddSapforPackage extends AddObjectPass {
SapforConfiguration_json configuration_json = new SapforConfiguration_json();
configuration_json.id = configuration.id;
configuration_json.flags = configuration.getFlags();
- configuration_json.codes.add(PassCode_2021.SPF_CorrectCodeStylePass); //всегда добавляется.
- configuration_json.codes.addAll(configuration.getPassCodes());
+ Vector codes = configuration.getPassCodes();
+ //--- коррекцию кода нельзя вызвать если инклуды есть. в общем случае.
+ if (!codes.firstElement().equals(PassCode_2021.SPF_InsertIncludesPass))
+ configuration_json.codes.add(PassCode_2021.SPF_CorrectCodeStylePass); //всегда добавляется.
+ //--
+ configuration_json.codes.addAll(codes);
//--->>
package_json.configurations.add(configuration_json);
//-->>
}
package_json.sapfor_drv = Current.getServerSapfor().call_command;
///-------------------------------
- return (UI.Question("Будет добавлено:\n"
+ return (UI.Question("Будет добавлено:\n"
+ allTasksCount + " задач\n" +
"Продолжить"));
}