no message

This commit is contained in:
2023-10-24 19:42:01 +03:00
parent 82df491e29
commit e45cf5659d
5 changed files with 66 additions and 12 deletions

View File

@@ -1,4 +1,5 @@
package TestingSystem;
import Common.Constants;
import Common.Database.DBObject;
import Common.Database.rDBObject;
import Common.Global;
@@ -13,6 +14,8 @@ import Repository.RepositoryRefuseException;
import Repository.RepositoryServer;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import SapforTestingSystem.Json.SapforTasksResults_json;
import SapforTestingSystem.SapforTask.SapforTask;
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
import SapforTestingSystem.ServerSapfor.ServerSapfor;
import TestingSystem.Group.Group;
@@ -182,7 +185,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
)
);
} else if (object instanceof SapforTasksPackage) {
File workspace = new File(
File workspace = new File(
((SapforTasksPackage) object).workspace
);
System.out.println(Utils.Brackets(workspace.getAbsolutePath()));
@@ -306,11 +309,51 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
groups.sort(Comparator.comparing(o -> o.description));
return groups;
}
public SapforTasksResults_json getSapforPackageResults(SapforTasksPackage sapforTasksPackage) throws Exception {
File results_file = new File(sapforTasksPackage.workspace, Constants.results_json);
return (SapforTasksResults_json) Utils.jsonFromFile(
results_file, SapforTasksResults_json.class);
}
public String CompareSapforPackages(SapforTasksPackage package1, SapforTasksPackage package2) throws Exception {
String res = "";
// чтобы сравнивать. должен быть идентичный список тестов. (без учета последовательности)
// идентичный набор проходов (с учетом последовательности)
//идентичный набор флагов (?) без учета последовательности.
// то есть должны отличаться только тестируемые версии САПФОР.
SapforTasksResults_json results1_json = getSapforPackageResults(package1);
SapforTasksResults_json results2_json = getSapforPackageResults(package2);
if (results1_json.tasks.size()!=results2_json.tasks.size())
throw new RepositoryRefuseException("В пакетах разное число задач.");
//подходит если все задачи из первого пакета содержатся во втором, и размер одинаковый.
for (SapforTask task1 : results1_json.tasks) {
//на
boolean match = false;
for (SapforTask task2: results2_json.tasks){
if (task1.isComparable(task2)) {
match = true;
break;
}
}
if (!match)
throw new RepositoryRefuseException("Задачи в пакетах не совпадают!");
}
return "";
}
@Override
protected void Session() throws Exception {
DBObject dbObject = null;
Test test = null;
switch (code) {
case CompareSapforPackages:
SetCurrentAccountDB(request.arg);
Pair<String, String> keys = (Pair<String, String>) request.object;
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object =
CompareSapforPackages(
account_db.sapforTasksPackages.get(keys.getKey()),
account_db.sapforTasksPackages.get(keys.getValue())
);
break;
case SynchronizeTests:
//временный проход. синхронизирует тесты на заданной машине, с сервера.
Print("Синхронизация тестов");