отслеживание нанов в тестах
This commit is contained in:
2025-03-18 15:28:00 +03:00
parent 21a41987b4
commit afaaaba1e7
11 changed files with 65 additions and 68 deletions

19
.idea/workspace.xml generated
View File

@@ -7,20 +7,17 @@
</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/_VisualDVM/Passes/All/DeleteRemoteWorkspace.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$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" /> <change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/ComponentsServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/ComponentsServer.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/SubscriberWorkspace/UI/SubscriberWorkspacesForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/SubscriberWorkspace/UI/SubscriberWorkspacesForm.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Compiler/UI/CompilerDialog.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Compiler/UI/CompilerDialog.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Tasks/TaskState.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Tasks/TaskState.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Compiler/UI/CompilerFields.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Compiler/UI/CompilerFields.form" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/TestPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/TestPass.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Machine/UI/MachineDialog.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Machine/UI/MachineDialog.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/GlobalData/Machine/UI/MachineFields.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Machine/UI/MachineFields.form" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/RepositoryServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/User/UI/UserDialog.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/User/UI/UserDialog.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMPackage/DVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMPackage/DVMPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/User/UI/UserFields.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/User/UI/UserFields.form" 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/GlobalData/User/UI/UserFields.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/User/UI/UserFields.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/InitialiseUser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/InitialiseUser.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishRemoteWorkspace.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishRemoteWorkspace.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" />
</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" />

View File

@@ -4,7 +4,7 @@
"ServerUserPassword": "mprit_2011", "ServerUserPassword": "mprit_2011",
"OfferRegistrationOnStart": true, "OfferRegistrationOnStart": true,
"Workspace": "E:\\Tests", "Workspace": "E:\\Tests",
"ProjectsSearchDirectory": "E:\\BUG", "ProjectsSearchDirectory": "E:\\Tests\\Downloads",
"DocumentsDirectory": "C:\\Users\\misha\\Documents\\_testing_system", "DocumentsDirectory": "C:\\Users\\misha\\Documents\\_testing_system",
"VisualiserPath": "C:\\Users\\misha\\Downloads", "VisualiserPath": "C:\\Users\\misha\\Downloads",
"Sapfor_FPath": "E:\\_sapfor_x64\\Components\\Sapfor_F", "Sapfor_FPath": "E:\\_sapfor_x64\\Components\\Sapfor_F",
@@ -33,8 +33,8 @@
"CreateEthalonTasks": true, "CreateEthalonTasks": true,
"ErasePackageWorkspace": true, "ErasePackageWorkspace": true,
"lastMachineId": 1, "lastMachineId": 1,
"lastUserId": 40, "lastUserId": 17,
"lastCompilerId": -1, "lastCompilerId": 15,
"RegisterOn": false, "RegisterOn": false,
"SpacesOn": false, "SpacesOn": false,
"EmptyLinesOn": false, "EmptyLinesOn": false,

View File

@@ -6,6 +6,7 @@ import Common.Visual.Tables.ColumnInfo;
import _VisualDVM.ComponentsServer.SubscriberWorkspace.SubscriberWorkspace; import _VisualDVM.ComponentsServer.SubscriberWorkspace.SubscriberWorkspace;
import _VisualDVM.ComponentsServer.UserAccount.UserAccount; import _VisualDVM.ComponentsServer.UserAccount.UserAccount;
import _VisualDVM.Global; import _VisualDVM.Global;
import _VisualDVM.Passes.PassCode;
import javax.swing.*; import javax.swing.*;
public class SubscriberWorkspacesForm extends DataSetControlForm<SubscriberWorkspace> { public class SubscriberWorkspacesForm extends DataSetControlForm<SubscriberWorkspace> {
@@ -45,7 +46,7 @@ public class SubscriberWorkspacesForm extends DataSetControlForm<SubscriberWorks
} }
@Override @Override
public DataMenuBar createMenuBar() { public DataMenuBar createMenuBar() {
return new DataMenuBar(dataSource.getPluralDescription()); return new DataMenuBar(dataSource.getPluralDescription(), PassCode.DeleteRemoteWorkspace);
} }
@Override @Override
public boolean isObjectVisible(SubscriberWorkspace object) { public boolean isObjectVisible(SubscriberWorkspace object) {

View File

@@ -3,7 +3,7 @@ import Common.Utils.Vector_;
import java.util.Vector; import java.util.Vector;
public class Constants { public class Constants {
public static final int version = 1216; public static final int version = 1217;
public static final int planner_version = 24; public static final int planner_version = 24;
public static final int testingMaxKernels = 64; public static final int testingMaxKernels = 64;
//-- //--

View File

@@ -14,11 +14,12 @@ public enum TaskState implements StatusEnum {
//----------------------- //-----------------------
Finished, Finished,
//--- результирующие //--- результирующие
Crushed,
NaN,
DoneWithErrors, DoneWithErrors,
DoneWithDiffs, DoneWithDiffs,
AbortedByTimeout, AbortedByTimeout,
AbortedByUser, AbortedByUser,
Crushed,
WrongTestFormat, WrongTestFormat,
InternalError, InternalError,
Done, Done,
@@ -40,6 +41,7 @@ public enum TaskState implements StatusEnum {
case InternalError: case InternalError:
case Crushed: case Crushed:
case DoneWithDiffs: case DoneWithDiffs:
case NaN:
return true; return true;
default: default:
return false; return false;
@@ -47,6 +49,8 @@ public enum TaskState implements StatusEnum {
} }
public String getDescription() { public String getDescription() {
switch (this) { switch (this) {
case NaN:
return "NaN";
case Waiting: case Waiting:
return "ожидание"; return "ожидание";
case WorkspaceCreated: case WorkspaceCreated:
@@ -104,6 +108,7 @@ public enum TaskState implements StatusEnum {
case InternalError: case InternalError:
case Canceled: case Canceled:
case DoneWithDiffs: case DoneWithDiffs:
case NaN:
return VisualiserFonts.BadState; return VisualiserFonts.BadState;
case Queued: case Queued:
case Running: case Running:
@@ -149,6 +154,7 @@ public enum TaskState implements StatusEnum {
case Crushed: case Crushed:
case InternalError: case InternalError:
case Canceled: case Canceled:
case NaN:
return true; return true;
default: default:
return false; return false;

View File

@@ -0,0 +1,21 @@
package _VisualDVM.Passes.All;
import _VisualDVM.ComponentsServer.SubscriberWorkspace.SubscriberWorkspace;
import _VisualDVM.Global;
import _VisualDVM.Passes.Server.ComponentsServerPass;
import _VisualDVM.Repository.Server.ServerCode;
import javafx.util.Pair;
public class DeleteRemoteWorkspace extends ComponentsServerPass<SubscriberWorkspace> {
@Override
public String getIconPath() {
return "/Common/icons/Delete.png";
}
@Override
protected boolean canStart(Object... args) throws Exception {
if (Global.componentsServer.credentials_db.workspaces.getUI().CheckCurrent(Log)) {
target = Global.componentsServer.credentials_db.workspaces.getUI().getCurrent();
return SendRequest(ServerCode.DeleteSubscriberWorkspace, "",
new Pair<>(target.getClass(), target.getPK()));
}
return false;
}
}

View File

@@ -1,5 +1,6 @@
package _VisualDVM.Passes.All; package _VisualDVM.Passes.All;
import Common.Passes.Pass; import Common.Passes.Pass;
import _VisualDVM.Utils;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;
@@ -38,46 +39,5 @@ public class TestPass extends Pass {
} }
@Override @Override
protected void body() throws Exception { protected void body() throws Exception {
int a = 1 / 0;
// System.out.println(Global.componentsServer.credentials_db.userAccounts.getPackedActiveRecipients());
// String cpuId = getMotherboardSN();
// UI.Info(cpuId);
/*
SystemInfo systemInfo = new SystemInfo();
HardwareAbstractionLayer hardware = systemInfo.getHardware();
CentralProcessor processor = hardware.getProcessor();
CentralProcessor.ProcessorIdentifier processorIdentifier = processor.getProcessorIdentifier();
System.out.println("Processor Vendor: " + processorIdentifier.getVendor());
System.out.println("Processor Name: " + processorIdentifier.getName());
System.out.println("Processor ID: " + processorIdentifier.getProcessorID());
System.out.println("Identifier: " + processorIdentifier.getIdentifier());
System.out.println("Microarchitecture: " + processorIdentifier.getMicroarchitecture());
System.out.println("Frequency (Hz): " + processorIdentifier.getVendorFreq());
System.out.println("Frequency (GHz): " + processorIdentifier.getVendorFreq() / 1000000000.0);
*/
/*
String serial = "";
Scanner sc = null;
Process process = null;
try {
process = Runtime.getRuntime().exec(new String[] { "wmic", "cpu", "get", "ProcessorId" });
process.getOutputStream().close();
sc = new Scanner(process.getInputStream());
sc.next();
serial = sc.next();
} catch (IOException e) {
} dummy
UI.Info(Utils_.Brackets(serial));
*/
/*
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
SecureRandom secureRandom = new SecureRandom();
int keyBitSize = 256;
keyGenerator.init(keyBitSize, secureRandom);
SecretKey secretKey = keyGenerator.generateKey();
System.out.println("====");
System.out.println(secretKey.getEncoded());
System.out.println("====");
*/
} }
} }

View File

@@ -249,6 +249,7 @@ public enum PassCode implements PassCode_ {
//-> //->
CheckRemoteWorkspace, CheckRemoteWorkspace,
PublishRemoteWorkspace, PublishRemoteWorkspace,
DeleteRemoteWorkspace,
//-> //->
PrepareForModulesAssembly, PrepareForModulesAssembly,
//-> //->
@@ -362,6 +363,8 @@ public enum PassCode implements PassCode_ {
@Override @Override
public String getDescription() { public String getDescription() {
switch (this) { switch (this) {
case DeleteRemoteWorkspace:
return "Удалить рабочее пространство пользователя";
case CompareDVMRunTaskToEthalon: case CompareDVMRunTaskToEthalon:
return "Сравнить с эталоном"; return "Сравнить с эталоном";
case ComponentsServerBackUp: case ComponentsServerBackUp:

View File

@@ -227,6 +227,9 @@ public abstract class RepositoryServer<D extends Database> {
case ReceiveFile: case ReceiveFile:
ReceiveFile(); ReceiveFile();
break; break;
case Email:
Email();
break;
default: default:
UnsafeSession(); UnsafeSession();
break; break;

View File

@@ -150,12 +150,10 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
if (ethalon == null) { if (ethalon == null) {
String options_ = "-s"; String options_ = "-s";
String environments_ = ""; String environments_ = "";
if (Global.normalProperties.CompleteCompilationOptions) if (Global.normalProperties.CompleteCompilationOptions)
options_ = completeOptions(options_); options_ = completeOptions(options_);
if (Global.normalProperties.CompleteRunEnvironments) if (Global.normalProperties.CompleteRunEnvironments)
environments_ = completeEnvironments(environments_); environments_ = completeEnvironments(environments_);
compilationTasks.add(compilationTask = new DVMCompilationTask( compilationTasks.add(compilationTask = new DVMCompilationTask(
index, configuration, index, configuration,
options_, options_,
@@ -305,23 +303,21 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
List<String> output_lines = Arrays.asList(output.split("\n")); List<String> output_lines = Arrays.asList(output.split("\n"));
List<String> errors_lines = Arrays.asList(errors.split("\n")); List<String> errors_lines = Arrays.asList(errors.split("\n"));
//--- //---
if (output.trim().isEmpty()) { if (output.trim().isEmpty() || Utils.isCrushed(output_lines, errors_lines)) {
runTask.state = TaskState.Crushed;
} else {
if (Utils.isCrushed(output_lines, errors_lines)) {
runTask.state = TaskState.Crushed; runTask.state = TaskState.Crushed;
} else { } else {
if (Utils.hasNan(output_lines))
runTask.state = TaskState.NaN;
else {
//-- //--
Pair<TaskState, Integer> results = new Pair<>(TaskState.Done, 100); Pair<TaskState, Integer> results = new Pair<>(TaskState.Done, 100);
switch (runTask.test_type) { switch (runTask.test_type) {
case Correctness:
results = Utils.analyzeCorrectness(output_lines);
break;
case Performance: case Performance:
results = Utils.analyzePerformance(output_lines); results = Utils.analyzePerformance(output_lines);
runTask.CleanTime = Utils.parseCleanTime(output); runTask.CleanTime = Utils.parseCleanTime(output);
break; break;
default: default:
results = Utils.analyzeCorrectness(output_lines);
break; break;
} }
//--- //---

View File

@@ -490,6 +490,16 @@ public class Utils {
public static boolean isCrushed(List<String> output_lines, List<String> errors_lines) { public static boolean isCrushed(List<String> output_lines, List<String> errors_lines) {
return output_lines.stream().anyMatch(Utils::isCrushedLine) || errors_lines.stream().anyMatch(Utils::isCrushedLine); return output_lines.stream().anyMatch(Utils::isCrushedLine) || errors_lines.stream().anyMatch(Utils::isCrushedLine);
} }
public static boolean hasNan(List<String> output_lines){
for (String line: output_lines)
if (hasNan(line)) return true;
return false;
}
public static boolean hasNan(String line){
Pattern pattern = Pattern.compile("\\bnan\\b");
Matcher matcher = pattern.matcher(line.toLowerCase());
return matcher.find();
}
public static Pair<TaskState, Integer> analyzeCorrectness(List<String> lines) { public static Pair<TaskState, Integer> analyzeCorrectness(List<String> lines) {
int complete = 0; int complete = 0;
int errors = 0; int errors = 0;