процесс рефакторинга. Так как нужно запускать тесты на многих флагах, понадобилось внести дополнительные объекты.

This commit is contained in:
2023-09-27 00:43:23 +03:00
parent 0026701347
commit 42338700f4
25 changed files with 297 additions and 193 deletions

View File

@@ -1,7 +1,7 @@
package Visual_DVM_2021.Passes.All;
import Common.Global;
import Common.Utils.Utils;
import SapforTestingSystem.SapforTask.SapforTask_2023;
import SapforTestingSystem.SapforTask.SapforTask;
import SapforTestingSystem.Json.ScenarioResults_json;
import Visual_DVM_2021.Passes.Pass_2021;
import org.apache.commons.io.FileUtils;
@@ -30,7 +30,7 @@ public class AnalyseSapforPackageResults extends Pass_2021<ScenarioResults_json>
}
@Override
protected void body() throws Exception {
for (SapforTask_2023 task: target.tasks) {
for (SapforTask task: target.tasks) {
task.id=Global.db.IncSapforMaxTaskId();
Global.db.Insert(task);
}

View File

@@ -3,14 +3,11 @@ import Common.Current;
import Common.Database.Database;
import Common.Global;
import Common.UI.UI;
import Common.Utils.Utils;
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage_2023;
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
import Visual_DVM_2021.Passes.DeleteObjectPass;
import java.io.File;
public class DeleteSapforTasksPackage extends DeleteObjectPass<SapforTasksPackage_2023> {
public class DeleteSapforTasksPackage extends DeleteObjectPass<SapforTasksPackage> {
public DeleteSapforTasksPackage() {
super(SapforTasksPackage_2023.class);
super(SapforTasksPackage.class);
}
@Override
protected Database getDb() {
@@ -25,6 +22,6 @@ public class DeleteSapforTasksPackage extends DeleteObjectPass<SapforTasksPackag
@Override
protected void body() throws Exception {
super.body();
Utils.delete_with_check(new File(target.workspace));
// Utils.delete_with_check(new File(target.workspace));
}
}

View File

@@ -1,14 +1,12 @@
package Visual_DVM_2021.Passes.All;
import Common.Current;
import Common.Global;
import Common.Utils.Utils;
import ProjectData.Files.DBProjectFile;
import ProjectData.LanguageName;
import ProjectData.Messages.Errors.MessageError;
import ProjectData.Project.db_project_info;
import SapforTestingSystem.SapforTask.SapforTaskResult;
import SapforTestingSystem.SapforTask.SapforTask_2023;
import SapforTestingSystem.Json.SapforVersion_json;
import SapforTestingSystem.SapforTask.SapforTaskResult;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Pass_2021;
import org.apache.commons.io.FileUtils;
@@ -204,9 +202,10 @@ public class OpenSapforTest extends Pass_2021<SapforTaskResult> {
}
@Override
protected void body() throws Exception {
/*
File resultsFile = Paths.get(target.sapforTasksPackage.workspace, target.task.test_description, db_project_info.data, "results.txt").toFile();
String resultsText = FileUtils.readFileToString(resultsFile);
SapforTask_2023 savedTask = Utils.gson.fromJson(resultsText, SapforTask_2023.class);
SapforTask savedTask = Utils.gson.fromJson(resultsText, SapforTask.class);
//--->>
if (target.task.versions_tree_built == 0) {
ShowMessage1("Построение дерева версий..");
@@ -221,6 +220,7 @@ public class OpenSapforTest extends Pass_2021<SapforTaskResult> {
last_version = savedTask.variants.lastElement().version;
} else if (!savedTask.versions.isEmpty())
last_version = savedTask.versions.lastElement().version;
*/
}
@Override
protected boolean validate() {

View File

@@ -2,7 +2,7 @@ package Visual_DVM_2021.Passes.All;
import Common.Utils.Utils;
import GlobalData.Tasks.TaskState;
import ProjectData.Project.db_project_info;
import SapforTestingSystem.SapforTask.SapforTask_2023;
import SapforTestingSystem.SapforTask.SapforTask;
import SapforTestingSystem.Json.SapforVersion_json;
import SapforTestingSystem.Json.ScenarioResults_json;
import SapforTestingSystem.Json.Scenario_json;
@@ -35,7 +35,7 @@ public class PerformSapforTasksPackage extends Pass_2021<Scenario_json> {
//--
ScenarioResults_json results;
//-
SapforTask_2023 taskResult = null;
SapforTask taskResult = null;
//--
@Override
protected boolean canStart(Object... args) throws Exception {
@@ -56,7 +56,7 @@ public class PerformSapforTasksPackage extends Pass_2021<Scenario_json> {
//--
parentTask = new File(packageWorkspace, test);
//--
taskResult = new SapforTask_2023();
taskResult = new SapforTask();
taskResult.test_description = test;
taskResult.sapfortaskspackage_2023_id = Integer.parseInt(packageWorkspace.getName());
taskResult.versions.add(new SapforVersion_json(parentTask.getAbsolutePath(), "исходная"));

View File

@@ -3,12 +3,11 @@ import Common.Global;
import Common.Utils.Utils;
import GlobalData.Tasks.TaskState;
import ProjectData.Project.db_project_info;
import SapforTestingSystem.SapforTask.SapforTask_2023;
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage_2023;
import SapforTestingSystem.Json.SapforVersion_json;
import SapforTestingSystem.Json.ScenarioResults_json;
import SapforTestingSystem.Json.Scenario_json;
import TestingSystem.TasksPackage.TasksPackageState;
import SapforTestingSystem.SapforTask.SapforTask;
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.PassException;
import Visual_DVM_2021.Passes.Pass_2021;
@@ -19,11 +18,10 @@ import java.nio.charset.Charset;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;
import java.util.Vector;
//создание дерева версий одного теста по заданному сценарию.
public class PerformScenario extends Pass_2021<Scenario_json> {
SapforTasksPackage_2023 tasks_package;
SapforTasksPackage tasks_package;
File scenarioFile;
//---
File parentTask;
@@ -40,7 +38,7 @@ public class PerformScenario extends Pass_2021<Scenario_json> {
//--
ScenarioResults_json results;
//-
SapforTask_2023 taskResult = null;
SapforTask taskResult = null;
//--
@Override
protected boolean needsAnimation() {
@@ -50,9 +48,9 @@ public class PerformScenario extends Pass_2021<Scenario_json> {
@Override
protected boolean canStart(Object... args) throws Exception {
//--
tasks_package = (SapforTasksPackage_2023) args[0];
tasks_package = (SapforTasksPackage) args[0];
//---
scenarioFile = new File(tasks_package.workspace, "scenario.txt");
// scenarioFile = new File(tasks_package.workspace, "scenario.txt");
String packed = FileUtils.readFileToString(scenarioFile, Charset.defaultCharset());
target = Utils.gson.fromJson(packed, Scenario_json.class);
//---
@@ -60,7 +58,7 @@ public class PerformScenario extends Pass_2021<Scenario_json> {
return true;
}
protected void saveResults() throws Exception {
for (SapforTask_2023 task : results.tasks) {
for (SapforTask task : results.tasks) {
if (!task.versions.isEmpty()) {
File taskResultFile = Paths.get(task.versions.firstElement().version, db_project_info.data, "results.txt").toFile();
FileUtils.write(taskResultFile, Utils.jsonToPrettyFormat(Utils.gson.toJson(task)));
@@ -68,18 +66,15 @@ public class PerformScenario extends Pass_2021<Scenario_json> {
task.id = Global.db.IncSapforMaxTaskId();
Global.db.Insert(task);
}
tasks_package.ChangeDate = new Date().getTime();
tasks_package.state = TasksPackageState.Done;
Global.db.Update(tasks_package);
}
@Override
protected void body() throws Exception {
for (String test : target.tests) {
ShowMessage1(test);
//--
parentTask = new File(tasks_package.workspace, test);
// parentTask = new File(tasks_package.workspace, test);
//--
taskResult = new SapforTask_2023();
taskResult = new SapforTask();
taskResult.test_description = test;
taskResult.sapfortaskspackage_2023_id = tasks_package.id;
taskResult.versions.add(new SapforVersion_json(parentTask.getAbsolutePath(), "исходная"));

View File

@@ -1,32 +1,24 @@
package Visual_DVM_2021.Passes.All;
import Common.Current;
import Common.Global;
import Common.GlobalProperties;
import Common.UI.UI;
import Common.Utils.Utils;
import GlobalData.Settings.SettingName;
import ProjectData.LanguageName;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.Group.Group;
import SapforTestingSystem.SapforConfiguration.SapforConfiguration;
import SapforTestingSystem.SapforConfiguration.SapforConfigurationInterface;
import SapforTestingSystem.SapforConfigurationCommand.SapforConfigurationCommand;
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage_2023;
import SapforTestingSystem.Json.Scenario_json;
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
import TestingSystem.Group.Group;
import TestingSystem.Test.Test;
import TestingSystem.Test.TestInterface;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Pass_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.nio.file.Paths;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Vector;
public class StartSapforTests extends Pass_2021<Vector<SapforTasksPackage_2023>> {
public class StartSapforTests extends Pass_2021<Vector<SapforTasksPackage>> {
protected int allTasksCount = 0;
//--
protected LinkedHashMap<String, Vector<String>> groupsTests = null;
@@ -208,43 +200,43 @@ public class StartSapforTests extends Pass_2021<Vector<SapforTasksPackage_2023>>
);
}
}
/*
ShowMessage1("Создание рабочих пространств...");
for (SapforConfiguration configuration : Global.testingServer.db.sapforConfigurations.getCheckedItems()) {
SapforTasksPackage_2023 sapforTasksPackage_2023 = new SapforTasksPackage_2023();
SapforTasksPackage sapforTasksPackage_ = new SapforTasksPackage();
//--
sapforTasksPackage_2023.StartDate = new Date().getTime();
sapforTasksPackage_2023.sapfor_version = String.valueOf(Current.getSapfor().version);
sapforTasksPackage_2023.tasksCount = allTasksCount;
sapforTasksPackage_2023.sapforconfiguration_id = configuration.id;
sapforTasksPackage_2023.flags = SapforConfigurationInterface.getFlags(configuration);
sapforTasksPackage_2023.passesNames = SapforConfigurationInterface.getTransformationsNames(configuration);
sapforTasksPackage_.sapfor_version = String.valueOf(Current.getSapfor().version);
sapforTasksPackage_.tasksCount = allTasksCount;
sapforTasksPackage_.sapforconfiguration_id = configuration.id;
sapforTasksPackage_.flags = SapforConfigurationInterface.getFlags(configuration);
sapforTasksPackage_.passesNames = SapforConfigurationInterface.getTransformationsNames(configuration);
//--
sapforTasksPackage_2023.STATIC_SHADOW_ANALYSIS = configuration.STATIC_SHADOW_ANALYSIS;//"Оптимизация теневых обменов"; -sh
sapforTasksPackage_2023.FREE_FORM = configuration.FREE_FORM;
sapforTasksPackage_2023.MAX_SHADOW_WIDTH = configuration.MAX_SHADOW_WIDTH; // "Максимальный размер теневых граней"; (%) -shwidth значение поля
sapforTasksPackage_2023.KEEP_SPF_DIRECTIVES = configuration.KEEP_SPF_DIRECTIVES; //"Сохранять SPF директивы при построении параллельных вариантов"; -keepSPF
sapforTasksPackage_2023.KEEP_DVM_DIRECTIVES = configuration.KEEP_DVM_DIRECTIVES;// "Учитывать DVM директивы"; -keepDVM
sapforTasksPackage_.STATIC_SHADOW_ANALYSIS = configuration.STATIC_SHADOW_ANALYSIS;//"Оптимизация теневых обменов"; -sh
sapforTasksPackage_.FREE_FORM = configuration.FREE_FORM;
sapforTasksPackage_.MAX_SHADOW_WIDTH = configuration.MAX_SHADOW_WIDTH; // "Максимальный размер теневых граней"; (%) -shwidth значение поля
sapforTasksPackage_.KEEP_SPF_DIRECTIVES = configuration.KEEP_SPF_DIRECTIVES; //"Сохранять SPF директивы при построении параллельных вариантов"; -keepSPF
sapforTasksPackage_.KEEP_DVM_DIRECTIVES = configuration.KEEP_DVM_DIRECTIVES;// "Учитывать DVM директивы"; -keepDVM
//--
Global.db.Insert(sapforTasksPackage_2023);
sapforTasksPackage_2023.workspace = Paths.get(
Global.db.Insert(sapforTasksPackage_);
sapforTasksPackage_.workspace = Paths.get(
Global.db.settings.get(SettingName.Workspace).Value,
String.valueOf(sapforTasksPackage_2023.id)
String.valueOf(sapforTasksPackage_.id)
).toFile().getAbsolutePath();
//---
Utils.CheckAndCleanDirectory(new File(sapforTasksPackage_2023.workspace));
sapfor = new File(sapforTasksPackage_2023.workspace, "SAPFOR_F.exe"); //развилка на линукс
Utils.CheckAndCleanDirectory(new File(sapforTasksPackage_.workspace));
sapfor = new File(sapforTasksPackage_.workspace, "SAPFOR_F.exe"); //развилка на линукс
ShowMessage2("Копирование SAPFOR");
FileUtils.copyFile(Current.getSapfor().getFile(), sapfor);
ShowMessage2("Копирование визуализатора");
File visualiser = new File(sapforTasksPackage_2023.workspace, "VisualSapfor.jar");
File visualiser = new File(sapforTasksPackage_.workspace, "VisualSapfor.jar");
FileUtils.copyFile(Global.visualiser.getFile(), visualiser);
GlobalProperties properties = new GlobalProperties();
properties.Mode = Current.Mode.Package;
File propertiesFile = new File(sapforTasksPackage_2023.workspace, "properties");
File propertiesFile = new File(sapforTasksPackage_.workspace, "properties");
FileUtils.write(propertiesFile, Utils.jsonToPrettyFormat(Utils.gson.toJson(properties)));
ShowMessage2("");
//-
File scenarioFile = new File(sapforTasksPackage_2023.workspace, "scenario.txt");
File scenarioFile = new File(sapforTasksPackage_.workspace, "scenario.txt");
Scenario_json scenario_json = new Scenario_json();
scenario_json.tests.addAll(testsNames);
//создать папки для сценариев.
@@ -256,7 +248,7 @@ public class StartSapforTests extends Pass_2021<Vector<SapforTasksPackage_2023>>
Test test = Global.testingServer.db.tests.get(testId);
ShowMessage2(test.description);
//--
File taskWorkspace = new File(sapforTasksPackage_2023.workspace, test.description);
File taskWorkspace = new File(sapforTasksPackage_.workspace, test.description);
Utils.CheckAndCleanDirectory(taskWorkspace);
//--
Utils.copyDirectory(new File(Global.TestsDirectory, test.id), taskWorkspace);
@@ -269,10 +261,11 @@ public class StartSapforTests extends Pass_2021<Vector<SapforTasksPackage_2023>>
//---
FileUtils.write(scenarioFile, Utils.jsonToPrettyFormat(Utils.gson.toJson(scenario_json)));
//---
sapforTasksPackage_2023.testsNames = String.join(";", testsNames);
Global.db.Update(sapforTasksPackage_2023);
target.add(sapforTasksPackage_2023);
sapforTasksPackage_.testsNames = String.join(";", testsNames);
Global.db.Update(sapforTasksPackage_);
target.add(sapforTasksPackage_);
}
*/
//--
}
@Override
@@ -281,13 +274,14 @@ public class StartSapforTests extends Pass_2021<Vector<SapforTasksPackage_2023>>
}
@Override
protected void performDone() throws Exception {
/*
//тут должен быть планировщик и очередь пакетов. отдельной нитью.
for (SapforTasksPackage_2023 sapforTasksPackage_2023 : target) {
File workspaceFile = new File(sapforTasksPackage_2023.workspace);
// Utils.startScript(workspaceFile, workspaceFile, "start", "java -jar VisualSapfor.jar");
Utils.startScript_(workspaceFile, workspaceFile, "start", "java -jar VisualSapfor.jar");
}
*/
}
@Override
protected void showDone() throws Exception {