no message

This commit is contained in:
2023-11-09 01:47:46 +03:00
parent 3bcf8861f2
commit a6ebd5f1f9
6 changed files with 158 additions and 123 deletions

10
.idea/workspace.xml generated
View File

@@ -8,14 +8,10 @@
<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/Common/UI/Menus_2023/MainMenuBar/MainMenuBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/Menus_2023/MainMenuBar/MainMenuBar.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/SapforTestingSystem/Json/SapforTasksResults_json.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/SapforTestingSystem/Json/SapforTasksResults_json.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTask/SapforTask.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTask/SapforTask.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackage/SapforTasksPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackage/SapforTasksPackage.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackage/SapforTasksPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackage/SapforTasksPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackage/SapforTasksPackageInterface.java" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackageSupervisor/SapforTasksPackageSupervisor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackageSupervisor/SapforTasksPackageSupervisor.java" 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/Visual_DVM_2021/Passes/All/DeleteSapforTasksPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DeleteSapforTasksPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DownloadSapforTasksPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DownloadSapforTasksPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ShowSapforTaskPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ShowSapforTaskPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/UnpackSapforTasksPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/UnpackSapforTasksPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />

View File

@@ -1,5 +1,7 @@
package SapforTestingSystem.Json; package SapforTestingSystem.Json;
import Common.Utils.Utils;
import GlobalData.Tasks.TaskState; import GlobalData.Tasks.TaskState;
import SapforTestingSystem.SapforTask.MatchState;
import SapforTestingSystem.SapforTask.SapforTask; import SapforTestingSystem.SapforTask.SapforTask;
import com.google.gson.annotations.Expose; import com.google.gson.annotations.Expose;
@@ -14,56 +16,64 @@ public class SapforTasksResults_json {
public long EndDate = 0; public long EndDate = 0;
@Expose @Expose
public List<SapforTask> tasks = new Vector<>(); public List<SapforTask> tasks = new Vector<>();
//задачи по ключам. //все задачи по ключам.
public LinkedHashMap<String, SapforTask> sortedTasks = new LinkedHashMap<>(); public LinkedHashMap<String, SapforTask> allTasks = new LinkedHashMap<>();
public LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>> sortedTasks = new LinkedHashMap<>();
//-- задачи, отсортированные для сравнения.
public LinkedHashMap<MatchState, LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>>> comparisonSortedTasks = new LinkedHashMap<>();
public void SortTasks() { public void SortTasks() {
//--->>> sortedTasks.clear();
tasks.sort(Comparator.comparing(SapforTask::getUniqueKey)); //--
//--->>>
for (SapforTask task : tasks)
sortedTasks.put(task.getUniqueKey(), task);
}
//это для емейла. Не трогать.
public LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>> sortTasksByStatesConfigurationsAndGroups() {
LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>> res = new LinkedHashMap<>();
//рассортировать задачи по конфигурациям.
for (TaskState state : TaskState.values()) { for (TaskState state : TaskState.values()) {
LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> tasksByConfigurations = new LinkedHashMap<>(); LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = new LinkedHashMap<>();
res.put(state, tasksByConfigurations); sortedTasks.put(state, configuration_tasks);
//-- //--
for (SapforTask task : tasks) { for (SapforTask task : tasks) {
if (task.state.equals(state)) { if (task.state.equals(state)) {
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = null; LinkedHashMap<String, Vector<SapforTask>> groups_tasks = null;
if (tasksByConfigurations.containsKey(task.sapfor_configuration_id)) { if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
groups_tasks = tasksByConfigurations.get(task.sapfor_configuration_id); groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
} else { } else {
groups_tasks = new LinkedHashMap<>(); groups_tasks = new LinkedHashMap<>();
tasksByConfigurations.put(task.sapfor_configuration_id, groups_tasks); configuration_tasks.put(task.sapfor_configuration_id, groups_tasks);
} }
Vector<SapforTask> tasks = null; Vector<SapforTask> tasks_ = null;
if (groups_tasks.containsKey(task.group_description)) { if (groups_tasks.containsKey(task.group_description)) {
tasks = groups_tasks.get(task.group_description); tasks_ = groups_tasks.get(task.group_description);
} else { } else {
tasks = new Vector<>(); tasks_ = new Vector<>();
groups_tasks.put(task.group_description, tasks); groups_tasks.put(task.group_description, tasks_);
} }
tasks.add(task); tasks_.add(task);
}
}
//--
}
//--
for (TaskState state : TaskState.values()) {
LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = sortedTasks.get(state);
for (String configuration_id : configuration_tasks.keySet()) {
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = configuration_tasks.get(configuration_id);
for (String group : groups_tasks.keySet()) {
Vector<SapforTask> tasks_ = groups_tasks.get(group);
tasks_.sort(Comparator.comparing(SapforTask::getUniqueKey));
} }
} }
} }
return res;
} }
//--- public void SortTasksForComparison() {
// для отображения дерева без сравнения. comparisonSortedTasks.clear();
public LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>> sortTasksForTree() { //раскидать задачи по состояниям, конфигам, группам
LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>> res = new LinkedHashMap<>(); for (MatchState matchState : MatchState.values()) {
LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>> state_tasks = new LinkedHashMap<>();
comparisonSortedTasks.put(matchState, state_tasks);
//-- //--
for (TaskState state : TaskState.values()) { for (TaskState state : TaskState.values()) {
LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = new LinkedHashMap<>(); LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = new LinkedHashMap<>();
res.put(state, configuration_tasks); state_tasks.put(state, configuration_tasks);
//-- //--
for (SapforTask task : tasks) { for (SapforTask task : tasks) {
if (task.state.equals(state)) { if (task.match.equals(matchState) && task.state.equals(state)) {
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = null; LinkedHashMap<String, Vector<SapforTask>> groups_tasks = null;
if (configuration_tasks.containsKey(task.sapfor_configuration_id)) { if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
groups_tasks = configuration_tasks.get(task.sapfor_configuration_id); groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
@@ -83,6 +93,70 @@ public class SapforTasksResults_json {
} }
} }
//-- //--
}
//рассортировать задачи в группах по ключам.
for (MatchState matchState : MatchState.values()) {
LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>> state_tasks = comparisonSortedTasks.get(matchState);
for (TaskState state : TaskState.values()) {
LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = state_tasks.get(state);
for (String configuration_id : configuration_tasks.keySet()) {
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = configuration_tasks.get(configuration_id);
for (String group : groups_tasks.keySet()) {
Vector<SapforTask> tasks_ = groups_tasks.get(group);
tasks_.sort(Comparator.comparing(SapforTask::getUniqueKey));
}
}
}
}
}
//---
public String getEmailSummary() {
String res = "";
Vector<String> summary_lines = new Vector<>();
summary_lines.add("Всего задач: " + tasks.size());
for (TaskState state : sortedTasks.keySet()) {
LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> tasksByConfigurations = sortedTasks.get(state);
if (!tasksByConfigurations.isEmpty()) {
int count = 0;
if (!state.equals(TaskState.Done)) {
Vector<String> flagsLines = new Vector<>();
for (String configuration_id : tasksByConfigurations.keySet()) {
LinkedHashMap<String, Vector<SapforTask>> tasksByGroups = tasksByConfigurations.get(configuration_id);
for (String group : tasksByGroups.keySet()) {
Vector<SapforTask> tasks = tasksByGroups.get(group);
flagsLines.add("Группа " + group + ": " + tasks.size());
count += tasks.size();
for (SapforTask task : tasks) {
task.versionsDescription = task.getVersionsChain();
flagsLines.add(
"тест: " +
Utils.Brackets(task.test_description) + " " +
"флаги: "
+ Utils.Brackets(task.flags) + " " +
"версии: " +
task.versionsDescription
// + " " + "конфигурация " + task.sapfor_configuration_id
);
}
}
}
summary_lines.add(state.getDescription() + " :" + count);
summary_lines.addAll(flagsLines);
} else {
for (String flags : tasksByConfigurations.keySet()) {
LinkedHashMap<String, Vector<SapforTask>> tasksByGroups = tasksByConfigurations.get(flags);
for (String group : tasksByGroups.keySet()) {
Vector<SapforTask> tasks = tasksByGroups.get(group);
for (SapforTask task : tasks)
task.versionsDescription = task.getVersionsChain();
count += tasks.size();
}
}
summary_lines.add(state.getDescription() + " :" + count);
}
}
}
res = String.join("\n", summary_lines);
return res; return res;
} }
} }

View File

@@ -167,6 +167,7 @@ public class SapforTask extends DBObject {
} }
} }
match = MatchState.Match; match = MatchState.Match;
task2.match = MatchState.Match;
} }
} }
} }

View File

@@ -17,6 +17,7 @@ import com.sun.org.glassfish.gmbal.Description;
import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultMutableTreeNode;
import java.io.File; import java.io.File;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.Comparator;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Vector; import java.util.Vector;
public class SapforTasksPackage extends nDBObject { public class SapforTasksPackage extends nDBObject {
@@ -90,7 +91,13 @@ public class SapforTasksPackage extends nDBObject {
try { try {
results = (SapforTasksResults_json) Utils.jsonFromFile(json_file, results = (SapforTasksResults_json) Utils.jsonFromFile(json_file,
SapforTasksResults_json.class); SapforTasksResults_json.class);
results.SortTasks(); //----
results.tasks.sort(Comparator.comparing(SapforTask::getUniqueKey));
for (SapforTask task : results.tasks)
results.allTasks.put(task.getUniqueKey(), task);
//---
results.SortTasks(); //по состояниям конфигурациям и группам
//---
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
} }
@@ -102,14 +109,12 @@ public class SapforTasksPackage extends nDBObject {
} }
//-- //--
root = new PackageSummary(); root = new PackageSummary();
LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>> task_states =
results.sortTasksForTree();
//--- //---
for (TaskState state : task_states.keySet()) { for (TaskState state : results.sortedTasks.keySet()) {
//-- //--
StateSummary stateSummary = new StateSummary(state); StateSummary stateSummary = new StateSummary(state);
//-- //--
LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> tasksByConfigurations = task_states.get(state); LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> tasksByConfigurations = results.sortedTasks.get(state);
for (String configuration_id : tasksByConfigurations.keySet()) { for (String configuration_id : tasksByConfigurations.keySet()) {
//-- //--
DefaultMutableTreeNode configurationNode = null; DefaultMutableTreeNode configurationNode = null;

View File

@@ -4,7 +4,6 @@ import Common.Current;
import Common.Global; import Common.Global;
import Common.GlobalProperties; import Common.GlobalProperties;
import Common.Utils.Utils; import Common.Utils.Utils;
import GlobalData.Tasks.TaskState;
import Repository.Server.ServerCode; import Repository.Server.ServerCode;
import SapforTestingSystem.Json.SapforConfiguration_json; import SapforTestingSystem.Json.SapforConfiguration_json;
import SapforTestingSystem.Json.SapforTasksPackage_json; import SapforTestingSystem.Json.SapforTasksPackage_json;
@@ -175,56 +174,12 @@ public class SapforTasksPackageSupervisor {
System.out.println("done!"); System.out.println("done!");
} }
public void AnalysePackage() throws Exception { public void AnalysePackage() throws Exception {
Vector<String> summary_lines = new Vector<>();
File results_json_file = new File(sapforTasksPackage.workspace, Constants.results_json); File results_json_file = new File(sapforTasksPackage.workspace, Constants.results_json);
if (results_json_file.exists()) { if (results_json_file.exists()) {
SapforTasksResults_json results_json = (SapforTasksResults_json) Utils.jsonFromFile(results_json_file, SapforTasksResults_json.class); SapforTasksResults_json results_json = (SapforTasksResults_json) Utils.jsonFromFile(results_json_file, SapforTasksResults_json.class);
summary_lines.add("Всего задач: " + results_json.tasks.size()); results_json.SortTasks();
LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>> sortedTasks = results_json.sortTasksByStatesConfigurationsAndGroups();
//-- //--
for (TaskState state : sortedTasks.keySet()) { sapforTasksPackage.summary = results_json.getEmailSummary();
LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> tasksByConfigurations = sortedTasks.get(state);
if (!tasksByConfigurations.isEmpty()) {
int count = 0;
if (!state.equals(TaskState.Done)) {
Vector<String> flagsLines = new Vector<>();
for (String configuration_id : tasksByConfigurations.keySet()) {
LinkedHashMap<String, Vector<SapforTask>> tasksByGroups = tasksByConfigurations.get(configuration_id);
for (String group : tasksByGroups.keySet()) {
Vector<SapforTask> tasks = tasksByGroups.get(group);
flagsLines.add("Группа " + group + ": " + tasks.size());
count += tasks.size();
for (SapforTask task : tasks) {
task.versionsDescription = task.getVersionsChain();
flagsLines.add(
"тест: " +
Utils.Brackets(task.test_description) + " " +
"флаги: "
+ Utils.Brackets(task.flags) + " " +
"версии: " +
task.versionsDescription
// + " " + "конфигурация " + task.sapfor_configuration_id
);
}
}
}
summary_lines.add(state.getDescription() + " :" + count);
summary_lines.addAll(flagsLines);
} else {
for (String flags : tasksByConfigurations.keySet()) {
LinkedHashMap<String, Vector<SapforTask>> tasksByGroups = tasksByConfigurations.get(flags);
for (String group : tasksByGroups.keySet()) {
Vector<SapforTask> tasks = tasksByGroups.get(group);
for (SapforTask task: tasks)
task.versionsDescription = task.getVersionsChain();
count += tasks.size();
}
}
summary_lines.add(state.getDescription() + " :" + count);
}
}
}
sapforTasksPackage.summary = String.join("\n", summary_lines);
for (SapforTask task : results_json.tasks) { for (SapforTask task : results_json.tasks) {
//-- //--
task.versions = null; task.versions = null;

View File

@@ -168,13 +168,24 @@ public class SapforPackagesComparisonForm {
Log.Writeln_("Наборы конфигураций не совпадают!"); Log.Writeln_("Наборы конфигураций не совпадают!");
return false; return false;
} }
return true; for (String key1 : package1.results.allTasks.keySet()) {
if (!package2.results.allTasks.containsKey(key1)) {
Log.Writeln_("Задача эталона " + key1 + "не найдена в сравниваемом пакете!");
}
}
return Log.isEmpty();
} }
return false; return false;
} }
@Override @Override
protected void performPreparation() throws Exception { protected void performPreparation() throws Exception {
for (SapforTask task : package1.results.sortedTasks.values()) package1.results.comparisonSortedTasks.clear();
package2.results.comparisonSortedTasks.clear();
//сброс всех состояний задач.
for (SapforTask task : package1.results.allTasks.values())
task.match = MatchState.NotMatch;
//--
for (SapforTask task : package2.results.allTasks.values())
task.match = MatchState.NotMatch; task.match = MatchState.NotMatch;
} }
@Override @Override
@@ -185,21 +196,14 @@ public class SapforPackagesComparisonForm {
} }
@Override @Override
protected void body() throws Exception { protected void body() throws Exception {
for (String key1 : package1.results.sortedTasks.keySet()) {
if (!package2.results.sortedTasks.containsKey(key1)) {
Log.Writeln_("Задача эталона " + key1 + "не найдена в сравниваемом пакете!");
}
}
if (Log.isEmpty()) {
//теперь сравниваем задачи //теперь сравниваем задачи
for (String key1 : package1.results.sortedTasks.keySet()) { for (String key1 : package1.results.allTasks.keySet()) {
SapforTask task1 = package1.results.sortedTasks.get(key1); SapforTask task1 = package1.results.allTasks.get(key1);
SapforTask task2 = package2.results.sortedTasks.get(key1); SapforTask task2 = package2.results.allTasks.get(key1);
//-- //--
task1.checkMatch(task2); task1.checkMatch(task2);
} }
} }
}
@Override @Override
protected boolean validate() { protected boolean validate() {
return Log.isEmpty(); return Log.isEmpty();