промежуточный. отладка проверки папки на бытность тестом.
This commit is contained in:
13
.idea/workspace.xml
generated
13
.idea/workspace.xml
generated
@@ -7,14 +7,15 @@
|
||||
</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/CreateTestFromFolder.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/PublishTests.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/TestingSystem/Common/Test/Test.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Test/Test.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/Test/TestDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Test/TestDBTable.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/Test/UI/TestFields.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Test/UI/TestFields.form" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/Test/UI/TestFields.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Test/UI/TestFields.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ConvertCorrectnessTests.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ConvertCorrectnessTests.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Common/UI/Menus_2023/TestsMenuBar/TestsMenuBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/Menus_2023/TestsMenuBar/TestsMenuBar.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Common/Utils/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Utils/Utils.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/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/PublishTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/PublishTest.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartTests.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartTests.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" />
|
||||
|
||||
@@ -5,8 +5,8 @@ public class TestsMenuBar extends DataMenuBar {
|
||||
public TestsMenuBar() {
|
||||
super("тесты",
|
||||
PassCode_2021.DownloadTest,
|
||||
PassCode_2021.PublishTest,
|
||||
// PassCode_2021.CreateTestFromDirectory,
|
||||
//PassCode_2021.PublishTest,
|
||||
PassCode_2021.CreateTestFromFolder,
|
||||
PassCode_2021.EditTest,
|
||||
PassCode_2021.DeleteTest);
|
||||
}
|
||||
|
||||
@@ -951,18 +951,18 @@ public class Utils {
|
||||
}
|
||||
protected static boolean isSource(File file) {
|
||||
if (file.isFile()) {
|
||||
String extension = getExtension(file);
|
||||
String extension = getExtension(file).toLowerCase();
|
||||
switch (extension) {
|
||||
case "f":
|
||||
case "fdv":
|
||||
case "for":
|
||||
case "f77":
|
||||
case "f90":
|
||||
case "fh":
|
||||
// case "fh":
|
||||
case "c":
|
||||
case "cdv":
|
||||
case "cpp":
|
||||
case "h":
|
||||
// case "h":
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -274,6 +274,9 @@ public abstract class RepositoryServer<D extends Database> {
|
||||
case PublishObject:
|
||||
PublishObject();
|
||||
break;
|
||||
case PublishObjects:
|
||||
PublishObjects();
|
||||
break;
|
||||
//</editor-fold>
|
||||
case EXIT:
|
||||
Print("ЗАВЕРШИТЬ РАБОТУ СЕРВЕРА");
|
||||
@@ -327,6 +330,16 @@ public abstract class RepositoryServer<D extends Database> {
|
||||
response.object = publishObject(dbObject);
|
||||
afterPublishAction(dbObject);
|
||||
}
|
||||
private void PublishObjects() throws Exception {
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
Vector<DBObject> objects = (Vector<DBObject>) request.object;
|
||||
for (DBObject dbObject: objects){
|
||||
beforePublishAction(dbObject);
|
||||
response.object = publishObject(dbObject);
|
||||
afterPublishAction(dbObject);
|
||||
}
|
||||
//ключи не возвращаем. пока не нужны.
|
||||
}
|
||||
protected Serializable publishObject(DBObject object) throws Exception {
|
||||
return (Serializable) db.InsertS(object).getPK();
|
||||
}
|
||||
|
||||
@@ -79,6 +79,7 @@ public enum ServerCode {
|
||||
PublishAccount,
|
||||
GetActualSapforPackageData,
|
||||
//--
|
||||
PublishObject
|
||||
PublishObject,
|
||||
PublishObjects
|
||||
// PublishTestProject
|
||||
}
|
||||
|
||||
117
src/Visual_DVM_2021/Passes/All/CreateTestFromFolder.java
Normal file
117
src/Visual_DVM_2021/Passes/All/CreateTestFromFolder.java
Normal file
@@ -0,0 +1,117 @@
|
||||
package Visual_DVM_2021.Passes.All;
|
||||
import Common.Constants;
|
||||
import Common.Current;
|
||||
import Common.Utils.Files.VDirectoryChooser;
|
||||
import Common.Utils.Utils;
|
||||
import ProjectData.Files.ProjectFile;
|
||||
import ProjectData.LanguageName;
|
||||
import TestingSystem.Common.Test.Test;
|
||||
import Visual_DVM_2021.Passes.Pass_2021;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Vector;
|
||||
public class CreateTestFromFolder extends Pass_2021<Test> {
|
||||
VDirectoryChooser directoryChooser = new VDirectoryChooser("Выбор домашней папки теста");
|
||||
@Override
|
||||
public String getIconPath() {
|
||||
return "/icons/OpenProject.png";
|
||||
}
|
||||
@Override
|
||||
public String getButtonText() {
|
||||
return "";
|
||||
}
|
||||
@Override
|
||||
protected boolean needsAnimation() {
|
||||
return true;
|
||||
}
|
||||
File dir = null;
|
||||
Vector<ProjectFile> project_files = new Vector<>();
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
if (args.length == 0) {
|
||||
if (!Current.Check(Log, Current.Group))
|
||||
return false;
|
||||
dir = directoryChooser.ShowDialog();
|
||||
} else {
|
||||
dir = (File) args[0];
|
||||
}
|
||||
if (dir ==null) {
|
||||
Log.Writeln_("Папка не выбрана.");
|
||||
return false;
|
||||
}
|
||||
//---
|
||||
File[] files = dir.listFiles();
|
||||
project_files = new Vector<>();
|
||||
int subdirs = 0;
|
||||
int bad = 0;
|
||||
int fortran_programs = 0;
|
||||
int headers = 0;
|
||||
int other_project_files = 0;
|
||||
//---
|
||||
if (dir.getName().equalsIgnoreCase(Constants.data)) {
|
||||
Log.Writeln_("Папка " + Utils.Brackets(dir) + " является служебной папкой визуализатора.");
|
||||
return false;
|
||||
}
|
||||
//--
|
||||
if (files == null) {
|
||||
Log.Writeln_("Не удалось получить список файлов для папки " + Utils.Brackets(dir) + ".");
|
||||
return false;
|
||||
}
|
||||
//--
|
||||
for (File file : files) {
|
||||
if (!Utils.validateProjectFile(file, Log)) {
|
||||
Log.Writeln_("Имя файла " + Utils.Brackets(file.getName())
|
||||
+ " содержит запрещённые символы " + Constants.all_forbidden_characters_string + ", или кириллицу."
|
||||
);
|
||||
bad++;
|
||||
}
|
||||
if (file.isDirectory() && !file.getName().equalsIgnoreCase(Constants.data)) {
|
||||
subdirs++;
|
||||
}
|
||||
if (file.isFile()) {
|
||||
ProjectFile projectFile = new ProjectFile(file);
|
||||
project_files.add(projectFile);
|
||||
switch (projectFile.fileType) {
|
||||
case program:
|
||||
if (projectFile.languageName.equals(LanguageName.fortran))
|
||||
fortran_programs++;
|
||||
else
|
||||
other_project_files++;
|
||||
break;
|
||||
case header:
|
||||
headers++;
|
||||
break;
|
||||
default:
|
||||
other_project_files++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//--
|
||||
if (subdirs > 0) {
|
||||
Log.Writeln_("Папка " + Utils.Brackets(dir) + " содержит вложенные подпапки.");
|
||||
return false;
|
||||
}
|
||||
if (bad > 0) {
|
||||
return false;
|
||||
}
|
||||
if (fortran_programs == 0) {
|
||||
Log.Writeln_("Папка не содержит ни одной программы на языке FORTRAN.");
|
||||
return false;
|
||||
}
|
||||
if (other_project_files > 0) {
|
||||
Log.Writeln_("Папка содержит файлы, не являющиеся программами на языке FORTRAN, или заголовочными.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
protected void body() throws Exception {
|
||||
System.out.println("found " + project_files.size());
|
||||
for (ProjectFile projectFile : project_files) {
|
||||
System.out.println(projectFile.file.getAbsolutePath());
|
||||
}
|
||||
System.out.println("===================");
|
||||
//--
|
||||
}
|
||||
}
|
||||
@@ -26,9 +26,7 @@ public class PublishTest extends PublishServerObject<TestingServer, Test> {
|
||||
}
|
||||
target.group_id = group_id;
|
||||
//подпапок нет. имена совпадают с относительными.
|
||||
Vector<String> filesNames = new Vector<>();
|
||||
for (String file: project.db.files.Data.keySet())
|
||||
filesNames.add(file);
|
||||
Vector<String> filesNames = new Vector<>(project.db.files.Data.keySet());
|
||||
target.files = String.join(";", filesNames);
|
||||
//--
|
||||
if (from_current_project) {
|
||||
|
||||
22
src/Visual_DVM_2021/Passes/All/PublishTests.java
Normal file
22
src/Visual_DVM_2021/Passes/All/PublishTests.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package Visual_DVM_2021.Passes.All;
|
||||
import Repository.Server.ServerCode;
|
||||
import Repository.Server.ServerExchangeUnit_2021;
|
||||
import TestingSystem.Common.Test.Test;
|
||||
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
|
||||
|
||||
import java.util.Vector;
|
||||
public class PublishTests extends TestingSystemPass<Vector<Test>> {
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
return target != null && !target.isEmpty();
|
||||
}
|
||||
@Override
|
||||
protected void ServerAction() throws Exception {
|
||||
Command(new ServerExchangeUnit_2021(ServerCode.PublishObjects, "", target));
|
||||
}
|
||||
@Override
|
||||
protected void performFinish() throws Exception {
|
||||
super.performFinish();
|
||||
passes.get(server.db.getSynchronizePassCode()).Do();
|
||||
}
|
||||
}
|
||||
@@ -299,12 +299,18 @@ public enum PassCode_2021 {
|
||||
//--
|
||||
CreateTestFromDirectory,
|
||||
CreateGroupFromDirectory,
|
||||
PublishTests,
|
||||
CreateTestFromFolder,
|
||||
//->
|
||||
TestPass;
|
||||
public String getDescription() {
|
||||
switch (this) {
|
||||
case Undefined:
|
||||
return "?";
|
||||
case CreateTestFromFolder:
|
||||
return "Создать тест из папки";
|
||||
case PublishTests:
|
||||
return "Опубликовать тесты";
|
||||
case SPF_RemoveOmpDirectives:
|
||||
return "Удаление Open MP директив";
|
||||
case CreateGroupFromDirectory:
|
||||
|
||||
Reference in New Issue
Block a user