Массовое определение размерности тестов
This commit is contained in:
2025-02-13 01:43:23 +03:00
parent 90b6f3648e
commit 016e51dbe5
9 changed files with 85 additions and 22 deletions

8
.idea/workspace.xml generated
View File

@@ -7,9 +7,15 @@
</component>
<component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/DetectSelectedTestsMinMaDim.java" 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$/src/_VisualDVM/Passes/All/RefreshDVMPackageResults.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/RefreshDVMPackageResults.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Utils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Visualiser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Visualiser.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ServerCode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/Test/UI/TestsForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/Test/UI/TestsForm.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -32,7 +32,7 @@
"EmptyLinesOn": false,
"FortranWrapsOn": false,
"ExtensionsOn": false,
"ComparsionDiffMergeOn": false,
"ComparsionDiffMergeOn": true,
"ShowFullArraysDeclarations": false,
"ShowFullTabsNames": true,
"SmallScreen": false,

View File

@@ -0,0 +1,25 @@
package _VisualDVM.Passes.All;
import _VisualDVM.Global;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.Passes.Server.TestingServerPass;
import _VisualDVM.Repository.Server.ServerCode;
import _VisualDVM.TestingSystem.Common.Test.Test;
import java.util.Vector;
public class DetectSelectedTestsMinMaDim extends TestingServerPass<Vector<Object>> {
@Override
public String getIconPath() {
return "/icons/Arrays.png";
}
@Override
protected boolean canStart(Object... args) throws Exception {
if (!Global.testingServer.db.tests.getUI().CheckSelectedOrCurrent(Log))
return false;
target=Global.testingServer.db.tests.getUI().getSelectedOrCurrentKeys();
return SendRequest(ServerCode.DetectTestsMinMaxDim, "",target, 0);
}
@Override
protected void performDone() throws Exception {
Global.mainModule.getPass(PassCode.SynchronizeTests).Do();
}
}

View File

@@ -119,9 +119,4 @@ public class RefreshDVMPackageResults extends TestingServerPass<DVMPackage> {
);
Global.mainModule.getPass(PassCode.SynchronizeTests).Do();
}
@Override
protected void showFinish() throws Exception {
super.showFinish();
Global.testingServer.db.dvmPackages.getUI().SetCurrentByPK(target.id);
}
}

View File

@@ -356,11 +356,13 @@ public enum PassCode implements PassCode_ {
ResumeDVMPackage,
JoinSapforTestingVersionsToGroup,
RefreshDVMPackageResults,
;
DetectSelectedTestsMinMaDim;
//--
@Override
public String getDescription() {
switch (this) {
case DetectSelectedTestsMinMaDim:
return "Определить размерность тестов";
case RefreshDVMPackageResults:
return "Обновить результаты анализа пакета тестирования DVM";
case JoinSapforTestingVersionsToGroup:

View File

@@ -62,7 +62,7 @@ public class Visualiser extends Component {
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
@Override
public void GetVersionInfo() {
version = 1160;
version = 1161;
String pattern = "MMM dd yyyy HH:mm:ss";
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
date_text = df.format(getClassBuildTime());

View File

@@ -92,9 +92,11 @@ public enum ServerCode {
GetMaxSapforVersion,
PerformAutoSapforTesting,
JoinSapforVersionsToGroup,
TestCode, ReplaceDVMPackageResults;
TestCode, ReplaceDVMPackageResults, DetectTestsMinMaxDim;
public String getDescription(){
switch (this){
case DetectTestsMinMaxDim:
return "Определить размерность тестов на сервере";
case ReplaceDVMPackageResults:
return "Заменить json DVM пакета";
case JoinSapforVersionsToGroup:

View File

@@ -55,7 +55,7 @@ public class TestsForm extends DataSetControlForm<Test> {
return new DataMenuBar(dataSource.getPluralDescription()) {
{
addMenus(new AddTestMenu(), new EditTestMenu());
addPasses(PassCode.DownloadTest, PassCode.DeleteTest);
addPasses(PassCode.DetectSelectedTestsMinMaDim,PassCode.DownloadTest, PassCode.DeleteTest);
}
};
}

View File

@@ -381,6 +381,10 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Print("Заменить json DVM пакета");
ReplaceDVMPackageJson();
break;
case DetectTestsMinMaxDim:
Print("Определить размерность тестов");
DetectTestsMinMaxDim();
break;
default:
throw new RepositoryRefuseException("Неподдерживаемый код: " + code);
}
@@ -805,7 +809,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
task.test_description,
versionProject.getName()
);
versions.put(String.join("_", name_parts),versionProject);
versions.put(String.join("_", name_parts), versionProject);
paths.add(versionProject.getAbsolutePath());
}
}
@@ -814,11 +818,11 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Vector<Test> tests = new Vector<>();
for (String description : versions.keySet()) {
File src = versions.get(description);
File [] files = src.listFiles(pathname -> !pathname.isDirectory());
if (files!=null && files.length>0){
File[] files = src.listFiles(pathname -> !pathname.isDirectory());
if (files != null && files.length > 0) {
//--
Vector<String> filesNames = new Vector<>();
for (File file: files)
for (File file : files)
filesNames.add(file.getName());
//--
Test test = new Test();
@@ -848,9 +852,9 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
}
//определение размерности тестов
ServerSapfor serverSapfor = db.serverSapfors.getLastDoneVersion();
if (serverSapfor!=null){
if (serverSapfor != null) {
File sapfor_copy = Sapfor.getTempCopy(new File(serverSapfor.call_command));
for (Test test: tests){
for (Test test : tests) {
try {
Sapfor.getMinMaxDim(sapfor_copy, test.getServerPath(), test);
db.Update(test);
@@ -859,26 +863,55 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
);
File visualiser_data = new File(test.getServerPath(), Constants.data);
FileUtils.forceDelete(visualiser_data);
}
catch (Exception ex){
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
//-"sh"
}
private void ReplaceDVMPackageJson() throws Exception{
response= new ServerExchangeUnit_2021(ServerCode.OK);
private void ReplaceDVMPackageJson() throws Exception {
response = new ServerExchangeUnit_2021(ServerCode.OK);
Pair<DVMPackage, byte[]> p = (Pair<DVMPackage, byte[]>) request.object;
DVMPackage src = p.getKey();
byte[] packed_file = p.getValue();
//todo написать стандартное исключение на несуществование объекта с ключом
if (!db.dvmPackages.containsKey(src.id))
throw new RepositoryRefuseException("не существует пакета с ключом "+src.id);
throw new RepositoryRefuseException("не существует пакета с ключом " + src.id);
DVMPackage dst = db.dvmPackages.get(src.id);
dst.SynchronizeFields(src);
db.Update(dst);
Utils_.bytesToFile(packed_file, dst.getJsonFile());
}
private void DetectTestsMinMaxDim() throws Exception {
response = new ServerExchangeUnit_2021(ServerCode.OK);
Vector<Object> keys = (Vector<Object>) request.object;
for (Object key : keys) {
if (!db.tests.containsKey(key))
throw new RepositoryRefuseException("не существует пакета с ключом " + key);
}
//определение размерности тестов
ServerSapfor serverSapfor = db.serverSapfors.getLastDoneVersion();
if (serverSapfor != null) {
File sapfor_copy = Sapfor.getTempCopy(new File(serverSapfor.call_command));
for (Object key : keys) {
Test test = db.tests.get(key);
Group group = db.groups.get(test.group_id);
if (group.language.equals(LanguageName.fortran)) {
try {
Sapfor.getMinMaxDim(sapfor_copy, test.getServerPath(), test);
db.Update(test);
Utils.deleteFilesByExtensions(test.getServerPath(),
"proj", "dep", "jar"
);
File visualiser_data = new File(test.getServerPath(), Constants.data);
FileUtils.forceDelete(visualiser_data);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}
}
}