эталоны
работают только для тестов на корректность,и если задана соответствующая настройка( с последним можно подумать и искать их самостоятельно, если они есть)
This commit is contained in:
6
.idea/workspace.xml
generated
6
.idea/workspace.xml
generated
@@ -8,11 +8,11 @@
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||
<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/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/RefreshDVMPackageResults.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/RefreshDVMPackageResults.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/TestingSystem/DVM/DVMTestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMTestingPlanner.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/RemoteDVMTestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/RemoteDVMTestingPlanner.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMTasks/UI/DVMRunTasksForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMTasks/UI/DVMRunTasksForm.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" />
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
"EmailOnTestingProgress": true,
|
||||
"CompleteCompilationOptions": false,
|
||||
"CompleteRunEnvironments": false,
|
||||
"CreateEthalonTasks": false,
|
||||
"CreateEthalonTasks": true,
|
||||
"ErasePackageWorkspace": true,
|
||||
"lastMachineId": 28,
|
||||
"lastUserId": 36,
|
||||
|
||||
@@ -3,7 +3,7 @@ import Common.Utils.Vector_;
|
||||
|
||||
import java.util.Vector;
|
||||
public class Constants {
|
||||
public static final int version = 1211;
|
||||
public static final int version = 1212;
|
||||
public static final int planner_version = 24;
|
||||
public static final int testingMaxKernels = 64;
|
||||
//--
|
||||
|
||||
@@ -66,7 +66,7 @@ public enum TaskState implements StatusEnum {
|
||||
case Done:
|
||||
return "успешно";
|
||||
case DoneWithDiffs:
|
||||
return "различия с эталоном";
|
||||
return "различия";
|
||||
case DoneWithErrors:
|
||||
return "с ошибками";
|
||||
case Crushed:
|
||||
@@ -103,6 +103,7 @@ public enum TaskState implements StatusEnum {
|
||||
case WrongTestFormat:
|
||||
case InternalError:
|
||||
case Canceled:
|
||||
case DoneWithDiffs:
|
||||
return VisualiserFonts.BadState;
|
||||
case Queued:
|
||||
case Running:
|
||||
@@ -112,7 +113,6 @@ public enum TaskState implements StatusEnum {
|
||||
case Crushed:
|
||||
return VisualiserFonts.Fatal;
|
||||
case Finished:
|
||||
case DoneWithDiffs:
|
||||
return VisualiserFonts.BlueState;
|
||||
case WorkspaceReady:
|
||||
return VisualiserFonts.ReadyState;
|
||||
|
||||
@@ -24,7 +24,6 @@ import _VisualDVM.TestingSystem.DVM.DVMSettings.DVMSettings;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMTasks.DVMCompilationTask;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMTasks.DVMRunTask;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMTasks.DVMTask;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.SapforTask.SapforTask;
|
||||
import _VisualDVM.Utils;
|
||||
import com.sun.org.glassfish.gmbal.Description;
|
||||
import javafx.util.Pair;
|
||||
@@ -149,7 +148,7 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
||||
if (Global.normalProperties.CreateEthalonTasks && group.type.equals(TestType.Correctness)) {
|
||||
if (ethalon == null) {
|
||||
compilationTasks.add(compilationTask = new DVMCompilationTask(index, configuration, "-s", group, test));
|
||||
compilationTask.runTasks.add(ethalon= new DVMRunTask(
|
||||
compilationTask.runTasks.add(ethalon = new DVMRunTask(
|
||||
index,
|
||||
compilationTask,
|
||||
configuration,
|
||||
@@ -160,10 +159,10 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
||||
"",
|
||||
"-s", "",
|
||||
kernels));
|
||||
tasksCount ++;
|
||||
tasksCount++;
|
||||
}
|
||||
//--
|
||||
for (DVMRunTask dvmRunTask: testRunTasks) {
|
||||
for (DVMRunTask dvmRunTask : testRunTasks) {
|
||||
dvmRunTask.ethalon_id = ethalon.id;
|
||||
}
|
||||
}
|
||||
@@ -229,7 +228,7 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
||||
for (DVMTask task : tasks)
|
||||
sorted_tasks.put(task.id, task);
|
||||
//--
|
||||
File info_file = Utils_.getFile(packageLocalWorkspace.getAbsolutePath(),"results", file_name);
|
||||
File info_file = Utils_.getFile(packageLocalWorkspace.getAbsolutePath(), "results", file_name);
|
||||
List<String> lines = FileUtils.readLines(info_file, Charset.defaultCharset());
|
||||
for (String packed : lines) {
|
||||
if (!packed.isEmpty()) {
|
||||
@@ -253,13 +252,16 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
||||
for (DVMCompilationTask compilationTask : package_json.compilationTasks)
|
||||
runTasks.addAll(compilationTask.runTasks);
|
||||
//----
|
||||
getTasksInfo(packageLocalWorkspace,package_json.compilationTasks, "CompilationInfo.txt");
|
||||
getTasksInfo(packageLocalWorkspace,runTasks, "RunningInfo.txt");
|
||||
getTasksInfo(packageLocalWorkspace, package_json.compilationTasks, "CompilationInfo.txt");
|
||||
getTasksInfo(packageLocalWorkspace, runTasks, "RunningInfo.txt");
|
||||
//--
|
||||
int ct_count = 0;
|
||||
int rt_count = 0;
|
||||
int good = 0;
|
||||
//--
|
||||
LinkedHashMap<Integer, DVMRunTask> sortedRunTasks = new LinkedHashMap<>();
|
||||
Vector<Integer> rte_ids = new Vector<>(); //id задач у которых есть эталон.
|
||||
//-
|
||||
for (DVMCompilationTask compilationTask : package_json.compilationTasks) {
|
||||
compilationTask.dvm_package_id = id;
|
||||
if (!compilationTask.state.equals(TaskState.Done))
|
||||
@@ -267,7 +269,10 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
||||
ct_count++;
|
||||
File ct_workspace = Paths.get(packageLocalWorkspace.getAbsolutePath(), "results", String.valueOf(compilationTask.id)).toFile();
|
||||
if (ct_workspace.exists()) {
|
||||
//1 проход. анализ всех задач подряд
|
||||
for (DVMRunTask runTask : compilationTask.runTasks) {
|
||||
sortedRunTasks.put(runTask.id, runTask);
|
||||
//--
|
||||
runTask.dvm_package_id = id;
|
||||
rt_count++;
|
||||
runTask.compilation_state = compilationTask.state;
|
||||
@@ -294,6 +299,7 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
||||
if (Utils.isCrushed(output_lines, errors_lines)) {
|
||||
runTask.state = TaskState.Crushed;
|
||||
} else {
|
||||
//--
|
||||
Pair<TaskState, Integer> results = new Pair<>(TaskState.Done, 100);
|
||||
switch (runTask.test_type) {
|
||||
case Correctness:
|
||||
@@ -301,23 +307,58 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
||||
break;
|
||||
case Performance:
|
||||
results = Utils.analyzePerformance(output_lines);
|
||||
runTask.CleanTime = Utils.parseCleanTime(output);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
//---
|
||||
runTask.state = results.getKey();
|
||||
runTask.progress = results.getValue();
|
||||
runTask.CleanTime = Utils.parseCleanTime(output);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!runTask.state.equals(TaskState.Done))
|
||||
if (runTask.state.equals(TaskState.Done)) {
|
||||
good++;
|
||||
if (runTask.ethalon_id != CommonConstants.Nan) rte_ids.add(runTask.id);
|
||||
//с эталоном сверяем только если задача выполнена
|
||||
} else {
|
||||
hasErrors = true;
|
||||
else good++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//-
|
||||
//2 проход. если у успешных задач есть эталоны.
|
||||
for (int task_id : rte_ids) {
|
||||
DVMRunTask runTask = sortedRunTasks.get(task_id);
|
||||
DVMRunTask ethalon = sortedRunTasks.get(runTask.ethalon_id);
|
||||
if (ethalon.state.equals(TaskState.Done)) {
|
||||
//проверяем только если эталон выполнен.
|
||||
//--------------------------------------
|
||||
File taskOutFile = Utils_.getFile(
|
||||
packageLocalWorkspace.getAbsolutePath(),
|
||||
"results",
|
||||
String.valueOf(runTask.id),
|
||||
Constants.out_file
|
||||
);
|
||||
File ethalonOutFile = Utils_.getFile(
|
||||
packageLocalWorkspace.getAbsolutePath(),
|
||||
"results",
|
||||
String.valueOf(ethalon.id),
|
||||
Constants.out_file
|
||||
);
|
||||
String taskOut = FileUtils.readFileToString(taskOutFile);
|
||||
String ethalonOut = FileUtils.readFileToString(ethalonOutFile);
|
||||
if (!taskOut.equals(ethalonOut)){
|
||||
runTask.state = TaskState.DoneWithDiffs;
|
||||
hasErrors = true;
|
||||
good--;
|
||||
}
|
||||
}
|
||||
}
|
||||
//-
|
||||
progress = 100;
|
||||
doneTasksCount = good;
|
||||
saveJson(); //запись обновленных результатов пакета в json!
|
||||
|
||||
@@ -63,6 +63,14 @@ public class DVMRunTasksForm extends DataSetControlForm<DVMRunTask> {
|
||||
return RendererStatusEnum.class;
|
||||
}
|
||||
},
|
||||
/*
|
||||
new ColumnInfo<DVMRunTask>("эталон") {
|
||||
@Override
|
||||
public Object getFieldAt(DVMRunTask object) {
|
||||
return object.ethalon_id;
|
||||
}
|
||||
},
|
||||
*/
|
||||
new ColumnInfo<DVMRunTask>("Матрица") {
|
||||
@Override
|
||||
public Object getFieldAt(DVMRunTask object) {
|
||||
|
||||
@@ -511,9 +511,6 @@ public class Utils {
|
||||
}
|
||||
}
|
||||
TaskState state = TaskState.Finished;
|
||||
// if (starts == 0 || ends == 0) {
|
||||
// state = TaskState.WrongTestFormat;
|
||||
// } else
|
||||
if (errors > 0) {
|
||||
state = TaskState.DoneWithErrors;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user