diff --git a/src/Repository/Component/Sapfor/Sapfor.java b/src/Repository/Component/Sapfor/Sapfor.java index 43675701..d5c2eccc 100644 --- a/src/Repository/Component/Sapfor/Sapfor.java +++ b/src/Repository/Component/Sapfor/Sapfor.java @@ -600,4 +600,13 @@ public abstract class Sapfor extends OSDComponent { Constants.out_file, Constants.err_file); } + public static File temp_copy = null; + public static File getTempCopy() throws Exception { + if (temp_copy == null || !temp_copy.exists()) { + temp_copy = Utils.getTempFileName("SAPFOR" + (Global.isWindows ? ".exe" : "")); + FileUtils.copyFile(Current.getSapfor().getFile(), temp_copy); + temp_copy.setExecutable(true); + } + return temp_copy; + } } diff --git a/src/Visual_DVM_2021/Passes/All/CreateTestFromDirectory.java b/src/Visual_DVM_2021/Passes/All/CreateTestFromDirectory.java index a0446611..45cba819 100644 --- a/src/Visual_DVM_2021/Passes/All/CreateTestFromDirectory.java +++ b/src/Visual_DVM_2021/Passes/All/CreateTestFromDirectory.java @@ -11,7 +11,6 @@ import TestingSystem.Common.Group.Group; import TestingSystem.Common.Test.Test; import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.Pass_2021; -import org.apache.commons.io.FileUtils; import java.io.File; import java.util.Vector; @@ -134,21 +133,15 @@ public class CreateTestFromDirectory extends Pass_2021 { } @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("==================="); + ShowMessage1(dir.getName()); //-- db_project_info project = target.packCode(dir); //создание копии папки, и архивация. //-- получить размерность консольным сапфором. папка уже отправлена и чистить ее не нужно!! - File sapfor_copy = Utils.getTempFileName("SAPFOR"); - FileUtils.copyFile(Current.getSapfor().getFile(), sapfor_copy); ShowMessage2("Синтаксический анализ"); - if (Sapfor.parse(sapfor_copy, project.Home, Current.getSapfor().getConsoleFlags()) + if (Sapfor.parse(Sapfor.getTempCopy(), project.Home, Current.getSapfor().getConsoleFlags()) ) { ShowMessage2("Определение размерности"); - if (Sapfor.analysis(sapfor_copy, project.Home, + if (Sapfor.analysis(Sapfor.getTempCopy(), project.Home, PassCode_2021.SPF_GetMaxMinBlockDistribution, Current.getSapfor().getConsoleFlags())) { for (String line : Sapfor.outputLines) {