формирование json пакета из разных конфигураций и тестов. промежуточный.

This commit is contained in:
2023-12-12 16:09:14 +03:00
parent f700154394
commit 91c494e9f8
15 changed files with 8529 additions and 52 deletions

View File

@@ -1,7 +1,9 @@
package TestingSystem.DVM.DVMPackage;
import Common.Database.DBObject;
import Common.Global;
import Common.Utils.Utils;
import TestingSystem.Common.TestingPackage.TestingPackage;
import com.sun.org.glassfish.gmbal.Description;
import java.io.File;
public class DVMPackage extends TestingPackage {
@@ -15,6 +17,9 @@ public class DVMPackage extends TestingPackage {
public String user_password;
public String user_workspace;
//---
@Description("IGNORE")
public DVMPackage_json package_json = null;
//---
@Override
public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src);
@@ -27,8 +32,13 @@ public class DVMPackage extends TestingPackage {
user_workspace = tasksPackage.user_workspace;
user_password = tasksPackage.user_password;
}
public File getLocalWorkspace(){
public File getLocalWorkspace() {
return new File(Global.PackagesDirectory, id);
}
//public File
public File getJsonFile() {
return new File(getLocalWorkspace(), "package_json");
}
public void saveJson() throws Exception {
Utils.jsonToFile(package_json, getJsonFile());
}
}

View File

@@ -1,3 +0,0 @@
package TestingSystem.DVM.DVMPackage;
public class DVMPackageDatabase {
}

View File

@@ -0,0 +1,16 @@
package TestingSystem.DVM.DVMPackage;
import TestingSystem.DVM.DVMTasks.DVMCompilationTask;
import TestingSystem.DVM.DVMTasks.DVMRunTask;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import com.google.gson.annotations.Expose;
import java.util.List;
import java.util.Vector;
public class DVMPackage_json {
@Expose
public int max_compilation_task_id = 0;
@Expose
public int max_run_task_id = 0;
@Expose
public List<DVMCompilationTask> compilationTasks = new Vector<>();
}

View File

@@ -3,24 +3,23 @@ import Common.Database.DBObject;
import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Test.Test;
import TestingSystem.DVM.Configuration.Configuration;
import TestingSystem.DVM.Tasks.TestCompilationTask;
import TestingSystem.DVM.Tasks.TestRunTask;
import com.sun.org.glassfish.gmbal.Description;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMPackage.DVMPackage_json;
import com.google.gson.annotations.Expose;
import java.util.List;
import java.util.Vector;
public class DVMCompilationTask extends DVMTask {
public String makefile_text = "";
public String test_home = ""; //место где лежит код теста.
public DVMCompilationTask(Configuration configuration, Group group, Test test, String flags_in) {
@Expose
public List<DVMRunTask> runTasks = new Vector<>();
//-
public DVMCompilationTask(Configuration configuration,
Group group,
Test test,
String flags_in
) {
super(configuration, group, test, flags_in);
flags = flags_in;
maxtime = configuration.c_maxtime;
}
@Override
public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src);
DVMCompilationTask ct = (DVMCompilationTask) src;
makefile_text = ct.makefile_text;
test_home = ct.test_home;
}
}

View File

@@ -3,47 +3,61 @@ import Common.Constants;
import Common.Current;
import Common.Database.DBObject;
import Common.Global;
import Common.Utils.Utils;
import GlobalData.Tasks.TaskState;
import ProjectData.LanguageName;
import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Test.Test;
import TestingSystem.Common.Test.TestType;
import TestingSystem.DVM.Configuration.Configuration;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.Tasks.TestRunTask;
import TestingSystem.DVM.Tasks.TestTask;
import com.google.gson.annotations.Expose;
import com.sun.org.glassfish.gmbal.Description;
import java.util.Vector;
public class DVMRunTask extends DVMTask {
//не факт что тут нужно переводить на полный интерфейс. достаточно убрать фильтрацию
@Expose
public int dvmcompilationtask_id = Constants.Nan;
@Expose
public String matrix = "";
@Expose
public String args = "";
@Expose
public double CleanTime = 0.0;
@Expose
public int progress = 0;
@Expose
public LanguageName language = LanguageName.fortran;
@Expose
public int cube = 1;
@Expose
public int min_dim = 1;
@Expose
public int max_dim = 1;
@Expose
public String environments = "";
@Expose
public String usr_par = "";
@Expose
public int compilation_maxtime = 40;
public String compilation_output = "";
public String compilation_errors = "";
@Expose
public TaskState compilation_state = TaskState.Waiting;
@Expose
public double compilation_time = 0.0;
public String statistic = "";
public DVMRunTask(Configuration configuration,
Group group, Test test,
String matrix_in, String flags_in,
String environments_in,
String par_in) {
String par_in,
int kernels_in
) {
super(configuration, group, test, flags_in);
//--------------------------
//инфа о компиляции.
language = group.language;
compilation_maxtime = configuration.c_maxtime;
compilation_output = "";
compilation_errors = "";
compilation_state = TaskState.Waiting;
//инфа о запуске
cube = configuration.cube;
@@ -55,6 +69,8 @@ public class DVMRunTask extends DVMTask {
args = test.args;
//---------
matrix = matrix_in;
kernels = (test_type == TestType.Performance) ? kernels_in :
Math.min(Utils.getMatrixProcessors(matrix), kernels_in);
}
public DVMRunTask() {
}
@@ -74,14 +90,11 @@ public class DVMRunTask extends DVMTask {
environments = rt.environments;
usr_par = rt.usr_par;
compilation_maxtime = rt.compilation_maxtime;
compilation_output = rt.compilation_output;
compilation_errors = rt.compilation_errors;
compilation_state = rt.compilation_state;
compilation_time = rt.compilation_time;
statistic = rt.statistic;
args = rt.args;
}
public DVMRunTask(TestRunTask src) {
public DVMRunTask(DVMRunTask src) {
this.SynchronizeFields(src);
}
//-

View File

@@ -7,24 +7,33 @@ import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Test.Test;
import TestingSystem.Common.Test.TestType;
import TestingSystem.DVM.Configuration.Configuration;
import com.google.gson.annotations.Expose;
import com.sun.org.glassfish.gmbal.Description;
import java.util.Date;
import java.util.Vector;
public class DVMTask extends iDBObject {
@Expose
public int group_id = Constants.Nan;
@Expose
public String group_description = "";
@Expose
public int test_id = Constants.Nan;
@Expose
public String test_description = "";
@Expose
public String flags = "";
@Expose
public int kernels = 1;
@Expose
public TaskState state = TaskState.Inactive;
@Expose
public int maxtime = 40;
@Expose
public TestType test_type = TestType.Default;
//результаты-------------------------------
@Expose
public double Time; //время выполнения.
public String output = "";
public String errors = "";
//------------------------------------------------------
@Override
public void SynchronizeFields(DBObject src) {
@@ -40,8 +49,6 @@ public class DVMTask extends iDBObject {
maxtime = t.maxtime;
test_type = t.test_type;
Time = t.Time;
output = t.output;
errors = t.errors;
}
public DVMTask(DVMTask src) {
this.SynchronizeFields(src);