отслеживание нанов в тестах
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 name="ChangeListManager">
<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$/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/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/Compiler/UI/CompilerFields.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Compiler/UI/CompilerFields.form" 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/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/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/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/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" />
<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/Passes/All/TestPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/TestPass.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/Server/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/RepositoryServer.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/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Utils.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

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

View File

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

View File

@@ -3,7 +3,7 @@ import Common.Utils.Vector_;
import java.util.Vector;
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 testingMaxKernels = 64;
//--

View File

@@ -14,11 +14,12 @@ public enum TaskState implements StatusEnum {
//-----------------------
Finished,
//--- результирующие
Crushed,
NaN,
DoneWithErrors,
DoneWithDiffs,
AbortedByTimeout,
AbortedByUser,
Crushed,
WrongTestFormat,
InternalError,
Done,
@@ -40,6 +41,7 @@ public enum TaskState implements StatusEnum {
case InternalError:
case Crushed:
case DoneWithDiffs:
case NaN:
return true;
default:
return false;
@@ -47,6 +49,8 @@ public enum TaskState implements StatusEnum {
}
public String getDescription() {
switch (this) {
case NaN:
return "NaN";
case Waiting:
return "ожидание";
case WorkspaceCreated:
@@ -104,6 +108,7 @@ public enum TaskState implements StatusEnum {
case InternalError:
case Canceled:
case DoneWithDiffs:
case NaN:
return VisualiserFonts.BadState;
case Queued:
case Running:
@@ -149,6 +154,7 @@ public enum TaskState implements StatusEnum {
case Crushed:
case InternalError:
case Canceled:
case NaN:
return true;
default:
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;
import Common.Passes.Pass;
import _VisualDVM.Utils;
import java.io.BufferedReader;
import java.io.File;
@@ -38,46 +39,5 @@ public class TestPass extends Pass {
}
@Override
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,
PublishRemoteWorkspace,
DeleteRemoteWorkspace,
//->
PrepareForModulesAssembly,
//->
@@ -362,6 +363,8 @@ public enum PassCode implements PassCode_ {
@Override
public String getDescription() {
switch (this) {
case DeleteRemoteWorkspace:
return "Удалить рабочее пространство пользователя";
case CompareDVMRunTaskToEthalon:
return "Сравнить с эталоном";
case ComponentsServerBackUp:

View File

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

View File

@@ -150,12 +150,10 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
if (ethalon == null) {
String options_ = "-s";
String environments_ = "";
if (Global.normalProperties.CompleteCompilationOptions)
options_ = completeOptions(options_);
if (Global.normalProperties.CompleteRunEnvironments)
environments_ = completeEnvironments(environments_);
compilationTasks.add(compilationTask = new DVMCompilationTask(
index, configuration,
options_,
@@ -305,23 +303,21 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
List<String> output_lines = Arrays.asList(output.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;
} else {
if (Utils.hasNan(output_lines))
runTask.state = TaskState.NaN;
else {
//--
Pair<TaskState, Integer> results = new Pair<>(TaskState.Done, 100);
switch (runTask.test_type) {
case Correctness:
results = Utils.analyzeCorrectness(output_lines);
break;
case Performance:
results = Utils.analyzePerformance(output_lines);
runTask.CleanTime = Utils.parseCleanTime(output);
break;
default:
results = Utils.analyzeCorrectness(output_lines);
break;
}
//---
@@ -363,7 +359,7 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
);
String taskOut = FileUtils.readFileToString(taskOutFile);
String ethalonOut = FileUtils.readFileToString(ethalonOutFile);
if (!taskOut.equals(ethalonOut)){
if (!taskOut.equals(ethalonOut)) {
runTask.state = TaskState.DoneWithDiffs;
hasErrors = true;
good--;

View File

@@ -490,6 +490,16 @@ public class Utils {
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);
}
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) {
int complete = 0;
int errors = 0;