diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 023fb81a..84b1f6b8 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -7,20 +7,12 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -42,8 +34,8 @@
-
+
@@ -93,6 +85,7 @@
+
diff --git a/properties b/properties
index bdba6eb0..11d00984 100644
--- a/properties
+++ b/properties
@@ -2,9 +2,9 @@
"Mode": "Normal",
"ServerAddress": "alex-freenas.ddns.net",
"ServerUserName": "testuser",
- "ServerUserSHHPort": 2000,
+ "ServerUserSHHPort": 23,
"ComponentsServerPort": 7995,
- "TestingServerPort": 7998,
+ "TestingServerPort": 7996,
"SocketTimeout": 5000,
"OldServer": false,
"SMTPHost": "smtp.mail.ru",
@@ -35,7 +35,7 @@
"PerformanceAnalyzerPath": "",
"ComponentsBackUpsCount": 10,
"TestingKernels": 28,
- "AutoCheckTesting": true,
+ "AutoCheckTesting": false,
"CheckTestingIntervalSeconds": 10,
"EmailOnTestingProgress": false,
"eraseTestingWorkspaces": true
diff --git a/src/TestingSystem/Common/TestingServer.java b/src/TestingSystem/Common/TestingServer.java
index eaf252e9..1dc2415e 100644
--- a/src/TestingSystem/Common/TestingServer.java
+++ b/src/TestingSystem/Common/TestingServer.java
@@ -38,43 +38,7 @@ import java.nio.file.Paths;
import java.util.*;
public class TestingServer extends RepositoryServer {
public String name = "?";
- public static MachineProcessSet machinesProcesses= new MachineProcessSet();
- void StartNecessaryMachines() {
- try {
- Vector aborted = new Vector<>();
- for (MachineProcess process : machinesProcesses.Data.values()) {
- if (process.isAborted()) {
- aborted.add(process.id);
- }
- }
- //---
- for (String key : aborted) {
- machinesProcesses.Data.remove(key);
- }
- //---
- LinkedHashMap processes_to_start = new LinkedHashMap<>();
- //1. Получить список всех пакетов, которые активны, и взять из них машины.
- for (DVMPackage dvmPackage : db.dvmPackages.Data.values()) {
- if (dvmPackage.state.isActive()) {
- //-
- if (!machinesProcesses.hasProcessForPackage(dvmPackage)) {
- MachineProcess new_process = new MachineProcess(dvmPackage);
- processes_to_start.put(new_process.getUniqueKey(), new_process);
- }
- }
- }
- //запуск.
- for (MachineProcess process : processes_to_start.values()) {
- process.Start();
- if (Utils.checkFileCreation(process.getStartedFile())) {
- machinesProcesses.Data.put(process.id, process);
- }
- }
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
-
+ public static MachineProcessSet machinesProcesses = new MachineProcessSet();
@Override
public void afterPublishAction(DBObject object) throws Exception {
if (object instanceof Test) {
@@ -94,7 +58,6 @@ public class TestingServer extends RepositoryServer {
dvmPackage.saveJson();
dvmPackage.package_json = null; // объект больше не нужен.
//--
-
} else if (object instanceof SapforPackage) {
((SapforPackage) object).init();
}
@@ -159,7 +122,6 @@ public class TestingServer extends RepositoryServer {
protected void startAdditionalThreads() {
testingThread.start();
}
-
DVMTestingChecker dvmTestingChecker = new DVMTestingChecker();
SapforTestingPlanner sapforTestingPlanner = new SapforTestingPlanner();
//--
@@ -473,6 +435,8 @@ public class TestingServer extends RepositoryServer {
File repo = new File(testingSystemHome, "Repo");
File repoSapforHome = Paths.get(repo.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN).toFile();
File repo_bin = new File(repoSapforHome, "Sapfor_F");
+ File repo_out = new File(repoSapforHome, Constants.out_file);
+ File repo_err = new File(repoSapforHome, Constants.err_file);
//--
System.out.println("Синхронизация ветви DVM...");
Utils.startScript(repo, repo, "dvm_checkout",
@@ -513,18 +477,40 @@ public class TestingServer extends RepositoryServer {
//--
System.out.println("Сборка SAPFOR...");
Utils.startScript(repoSapforHome, repoSapforHome, "build_sapfor",
- "cmake ../ 1>out.txt 2>err.txt\nmake -j 14 1>>out.txt 2>>err.txt\n").waitFor();
+ "cmake ../ 1>" +
+ Constants.out_file +
+ " 2>" +
+ Constants.err_file +
+ "\nmake -j 14 1>>" +
+ Constants.out_file +
+ " 2>>" +
+ Constants.err_file +
+ "\n").waitFor();
//--
System.out.println("DONE");
File repoSapfor = new File(repoSapforHome, "Sapfor_F");
System.out.println("Result file is " + Utils.Brackets(repoSapfor.getAbsolutePath()));
+ //---
+ File sapforsDirectory = new File(testingSystemHome, "Sapfors");
+ File sapforHome = new File(sapforsDirectory, Utils.getDateName("sapfor"));
+ sapforHome.mkdir();
+ File sapforOut = new File(sapforHome, Constants.out_file);
+ File sapforErr = new File(sapforHome, Constants.err_file);
+ //--
+ System.out.println(repoSapfor.getAbsolutePath());
+ System.out.println(repo_out.getAbsolutePath());
+ System.out.println(repo_err.getAbsolutePath());
+ System.out.println("====================");
+ //--
+ if (repo_out.exists())
+ FileUtils.copyFile(repo_out, sapforOut);
+ if (repo_err.exists())
+ FileUtils.copyFile(repo_err, sapforErr);
+ //--
if (repoSapfor.exists()) {
System.out.println("assembly found!");
response = new ServerExchangeUnit_2021(ServerCode.OK);
- File sapforsDirectory = new File(testingSystemHome, "Sapfors");
//создать папку. Для того чтобы скопировать из репозитория.
- File sapforHome = new File(sapforsDirectory, Utils.getDateName("sapfor"));
- sapforHome.mkdir();
File sapforBin = new File(sapforHome, "Sapfor_F");
FileUtils.copyFile(repo_bin, sapforBin);
sapforBin.setExecutable(true, false);
@@ -537,7 +523,7 @@ public class TestingServer extends RepositoryServer {
response.object = serverSapfor;
serverSapfor.version = String.valueOf(current_version);
//---
- EmailSapforAssembly(current_version, true);
+ // EmailSapforAssembly(current_version, true);
//---
} else {
//---
@@ -625,7 +611,40 @@ public class TestingServer extends RepositoryServer {
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = db.getFirstActiveDVMPackageCopyForMachineURL(request.arg);
}
- //-----
-
+ void StartNecessaryMachines() {
+ try {
+ Vector aborted = new Vector<>();
+ for (MachineProcess process : machinesProcesses.Data.values()) {
+ if (process.isAborted()) {
+ aborted.add(process.id);
+ }
+ }
+ //---
+ for (String key : aborted) {
+ machinesProcesses.Data.remove(key);
+ }
+ //---
+ LinkedHashMap processes_to_start = new LinkedHashMap<>();
+ //1. Получить список всех пакетов, которые активны, и взять из них машины.
+ for (DVMPackage dvmPackage : db.dvmPackages.Data.values()) {
+ if (dvmPackage.state.isActive()) {
+ //-
+ if (!machinesProcesses.hasProcessForPackage(dvmPackage)) {
+ MachineProcess new_process = new MachineProcess(dvmPackage);
+ processes_to_start.put(new_process.getUniqueKey(), new_process);
+ }
+ }
+ }
+ //запуск.
+ for (MachineProcess process : processes_to_start.values()) {
+ process.Start();
+ if (Utils.checkFileCreation(process.getStartedFile())) {
+ machinesProcesses.Data.put(process.id, process);
+ }
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
}
diff --git a/src/TestingSystem/SAPFOR/SapforTestingPlanner.java b/src/TestingSystem/SAPFOR/SapforTestingPlanner.java
index 1b36096d..99fe85cf 100644
--- a/src/TestingSystem/SAPFOR/SapforTestingPlanner.java
+++ b/src/TestingSystem/SAPFOR/SapforTestingPlanner.java
@@ -141,4 +141,12 @@ public class SapforTestingPlanner extends TestingPlanner {
Print("done!");
}
//--
+ @Override
+ public void perform() throws Exception {
+ compileSapfors();
+ super.perform();
+ }
+ public void compileSapfors() throws Exception{
+
+ }
}
diff --git a/src/TestingSystem/SAPFOR/ServerSapfor/ServerSapforState.java b/src/TestingSystem/SAPFOR/ServerSapfor/ServerSapforState.java
new file mode 100644
index 00000000..3a3ae4be
--- /dev/null
+++ b/src/TestingSystem/SAPFOR/ServerSapfor/ServerSapforState.java
@@ -0,0 +1,7 @@
+package TestingSystem.SAPFOR.ServerSapfor;
+public enum ServerSapforState {
+ Queued,
+ Compilation,
+ Done,
+ DoneWithErrors
+}
diff --git a/src/files/RunTask.h b/src/files/RunTask.h
index 52538819..48b9c831 100644
--- a/src/files/RunTask.h
+++ b/src/files/RunTask.h
@@ -58,17 +58,19 @@ public:
setUsrPar(lines->get(offset + 5));
setArgs(lines->get(offset + 6));
setKernels(lines->get(offset + 7));
+ //todo setStartCommand
}
String getLaunchScriptText() override {
String modules = userWorkspace + "/modules";
String starterCall = modules + "/starter";
String launcherCall = modules + "/launcher";
- //-
+ //todo вшить команду запуска в задачу на стороне сервера, чтобы в будущем тестировать произвольные задачи.
String dvm_start = String::DQuotes(dvm_drv) + " run ";
if (!matrix.isEmpty())
dvm_start = dvm_start + matrix + " ";
dvm_start = dvm_start + String::DQuotes("./" + binary_name);
+ //--------------------------------------------------------------------------------------
if (!args.isEmpty())
dvm_start = dvm_start + " " + args;
return String::DQuotes(starterCall) + " " +