Files
VisualSapfor/src/TestingSystem/SAPFOR/PackageModeSupervisor.java

70 lines
2.8 KiB
Java
Raw Normal View History

package TestingSystem.SAPFOR;
2023-10-15 20:50:33 +03:00
import Common.Constants;
import Common.Global;
import Common.Utils.Utils;
2023-12-25 02:07:37 +03:00
import TestingSystem.Common.TaskThread;
import TestingSystem.Common.ThreadsPlanner.ThreadsPlanner;
import TestingSystem.SAPFOR.Json.SapforConfiguration_json;
import TestingSystem.SAPFOR.Json.SapforPackage_json;
import TestingSystem.SAPFOR.Json.SapforTest_json;
import TestingSystem.SAPFOR.Json.SapforTestingSet_json;
import TestingSystem.SAPFOR.SapforTask.SapforTask;
import Visual_DVM_2021.Passes.PassCode_2021;
2023-10-15 20:50:33 +03:00
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.nio.charset.Charset;
2023-10-15 20:50:33 +03:00
import java.util.Date;
import java.util.Vector;
2023-10-15 20:50:33 +03:00
public class PackageModeSupervisor extends ThreadsPlanner {
SapforPackage_json package_json = null;
2023-12-25 02:07:37 +03:00
File sapfor_drv = null;
2023-10-15 20:50:33 +03:00
public PackageModeSupervisor() throws Exception {
super(2000);
package_json = (SapforPackage_json) Utils.jsonFromFile(new File(Constants.package_json), SapforPackage_json.class);
//--
File sapfor_src = new File(package_json.sapfor_drv);
2023-12-25 02:07:37 +03:00
sapfor_drv = new File(Global.Home, Utils.getDateName("SAPFOR_F"));
FileUtils.copyFile(sapfor_src, sapfor_drv);
if (!sapfor_drv.setExecutable(true))
throw new Exception("Не удалось сделать файл " + sapfor_drv.getName() + " исполняемым!");
2023-12-25 02:07:37 +03:00
File PID = new File("PID");
FileUtils.writeStringToFile(PID, sapfor_drv.getName(), Charset.defaultCharset());
//---
2023-10-15 21:58:23 +03:00
Date startDate = new Date();
File started = new File(Constants.STARTED);
FileUtils.writeStringToFile(started, String.valueOf(startDate));
2023-10-15 20:50:33 +03:00
//формирование списка задач.
setMaxKernels(package_json.kernels);
for (SapforTask task: package_json.tasks)
addThread(new TaskThread(task,sapfor_drv));
2023-10-15 20:50:33 +03:00
interruptThread.start();
}
@Override
public String printThread(Integer id) {
TaskThread taskThread = (TaskThread) threads.get(id);
return taskThread.task.getSummary();
}
@Override
2023-10-15 20:50:33 +03:00
protected void finalize() {
//записать результаты всех задач.
try {
Utils.jsonToFile(package_json, new File(Constants.package_json));
2023-10-15 20:50:33 +03:00
FileUtils.writeStringToFile(new File(Constants.DONE), "");
//--
//Очистка
//очистка служебных файлов.
Utils.deleteFilesByExtensions(new File(Global.Home),
"proj", "dep", "jar"
// ,"sh", "exe", "bat"
);
//удаление сапфора
if (sapfor_drv.exists())
FileUtils.forceDelete(sapfor_drv);
2023-10-15 20:50:33 +03:00
} catch (Exception e) {
Global.Log.PrintException(e);
}
System.exit(0);
}
}