пока все на отладочном порту. Сохранение вывода сборки Сапфора в папке версии.
This commit is contained in:
19
.idea/workspace.xml
generated
19
.idea/workspace.xml
generated
@@ -7,20 +7,12 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||||
<change afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTestingPlanner.java" afterDir="false" />
|
<change afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/ServerSapfor/ServerSapforState.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/Common/Current.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Current.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/Common/Global.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Global.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTestingPlanner.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/Repository/Component/Visualiser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Component/Visualiser.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/files/RunTask.h" beforeDir="false" afterPath="$PROJECT_DIR$/src/files/RunTask.h" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/Repository/RepositoryClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/RepositoryClient.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/Repository/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/RepositoryServer.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/MachineProcess/MachineProcess.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/MachineProcess/MachineProcess.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPlanner.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/LocalMachineQueueSupervisor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/LocalDVMTestingPlanner.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/MachineQueueSupervisor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/RemoteDVMTestingPlanner.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/UserConnection.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/UserConnection.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/SSH/RepositoryServerSSHPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/SSH/RepositoryServerSSHPass.java" afterDir="false" />
|
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
@@ -42,8 +34,8 @@
|
|||||||
<list>
|
<list>
|
||||||
<option value="FxmlFile" />
|
<option value="FxmlFile" />
|
||||||
<option value="Interface" />
|
<option value="Interface" />
|
||||||
<option value="Enum" />
|
|
||||||
<option value="Class" />
|
<option value="Class" />
|
||||||
|
<option value="Enum" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
@@ -93,6 +85,7 @@
|
|||||||
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
||||||
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
||||||
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
|
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
|
||||||
|
<property name="TODO_SCOPE" value="All Places" />
|
||||||
<property name="UI_DESIGNER_EDITOR_MODE.PaletteManager.SHOW" value="true" />
|
<property name="UI_DESIGNER_EDITOR_MODE.PaletteManager.SHOW" value="true" />
|
||||||
<property name="UI_DESIGNER_EDITOR_MODE.PaletteManager.WIDTH" value="282" />
|
<property name="UI_DESIGNER_EDITOR_MODE.PaletteManager.WIDTH" value="282" />
|
||||||
<property name="UI_DESIGNER_EDITOR_MODE.UIDesignerToolWindowManager.SHOW" value="true" />
|
<property name="UI_DESIGNER_EDITOR_MODE.UIDesignerToolWindowManager.SHOW" value="true" />
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
"Mode": "Normal",
|
"Mode": "Normal",
|
||||||
"ServerAddress": "alex-freenas.ddns.net",
|
"ServerAddress": "alex-freenas.ddns.net",
|
||||||
"ServerUserName": "testuser",
|
"ServerUserName": "testuser",
|
||||||
"ServerUserSHHPort": 2000,
|
"ServerUserSHHPort": 23,
|
||||||
"ComponentsServerPort": 7995,
|
"ComponentsServerPort": 7995,
|
||||||
"TestingServerPort": 7998,
|
"TestingServerPort": 7996,
|
||||||
"SocketTimeout": 5000,
|
"SocketTimeout": 5000,
|
||||||
"OldServer": false,
|
"OldServer": false,
|
||||||
"SMTPHost": "smtp.mail.ru",
|
"SMTPHost": "smtp.mail.ru",
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
"PerformanceAnalyzerPath": "",
|
"PerformanceAnalyzerPath": "",
|
||||||
"ComponentsBackUpsCount": 10,
|
"ComponentsBackUpsCount": 10,
|
||||||
"TestingKernels": 28,
|
"TestingKernels": 28,
|
||||||
"AutoCheckTesting": true,
|
"AutoCheckTesting": false,
|
||||||
"CheckTestingIntervalSeconds": 10,
|
"CheckTestingIntervalSeconds": 10,
|
||||||
"EmailOnTestingProgress": false,
|
"EmailOnTestingProgress": false,
|
||||||
"eraseTestingWorkspaces": true
|
"eraseTestingWorkspaces": true
|
||||||
|
|||||||
@@ -38,43 +38,7 @@ import java.nio.file.Paths;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
public class TestingServer extends RepositoryServer<TestsDatabase> {
|
public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||||
public String name = "?";
|
public String name = "?";
|
||||||
public static MachineProcessSet machinesProcesses= new MachineProcessSet();
|
public static MachineProcessSet machinesProcesses = new MachineProcessSet();
|
||||||
void StartNecessaryMachines() {
|
|
||||||
try {
|
|
||||||
Vector<String> 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<String, MachineProcess> 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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterPublishAction(DBObject object) throws Exception {
|
public void afterPublishAction(DBObject object) throws Exception {
|
||||||
if (object instanceof Test) {
|
if (object instanceof Test) {
|
||||||
@@ -94,7 +58,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
dvmPackage.saveJson();
|
dvmPackage.saveJson();
|
||||||
dvmPackage.package_json = null; // объект больше не нужен.
|
dvmPackage.package_json = null; // объект больше не нужен.
|
||||||
//--
|
//--
|
||||||
|
|
||||||
} else if (object instanceof SapforPackage) {
|
} else if (object instanceof SapforPackage) {
|
||||||
((SapforPackage) object).init();
|
((SapforPackage) object).init();
|
||||||
}
|
}
|
||||||
@@ -159,7 +122,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
protected void startAdditionalThreads() {
|
protected void startAdditionalThreads() {
|
||||||
testingThread.start();
|
testingThread.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
DVMTestingChecker dvmTestingChecker = new DVMTestingChecker();
|
DVMTestingChecker dvmTestingChecker = new DVMTestingChecker();
|
||||||
SapforTestingPlanner sapforTestingPlanner = new SapforTestingPlanner();
|
SapforTestingPlanner sapforTestingPlanner = new SapforTestingPlanner();
|
||||||
//--
|
//--
|
||||||
@@ -473,6 +435,8 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
File repo = new File(testingSystemHome, "Repo");
|
File repo = new File(testingSystemHome, "Repo");
|
||||||
File repoSapforHome = Paths.get(repo.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN).toFile();
|
File repoSapforHome = Paths.get(repo.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN).toFile();
|
||||||
File repo_bin = new File(repoSapforHome, "Sapfor_F");
|
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...");
|
System.out.println("Синхронизация ветви DVM...");
|
||||||
Utils.startScript(repo, repo, "dvm_checkout",
|
Utils.startScript(repo, repo, "dvm_checkout",
|
||||||
@@ -513,18 +477,40 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
//--
|
//--
|
||||||
System.out.println("Сборка SAPFOR...");
|
System.out.println("Сборка SAPFOR...");
|
||||||
Utils.startScript(repoSapforHome, repoSapforHome, "build_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");
|
System.out.println("DONE");
|
||||||
File repoSapfor = new File(repoSapforHome, "Sapfor_F");
|
File repoSapfor = new File(repoSapforHome, "Sapfor_F");
|
||||||
System.out.println("Result file is " + Utils.Brackets(repoSapfor.getAbsolutePath()));
|
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()) {
|
if (repoSapfor.exists()) {
|
||||||
System.out.println("assembly found!");
|
System.out.println("assembly found!");
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
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");
|
File sapforBin = new File(sapforHome, "Sapfor_F");
|
||||||
FileUtils.copyFile(repo_bin, sapforBin);
|
FileUtils.copyFile(repo_bin, sapforBin);
|
||||||
sapforBin.setExecutable(true, false);
|
sapforBin.setExecutable(true, false);
|
||||||
@@ -537,7 +523,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
response.object = serverSapfor;
|
response.object = serverSapfor;
|
||||||
serverSapfor.version = String.valueOf(current_version);
|
serverSapfor.version = String.valueOf(current_version);
|
||||||
//---
|
//---
|
||||||
EmailSapforAssembly(current_version, true);
|
// EmailSapforAssembly(current_version, true);
|
||||||
//---
|
//---
|
||||||
} else {
|
} else {
|
||||||
//---
|
//---
|
||||||
@@ -625,7 +611,40 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
response.object = db.getFirstActiveDVMPackageCopyForMachineURL(request.arg);
|
response.object = db.getFirstActiveDVMPackageCopyForMachineURL(request.arg);
|
||||||
}
|
}
|
||||||
//-----
|
void StartNecessaryMachines() {
|
||||||
|
try {
|
||||||
|
Vector<String> 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<String, MachineProcess> 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -141,4 +141,12 @@ public class SapforTestingPlanner extends TestingPlanner<SapforPackage> {
|
|||||||
Print("done!");
|
Print("done!");
|
||||||
}
|
}
|
||||||
//--
|
//--
|
||||||
|
@Override
|
||||||
|
public void perform() throws Exception {
|
||||||
|
compileSapfors();
|
||||||
|
super.perform();
|
||||||
|
}
|
||||||
|
public void compileSapfors() throws Exception{
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package TestingSystem.SAPFOR.ServerSapfor;
|
||||||
|
public enum ServerSapforState {
|
||||||
|
Queued,
|
||||||
|
Compilation,
|
||||||
|
Done,
|
||||||
|
DoneWithErrors
|
||||||
|
}
|
||||||
@@ -58,17 +58,19 @@ public:
|
|||||||
setUsrPar(lines->get(offset + 5));
|
setUsrPar(lines->get(offset + 5));
|
||||||
setArgs(lines->get(offset + 6));
|
setArgs(lines->get(offset + 6));
|
||||||
setKernels(lines->get(offset + 7));
|
setKernels(lines->get(offset + 7));
|
||||||
|
//todo setStartCommand
|
||||||
}
|
}
|
||||||
|
|
||||||
String getLaunchScriptText() override {
|
String getLaunchScriptText() override {
|
||||||
String modules = userWorkspace + "/modules";
|
String modules = userWorkspace + "/modules";
|
||||||
String starterCall = modules + "/starter";
|
String starterCall = modules + "/starter";
|
||||||
String launcherCall = modules + "/launcher";
|
String launcherCall = modules + "/launcher";
|
||||||
//-
|
//todo вшить команду запуска в задачу на стороне сервера, чтобы в будущем тестировать произвольные задачи.
|
||||||
String dvm_start = String::DQuotes(dvm_drv) + " run ";
|
String dvm_start = String::DQuotes(dvm_drv) + " run ";
|
||||||
if (!matrix.isEmpty())
|
if (!matrix.isEmpty())
|
||||||
dvm_start = dvm_start + matrix + " ";
|
dvm_start = dvm_start + matrix + " ";
|
||||||
dvm_start = dvm_start + String::DQuotes("./" + binary_name);
|
dvm_start = dvm_start + String::DQuotes("./" + binary_name);
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
if (!args.isEmpty())
|
if (!args.isEmpty())
|
||||||
dvm_start = dvm_start + " " + args;
|
dvm_start = dvm_start + " " + args;
|
||||||
return String::DQuotes(starterCall) + " " +
|
return String::DQuotes(starterCall) + " " +
|
||||||
|
|||||||
Reference in New Issue
Block a user