промежуточный. изменен механизм формирования задач для тестирования SAPFOR. Теперь они создаются на стадии черновика, при публикации только обновляются ссылки на родительский пакет. При добавлении задач в пакет идет проверка по ключам на их существование.
This commit is contained in:
@@ -7,18 +7,11 @@ import TestingSystem.SAPFOR.SapforTask.SapforTask;
|
||||
import java.io.File;
|
||||
public class TaskThread extends Thread {
|
||||
public SapforTask task = null;
|
||||
public TaskThread(SapforTask task_, File sapfor_drv,
|
||||
SapforTestingSet_json set_json,
|
||||
SapforConfiguration_json configuration_json) {
|
||||
public TaskThread(SapforTask task_, File sapfor_drv) {
|
||||
super(() -> {
|
||||
while (!task_.state.isComplete()) {
|
||||
task_.Reset();
|
||||
new PerformSapforTask().Do(
|
||||
sapfor_drv,
|
||||
set_json,
|
||||
configuration_json,
|
||||
task_
|
||||
);
|
||||
new PerformSapforTask().Do(task_,sapfor_drv);
|
||||
}
|
||||
});
|
||||
task = task_;
|
||||
|
||||
@@ -69,12 +69,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
dvmPackage.saveJson();
|
||||
dvmPackage.package_json = null; // объект больше не нужен.
|
||||
} else if (object instanceof SapforPackage) {
|
||||
SapforPackage sapforPackage = (SapforPackage) object;
|
||||
//--
|
||||
Utils.CheckAndCleanDirectory(sapforPackage.getLocalWorkspace());
|
||||
//--
|
||||
sapforPackage.saveJson();
|
||||
sapforPackage.package_json = null; // объект больше не нужен.
|
||||
((SapforPackage) object).init();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
@@ -603,7 +598,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
private void ReplaceTestsCodes() throws Exception {
|
||||
Vector<Test> tests = (Vector<Test>) request.object;
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
for (Test test: tests){
|
||||
for (Test test : tests) {
|
||||
if (!test.unpackProjectOnServer()) {
|
||||
db.Delete(test);
|
||||
throw new RepositoryRefuseException(
|
||||
|
||||
@@ -25,9 +25,41 @@ public class SapforPackage_json implements Serializable {
|
||||
public int getMaxSetId() {
|
||||
return max_set_id++;
|
||||
}
|
||||
@Expose
|
||||
public int max_task_id = 0;
|
||||
public int getMaxTaskId() {
|
||||
return max_task_id++;
|
||||
}
|
||||
//--
|
||||
@Expose
|
||||
public List<SapforTestingSet_json> testingSets = new Vector<>(); //сет = конфигурации + тесты.
|
||||
@Expose
|
||||
public List<SapforTask> tasks = new Vector<>();
|
||||
//--
|
||||
public Vector<String> getTasksKeys() {
|
||||
Vector<String> keys = new Vector<>();
|
||||
for (SapforTask task : tasks) {
|
||||
String key = task.getUniqueKey();
|
||||
if (!keys.contains(key))
|
||||
keys.add(key);
|
||||
}
|
||||
return keys;
|
||||
}
|
||||
public Vector<String> getTestsNames() {
|
||||
Vector<String> names = new Vector<>();
|
||||
for (SapforTask task : tasks) {
|
||||
if (!names.contains(task.test_description))
|
||||
names.add(task.test_description);
|
||||
}
|
||||
names.sort(new Comparator<String>() {
|
||||
@Override
|
||||
public int compare(String o1, String o2) {
|
||||
return o1.compareTo(o2);
|
||||
}
|
||||
});
|
||||
return names;
|
||||
}
|
||||
//--
|
||||
public boolean hasConfiguration(int configuration_id) {
|
||||
for (SapforTestingSet_json set : testingSets) {
|
||||
for (SapforConfiguration_json configuration : set.configurations) {
|
||||
@@ -38,9 +70,6 @@ public class SapforPackage_json implements Serializable {
|
||||
return false;
|
||||
}
|
||||
//--
|
||||
@Expose
|
||||
public List<SapforTask> tasks = new Vector<>();
|
||||
//---
|
||||
public void sortTasks() {
|
||||
tasks.sort(new Comparator<SapforTask>() {
|
||||
@Override
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package TestingSystem.SAPFOR.Json;
|
||||
import Common.Constants;
|
||||
import TestingSystem.SAPFOR.SapforTask.SapforTask;
|
||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||
import com.google.gson.annotations.Expose;
|
||||
|
||||
import java.io.Serializable;
|
||||
@@ -12,4 +14,30 @@ public class SapforTestingSet_json implements Serializable {
|
||||
public List<SapforTest_json> tests = new Vector<>();
|
||||
@Expose
|
||||
public List<SapforConfiguration_json> configurations = new Vector<>();
|
||||
public Vector<SapforTask> createTasks() {
|
||||
Vector<SapforTask> tasks = new Vector<>();
|
||||
//-
|
||||
for (SapforConfiguration_json sapforConfiguration_json : configurations) {
|
||||
for (SapforTest_json test : tests) {
|
||||
SapforTask task = new SapforTask();
|
||||
//--
|
||||
task.id = Constants.Nan;
|
||||
task.sapfortaskspackage_id = Constants.Nan;
|
||||
//-- unique key--
|
||||
task.group_description = test.group_description;
|
||||
task.test_description = test.description;
|
||||
task.sapfor_configuration_id = sapforConfiguration_json.id;
|
||||
//---------------
|
||||
task.flags = sapforConfiguration_json.flags;
|
||||
task.set_id = id;
|
||||
tasks.add(task);
|
||||
Vector<String> codes_s = new Vector<>();
|
||||
for (PassCode_2021 code : sapforConfiguration_json.codes)
|
||||
codes_s.add(code.toString());
|
||||
task.codes = String.join(" ", codes_s);
|
||||
}
|
||||
}
|
||||
//-
|
||||
return tasks;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,34 +36,8 @@ public class PackageModeSupervisor extends ThreadsPlanner {
|
||||
FileUtils.writeStringToFile(started, String.valueOf(startDate));
|
||||
//формирование списка задач.
|
||||
setMaxKernels(package_json.kernels);
|
||||
int max_rask_id = 0;
|
||||
for (SapforTestingSet_json set_json : package_json.testingSets) {
|
||||
for (SapforConfiguration_json sapforConfiguration_json : set_json.configurations) {
|
||||
for (SapforTest_json test : set_json.tests) {
|
||||
//--- чтобы было можно на нее сослаться после выполнения всех нитей.
|
||||
SapforTask task = new SapforTask();
|
||||
task.id = max_rask_id++;
|
||||
task.group_description = test.group_description;
|
||||
task.test_description = test.description;
|
||||
task.flags = sapforConfiguration_json.flags;
|
||||
task.set_id = set_json.id;
|
||||
task.sapfor_configuration_id = sapforConfiguration_json.id;
|
||||
task.sapfortaskspackage_id = Integer.parseInt(new File(Global.Home).getName());
|
||||
package_json.tasks.add(task);
|
||||
Vector<String> codes_s = new Vector<>();
|
||||
for (PassCode_2021 code : sapforConfiguration_json.codes) {
|
||||
codes_s.add(code.toString());
|
||||
}
|
||||
task.codes = String.join(" ", codes_s);
|
||||
//---
|
||||
addThread(new TaskThread(task,
|
||||
sapfor_drv,
|
||||
set_json,
|
||||
sapforConfiguration_json)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (SapforTask task: package_json.tasks)
|
||||
addThread(new TaskThread(task,sapfor_drv));
|
||||
interruptThread.start();
|
||||
}
|
||||
@Override
|
||||
|
||||
@@ -29,8 +29,6 @@ public class PerformSapforTask extends Pass_2021<SapforTask> {
|
||||
}
|
||||
//--
|
||||
File sapfor_drv;
|
||||
SapforTestingSet_json set_json;
|
||||
SapforConfiguration_json configuration_json;
|
||||
SapforVersion_json version_json;
|
||||
//-----
|
||||
File root;
|
||||
@@ -39,17 +37,17 @@ public class PerformSapforTask extends Pass_2021<SapforTask> {
|
||||
//-----
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
sapfor_drv = (File) args[0];
|
||||
set_json = (SapforTestingSet_json) args[1];
|
||||
configuration_json = (SapforConfiguration_json) args[2];
|
||||
target = (SapforTask) args[3];
|
||||
//--
|
||||
target = (SapforTask) args[0];
|
||||
sapfor_drv = (File) args[1];
|
||||
//--
|
||||
version_json = null;
|
||||
//--->>
|
||||
parentTask = Paths.get(Global.Home,
|
||||
String.valueOf(set_json.id),
|
||||
String.valueOf(configuration_json.id),
|
||||
String.valueOf(target.set_id),
|
||||
String.valueOf(target.sapfor_configuration_id),
|
||||
target.test_description).toFile();
|
||||
root = Paths.get(Global.Home, String.valueOf(set_json.id), String.valueOf(configuration_json.id)).toFile();
|
||||
root = Paths.get(Global.Home, String.valueOf(target.set_id), String.valueOf(target.sapfor_configuration_id)).toFile();
|
||||
task = null;
|
||||
//--->>
|
||||
return true;
|
||||
@@ -115,7 +113,10 @@ public class PerformSapforTask extends Pass_2021<SapforTask> {
|
||||
protected void body() throws Exception {
|
||||
target.StartDate = new Date().getTime();
|
||||
target.versions.add(version_json = new SapforVersion_json(target.test_description, "исходная"));
|
||||
for (PassCode_2021 code : configuration_json.codes) {
|
||||
String [] data = target.codes.split(" ");
|
||||
for (String code_s: data){
|
||||
PassCode_2021 code = PassCode_2021.valueOf(code_s);
|
||||
//--
|
||||
if (parse()) {
|
||||
if (code.equals(PassCode_2021.CreateParallelVariants))
|
||||
variants();
|
||||
@@ -123,6 +124,7 @@ public class PerformSapforTask extends Pass_2021<SapforTask> {
|
||||
break;
|
||||
} else
|
||||
break;
|
||||
//--
|
||||
}
|
||||
target.ChangeDate = new Date().getTime();
|
||||
}
|
||||
|
||||
@@ -2,8 +2,10 @@ package TestingSystem.SAPFOR.SapforPackage;
|
||||
import Common.Constants;
|
||||
import Common.Database.DBObject;
|
||||
import Common.Global;
|
||||
import Common.Utils.Utils;
|
||||
import TestingSystem.Common.TestingPackage.TestingPackage;
|
||||
import TestingSystem.SAPFOR.Json.SapforPackage_json;
|
||||
import TestingSystem.SAPFOR.SapforTask.SapforTask;
|
||||
import com.sun.org.glassfish.gmbal.Description;
|
||||
|
||||
import java.io.File;
|
||||
@@ -12,8 +14,7 @@ public class SapforPackage extends TestingPackage<SapforPackage_json> {
|
||||
public String testsNames = "";//имена тестов через ; для отображения
|
||||
//---
|
||||
public int sapforId = Constants.Nan; // так как сапфор на машине.
|
||||
public SapforPackage(){
|
||||
|
||||
public SapforPackage() {
|
||||
}
|
||||
public SapforPackage(SapforPackage sapforPackage) {
|
||||
SynchronizeFields(sapforPackage);
|
||||
@@ -33,4 +34,12 @@ public class SapforPackage extends TestingPackage<SapforPackage_json> {
|
||||
public File getHomeDirectory() {
|
||||
return Global.SapforPackagesDirectory;
|
||||
}
|
||||
//--
|
||||
public void init() throws Exception {
|
||||
for (SapforTask task : package_json.tasks)
|
||||
task.sapfortaskspackage_id = id;
|
||||
Utils.CheckAndCleanDirectory(getLocalWorkspace());
|
||||
saveJson();
|
||||
package_json = null; // объект больше не нужен.
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user