diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index c0af1d08..8642db2e 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -7,10 +7,15 @@
+
-
-
+
+
+
+
+
+
@@ -33,8 +38,8 @@
-
+
diff --git a/src/Repository/Component/Visualiser.java b/src/Repository/Component/Visualiser.java
index d99de5a7..33bb7c20 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 = 1067;
+ version = 1068;
String pattern = "MMM dd yyyy HH:mm:ss";
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
date_text = df.format(getClassBuildTime());
diff --git a/src/TestingSystem/Common/TestingServer.java b/src/TestingSystem/Common/TestingServer.java
index f4a37aba..45cf2fed 100644
--- a/src/TestingSystem/Common/TestingServer.java
+++ b/src/TestingSystem/Common/TestingServer.java
@@ -29,13 +29,10 @@ import Visual_DVM_2021.Passes.Pass_2021;
import javafx.util.Pair;
import org.apache.commons.io.FileUtils;
-import javax.swing.*;
+import javax.swing.Timer;
import java.io.File;
import java.nio.file.Paths;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.LinkedHashMap;
-import java.util.Vector;
+import java.util.*;
public class TestingServer extends RepositoryServer {
/*
@Override
@@ -495,24 +492,56 @@ public class TestingServer extends RepositoryServer {
File repoSapforHome = Paths.get(repo.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN ).toFile();
File repo_bin = new File(repoSapforHome, "Sapfor_F");
//--
+ System.out.println("Синхронизация ветви DVM...");
Utils.startScript(repo, repo, "dvm_checkout",
"svn checkout " +
Constants.REPOSITORY_AUTHENTICATION +
" " + Constants.DVM_REPOSITORY + " 1>dvm_out.txt 2>dvm_err.txt\n").waitFor();
-
+ System.out.println("Синхронизация ветви SAPFOR...");
Utils.startScript(repo, repo, "spf_checkout",
"svn checkout " +
Constants.REPOSITORY_AUTHENTICATION +
" " + Constants.SAPFOR_REPOSITORY + " 1>spf_out.txt 2>spf_err.txt\n").waitFor();
//--
- if (repo_bin.exists()){
+ if (repo_bin.exists())
FileUtils.forceDelete(repo_bin);
- }
//--
+ System.out.println("Сборка SAPFOR...");
Utils.startScript(repoSapforHome, repoSapforHome, "build_sapfor",
"cmake ../ 1>out.txt 2>err.txt\nmake -j 14 1>>out.txt 2>>err.txt\n").waitFor();
//--
- response = new ServerExchangeUnit_2021(ServerCode.OK);
+ System.out.println("DONE");
+ File repoSapfor = new File(repoSapforHome, "Sapfor_F");
+ System.out.println("Result file is "+Utils.Brackets(repoSapfor.getAbsolutePath()));
+ if (repoSapfor.exists()) {
+ System.out.println("assembly found!");
+ response = new ServerExchangeUnit_2021(ServerCode.OK);
+ File sapforsDirectory = new File(testingSystemHome, "Sapfors");
+ //создать папку. Для того чтобы скопировать из репозитория.
+ File sapforHome = new File(sapforsDirectory, Utils.getDateName("sapfor"));
+ sapforHome.mkdir();
+ File sapforBin = new File(sapforHome, "Sapfor_F");
+ FileUtils.copyFile(repo_bin, sapforBin);
+ sapforBin.setExecutable(true, false);
+ // //-->>>
+ ServerSapfor serverSapfor = new ServerSapfor();
+ serverSapfor.home_path = sapforHome.getAbsolutePath();
+ serverSapfor.call_command = sapforBin.getAbsolutePath();
+ serverSapfor.languageName = LanguageName.fortran;
+ serverSapfor.buildDate = new Date().getTime();
+ response.object = serverSapfor;
+ File version =new File(sapforHome, "version.txt");
+ System.out.println("Запрос версии..");
+ Utils.startScript(sapforHome, sapforHome, "get_version",
+ serverSapfor.getVersionCommand()+" 1>"+Utils.DQuotes(version.getAbsolutePath())).waitFor();
+ if (version.exists()){
+ System.out.println("version.txt found");
+ String raw = FileUtils.readFileToString(version);
+ System.out.println(Utils.Brackets(raw));
+ String[] data = raw.split(" ");
+ if (data.length >= 4) serverSapfor.version = data[3].replace(",", "");
+ }
+ }else throw new RepositoryRefuseException("Не удалось собрать SAPFOR");
}
}
diff --git a/src/TestingSystem/SAPFOR/Json/SapforPackage_json.java b/src/TestingSystem/SAPFOR/Json/SapforPackage_json.java
index 74a4ac3d..4382db51 100644
--- a/src/TestingSystem/SAPFOR/Json/SapforPackage_json.java
+++ b/src/TestingSystem/SAPFOR/Json/SapforPackage_json.java
@@ -1,5 +1,4 @@
package TestingSystem.SAPFOR.Json;
-import Common.UI.UI;
import GlobalData.Tasks.TaskState;
import TestingSystem.SAPFOR.SapforPackage.SapforPackage;
import TestingSystem.SAPFOR.SapforTask.MatchState;
@@ -34,14 +33,16 @@ public class SapforPackage_json implements Serializable {
//-
public PackageSummary root = null;
public PackageSummary comparison_root = null;
+ //--
public LinkedHashMap allTasks = new LinkedHashMap<>();
- public LinkedHashMap>>> sortedTasks = new LinkedHashMap<>();
+ public LinkedHashMap> sortedTasks = new LinkedHashMap<>();
+ // public LinkedHashMap>>> sortedTasks = new LinkedHashMap<>();
//-- задачи, отсортированные для сравнения.
public LinkedHashMap>>>> comparisonSortedTasks = new LinkedHashMap<>();
//----
//---------
public void DropComparison() {
- // UI.Info("DROP COMPARISON");
+ // UI.Info("DROP COMPARISON");
comparison_root = null;
comparisonSortedTasks.clear();
for (SapforTask task : allTasks.values())
@@ -49,49 +50,22 @@ public class SapforPackage_json implements Serializable {
}
public void SortTasks() {
sortedTasks.clear();
- //--
for (TaskState state : TaskState.values()) {
- LinkedHashMap>> configuration_tasks = new LinkedHashMap<>();
- sortedTasks.put(state, configuration_tasks);
- //--
+ Vector stateTasks = new Vector<>();
for (SapforTask task : tasks) {
- if (task.state.equals(state)) {
- LinkedHashMap> groups_tasks = null;
- if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
- groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
- } else {
- groups_tasks = new LinkedHashMap<>();
- configuration_tasks.put(task.sapfor_configuration_id, groups_tasks);
- }
- Vector tasks_ = null;
- if (groups_tasks.containsKey(task.group_description)) {
- tasks_ = groups_tasks.get(task.group_description);
- } else {
- tasks_ = new Vector<>();
- groups_tasks.put(task.group_description, tasks_);
- }
- tasks_.add(task);
- }
- }
- //--
- }
- //--
- for (TaskState state : TaskState.values()) {
- LinkedHashMap>> configuration_tasks = sortedTasks.get(state);
- for (int configuration_id : configuration_tasks.keySet()) {
- LinkedHashMap> groups_tasks = configuration_tasks.get(configuration_id);
- for (String group : groups_tasks.keySet()) {
- Vector tasks_ = groups_tasks.get(group);
- tasks_.sort(Comparator.comparing(SapforTask::getUniqueKey));
- }
+ if (task.state.equals(state))
+ stateTasks.add(task);
}
+ if (!stateTasks.isEmpty())
+ sortedTasks.put(state, stateTasks);
}
}
+
public void SortTasksForComparison() {
comparisonSortedTasks.clear();
//раскидать задачи по состояниям, конфигам, группам
for (MatchState matchState : MatchState.values()) {
- System.out.println("match_state="+matchState.toString());
+ System.out.println("match_state=" + matchState.toString());
LinkedHashMap>>> state_tasks = new LinkedHashMap<>();
comparisonSortedTasks.put(matchState, state_tasks);
//--
@@ -100,25 +74,25 @@ public class SapforPackage_json implements Serializable {
state_tasks.put(state, configuration_tasks);
//--
for (SapforTask task : tasks) {
- // if (matchState.equals(MatchState.Unknown)) {
- if (task.match.equals(matchState) && task.state.equals(state)) {
- LinkedHashMap> groups_tasks = null;
- if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
- groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
- } else {
- groups_tasks = new LinkedHashMap<>();
- configuration_tasks.put(task.sapfor_configuration_id, groups_tasks);
- }
- Vector tasks = null;
- if (groups_tasks.containsKey(task.group_description)) {
- tasks = groups_tasks.get(task.group_description);
- } else {
- tasks = new Vector<>();
- groups_tasks.put(task.group_description, tasks);
- }
- tasks.add(task);
+ // if (matchState.equals(MatchState.Unknown)) {
+ if (task.match.equals(matchState) && task.state.equals(state)) {
+ LinkedHashMap> groups_tasks = null;
+ if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
+ groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
+ } else {
+ groups_tasks = new LinkedHashMap<>();
+ configuration_tasks.put(task.sapfor_configuration_id, groups_tasks);
}
- // }
+ Vector tasks = null;
+ if (groups_tasks.containsKey(task.group_description)) {
+ tasks = groups_tasks.get(task.group_description);
+ } else {
+ tasks = new Vector<>();
+ groups_tasks.put(task.group_description, tasks);
+ }
+ tasks.add(task);
+ }
+ // }
}
}
//--
@@ -138,49 +112,6 @@ public class SapforPackage_json implements Serializable {
}
}
}
- //---------------------------------------------------->>
- public void buildTree(SapforPackage package_in) {
- root = new PackageSummary();
- //---
- for (TaskState state : sortedTasks.keySet()) {
- //--
- StateSummary stateSummary = new StateSummary(state);
- //--
- LinkedHashMap>> tasksByConfigurations = sortedTasks.get(state);
- for (int configuration_id : tasksByConfigurations.keySet()) {
- //--
- DefaultMutableTreeNode configurationNode = null;
- //--
- LinkedHashMap> groups_tasks = tasksByConfigurations.get(configuration_id);
- for (String group : groups_tasks.keySet()) {
- //--
- GroupSummary groupSummary = new GroupSummary(group);
- //--
- for (SapforTask task : groups_tasks.get(group)) {
- //--
- stateSummary.count++;
- root.count++;
- //--
- if (configurationNode == null) {
- configurationNode = new ConfigurationSummary(configuration_id, task);
- }
- //--
- groupSummary.add(task.getVersionsTree(
- Paths.get(package_in.getLocalWorkspace().getAbsolutePath(),
- String.valueOf(task.set_id),
- String.valueOf(configuration_id)).toFile())
- );
- }
- if (configurationNode != null)
- configurationNode.add(groupSummary);
- }
- stateSummary.add(configurationNode);
- }
- if (stateSummary.count > 0) {
- root.add(stateSummary);
- }
- }
- }
public void buildComparisonTree(SapforPackage package_in) {
comparison_root = new PackageSummary();
for (MatchState match_state : comparisonSortedTasks.keySet()) {
@@ -234,4 +165,29 @@ public class SapforPackage_json implements Serializable {
}
}
}
+ //--
+ // public
+ public void buildTree(SapforPackage package_in) {
+ root = new PackageSummary();
+ root.count = package_in.package_json.allTasks.size();
+ //--
+ for (TaskState state : sortedTasks.keySet()) {
+ StateSummary stateSummary = new StateSummary(state);
+ Vector tasks = sortedTasks.get(state);
+ //-
+ if (state.equals(TaskState.DoneWithErrors))
+ root.errors_count += tasks.size();
+ //-
+ for (SapforTask task : tasks) {
+ DefaultMutableTreeNode taskNode = task.getNode(Paths.get(
+ package_in.getLocalWorkspace().getAbsolutePath(),
+ String.valueOf(task.set_id),
+ String.valueOf(task.sapfor_configuration_id)
+ ).toFile());
+ stateSummary.add(taskNode);
+ stateSummary.count++;
+ }
+ root.add(stateSummary);
+ }
+ }
}
diff --git a/src/TestingSystem/SAPFOR/Json/SapforVersionMatchState.java b/src/TestingSystem/SAPFOR/Json/SapforVersionMatchState.java
new file mode 100644
index 00000000..0f902488
--- /dev/null
+++ b/src/TestingSystem/SAPFOR/Json/SapforVersionMatchState.java
@@ -0,0 +1,7 @@
+package TestingSystem.SAPFOR.Json;
+public enum SapforVersionMatchState {
+ Unknown,
+ Match, //версия совпадает
+ FilesQuantityMissmatch, //количество выходных файлов в версии не совпадает
+ CodeMissmatch //код файлов не совпадает.
+}
diff --git a/src/TestingSystem/SAPFOR/Json/SapforVersion_json.java b/src/TestingSystem/SAPFOR/Json/SapforVersion_json.java
index b54cf881..6bdaacca 100644
--- a/src/TestingSystem/SAPFOR/Json/SapforVersion_json.java
+++ b/src/TestingSystem/SAPFOR/Json/SapforVersion_json.java
@@ -36,6 +36,7 @@ public class SapforVersion_json implements Serializable {
//--
public SapforTask task = null; //родная задача. Нужна для построения дерева версий.
public db_project_info project = null;
+ public SapforVersionMatchState matchState = SapforVersionMatchState.Unknown;
//--
public SapforVersion_json(String version_in, String description_in) {
version = version_in;
diff --git a/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java b/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java
index 3a263d38..bc325f7a 100644
--- a/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java
+++ b/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java
@@ -1,6 +1,5 @@
package TestingSystem.SAPFOR.SapforTask;
import Common.Constants;
-import Common.Current;
import Common.Database.DBObject;
import Common.Utils.Utils;
import GlobalData.Tasks.TaskState;
@@ -58,7 +57,7 @@ public class SapforTask extends DBObject {
// MatchState.Unknown;
//-----------
public String getUniqueKey() {
- return sapfor_configuration_id + "_" + group_description + "_" + test_description;
+ return group_description + "_" + test_description + "_" +sapfor_configuration_id;
}
public String getSummary() {
Vector lines = new Vector<>();
@@ -85,19 +84,19 @@ public class SapforTask extends DBObject {
root = child;
parent = child;
} else {
- if (!child.state.equals(SapforVersionState.Empty)) {
+ // if (!child.state.equals(SapforVersionState.Empty)) {
parent.add(child);
parent = child;
- }
+ // }
}
//-
}
if (parent != null) {
for (SapforVersion_json version_json : variants) {
version_json.task = this;
- if (!child.state.equals(SapforVersionState.Empty)) {
+ // if (!child.state.equals(SapforVersionState.Empty)) {
parent.add(new VersionSummary(version_json, version_json.init(configurationRoot)));
- }
+ // }
}
}
//--
@@ -196,4 +195,35 @@ public class SapforTask extends DBObject {
public Date getChangeDate() {
return new Date(ChangeDate);
}
+ @Override
+ public String toString() {
+ return
+ "группа "+Utils.Brackets(group_description)+" тест "+Utils.Brackets(test_description)+" конфигурация "+Utils.Brackets(sapfor_configuration_id);
+ // getUniqueKey();
+ }
+ public String getPassesInfo(){
+ String res = "";
+ String [] data = codes.split(" ");
+ Vector strings = new Vector<>();
+ for (String code_s: data){
+ PassCode_2021 code = PassCode_2021.valueOf(code_s);
+ strings.add(Utils.Brackets(code.getDescription()));
+ }
+ return String.join("→", strings);
+ }
+ //---
+ public DefaultMutableTreeNode getNode(File configurationRoot) {
+ DefaultMutableTreeNode res = new DefaultMutableTreeNode(this);
+ DefaultMutableTreeNode flags_info = new DefaultMutableTreeNode("флаги: "+this.flags);
+ DefaultMutableTreeNode passes_info = new DefaultMutableTreeNode("проходы: "+getPassesInfo());
+ //-
+ int total_versions_count = versions.size()+variants.size();
+ DefaultMutableTreeNode versions_info = new DefaultMutableTreeNode("версии: "+total_versions_count);
+ versions_info.add(getVersionsTree(configurationRoot));
+ //--
+ res.add(flags_info);
+ res.add(passes_info);
+ res.add(versions_info);
+ return res;
+ }
}
diff --git a/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/PackageSummary.java b/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/PackageSummary.java
index 741078c3..a25c4f1d 100644
--- a/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/PackageSummary.java
+++ b/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/PackageSummary.java
@@ -2,16 +2,15 @@ package TestingSystem.SAPFOR.SapforTasksPackage.UI;
import Common.UI.UI;
public class PackageSummary extends SapforPackageTreeNode {
public int count = 0;
+ public int errors_count=0;
@Override
public String getImageKey() {
- // System.out.println("PACKAGE_SUMMARY "+ this.count);
return "UnknownStateSummary";
- // return null;
}
public PackageSummary() {
}
@Override
public String toString() {
- return "всего задач : " + count;
+ return "всего задач : " + count+", с ошибками : "+errors_count;
}
}
diff --git a/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforPackageTreeNode.java b/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforPackageTreeNode.java
index 2a880fc3..d487c654 100644
--- a/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforPackageTreeNode.java
+++ b/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforPackageTreeNode.java
@@ -4,11 +4,8 @@ import javax.swing.tree.DefaultMutableTreeNode;
import java.util.Objects;
public abstract class SapforPackageTreeNode extends DefaultMutableTreeNode {
public ImageIcon getIcon() {
- // System.out.println(getImageKey());
ImageIcon res = new ImageIcon(Objects.requireNonNull(getClass().getResource("/icons/versions/" + getImageKey() + ".png")));
- // System.out.println(res);
return (getImageKey() != null) ? res : null;
}
public abstract String getImageKey();
-
}
diff --git a/src/Visual_DVM_2021/Passes/All/InstallServerSapfor.java b/src/Visual_DVM_2021/Passes/All/InstallServerSapfor.java
index e797ce20..a5663fc4 100644
--- a/src/Visual_DVM_2021/Passes/All/InstallServerSapfor.java
+++ b/src/Visual_DVM_2021/Passes/All/InstallServerSapfor.java
@@ -95,9 +95,51 @@ public class InstallServerSapfor extends ConnectionPass