исправление опечатки в сообщении.

учет в конфигурациях распареллеливания на общую память, и двмh регионов. как и варианты. запрещено ставить больше одного. и не последними.
This commit is contained in:
2023-10-17 17:33:34 +03:00
parent 1b844eb953
commit 4a50b185c7
4 changed files with 48 additions and 17 deletions

4
.idea/workspace.xml generated
View File

@@ -8,7 +8,9 @@
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment=""> <list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/TestingServer.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Common/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Constants.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/ProjectData/Messages/Message.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/ProjectData/Messages/Message.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartSapforTests.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartSapforTests.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -2,6 +2,7 @@ package Common;
import GlobalData.Machine.Machine; import GlobalData.Machine.Machine;
import GlobalData.Machine.MachineType; import GlobalData.Machine.MachineType;
import GlobalData.User.User; import GlobalData.User.User;
import Visual_DVM_2021.Passes.PassCode_2021;
import java.util.regex.Pattern; import java.util.regex.Pattern;
public class Constants { public class Constants {
@@ -29,7 +30,12 @@ public class Constants {
public static final String MailAddress = "sapfor.tracker@internet.ru"; public static final String MailAddress = "sapfor.tracker@internet.ru";
// public static final String MailPassword = "3s4w9e5fs3c1a89AA"; основной пароль. // public static final String MailPassword = "3s4w9e5fs3c1a89AA"; основной пароль.
public static final String MailPassword = "knKn2PpfrC348ZxHtMnT"; //пароль для сапфора как внешнего приложения. public static final String MailPassword = "knKn2PpfrC348ZxHtMnT"; //пароль для сапфора как внешнего приложения.
//--
public static final PassCode_2021[] terminalSapforTestingCodes = new PassCode_2021[]{
PassCode_2021.CreateParallelVariants,
PassCode_2021.SPF_SharedMemoryParallelization,
PassCode_2021.SPF_InsertDvmhRegions
};
//-- //--
//https://losst.ru/komandy-terminala-linux //https://losst.ru/komandy-terminala-linux
public static String[] linux_system_commands = new String[]{ public static String[] linux_system_commands = new String[]{

View File

@@ -280,7 +280,7 @@ public class Message extends FileObject {
codedMessages.put("R198", "Цикл на строке %d был удалён"); codedMessages.put("R198", "Цикл на строке %d был удалён");
codedMessages.put("R199", "Зависимость по скаляру с типом lastprivate препятствует распараллеливанию данного цикла"); codedMessages.put("R199", "Зависимость по скаляру с типом lastprivate препятствует распараллеливанию данного цикла");
codedMessages.put("R200", "Добавлена lastprivate переменная '%s' к циклу на строке %d"); codedMessages.put("R200", "Добавлена lastprivate переменная '%s' к циклу на строке %d");
codedMessages.put("R202", "Ссылка '%s' имеет размер отличный от оригинального массива размер"); codedMessages.put("R202", "Ссылка '%s' имеет отличный от оригинального массива размер");
//3002 //3002
//3001 //3001
codedMessages.put("R108", "Добавлена across-зависимость к массиву '%s' в цикле."); codedMessages.put("R108", "Добавлена across-зависимость к массиву '%s' в цикле.");

View File

@@ -1,7 +1,9 @@
package Visual_DVM_2021.Passes.All; package Visual_DVM_2021.Passes.All;
import Common.Constants;
import Common.Current; import Common.Current;
import Common.Global; import Common.Global;
import Common.UI.UI; import Common.UI.UI;
import Common.Utils.Index;
import ProjectData.LanguageName; import ProjectData.LanguageName;
import Repository.Server.ServerCode; import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021; import Repository.Server.ServerExchangeUnit_2021;
@@ -83,15 +85,41 @@ public class StartSapforTests extends TestingSystemPass<SapforTasksPackage> {
//-- //--
return true; return true;
} }
boolean checkTerminalCode(SapforConfiguration sapforConfiguration, PassCode_2021 code, int count, Vector<PassCode_2021> codes) {
if (count > 2) {
Log.Writeln_("Неверная конфигурация:" + sapforConfiguration.id + ": " +
code.getDescription() +
" возможно только один раз.");
return false;
}
//--
if ((count == 1) && codes.size() > 1) {
if (!codes.lastElement().equals(code)) {
Log.Writeln_("Неверная конфигурация:" + sapforConfiguration.id + ": " +
code.getDescription() +
" может быть только завершающей командой!");
return false;
}
}
return true;
}
public boolean getConfigurationCommands(SapforConfiguration sapforConfiguration) { public boolean getConfigurationCommands(SapforConfiguration sapforConfiguration) {
//1. получить список всех команд. //1. получить список всех команд.
Vector<PassCode_2021> codes = new Vector<>(); Vector<PassCode_2021> codes = new Vector<>();
int v = 0; //-- счетчик завершающих команд.
LinkedHashMap<PassCode_2021, Index> terminalCodesCount = new LinkedHashMap<>();
for (PassCode_2021 code : Constants.terminalSapforTestingCodes)
terminalCodesCount.put(code, new Index());
//--
for (SapforConfigurationCommand command : Global.testingServer.db.sapforConfigurationCommands.Data.values()) { for (SapforConfigurationCommand command : Global.testingServer.db.sapforConfigurationCommands.Data.values()) {
if (command.sapforconfiguration_id.equals(sapforConfiguration.id)) { if (command.sapforconfiguration_id.equals(sapforConfiguration.id)) {
codes.add(command.passCode); codes.add(command.passCode);
if (command.passCode.equals(PassCode_2021.CreateParallelVariants)) //---
v++; for (PassCode_2021 t_code : Constants.terminalSapforTestingCodes) {
if (command.passCode.equals(t_code))
terminalCodesCount.get(t_code).Inc();
}
//---
} }
} }
//-- //--
@@ -99,18 +127,13 @@ public class StartSapforTests extends TestingSystemPass<SapforTasksPackage> {
Log.Writeln_("Пустая конфигурация:" + sapforConfiguration.id); Log.Writeln_("Пустая конфигурация:" + sapforConfiguration.id);
return false; return false;
} }
//-- for (PassCode_2021 t_code : Constants.terminalSapforTestingCodes) {
if (v > 2) { if (!checkTerminalCode(sapforConfiguration, t_code,
Log.Writeln_("Неверная конфигурация:" + sapforConfiguration.id + ": построение параллельных вариантов возможно единожды."); terminalCodesCount.get(t_code).getValue(), codes
))
return false; return false;
} }
//-- //--
if ((v == 1) && codes.size() > 1) {
if (!codes.lastElement().equals(PassCode_2021.CreateParallelVariants)) {
Log.Writeln_("Неверная конфигурация:" + sapforConfiguration.id + ": построение параллельных вариантов может быть только завершающей командой!");
return false;
}
}
return true; return true;
} }
//-- //--