рефакторинг. неудачные наименования классов, и остатки старых вариантов
This commit is contained in:
@@ -3,7 +3,7 @@ import com.google.gson.annotations.Expose;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
public class PackageModeScenario_json {
|
||||
public class SapforTasksPackage_json {
|
||||
@Expose
|
||||
public String sapfor_drv = ""; //файл с сапфором. Имя уникально для сценария.
|
||||
@Expose
|
||||
@@ -4,7 +4,7 @@ import com.google.gson.annotations.Expose;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
public class SapforScenarioResults_json {
|
||||
public class SapforTasksResults_json {
|
||||
@Expose
|
||||
public long StartDate = 0;
|
||||
@Expose
|
||||
@@ -1,20 +0,0 @@
|
||||
package SapforTestingSystem.SapforScenario;
|
||||
import Common.Database.iDBObject;
|
||||
import TestingSystem.TasksPackage.TasksPackageState;
|
||||
import com.sun.org.glassfish.gmbal.Description;
|
||||
public class SapforScenario extends iDBObject {
|
||||
@Description("DEFAULT ''")
|
||||
public String testsNames = "";//имена тестов через ; для отображения
|
||||
//---
|
||||
public String sapfor_version = "?"; //тестируемая версия SAPFOR
|
||||
public long sapfor_build_date = 0;
|
||||
//---
|
||||
public String workspace = ""; //домашняя папка
|
||||
//---
|
||||
public int tasksCount = 0; //Общее число задач
|
||||
//---
|
||||
public long StartDate = 0; //дата начала выполнения
|
||||
public long ChangeDate = 0;//дата окончания выполнения
|
||||
//-
|
||||
public TasksPackageState state = TasksPackageState.Queued;
|
||||
}
|
||||
@@ -1,85 +0,0 @@
|
||||
package SapforTestingSystem.SapforScenario;
|
||||
import Common.Current;
|
||||
import Common.Database.iDBTable;
|
||||
import Common.UI.DataSetControlForm;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import static Common.UI.Tables.TableRenderers.RendererDate;
|
||||
import static Common.UI.Tables.TableRenderers.RendererStatusEnum;
|
||||
public class SapforScenariosDBTable extends iDBTable<SapforScenario> {
|
||||
public SapforScenariosDBTable() {
|
||||
super(SapforScenario.class);
|
||||
}
|
||||
@Override
|
||||
public Current CurrentName() {
|
||||
return Current.SapforScenario;
|
||||
}
|
||||
@Override
|
||||
public String getSingleDescription() {
|
||||
return "сценарий Sapfor";
|
||||
}
|
||||
@Override
|
||||
public String getPluralDescription() {
|
||||
return "сценарии Sapfor";
|
||||
}
|
||||
@Override
|
||||
protected DataSetControlForm createUI() {
|
||||
return new DataSetControlForm(this) {
|
||||
@Override
|
||||
protected void AdditionalInitColumns() {
|
||||
columns.get(4).setRenderer(RendererDate);
|
||||
columns.get(5).setRenderer(RendererDate);
|
||||
columns.get(6).setRenderer(RendererStatusEnum);
|
||||
}
|
||||
@Override
|
||||
public void ShowCurrentObject() throws Exception {
|
||||
super.ShowCurrentObject();
|
||||
// UI.getNewMainWindow().getTestingWindow().DropTestRunTasksComparison();
|
||||
}
|
||||
@Override
|
||||
public void ShowNoCurrentObject() throws Exception {
|
||||
super.ShowNoCurrentObject();
|
||||
// UI.getNewMainWindow().getTestingWindow().DropTestRunTasksComparison();
|
||||
}
|
||||
};
|
||||
}
|
||||
@Override
|
||||
public String[] getUIColumnNames() {
|
||||
return new String[]{
|
||||
"SAPFOR",
|
||||
"Тесты",
|
||||
"Задач",
|
||||
"Начало",
|
||||
"Изменено",
|
||||
"Статус"
|
||||
};
|
||||
}
|
||||
@Override
|
||||
public Object getFieldAt(SapforScenario object, int columnIndex) {
|
||||
switch (columnIndex) {
|
||||
case 1:
|
||||
return object.sapfor_version;
|
||||
case 2:
|
||||
return object.testsNames;
|
||||
case 3:
|
||||
return object.tasksCount;
|
||||
case 4:
|
||||
return new Date(object.StartDate);
|
||||
case 5:
|
||||
return new Date(object.ChangeDate);
|
||||
case 6:
|
||||
return object.state;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
/*
|
||||
@Override
|
||||
public LinkedHashMap<Class<? extends DBObject>, FKBehaviour> getFKDependencies() {
|
||||
LinkedHashMap<Class<? extends DBObject>, FKBehaviour> res = new LinkedHashMap<>();
|
||||
res.put(SapforTasksPackage.class, new FKBehaviour(FKDataBehaviour.DELETE, FKCurrentObjectBehaviuor.ACTIVE));
|
||||
return res;
|
||||
}
|
||||
*/
|
||||
}
|
||||
@@ -22,6 +22,9 @@ public class SapforTask extends DBObject {
|
||||
@Description("DEFAULT ''")
|
||||
@Expose
|
||||
public String root = "";
|
||||
@Description("DEFAULT ''")
|
||||
@Expose
|
||||
public String last_version = "";
|
||||
//-------------------------------------->>
|
||||
@Description("DEFAULT 'Inactive'")
|
||||
@Expose
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
package SapforTestingSystem.SapforTask;
|
||||
import Common.Database.DBObject;
|
||||
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
|
||||
public class SapforTaskResult extends DBObject {
|
||||
public SapforTasksPackage sapforTasksPackage;
|
||||
public SapforTask task;
|
||||
public MatchState match_state = MatchState.Unknown;
|
||||
@Override
|
||||
public Object getPK() {
|
||||
return task.test_description;
|
||||
}
|
||||
public SapforTaskResult(SapforTasksPackage package_in, SapforTask task_in) {
|
||||
sapforTasksPackage = package_in;
|
||||
task = task_in;
|
||||
}
|
||||
}
|
||||
@@ -2,8 +2,6 @@ package SapforTestingSystem.SapforTask;
|
||||
import Common.Current;
|
||||
import Common.Database.DBTable;
|
||||
import Common.UI.DataSetControlForm;
|
||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||
import Visual_DVM_2021.Passes.Pass_2021;
|
||||
|
||||
import static Common.UI.Tables.TableRenderers.RendererStatusEnum;
|
||||
public class SapforTasksDBTable extends DBTable<Long, SapforTask> {
|
||||
@@ -31,7 +29,7 @@ public class SapforTasksDBTable extends DBTable<Long, SapforTask> {
|
||||
}
|
||||
@Override
|
||||
public void MouseAction2() throws Exception {
|
||||
Pass_2021.passes.get(PassCode_2021.OpenSapforTest).Do();
|
||||
// Pass_2021.passes.get(PassCode_2021.OpenSapforTest).Do();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,50 +1,26 @@
|
||||
package SapforTestingSystem.SapforTasksPackage;
|
||||
import Common.Constants;
|
||||
import Common.Current;
|
||||
import Common.Database.DBObject;
|
||||
import Common.Database.iDBObject;
|
||||
import SapforTestingSystem.SapforConfiguration.SapforConfiguration;
|
||||
import TestingSystem.Test.Test;
|
||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||
import TestingSystem.TasksPackage.TasksPackageState;
|
||||
import com.sun.org.glassfish.gmbal.Description;
|
||||
|
||||
import java.util.Vector;
|
||||
public class SapforTasksPackage extends iDBObject {
|
||||
public int sapforscenario_id = Constants.Nan;
|
||||
@Description("DEFAULT ''")
|
||||
public String sapforconfiguration_id = "";
|
||||
//--
|
||||
public String testsNames = "";//имена тестов через ; для отображения
|
||||
//---
|
||||
public String sapfor_version = "?"; //тестируемая версия SAPFOR
|
||||
public long sapfor_build_date = 0;
|
||||
//---
|
||||
public String workspace = ""; //домашняя папка
|
||||
//---
|
||||
@Description("DEFAULT ''")
|
||||
public String flags = "";
|
||||
@Description("DEFAULT ''")
|
||||
public String passesNames = "";
|
||||
@Description("DEFAULT 0")
|
||||
public int versions_tree_built = 0;
|
||||
//--
|
||||
@Description("IGNORE")
|
||||
public Vector<Test> tests = null;
|
||||
@Description("IGNORE")
|
||||
public Vector<PassCode_2021> codes = null;
|
||||
//--
|
||||
@Override
|
||||
public void SynchronizeFields(DBObject src) {
|
||||
super.SynchronizeFields(src);
|
||||
SapforTasksPackage tasksPackage = (SapforTasksPackage) src;
|
||||
flags = tasksPackage.flags;
|
||||
passesNames = tasksPackage.passesNames;
|
||||
}
|
||||
public SapforTasksPackage(SapforTasksPackage src) {
|
||||
this.SynchronizeFields(src);
|
||||
}
|
||||
public SapforTasksPackage() {
|
||||
}
|
||||
public SapforTasksPackage(SapforConfiguration configuration_in, Vector<Test> tests_in) {
|
||||
}
|
||||
@Override
|
||||
public boolean isVisible() {
|
||||
return Current.HasSapforScenario() && Current.getSapforScenario().id == sapforscenario_id;
|
||||
}
|
||||
public int tasksCount = 0; //Общее число задач
|
||||
//---
|
||||
public long StartDate = 0; //дата начала выполнения
|
||||
public long ChangeDate = 0;//дата окончания выполнения
|
||||
//-
|
||||
public TasksPackageState state = TasksPackageState.Queued;
|
||||
// допустимые состояния
|
||||
//Queued
|
||||
//PackageStart
|
||||
//RunningExecution
|
||||
//Done
|
||||
//Aborted
|
||||
}
|
||||
|
||||
|
||||
@@ -1,29 +1,37 @@
|
||||
package SapforTestingSystem.SapforTasksPackage;
|
||||
import Common.Current;
|
||||
import Common.Database.*;
|
||||
import Common.Database.iDBTable;
|
||||
import Common.UI.DataSetControlForm;
|
||||
import SapforTestingSystem.SapforTask.SapforTask;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Date;
|
||||
|
||||
import static Common.UI.Tables.TableRenderers.RendererDate;
|
||||
import static Common.UI.Tables.TableRenderers.RendererStatusEnum;
|
||||
public class SapforTasksPackagesDBTable extends iDBTable<SapforTasksPackage> {
|
||||
public SapforTasksPackagesDBTable() {
|
||||
super(SapforTasksPackage.class);
|
||||
}
|
||||
@Override
|
||||
public Current CurrentName() {
|
||||
return Current.SapforTasksPackage;
|
||||
return Current.SapforScenario;
|
||||
}
|
||||
@Override
|
||||
public String getSingleDescription() {
|
||||
return "пакеты задач Sapfor";
|
||||
return "пакет задач Sapfor";
|
||||
}
|
||||
@Override
|
||||
public String getPluralDescription() {
|
||||
return "пакеты задач";
|
||||
return "пакеты задач Sapfor";
|
||||
}
|
||||
@Override
|
||||
protected DataSetControlForm createUI() {
|
||||
return new DataSetControlForm(this) {
|
||||
@Override
|
||||
protected void AdditionalInitColumns() {
|
||||
columns.get(4).setRenderer(RendererDate);
|
||||
columns.get(5).setRenderer(RendererDate);
|
||||
columns.get(6).setRenderer(RendererStatusEnum);
|
||||
}
|
||||
@Override
|
||||
public void ShowCurrentObject() throws Exception {
|
||||
super.ShowCurrentObject();
|
||||
@@ -39,25 +47,39 @@ public class SapforTasksPackagesDBTable extends iDBTable<SapforTasksPackage> {
|
||||
@Override
|
||||
public String[] getUIColumnNames() {
|
||||
return new String[]{
|
||||
"Проходы",
|
||||
"Флаги"
|
||||
"SAPFOR",
|
||||
"Тесты",
|
||||
"Задач",
|
||||
"Начало",
|
||||
"Изменено",
|
||||
"Статус"
|
||||
};
|
||||
}
|
||||
@Override
|
||||
public Object getFieldAt(SapforTasksPackage object, int columnIndex) {
|
||||
switch (columnIndex) {
|
||||
case 1:
|
||||
return object.passesNames;
|
||||
return object.sapfor_version;
|
||||
case 2:
|
||||
return object.flags;
|
||||
return object.testsNames;
|
||||
case 3:
|
||||
return object.tasksCount;
|
||||
case 4:
|
||||
return new Date(object.StartDate);
|
||||
case 5:
|
||||
return new Date(object.ChangeDate);
|
||||
case 6:
|
||||
return object.state;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
/*
|
||||
@Override
|
||||
public LinkedHashMap<Class<? extends DBObject>, FKBehaviour> getFKDependencies() {
|
||||
LinkedHashMap<Class<? extends DBObject>, FKBehaviour> res = new LinkedHashMap<>();
|
||||
res.put(SapforTask.class, new FKBehaviour(FKDataBehaviour.DELETE, FKCurrentObjectBehaviuor.ACTIVE));
|
||||
res.put(SapforTasksPackage.class, new FKBehaviour(FKDataBehaviour.DELETE, FKCurrentObjectBehaviuor.ACTIVE));
|
||||
return res;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package SapforTestingSystem.SapforScenarioSupervisor;
|
||||
package SapforTestingSystem.SapforTasksPackageSupervisor;
|
||||
import Common.Constants;
|
||||
import Common.Global;
|
||||
import Common.Utils.Utils;
|
||||
import SapforTestingSystem.Json.SapforConfiguration_json;
|
||||
import SapforTestingSystem.Json.SapforScenarioResults_json;
|
||||
import SapforTestingSystem.Json.PackageModeScenario_json;
|
||||
import SapforTestingSystem.Json.SapforTasksResults_json;
|
||||
import SapforTestingSystem.Json.SapforTasksPackage_json;
|
||||
import SapforTestingSystem.PerformSapforTask;
|
||||
import SapforTestingSystem.SapforTask.SapforTask;
|
||||
import SapforTestingSystem.ThreadsPlanner.ThreadsPlanner;
|
||||
@@ -12,17 +12,17 @@ import org.apache.commons.io.FileUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Date;
|
||||
public class SapforScenarioSupervisor extends ThreadsPlanner {
|
||||
PackageModeScenario_json scenario_json = null;
|
||||
SapforScenarioResults_json results_json = new SapforScenarioResults_json();
|
||||
public SapforScenarioSupervisor() throws Exception {
|
||||
public class SapforTasksPackageSupervisor extends ThreadsPlanner {
|
||||
SapforTasksPackage_json package_json = null;
|
||||
SapforTasksResults_json results_json = new SapforTasksResults_json();
|
||||
public SapforTasksPackageSupervisor() throws Exception {
|
||||
super(Global.properties.threadsTimeout, Global.properties.threadsNum);
|
||||
scenario_json = (PackageModeScenario_json) Utils.jsonFromFile(new File(Global.Home, "scenario"), PackageModeScenario_json.class);
|
||||
package_json = (SapforTasksPackage_json) Utils.jsonFromFile(new File(Global.Home, "scenario"), SapforTasksPackage_json.class);
|
||||
results_json.StartDate = new Date().getTime();
|
||||
//формирование списка задач.
|
||||
File sapfor_drv = new File(Global.Home, scenario_json.sapfor_drv);
|
||||
for (SapforConfiguration_json sapforConfiguration_json : scenario_json.packages) {
|
||||
for (String testName : scenario_json.tests) {
|
||||
File sapfor_drv = new File(Global.Home, package_json.sapfor_drv);
|
||||
for (SapforConfiguration_json sapforConfiguration_json : package_json.packages) {
|
||||
for (String testName : package_json.tests) {
|
||||
//--- чтобы было можно на нее сослаться после выполнения всех нитей.
|
||||
SapforTask task = new SapforTask();
|
||||
results_json.tasks.add(task);
|
||||
@@ -39,12 +39,14 @@ public class SapforScenarioSupervisor extends ThreadsPlanner {
|
||||
}
|
||||
@Override
|
||||
public void Interrupt() throws Exception {
|
||||
System.out.println("killing " + scenario_json.sapfor_drv + "...");
|
||||
String kill_command = Global.isWindows ? ("taskkill /FI \"IMAGENAME eq " + scenario_json.sapfor_drv + "\" /F /T") :
|
||||
("killall -SIGKILL " + scenario_json.sapfor_drv);
|
||||
/*
|
||||
System.out.println("killing " + package_json.sapfor_drv + "...");
|
||||
String kill_command = Global.isWindows ? ("taskkill /FI \"IMAGENAME eq " + package_json.sapfor_drv + "\" /F /T") :
|
||||
("killall -SIGKILL " + package_json.sapfor_drv);
|
||||
Process killer = Runtime.getRuntime().exec(kill_command);
|
||||
killer.waitFor();
|
||||
System.out.println("done!");
|
||||
*/
|
||||
|
||||
//todo для надежности сделать еще один kill с внешнего процесса.
|
||||
// может быть гонка, что нить успеет запустить процесс уже после интеррупта.
|
||||
@@ -55,9 +57,7 @@ public class SapforScenarioSupervisor extends ThreadsPlanner {
|
||||
|
||||
//записать результаты всех задач.
|
||||
try {
|
||||
System.out.println("Запись результатов");
|
||||
Utils.jsonToFile(results_json, new File(Global.Home, "results"));
|
||||
// System.out.println("Очистка служебных файлов");
|
||||
//тут же и строить версии.
|
||||
Utils.deleteFilesByExtensions(new File(Global.Home),"proj","dep"); //Потом txt тоже добавить.
|
||||
FileUtils.writeStringToFile(new File(Constants.DONE), "");
|
||||
@@ -1,6 +1,86 @@
|
||||
package SapforTestingSystem.ServerSapforTestingPlanner;
|
||||
import Common.Constants;
|
||||
import Common.Utils.Utils;
|
||||
import Repository.Server.ServerCode;
|
||||
import Repository.Server.ServerExchangeUnit_2021;
|
||||
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
|
||||
import TestingSystem.TasksPackage.TasksPackageState;
|
||||
import Visual_DVM_2021.Passes.PassException;
|
||||
import Visual_DVM_2021.Passes.TestingSystemPass;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
public class ServerSapforTestingPlanner {
|
||||
public void Perform(){
|
||||
|
||||
SapforTasksPackage sapforTasksPackage = null;
|
||||
//---
|
||||
int getSleepMillis() {
|
||||
return 2000;
|
||||
}
|
||||
Object ServerCommand(ServerCode code_in, String arg, Serializable object_in) throws Exception {
|
||||
TestingSystemPass<Object> pass = new TestingSystemPass<Object>() {
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return "";
|
||||
}
|
||||
@Override
|
||||
protected void ServerAction() throws Exception {
|
||||
Command(new ServerExchangeUnit_2021(code_in, arg, object_in));
|
||||
target = response.object;
|
||||
}
|
||||
};
|
||||
if (!pass.Do()) throw new PassException("Ошибка взаимодействия с сервером " + code_in);
|
||||
return pass.target;
|
||||
}
|
||||
//---
|
||||
void UpdatePackage(SapforTasksPackage package_in) throws Exception {
|
||||
package_in.ChangeDate = new Date().getTime();
|
||||
ServerCommand(ServerCode.EditObject, "", package_in);
|
||||
}
|
||||
void PackageStart() throws Exception {
|
||||
File workspace = new File(sapforTasksPackage.workspace);
|
||||
File script = new File(sapforTasksPackage.workspace, "start");
|
||||
ProcessBuilder procBuilder = new ProcessBuilder(script.getAbsolutePath());
|
||||
procBuilder.directory(workspace);
|
||||
procBuilder.start();
|
||||
sapforTasksPackage.state = TasksPackageState.RunningExecution;
|
||||
UpdatePackage(sapforTasksPackage);
|
||||
}
|
||||
void CheckPackageState() throws Exception {
|
||||
File done = new File(sapforTasksPackage.workspace, Constants.DONE);
|
||||
File aborted = new File(sapforTasksPackage.workspace, Constants.ABORTED);
|
||||
if (done.exists()) {
|
||||
sapforTasksPackage.state = TasksPackageState.Done;
|
||||
UpdatePackage(sapforTasksPackage);
|
||||
} else if (aborted.exists()) {
|
||||
sapforTasksPackage.state = TasksPackageState.Aborted;
|
||||
UpdatePackage(sapforTasksPackage);
|
||||
}
|
||||
}
|
||||
public void Perform() {
|
||||
while (true) {
|
||||
try {
|
||||
//-
|
||||
sapforTasksPackage = (SapforTasksPackage) ServerCommand(ServerCode.GetFirstActiveSapforTasksPackage, "", null);
|
||||
switch (sapforTasksPackage.state) {
|
||||
case PackageStart:
|
||||
PackageStart();
|
||||
break;
|
||||
case RunningExecution:
|
||||
CheckPackageState();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
//-
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
Utils.sleep(getSleepMillis());
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user