fix. в методе keepnewFiles была индийская сортировка. вместо Long.compare было приведение к инту и сравнение. что вызывало исключение.

This commit is contained in:
2023-11-15 14:05:04 +03:00
parent 5a30f7d22d
commit 25613012fd
8 changed files with 46 additions and 22 deletions

View File

@@ -55,6 +55,7 @@ public class SapforTasksPackage extends nDBObject {
sapfor_process_name = p.sapfor_process_name;
state = p.state;
needsEmail = p.needsEmail;
summary = p.summary;
}
//---
@Description("IGNORE")

View File

@@ -44,9 +44,6 @@ public class SapforTasksPackageSupervisor {
LinkedHashMap<String, Group> groups = new LinkedHashMap<>();
//--
System.out.println(sapforTasksPackage.id + " — TestsSynchronize");
for (String test_id : testsIds) {
System.out.println(Utils.Brackets(test_id));
}
for (Object o : tests_) {
Test test = (Test) o;
tests.put(test.id, test);
@@ -54,20 +51,42 @@ public class SapforTasksPackageSupervisor {
groupsIds.add(test.group_id);
}
//--
Vector<Object> groups_ = (Vector<Object>) planner.ServerCommand(ServerCode.GetObjectsCopiesByPK, "", new Pair<>(Group.class, groupsIds));
for (Object o : groups_) {
Group group = (Group) o;
groups.put(group.id, group);
}
//--
for (Object o : configurations_) {
SapforConfiguration sapforConfiguration = (SapforConfiguration) o;
configurations.put(sapforConfiguration.id, sapforConfiguration);
}
//---
Vector<String> badTests = new Vector<>();
for (String testId : testsIds)
if (!tests.containsKey(testId))
badTests.add(testId);
//--
Vector<String> badConfigurations = new Vector<>();
for (String configurationId : configurationsIds)
if (!configurations.containsKey(configurationId))
badConfigurations.add(configurationId);
//--
File sapfor_src = new File(sapforTasksPackage.sapfor_drv);
//--
Vector<String> notFound = new Vector<>();
if (!badTests.isEmpty())
notFound.add("Несуществующие тесты: " + String.join("\n", badTests));
if (!badConfigurations.isEmpty())
notFound.add("Несуществующие конфигурации: " + String.join("\n", badConfigurations));
if (!sapfor_src.exists()) {
notFound.add("Несуществующий SAPFOR: " + Utils.Brackets(sapfor_src.getAbsolutePath()));
}
if (!notFound.isEmpty()) {
sapforTasksPackage.summary = String.join("\n", notFound);
System.out.println(sapforTasksPackage.summary);
sapforTasksPackage.state = TasksPackageState.Aborted;
return;
}
Vector<Object> groups_ = (Vector<Object>) planner.ServerCommand(ServerCode.GetObjectsCopiesByPK, "", new Pair<>(Group.class, groupsIds));
for (Object o : groups_) {
Group group = (Group) o;
groups.put(group.id, group);
}
//--
SapforTasksPackage_json package_json = new SapforTasksPackage_json();
package_json.kernels = sapforTasksPackage.kernels;
@@ -82,6 +101,7 @@ public class SapforTasksPackageSupervisor {
Utils.CheckAndCleanDirectory(packageWorkspace);
sapforTasksPackage.workspace = packageWorkspace.getAbsolutePath();
//копирование тестов по конфигурациям.
int actual_tasks_count = 0;
for (String configuration_id : configurationsIds) {
SapforConfiguration configuration = configurations.get(configuration_id);
//--
@@ -100,11 +120,13 @@ public class SapforTasksPackageSupervisor {
File test_root = new File(configurationWorkspace, test.description);
Utils.CheckAndCleanDirectory(test_root);
FileUtils.copyDirectory(new File(Global.TestsDirectory, test.id), test_root);
actual_tasks_count++;
}
}
sapforTasksPackage.tasksCount = actual_tasks_count;
//копирование SAPFOR
File sapforFile = new File(sapforTasksPackage.workspace, Utils.getDateName("SAPFOR_F"));
FileUtils.copyFile(new File(sapforTasksPackage.sapfor_drv), sapforFile);
FileUtils.copyFile(sapfor_src, sapforFile);
if (!sapforFile.setExecutable(true))
throw new Exception("Не удалось сделать файл " + sapforFile.getName() + " исполняемым!");
sapforTasksPackage.sapfor_process_name = package_json.sapfor_drv = sapforFile.getName();