обновление конфигураций для тестирования сапфора. нужно будет еще проверить и рефакторить.
This commit is contained in:
17
.idea/workspace.xml
generated
17
.idea/workspace.xml
generated
@@ -7,13 +7,18 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartSelectedSAPFORConfigurations.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Common/UI/VisualCache/ConfigurationCache.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/VisualCache/ConfigurationCache.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Common/UI/VisualCache/VisualCaches.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/VisualCache/VisualCaches.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/SaveCurrentConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/SaveCurrentConfiguration.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Server/DeleteServerObject.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Server/DeleteServerObject.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Server/DeleteServerObjects.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Server/DeleteServerObjects.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Server/EditServerObject.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Server/EditServerObject.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMConfiguration/DVMConfigurationDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMConfiguration/DVMConfigurationDBTable.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfiguration/SapforConfigurationsMenuBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfiguration/SapforConfigurationsMenuBar.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforPackage/SapforPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforPackage/SapforPackage.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforPackage/SapforPackageDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforPackage/SapforPackageDBTable.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforPackagesBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforPackagesBar.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddDVMPackage.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddTasksToSapforPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddTasksToSapforPackage.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/CloneSapforPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/CloneSapforPackage.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartSelectedDVMConfigurations.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartSelectedDVMConfigurations.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>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
||||
@@ -38,7 +38,6 @@ public class DVMConfigurationDBTable extends iDBTable<DVMConfiguration> {
|
||||
@Override
|
||||
protected void AdditionalInitColumns() {
|
||||
columns.get(5).setMaxWidth(300);
|
||||
// columns.get(5).setRenderer(TableRenderers.RendererHiddenList);
|
||||
columns.get(7).setRenderer(TableRenderers.RendererMultiline);
|
||||
columns.get(8).setRenderer(TableRenderers.RendererMultiline);
|
||||
columns.get(15).setRenderer(TableRenderers.RendererMultiline);
|
||||
|
||||
@@ -9,7 +9,9 @@ public class SapforConfigurationsMenuBar extends DataMenuBar {
|
||||
PassCode_2021.EditSapforConfiguration,
|
||||
PassCode_2021.ShowCurrentSAPFORConfigurationTests,
|
||||
PassCode_2021.SaveCurrentSAPFORConfiguration,
|
||||
PassCode_2021.DeleteSapforConfiguration
|
||||
PassCode_2021.DeleteSapforConfiguration,
|
||||
|
||||
PassCode_2021.StartSelectedSAPFORConfigurations
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,32 +4,47 @@ import Common.Current;
|
||||
import Common.Database.DBObject;
|
||||
import Common.Global;
|
||||
import Common.Utils.Utils;
|
||||
import TestingSystem.Common.Group.GroupsDBTable;
|
||||
import GlobalData.Account.Account;
|
||||
import TestingSystem.Common.TasksPackageState;
|
||||
import TestingSystem.Common.TestingPackage.TestingPackage;
|
||||
import TestingSystem.SAPFOR.Json.SapforPackage_json;
|
||||
import TestingSystem.SAPFOR.Json.SapforTestingSet_json;
|
||||
import TestingSystem.SAPFOR.SapforTask.SapforTask;
|
||||
import com.sun.org.glassfish.gmbal.Description;
|
||||
import TestingSystem.SAPFOR.ServerSapfor.ServerSapfor;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Vector;
|
||||
public class SapforPackage extends TestingPackage<SapforPackage_json> {
|
||||
@Description("DEFAULT ''")
|
||||
public String testsNames = "";//имена тестов через ; для отображения
|
||||
@Description("DEFAULT ''")
|
||||
public String configurationsNames="";//имена конфигураций для отображения.
|
||||
//---
|
||||
public int sapforId = Constants.Nan; // так как сапфор на машине.
|
||||
public SapforPackage() {
|
||||
}
|
||||
public SapforPackage(SapforPackage sapforPackage) {
|
||||
SynchronizeFields(sapforPackage);
|
||||
}
|
||||
public SapforPackage(Account account, ServerSapfor serverSapfor) {
|
||||
id = Constants.Nan;
|
||||
//-
|
||||
sender_name = account.name;
|
||||
sender_address = account.email;
|
||||
//-
|
||||
sapforId = serverSapfor.id;
|
||||
//-
|
||||
drv = serverSapfor.call_command;
|
||||
version = serverSapfor.version;
|
||||
kernels = Global.properties.TestingKernels;
|
||||
needsEmail = Global.properties.EmailOnTestingProgress ? 1 : 0;
|
||||
///-------------------------------
|
||||
package_json = new SapforPackage_json();
|
||||
package_json.kernels = kernels;
|
||||
package_json.sapfor_drv = serverSapfor.call_command;
|
||||
//-
|
||||
state = TasksPackageState.Queued;
|
||||
//-
|
||||
}
|
||||
@Override
|
||||
public void SynchronizeFields(DBObject src) {
|
||||
super.SynchronizeFields(src);
|
||||
SapforPackage p = (SapforPackage) src;
|
||||
testsNames = p.testsNames;
|
||||
sapforId = p.sapforId;
|
||||
}
|
||||
@Override
|
||||
@@ -49,7 +64,7 @@ public class SapforPackage extends TestingPackage<SapforPackage_json> {
|
||||
package_json = null; // объект больше не нужен.
|
||||
}
|
||||
//-проверка, какие задачи из набора, не пересекаются с уже имеющимися в пакете.
|
||||
public Vector<SapforTask> getActualTestingSetTasks(SapforTestingSet_json testingSet){
|
||||
public Vector<SapforTask> getActualTestingSetTasks(SapforTestingSet_json testingSet) {
|
||||
Vector<SapforTask> possible_tasks = testingSet.createTasks();
|
||||
Vector<String> keys = package_json.getTasksKeys();
|
||||
Vector<SapforTask> new_tasks = new Vector<>();
|
||||
@@ -65,8 +80,8 @@ public class SapforPackage extends TestingPackage<SapforPackage_json> {
|
||||
}
|
||||
@Override
|
||||
public boolean isVisible() {
|
||||
return (!SapforPackageDBTable.filterMyOnly ||Current.getAccount().email.equals(sender_address)) &&
|
||||
(!SapforPackageDBTable.filterActive || state.isActive() )
|
||||
return (!SapforPackageDBTable.filterMyOnly || Current.getAccount().email.equals(sender_address)) &&
|
||||
(!SapforPackageDBTable.filterActive || state.isActive())
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,9 @@ package TestingSystem.SAPFOR.SapforPackage;
|
||||
import Common.Current;
|
||||
import Common.Database.iDBTable;
|
||||
import Common.UI.DataSetControlForm;
|
||||
import Common.UI.VisualCache.ConfigurationCache;
|
||||
import Common.UI.VisualCache.PackageCache;
|
||||
import Common.UI.VisualCache.VisualCaches;
|
||||
import TestingSystem.SAPFOR.ServerSapfor.ServerSapfor;
|
||||
|
||||
import javax.security.auth.login.CredentialNotFoundException;
|
||||
@@ -38,15 +41,11 @@ public class SapforPackageDBTable extends iDBTable<SapforPackage> {
|
||||
}
|
||||
@Override
|
||||
protected void AdditionalInitColumns() {
|
||||
// columns.get(0).setVisible(false);
|
||||
columns.get(4).setVisible(false);
|
||||
// columns.get(5).setVisible(false);
|
||||
columns.get(5).setRenderer(RendererMultiline);
|
||||
columns.get(4).setMaxWidth(200);
|
||||
columns.get(8).setRenderer(RendererProgress);
|
||||
columns.get(4).setRenderer(RendererMultiline);
|
||||
columns.get(7).setRenderer(RendererProgress);
|
||||
columns.get(8).setRenderer(RendererDate);
|
||||
columns.get(9).setRenderer(RendererDate);
|
||||
columns.get(10).setRenderer(RendererDate);
|
||||
columns.get(11).setRenderer(RendererStatusEnum);
|
||||
columns.get(10).setRenderer(RendererStatusEnum);
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -55,7 +54,6 @@ public class SapforPackageDBTable extends iDBTable<SapforPackage> {
|
||||
return new String[]{
|
||||
"Автор",
|
||||
"SAPFOR",
|
||||
"Тесты",
|
||||
"Конфигурации",
|
||||
"Задач",
|
||||
"Ядер",
|
||||
@@ -65,32 +63,27 @@ public class SapforPackageDBTable extends iDBTable<SapforPackage> {
|
||||
"Статус"
|
||||
};
|
||||
}
|
||||
public static Vector<String> getConfigurationsNames(SapforPackage object){
|
||||
String[] data = object.configurationsNames.split(";");
|
||||
return new Vector<String>(Arrays.asList(data));
|
||||
}
|
||||
@Override
|
||||
public Object getFieldAt(SapforPackage object, int columnIndex) {
|
||||
PackageCache cache = (PackageCache) VisualCaches.GetCache(object);
|
||||
switch (columnIndex) {
|
||||
case 2:
|
||||
return object.sender_name;
|
||||
case 3:
|
||||
return object.version;
|
||||
case 4:
|
||||
return object.testsNames;
|
||||
return cache.getConfigurationsDescriptions();
|
||||
case 5:
|
||||
return getConfigurationsNames(object);//object.configurationsNames;
|
||||
case 6:
|
||||
return object.tasksCount;
|
||||
case 7:
|
||||
case 6:
|
||||
return object.kernels;
|
||||
case 8:
|
||||
case 7:
|
||||
return object.progress;
|
||||
case 9:
|
||||
case 8:
|
||||
return new Date(object.StartDate);
|
||||
case 10:
|
||||
case 9:
|
||||
return new Date(object.ChangeDate);
|
||||
case 11:
|
||||
case 10:
|
||||
return object.state;
|
||||
default:
|
||||
return null;
|
||||
|
||||
@@ -12,18 +12,11 @@ public class SapforPackagesBar extends DataMenuBar {
|
||||
super("пакеты задач SAPFOR");
|
||||
addPasses(PassCode_2021.SynchronizeTests);
|
||||
addSeparator();
|
||||
// addMenus(new AddSapforPackageMenu());
|
||||
addPasses(PassCode_2021.AddSapforPackage, PassCode_2021.AddTasksToSapforPackage);
|
||||
addSeparator();
|
||||
addPasses(PassCode_2021.CloneSapforPackage);
|
||||
addPasses(PassCode_2021.DeleteSapforPackage);
|
||||
addSeparator();
|
||||
addPasses(
|
||||
PassCode_2021.StartSapforPackage,
|
||||
PassCode_2021.AbortSapforPackage
|
||||
);
|
||||
addPasses(PassCode_2021.AbortSapforPackage);
|
||||
addSeparator();
|
||||
addPasses(PassCode_2021.CompareSapforPackages);
|
||||
addSeparator();
|
||||
addPasses(PassCode_2021.DeleteSapforPackage);
|
||||
add(new JSeparator());
|
||||
add(new MenuBarButton() {
|
||||
{
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
package Visual_DVM_2021.Passes.All;
|
||||
import Common.Constants;
|
||||
import Common.Current;
|
||||
import Common.Database.Database;
|
||||
import Common.Global;
|
||||
import GlobalData.Compiler.CompilerType;
|
||||
import GlobalData.Machine.MachineType;
|
||||
import GlobalData.User.UserState;
|
||||
import TestingSystem.Common.TasksPackageState;
|
||||
import TestingSystem.Common.TestingServer;
|
||||
import TestingSystem.DVM.DVMPackage.DVMPackage;
|
||||
import TestingSystem.DVM.DVMPackage.DVMPackage_json;
|
||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||
import Visual_DVM_2021.Passes.Server.PublishServerObject;
|
||||
public class AddDVMPackage extends PublishServerObject<TestingServer, DVMPackage> {
|
||||
public AddDVMPackage() {
|
||||
super(Global.testingServer, DVMPackage.class);
|
||||
}
|
||||
@Override
|
||||
public String getIconPath() {
|
||||
return "/icons/CreateProject.png";
|
||||
}
|
||||
@Override
|
||||
protected Database getDb() {
|
||||
return Global.testingServer.db;
|
||||
}
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
if (!Current.getAccount().CheckRegistered(Log)) {
|
||||
return false;
|
||||
}
|
||||
if (Current.Check(Log, Current.Machine, Current.User, Current.Compiler)) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
*/
|
||||
//--
|
||||
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.package_json = new DVMPackage_json();
|
||||
target.state = TasksPackageState.Inactive;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/*
|
||||
@Override
|
||||
protected void body() throws Exception {
|
||||
Global.testingServer.db.dvmPackages.Data.put(target.id, target);
|
||||
}
|
||||
*/
|
||||
@Override
|
||||
protected void showDone() throws Exception {
|
||||
super.showDone();
|
||||
Global.testingServer.db.dvmRunTasks.ShowDVMPackage(target);
|
||||
}
|
||||
}
|
||||
@@ -260,8 +260,6 @@ public class AddTasksToSapforPackage extends Pass_2021<SapforPackage> {
|
||||
target.package_json.tasks.add(task);
|
||||
}
|
||||
target.tasksCount += new_tasks.size();
|
||||
target.testsNames = String.join(";", target.package_json.getTestsNames());
|
||||
target.configurationsNames = String.join(";", target.package_json.getConfigurationsNames());
|
||||
}
|
||||
@Override
|
||||
protected void showDone() throws Exception {
|
||||
|
||||
@@ -165,8 +165,10 @@ public class CloneSapforPackage extends AddObjectPass<SapforPackage> {
|
||||
task.id = target.package_json.getMaxTaskId();
|
||||
}
|
||||
target.tasksCount = target.package_json.tasks.size();
|
||||
/*
|
||||
target.testsNames = String.join(";", target.package_json.getTestsNames());
|
||||
target.configurationsNames = String.join(";", target.package_json.getConfigurationsNames());
|
||||
*/
|
||||
//--
|
||||
return inexistingTests.isEmpty() && inexistingConfigurations.isEmpty() ||
|
||||
UI.Question(
|
||||
|
||||
@@ -30,7 +30,6 @@ public class StartSelectedDVMConfigurations extends PublishServerObject<TestingS
|
||||
public StartSelectedDVMConfigurations() {
|
||||
super(Global.testingServer, DVMPackage.class);
|
||||
}
|
||||
//пока пусть будет одна конфигурация и один пакет.
|
||||
@Override
|
||||
public String getIconPath() {
|
||||
return "/icons/Start.png";
|
||||
@@ -110,71 +109,68 @@ public class StartSelectedDVMConfigurations extends PublishServerObject<TestingS
|
||||
tests = new Vector<>();
|
||||
testByGroups = new LinkedHashMap<>();
|
||||
tasks = new Vector<>();
|
||||
tasks_count=0;
|
||||
tasks_count = 0;
|
||||
//---
|
||||
if (!Current.getAccount().CheckRegistered(Log)) {
|
||||
return false;
|
||||
}
|
||||
if (configurations.isEmpty()){
|
||||
if (configurations.isEmpty()) {
|
||||
Log.Writeln_("Не отмечено ни одной конфигурации, или отсутствует текущая конфигурация.");
|
||||
return false;
|
||||
}
|
||||
if (Current.Check(Log, Current.Machine, Current.User, Current.Compiler)) {
|
||||
if (!Current.getMachine().type.equals(MachineType.Server)) {
|
||||
Log.Writeln_("Тестирование поддерживается только на одиночном удалённом сервере.");
|
||||
return false;
|
||||
if (!Current.Check(Log, Current.Machine, Current.User, Current.Compiler))
|
||||
return false;
|
||||
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);
|
||||
//--
|
||||
target = new DVMPackage(
|
||||
Current.getAccount(),
|
||||
Current.getMachine(),
|
||||
Current.getUser(),
|
||||
Current.getCompiler()
|
||||
);
|
||||
//----
|
||||
for (DVMConfiguration configuration : configurations) {
|
||||
ConfigurationCache cache = (ConfigurationCache) VisualCaches.GetCache(configuration);
|
||||
groups = cache.getGroups();
|
||||
tests = cache.getTests();
|
||||
//-
|
||||
for (Group group : groups) {
|
||||
Vector<Test> groupTests = new Vector<>();
|
||||
for (Test test : tests) {
|
||||
if (test.group_id == group.id)
|
||||
groupTests.add(test);
|
||||
}
|
||||
testByGroups.put(group.id, groupTests);
|
||||
}
|
||||
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);
|
||||
//--
|
||||
target = new DVMPackage(
|
||||
Current.getAccount(),
|
||||
Current.getMachine(),
|
||||
Current.getUser(),
|
||||
Current.getCompiler()
|
||||
);
|
||||
//----
|
||||
for (DVMConfiguration configuration: configurations) {
|
||||
ConfigurationCache cache = (ConfigurationCache) VisualCaches.GetCache(configuration);
|
||||
groups = cache.getGroups();
|
||||
tests = cache.getTests();
|
||||
//-
|
||||
for (Group group: groups){
|
||||
Vector<Test> groupTests = new Vector<>();
|
||||
for (Test test: tests){
|
||||
if (test.group_id==group.id)
|
||||
groupTests.add(test);
|
||||
}
|
||||
testByGroups.put(group.id, groupTests);
|
||||
}
|
||||
//--
|
||||
for (Group group : groups) {
|
||||
Vector<Test> groupTests = testByGroups.get(group.id);
|
||||
for (Test test : groupTests)
|
||||
tasks.addAll(createTasksCGT(configuration, group, test));
|
||||
}
|
||||
for (Group group : groups) {
|
||||
Vector<Test> groupTests = testByGroups.get(group.id);
|
||||
for (Test test : groupTests)
|
||||
tasks.addAll(createTasksCGT(configuration, group, test));
|
||||
}
|
||||
if (tasks_count==0){
|
||||
Log.Writeln_("Задач не найдено.");
|
||||
return false;
|
||||
}
|
||||
return UI.Question("Будет запущено " + tasks_count + " задач. Продолжить");
|
||||
}
|
||||
if (tasks_count == 0) {
|
||||
Log.Writeln_("Задач не найдено.");
|
||||
return false;
|
||||
}
|
||||
if (UI.Question("Будет запущено " + tasks_count + " задач. Продолжить")){
|
||||
target.saveConfigurationsAsJson(configurations);
|
||||
target.saveTasks(tasks, tasks_count);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
protected void ServerAction() throws Exception {
|
||||
//занесение информации об участвующих конфигурациях
|
||||
target.saveConfigurationsAsJson(configurations);
|
||||
target.saveTasks(tasks, tasks_count);
|
||||
super.ServerAction();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,265 @@
|
||||
package Visual_DVM_2021.Passes.All;
|
||||
import Common.Constants;
|
||||
import Common.Current;
|
||||
import Common.Global;
|
||||
import Common.UI.UI;
|
||||
import Common.UI.VisualCache.ConfigurationCache;
|
||||
import Common.UI.VisualCache.VisualCaches;
|
||||
import Common.Utils.Index;
|
||||
import ProjectData.LanguageName;
|
||||
import TestingSystem.Common.Group.Group;
|
||||
import TestingSystem.Common.Test.Test;
|
||||
import TestingSystem.Common.TestingServer;
|
||||
import TestingSystem.SAPFOR.Json.SapforConfiguration_json;
|
||||
import TestingSystem.SAPFOR.Json.SapforTest_json;
|
||||
import TestingSystem.SAPFOR.Json.SapforTestingSet_json;
|
||||
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
|
||||
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand;
|
||||
import TestingSystem.SAPFOR.SapforPackage.SapforPackage;
|
||||
import TestingSystem.SAPFOR.SapforTask.SapforTask;
|
||||
import TestingSystem.SAPFOR.ServerSapfor.ServerSapforState;
|
||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||
import Visual_DVM_2021.Passes.Server.PublishServerObject;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Vector;
|
||||
public class StartSelectedSAPFORConfigurations extends PublishServerObject<TestingServer, SapforPackage> {
|
||||
Vector<SapforConfiguration> configurations;
|
||||
Vector<Group> groups;
|
||||
Vector<Test> tests;
|
||||
SapforTestingSet_json testingSet; //то, что добавляем.
|
||||
//--
|
||||
protected LinkedHashMap<String, Test> testsByDescriptions = null;
|
||||
protected Vector<String> testsNames_lower = null; //все тесты что участвуют здесь
|
||||
protected Vector<LanguageName> groupsLanguages = null;
|
||||
protected File sapfor = null;
|
||||
//--
|
||||
protected Vector<SapforTask> new_tasks = null;
|
||||
@Override
|
||||
public String getIconPath() {
|
||||
return "/icons/Start.png";
|
||||
}
|
||||
//--
|
||||
boolean checkTerminalCode(SapforConfiguration sapforConfiguration, PassCode_2021 code, int count, Vector<PassCode_2021> codes) {
|
||||
if (count > 2) {
|
||||
Log.Writeln_("Неверная конфигурация:" + sapforConfiguration.id + ": " +
|
||||
code.getDescription() +
|
||||
" возможно только один раз.");
|
||||
return false;
|
||||
}
|
||||
//--
|
||||
if ((count == 1) && codes.size() > 1) {
|
||||
if (!codes.lastElement().equals(code)) {
|
||||
Log.Writeln_("Неверная конфигурация:" + sapforConfiguration.id + ": " +
|
||||
code.getDescription() +
|
||||
" может быть только завершающей командой!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
boolean checkStartingCode(SapforConfiguration sapforConfiguration, PassCode_2021 code, int count, Vector<PassCode_2021> codes) {
|
||||
if (count > 2) {
|
||||
Log.Writeln_("Неверная конфигурация:" + sapforConfiguration.id + ": " +
|
||||
code.getDescription() +
|
||||
" возможно только один раз.");
|
||||
return false;
|
||||
}
|
||||
//--
|
||||
if ((count == 1) && codes.size() > 1) {
|
||||
if (!codes.firstElement().equals(code)) {
|
||||
Log.Writeln_("Неверная конфигурация:" + sapforConfiguration.id + ": " +
|
||||
code.getDescription() +
|
||||
" может быть только первой командой!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//--
|
||||
//--
|
||||
public boolean checkConfigurationCommands(SapforConfiguration sapforConfiguration) {
|
||||
//1. получить список всех команд.
|
||||
Vector<PassCode_2021> codes = new Vector<>();
|
||||
//-- счетчик завершающих команд.
|
||||
LinkedHashMap<PassCode_2021, Index> terminalCodesCount = new LinkedHashMap<>();
|
||||
for (PassCode_2021 code : Constants.terminalSapforTestingCodes)
|
||||
terminalCodesCount.put(code, new Index());
|
||||
//--
|
||||
LinkedHashMap<PassCode_2021, Index> startingCodesCount = new LinkedHashMap<>();
|
||||
for (PassCode_2021 code : Constants.startingSapforTestingCodes)
|
||||
startingCodesCount.put(code, new Index());
|
||||
//--
|
||||
for (SapforConfigurationCommand command : Global.testingServer.db.sapforConfigurationCommands.Data.values()) {
|
||||
if (command.sapforconfiguration_id == sapforConfiguration.id) {
|
||||
codes.add(command.passCode);
|
||||
//---
|
||||
for (PassCode_2021 t_code : Constants.terminalSapforTestingCodes) {
|
||||
if (command.passCode.equals(t_code))
|
||||
terminalCodesCount.get(t_code).Inc();
|
||||
}
|
||||
//---
|
||||
for (PassCode_2021 s_code : Constants.startingSapforTestingCodes) {
|
||||
if (command.passCode.equals(s_code))
|
||||
startingCodesCount.get(s_code).Inc();
|
||||
}
|
||||
}
|
||||
}
|
||||
//--
|
||||
if (codes.size() == 0) {
|
||||
Log.Writeln_("Пустая конфигурация:" + sapforConfiguration.id);
|
||||
return false;
|
||||
}
|
||||
for (PassCode_2021 t_code : Constants.terminalSapforTestingCodes) {
|
||||
if (!checkTerminalCode(sapforConfiguration, t_code,
|
||||
terminalCodesCount.get(t_code).getValue(), codes
|
||||
))
|
||||
return false;
|
||||
}
|
||||
//-
|
||||
for (PassCode_2021 s_code : Constants.startingSapforTestingCodes) {
|
||||
if (!checkStartingCode(sapforConfiguration, s_code,
|
||||
startingCodesCount.get(s_code).getValue(), codes
|
||||
))
|
||||
return false;
|
||||
}
|
||||
//--
|
||||
return true;
|
||||
}
|
||||
//--
|
||||
protected boolean checkTestName(Test test) {
|
||||
String name = test.description.toLowerCase();
|
||||
if (testsNames_lower.contains(name)) {
|
||||
Log.Writeln_("В пакет не могут входить тесты с одинаковыми именами (без учета регистра):" + test.description.toLowerCase());
|
||||
return false;
|
||||
}
|
||||
testsNames_lower.add(name);
|
||||
return true;
|
||||
}
|
||||
protected boolean checkTestsDescriptions(int groupId, Vector<Test> groupTests) {
|
||||
if (groupTests.isEmpty()) {
|
||||
Log.Writeln_("Пустая группа тестов: " + groupId);
|
||||
return false;
|
||||
}
|
||||
for (Test test : groupTests) {
|
||||
if (!checkTestName(test))
|
||||
return false;
|
||||
else
|
||||
testsByDescriptions.put(test.description, test);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//--
|
||||
public StartSelectedSAPFORConfigurations() {
|
||||
super(Global.testingServer, SapforPackage.class);
|
||||
}
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
//--
|
||||
groups = new Vector<>();
|
||||
tests = new Vector<>();
|
||||
//--
|
||||
testsNames_lower = new Vector<>();
|
||||
testsByDescriptions = new LinkedHashMap<>();
|
||||
groupsLanguages = new Vector<>();
|
||||
//--
|
||||
new_tasks= new Vector<>();
|
||||
//--
|
||||
if (!Current.getAccount().CheckRegistered(Log)) {
|
||||
return false;
|
||||
}
|
||||
if (!Current.Check(Log, Current.ServerSapfor)) {
|
||||
return false;
|
||||
}
|
||||
if (!Current.getServerSapfor().state.equals(ServerSapforState.Done)) {
|
||||
Log.Writeln_("Выбранная версия SAPFOR не собрана!");
|
||||
return false;
|
||||
}
|
||||
//--
|
||||
configurations = Global.testingServer.db.sapforConfigurations.getCheckedOrCurrent();
|
||||
if (configurations.isEmpty()) {
|
||||
Log.Writeln_("Не отмечено ни одной конфигурации, или отсутствует текущая конфигурация.");
|
||||
return false;
|
||||
}
|
||||
for (SapforConfiguration configuration : configurations) {
|
||||
if (!checkConfigurationCommands(configuration))
|
||||
return false;
|
||||
//-
|
||||
ConfigurationCache cache = (ConfigurationCache) VisualCaches.GetCache(configuration);
|
||||
//--
|
||||
groups = cache.getGroups();
|
||||
tests = cache.getTests();
|
||||
//--
|
||||
for (Group group : groups) {
|
||||
//-
|
||||
if (!groupsLanguages.contains(group.language))
|
||||
groupsLanguages.add(group.language);
|
||||
//-
|
||||
if (groupsLanguages.get(0) != LanguageName.fortran) {
|
||||
Log.Writeln_("Поддерживается пакетный режим только для языка Fortran!");
|
||||
return false;
|
||||
}
|
||||
if (groupsLanguages.size() > 1) {
|
||||
Log.Writeln_("Запуск тестов на разных языках в рамках одного пакета запрещен!");
|
||||
return false;
|
||||
}
|
||||
//---
|
||||
Vector<Test> groupTests = new Vector<>();
|
||||
for (Test test : tests) {
|
||||
if (test.group_id == group.id)
|
||||
groupTests.add(test);
|
||||
}
|
||||
//---
|
||||
if (!checkTestsDescriptions(group.id,groupTests))
|
||||
return false;
|
||||
//-
|
||||
}
|
||||
}
|
||||
target = new SapforPackage(Current.getAccount(), Current.getServerSapfor());
|
||||
//--
|
||||
testingSet = new SapforTestingSet_json();
|
||||
testingSet.id = target.package_json.getMaxSetId();
|
||||
for (Test test : testsByDescriptions.values()) {
|
||||
SapforTest_json test_json = new SapforTest_json();
|
||||
test_json.id = test.id;
|
||||
test_json.description = test.description;
|
||||
test_json.group_description = Global.testingServer.db.groups.get(test.group_id).description;
|
||||
testingSet.tests.add(test_json);
|
||||
}
|
||||
for (SapforConfiguration configuration : configurations) {
|
||||
//--
|
||||
SapforConfiguration_json configuration_json = new SapforConfiguration_json();
|
||||
configuration_json.id = configuration.id;
|
||||
configuration_json.name = configuration.description;
|
||||
configuration_json.flags = configuration.getFlags();
|
||||
Vector<PassCode_2021> codes = configuration.getPassCodes();
|
||||
//--- коррекцию кода нельзя вызвать если инклуды есть. в общем случае.
|
||||
if (!codes.firstElement().equals(PassCode_2021.SPF_InsertIncludesPass))
|
||||
configuration_json.codes.add(PassCode_2021.SPF_CorrectCodeStylePass); //всегда добавляется.
|
||||
//--
|
||||
configuration_json.codes.addAll(codes);
|
||||
//--->>
|
||||
testingSet.configurations.add(configuration_json);
|
||||
//-->>
|
||||
}
|
||||
new_tasks = target.getActualTestingSetTasks(testingSet);
|
||||
if (new_tasks.size() == 0) {
|
||||
Log.Writeln_("Не сформировано ни одной новой задачи.\n" +
|
||||
"Задачи уже присутствуют в пакете, или не отмечено ни одного теста.");
|
||||
return false;
|
||||
}
|
||||
if (UI.Question("Будет добавлено " + new_tasks.size() + " задач. Продолжить")){
|
||||
target.saveConfigurationsAsJson(configurations);
|
||||
target.package_json.testingSets.add(testingSet);
|
||||
for (SapforTask task : new_tasks) {
|
||||
task.id = target.package_json.getMaxTaskId();
|
||||
target.package_json.tasks.add(task);
|
||||
}
|
||||
target.tasksCount += new_tasks.size();
|
||||
return true;
|
||||
}
|
||||
//
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -298,7 +298,6 @@ public enum PassCode_2021 {
|
||||
ActualizeSapforPackages,
|
||||
ActualizePackages,
|
||||
//->
|
||||
AddDVMPackage,
|
||||
DeleteDVMPackage,
|
||||
AbortDVMPackage,
|
||||
//->
|
||||
@@ -346,13 +345,16 @@ public enum PassCode_2021 {
|
||||
StartSelectedDVMConfigurations,
|
||||
//--
|
||||
ShowCurrentSAPFORConfigurationTests,
|
||||
SaveCurrentSAPFORConfiguration
|
||||
SaveCurrentSAPFORConfiguration,
|
||||
StartSelectedSAPFORConfigurations,
|
||||
;
|
||||
//--
|
||||
public String getDescription() {
|
||||
switch (this) {
|
||||
case Undefined:
|
||||
return "?";
|
||||
case StartSelectedSAPFORConfigurations:
|
||||
return "Запустить отмеченные конфигурации тестирования системы SAPFOR";
|
||||
case SaveCurrentSAPFORConfiguration:
|
||||
return "Сохранить тесты текущей конфигурации системы SAPFOR";
|
||||
case ShowCurrentSAPFORConfigurationTests:
|
||||
@@ -436,8 +438,6 @@ public enum PassCode_2021 {
|
||||
return "Удалить пакет задач DVM";
|
||||
case DownloadDVMPackage:
|
||||
return "Скачать пакет задач DVM";
|
||||
case AddDVMPackage:
|
||||
return "Создать пустой пакет";
|
||||
case ActualizePackages:
|
||||
return "Обновить пакеты задач";
|
||||
case ActualizeDVMPackages:
|
||||
|
||||
Reference in New Issue
Block a user