v++
клонирование пакета DVM тестирования
This commit is contained in:
8
.idea/workspace.xml
generated
8
.idea/workspace.xml
generated
@@ -7,9 +7,13 @@
|
|||||||
</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/Visual_DVM_2021/Passes/All/CloneDVMPackage.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$/src/GlobalData/RunConfiguration/RunConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GlobalData/RunConfiguration/RunConfiguration.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/TestingSystem/DVM/Configuration/Configuration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/Configuration/Configuration.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackagesBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackagesBar.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTasks/DVMCompilationTask.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTasks/DVMCompilationTask.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddTasksToDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddTasksToDVMPackage.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.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" />
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public class Visualiser extends Component {
|
|||||||
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
|
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
|
||||||
@Override
|
@Override
|
||||||
public void GetVersionInfo() {
|
public void GetVersionInfo() {
|
||||||
version = 1059;
|
version = 1060;
|
||||||
String pattern = "MMM dd yyyy HH:mm:ss";
|
String pattern = "MMM dd yyyy HH:mm:ss";
|
||||||
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
|
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
|
||||||
date_text = df.format(getClassBuildTime());
|
date_text = df.format(getClassBuildTime());
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ public class DVMPackagesBar extends DataMenuBar {
|
|||||||
PassCode_2021.SynchronizeTests,
|
PassCode_2021.SynchronizeTests,
|
||||||
PassCode_2021.AddDVMPackage,
|
PassCode_2021.AddDVMPackage,
|
||||||
PassCode_2021.AddTasksToDVMPackage,
|
PassCode_2021.AddTasksToDVMPackage,
|
||||||
|
PassCode_2021.CloneDVMPackage,
|
||||||
PassCode_2021.StartDVMPackage,
|
PassCode_2021.StartDVMPackage,
|
||||||
PassCode_2021.DownloadDVMPackage,
|
PassCode_2021.DownloadDVMPackage,
|
||||||
PassCode_2021.AbortDVMPackage,
|
PassCode_2021.AbortDVMPackage,
|
||||||
|
|||||||
@@ -20,6 +20,9 @@ public class DVMCompilationTask extends DVMTask {
|
|||||||
) {
|
) {
|
||||||
super(configuration, group, test, flags_in);
|
super(configuration, group, test, flags_in);
|
||||||
maxtime = configuration.c_maxtime;
|
maxtime = configuration.c_maxtime;
|
||||||
|
}
|
||||||
|
public DVMCompilationTask() {
|
||||||
|
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public Vector<String> pack(Object arg) {
|
public Vector<String> pack(Object arg) {
|
||||||
|
|||||||
@@ -153,12 +153,10 @@ public class AddTasksToDVMPackage extends Pass_2021<DVMPackage> {
|
|||||||
//инициализируем идентификаторы задач.
|
//инициализируем идентификаторы задач.
|
||||||
for (DVMCompilationTask compilationTask : tasks) {
|
for (DVMCompilationTask compilationTask : tasks) {
|
||||||
//--
|
//--
|
||||||
compilationTask.id = json.max_task_id;
|
compilationTask.id = json.getMaxTaskId();
|
||||||
json.max_task_id++;
|
|
||||||
//-
|
//-
|
||||||
for (DVMRunTask runTask : compilationTask.runTasks) {
|
for (DVMRunTask runTask : compilationTask.runTasks) {
|
||||||
runTask.id = json.max_task_id;
|
runTask.id = json.getMaxTaskId();
|
||||||
json.max_task_id++;
|
|
||||||
runTask.dvmcompilationtask_id = compilationTask.id;
|
runTask.dvmcompilationtask_id = compilationTask.id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
180
src/Visual_DVM_2021/Passes/All/CloneDVMPackage.java
Normal file
180
src/Visual_DVM_2021/Passes/All/CloneDVMPackage.java
Normal file
@@ -0,0 +1,180 @@
|
|||||||
|
package Visual_DVM_2021.Passes.All;
|
||||||
|
import Common.Constants;
|
||||||
|
import Common.Current;
|
||||||
|
import Common.Database.Database;
|
||||||
|
import Common.Global;
|
||||||
|
import Common.Utils.Utils;
|
||||||
|
import GlobalData.Compiler.CompilerType;
|
||||||
|
import GlobalData.Machine.MachineType;
|
||||||
|
import GlobalData.Tasks.TaskState;
|
||||||
|
import GlobalData.User.UserState;
|
||||||
|
import TestingSystem.Common.Group.Group;
|
||||||
|
import TestingSystem.Common.TasksPackageState;
|
||||||
|
import TestingSystem.Common.Test.Test;
|
||||||
|
import TestingSystem.Common.Test.TestType;
|
||||||
|
import TestingSystem.DVM.DVMPackage.DVMPackage;
|
||||||
|
import TestingSystem.DVM.DVMPackage.DVMPackage_json;
|
||||||
|
import TestingSystem.DVM.DVMTasks.DVMCompilationTask;
|
||||||
|
import TestingSystem.DVM.DVMTasks.DVMRunTask;
|
||||||
|
import Visual_DVM_2021.Passes.AddObjectPass;
|
||||||
|
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||||
|
public class CloneDVMPackage extends AddObjectPass<DVMPackage> {
|
||||||
|
DVMPackage src;
|
||||||
|
public CloneDVMPackage() {
|
||||||
|
super(DVMPackage.class);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getIconPath() {
|
||||||
|
return "/icons/MultiFiles.png";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected Database getDb() {
|
||||||
|
return Global.testingServer.db;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected boolean canStart(Object... args) throws Exception {
|
||||||
|
src = null;
|
||||||
|
if (!Current.getAccount().CheckRegistered(Log)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (Current.Check(Log, Current.Machine, Current.User, Current.Compiler, Current.DVMPackage)) {
|
||||||
|
if (!Current.getMachine().type.equals(MachineType.Server)) {
|
||||||
|
Log.Writeln_("Тестирование поддерживается только на одиночном удалённом сервере.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Current.getUser().state.equals(UserState.ready_to_work)) {
|
||||||
|
Log.Writeln_("Пользователь не готов к работе. Выполните инициализацию пользователя!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Current.getCompiler().type.equals(CompilerType.dvm)) {
|
||||||
|
Log.Writeln_("Тестирование поддерживается только для DVM компиляторов.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Current.getCompiler().versionLoaded)
|
||||||
|
passes.get(PassCode_2021.ShowCompilerVersion).Do(Current.getCompiler(), false);
|
||||||
|
//-
|
||||||
|
for (DVMPackage dvmPackage : Global.testingServer.db.dvmPackages.Data.values()) {
|
||||||
|
if (dvmPackage.state.equals(TasksPackageState.Draft)) {
|
||||||
|
Log.Writeln_("Может существовать только один пакет, готовящийся к публикации.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//--
|
||||||
|
src = Current.getDVMPackage();
|
||||||
|
if (!src.state.equals(TasksPackageState.Done)) {
|
||||||
|
Log.Writeln_("Возможно повторить только завершенный пакет!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!src.isLoaded())
|
||||||
|
passes.get(PassCode_2021.DownloadDVMPackage).Do();
|
||||||
|
if (!src.isLoaded())
|
||||||
|
return false;
|
||||||
|
//---->>
|
||||||
|
target = new DVMPackage();
|
||||||
|
target.id = Constants.Nan;
|
||||||
|
//-
|
||||||
|
target.sender_name = Current.getAccount().name;
|
||||||
|
target.sender_address = Current.getAccount().email;
|
||||||
|
//-
|
||||||
|
target.machine_name = Current.getMachine().name;
|
||||||
|
target.machine_address = Current.getMachine().address;
|
||||||
|
target.machine_port = Current.getMachine().port;
|
||||||
|
//-
|
||||||
|
target.user_name = Current.getUser().login;
|
||||||
|
target.user_password = Current.getUser().password;
|
||||||
|
target.user_workspace = Current.getUser().workspace;
|
||||||
|
//--
|
||||||
|
target.drv = Current.getCompiler().call_command;
|
||||||
|
target.version = Current.getCompiler().getVersionInfo();
|
||||||
|
//--
|
||||||
|
target.kernels = Global.properties.TestingKernels;
|
||||||
|
target.needsEmail = Global.properties.EmailOnTestingProgress ? 1 : 0;
|
||||||
|
//--
|
||||||
|
target.tasksCount = 0;
|
||||||
|
//--
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected void body() throws Exception {
|
||||||
|
// надо скопировать все задачи.
|
||||||
|
src.readJson();
|
||||||
|
target.package_json = new DVMPackage_json();
|
||||||
|
//--
|
||||||
|
for (DVMCompilationTask src_compilationTask : src.package_json.compilationTasks) {
|
||||||
|
if (Global.testingServer.db.groups.containsKey(src_compilationTask.group_id) &&
|
||||||
|
Global.testingServer.db.tests.containsKey(src_compilationTask.test_id)
|
||||||
|
) {
|
||||||
|
Group group = Global.testingServer.db.groups.get(src_compilationTask.group_id);
|
||||||
|
Test test = Global.testingServer.db.tests.get(src_compilationTask.test_id);
|
||||||
|
//--
|
||||||
|
DVMCompilationTask compilationTask = new DVMCompilationTask();
|
||||||
|
//--
|
||||||
|
compilationTask.group_id = group.id;
|
||||||
|
compilationTask.group_description = group.description;
|
||||||
|
compilationTask.language = src_compilationTask.language;
|
||||||
|
//--
|
||||||
|
compilationTask.test_id = test.id;
|
||||||
|
compilationTask.test_description = test.description;
|
||||||
|
compilationTask.test_type = group.type;
|
||||||
|
//--
|
||||||
|
compilationTask.maxtime = src_compilationTask.maxtime;
|
||||||
|
//--
|
||||||
|
compilationTask.flags = src_compilationTask.flags;
|
||||||
|
compilationTask.kernels = 1;
|
||||||
|
//---
|
||||||
|
for (DVMRunTask src_runTask : src_compilationTask.runTasks) {
|
||||||
|
DVMRunTask runTask = new DVMRunTask();
|
||||||
|
//--
|
||||||
|
runTask.group_id = group.id;
|
||||||
|
runTask.group_description = group.description;
|
||||||
|
runTask.language = src_runTask.language;
|
||||||
|
//--
|
||||||
|
runTask.test_id = test.id;
|
||||||
|
runTask.test_description = test.description;
|
||||||
|
runTask.test_type = group.type;
|
||||||
|
//--
|
||||||
|
runTask.compilation_maxtime = src_runTask.compilation_maxtime;
|
||||||
|
runTask.compilation_state = TaskState.Waiting;
|
||||||
|
runTask.maxtime = src_runTask.maxtime;
|
||||||
|
//--
|
||||||
|
runTask.cube = src_runTask.cube;
|
||||||
|
runTask.min_dim = src_runTask.min_dim;
|
||||||
|
runTask.max_dim = src_runTask.max_dim;
|
||||||
|
runTask.matrix = src_runTask.matrix;
|
||||||
|
runTask.environments = src_runTask.environments;
|
||||||
|
runTask.usr_par = src_runTask.usr_par;
|
||||||
|
runTask.args = test.args;
|
||||||
|
//--
|
||||||
|
runTask.flags = src_runTask.flags;
|
||||||
|
runTask.kernels = (group.type == TestType.Performance) ? target.kernels :
|
||||||
|
Math.min(Utils.getMatrixProcessors(src_runTask.matrix), target.kernels);
|
||||||
|
compilationTask.runTasks.add(runTask);
|
||||||
|
}
|
||||||
|
//--
|
||||||
|
target.package_json.compilationTasks.add(compilationTask);
|
||||||
|
//-
|
||||||
|
}
|
||||||
|
}
|
||||||
|
///-
|
||||||
|
//инициализируем идентификаторы задач.
|
||||||
|
for (DVMCompilationTask compilationTask : target.package_json.compilationTasks) {
|
||||||
|
//--
|
||||||
|
compilationTask.id = target.package_json.getMaxTaskId();
|
||||||
|
//-
|
||||||
|
for (DVMRunTask runTask : compilationTask.runTasks) {
|
||||||
|
runTask.id = target.package_json.getMaxTaskId();
|
||||||
|
runTask.dvmcompilationtask_id = compilationTask.id;
|
||||||
|
target.tasksCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//черновик не вставляется в бд. идет только как элемент списка.
|
||||||
|
Global.testingServer.db.dvmPackages.Data.put(target.id, target);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected void showDone() throws Exception {
|
||||||
|
super.showDone();
|
||||||
|
Global.testingServer.db.dvmRunTasks.ShowDVMPackage(target);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -312,11 +312,16 @@ public enum PassCode_2021 {
|
|||||||
DownloadDVMPackages,
|
DownloadDVMPackages,
|
||||||
DownloadSapforPackage,
|
DownloadSapforPackage,
|
||||||
//->
|
//->
|
||||||
TestPass, SPF_InsertPrivateFromGUI;
|
TestPass,
|
||||||
|
SPF_InsertPrivateFromGUI,
|
||||||
|
CloneDVMPackage,
|
||||||
|
;
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
switch (this) {
|
switch (this) {
|
||||||
case Undefined:
|
case Undefined:
|
||||||
return "?";
|
return "?";
|
||||||
|
case CloneDVMPackage:
|
||||||
|
return "Клонировать пакет DVM c текущим компилятором";
|
||||||
case AddTasksToSapforPackage:
|
case AddTasksToSapforPackage:
|
||||||
return "Добавить задачи в пакет SAPFOR";
|
return "Добавить задачи в пакет SAPFOR";
|
||||||
case SPF_InsertPrivateFromGUI:
|
case SPF_InsertPrivateFromGUI:
|
||||||
|
|||||||
Reference in New Issue
Block a user