промежуточный. отладка проверки папки на бытность тестом.
This commit is contained in:
13
.idea/workspace.xml
generated
13
.idea/workspace.xml
generated
@@ -7,14 +7,15 @@
|
|||||||
</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/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$/.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/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/TestingSystem/Common/Test/TestDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Test/TestDBTable.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/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/Repository/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/RepositoryServer.java" 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/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/ConvertCorrectnessTests.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ConvertCorrectnessTests.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/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>
|
</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" />
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ public class TestsMenuBar extends DataMenuBar {
|
|||||||
public TestsMenuBar() {
|
public TestsMenuBar() {
|
||||||
super("тесты",
|
super("тесты",
|
||||||
PassCode_2021.DownloadTest,
|
PassCode_2021.DownloadTest,
|
||||||
PassCode_2021.PublishTest,
|
//PassCode_2021.PublishTest,
|
||||||
// PassCode_2021.CreateTestFromDirectory,
|
PassCode_2021.CreateTestFromFolder,
|
||||||
PassCode_2021.EditTest,
|
PassCode_2021.EditTest,
|
||||||
PassCode_2021.DeleteTest);
|
PassCode_2021.DeleteTest);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -951,18 +951,18 @@ public class Utils {
|
|||||||
}
|
}
|
||||||
protected static boolean isSource(File file) {
|
protected static boolean isSource(File file) {
|
||||||
if (file.isFile()) {
|
if (file.isFile()) {
|
||||||
String extension = getExtension(file);
|
String extension = getExtension(file).toLowerCase();
|
||||||
switch (extension) {
|
switch (extension) {
|
||||||
case "f":
|
case "f":
|
||||||
case "fdv":
|
case "fdv":
|
||||||
case "for":
|
case "for":
|
||||||
case "f77":
|
case "f77":
|
||||||
case "f90":
|
case "f90":
|
||||||
case "fh":
|
// case "fh":
|
||||||
case "c":
|
case "c":
|
||||||
case "cdv":
|
case "cdv":
|
||||||
case "cpp":
|
case "cpp":
|
||||||
case "h":
|
// case "h":
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -274,6 +274,9 @@ public abstract class RepositoryServer<D extends Database> {
|
|||||||
case PublishObject:
|
case PublishObject:
|
||||||
PublishObject();
|
PublishObject();
|
||||||
break;
|
break;
|
||||||
|
case PublishObjects:
|
||||||
|
PublishObjects();
|
||||||
|
break;
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
case EXIT:
|
case EXIT:
|
||||||
Print("ЗАВЕРШИТЬ РАБОТУ СЕРВЕРА");
|
Print("ЗАВЕРШИТЬ РАБОТУ СЕРВЕРА");
|
||||||
@@ -327,6 +330,16 @@ public abstract class RepositoryServer<D extends Database> {
|
|||||||
response.object = publishObject(dbObject);
|
response.object = publishObject(dbObject);
|
||||||
afterPublishAction(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 {
|
protected Serializable publishObject(DBObject object) throws Exception {
|
||||||
return (Serializable) db.InsertS(object).getPK();
|
return (Serializable) db.InsertS(object).getPK();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ public enum ServerCode {
|
|||||||
PublishAccount,
|
PublishAccount,
|
||||||
GetActualSapforPackageData,
|
GetActualSapforPackageData,
|
||||||
//--
|
//--
|
||||||
PublishObject
|
PublishObject,
|
||||||
|
PublishObjects
|
||||||
// PublishTestProject
|
// 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;
|
target.group_id = group_id;
|
||||||
//подпапок нет. имена совпадают с относительными.
|
//подпапок нет. имена совпадают с относительными.
|
||||||
Vector<String> filesNames = new Vector<>();
|
Vector<String> filesNames = new Vector<>(project.db.files.Data.keySet());
|
||||||
for (String file: project.db.files.Data.keySet())
|
|
||||||
filesNames.add(file);
|
|
||||||
target.files = String.join(";", filesNames);
|
target.files = String.join(";", filesNames);
|
||||||
//--
|
//--
|
||||||
if (from_current_project) {
|
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,
|
CreateTestFromDirectory,
|
||||||
CreateGroupFromDirectory,
|
CreateGroupFromDirectory,
|
||||||
|
PublishTests,
|
||||||
|
CreateTestFromFolder,
|
||||||
//->
|
//->
|
||||||
TestPass;
|
TestPass;
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
switch (this) {
|
switch (this) {
|
||||||
case Undefined:
|
case Undefined:
|
||||||
return "?";
|
return "?";
|
||||||
|
case CreateTestFromFolder:
|
||||||
|
return "Создать тест из папки";
|
||||||
|
case PublishTests:
|
||||||
|
return "Опубликовать тесты";
|
||||||
case SPF_RemoveOmpDirectives:
|
case SPF_RemoveOmpDirectives:
|
||||||
return "Удаление Open MP директив";
|
return "Удаление Open MP директив";
|
||||||
case CreateGroupFromDirectory:
|
case CreateGroupFromDirectory:
|
||||||
|
|||||||
Reference in New Issue
Block a user