use of org.eclipse.titan.executor.views.executormonitor.InformationElement in project titan.EclipsePlug-ins by eclipse.
the class CliExecutor method processInfoOutputHC.
/**
* Processes the host controller related part of the mctr_cli's answer to the info command.
* <p>
* @see #processInfoOutput(BufferedReader)
*
* @param stdout the output of the process to be parsed.
* @param root the main controller element to add the host controller data to.
*/
private void processInfoOutputHC(final BufferedReader stdout, final MainControllerElement root) {
HostControllerElement tempHost;
Matcher matcher = HOSTNAME_PATTERN.matcher(fastLine);
if (matcher.matches()) {
tempHost = new HostControllerElement("Host Controller");
root.addHostController(tempHost);
String hostIPAddress = matcher.group(1);
tempHost.setIPAddressInfo(new InformationElement("IP address: " + hostIPAddress));
String hostIpNumber = matcher.group(2);
if (hostIpNumber != null && hostIpNumber.length() > 0) {
tempHost.setIPNumberInfo(new InformationElement("IP number: " + hostIpNumber.substring(2, hostIpNumber.length() - 1)));
}
String localHostName = matcher.group(3);
if (localHostName != null && localHostName.length() > 0) {
tempHost.setHostNameInfo(new InformationElement("Local host name: " + localHostName.substring(2, localHostName.length() - 1)));
}
readFullLineOnly(stdout);
} else {
fastLine = null;
return;
}
if (fastLine != null && fastLine.startsWith(" operating system")) {
tempHost.setOperatingSystemInfo(new InformationElement(fastLine.trim()));
readFullLineOnly(stdout);
} else {
fastLine = null;
return;
}
if (fastLine != null && HC_STATE_PATTERN.matcher(fastLine).matches()) {
tempHost.setStateInfo(new InformationElement(fastLine.trim()));
readFullLineOnly(stdout);
} else {
fastLine = null;
return;
}
if (fastLine != null && " test component information:".equals(fastLine)) {
readFullLineOnly(stdout);
if (fastLine != null && fastLine.startsWith(" no components on this host")) {
readFullLineOnly(stdout);
} else {
while (fastLine != null && fastLine.startsWith(" - ")) {
processInfoOutputComponent(stdout, tempHost);
}
}
} else {
fastLine = null;
}
}
use of org.eclipse.titan.executor.views.executormonitor.InformationElement in project titan.EclipsePlug-ins by eclipse.
the class CliExecutor method processInfoOutput.
/**
* Tries to parse in mctr_cli's answer to the info command.
*
* @param stdout the output of the process to be parsed.
*/
private void processInfoOutput(final BufferedReader stdout) {
Matcher matcher;
MainControllerElement tempRoot = new MainControllerElement("Temporal root", this);
readFullLineOnly(stdout);
if (fastLine == null) {
return;
}
matcher = MC_STATE_PATTERN.matcher(fastLine);
if (matcher.matches()) {
String mcStateName = matcher.group(1);
tempRoot.setStateInfo(new InformationElement("State: " + mcStateName));
readFullLineOnly(stdout);
suspectedLastState = getMCStateFromName(mcStateName);
} else {
fastLine = null;
return;
}
if (fastLine != null && " host information:".equals(fastLine)) {
readFullLineOnly(stdout);
} else {
fastLine = null;
return;
}
if (fastLine != null) {
if (fastLine.startsWith(" -")) {
// host list
while (fastLine != null && fastLine.startsWith(" -")) {
processInfoOutputHC(stdout, tempRoot);
}
} else if (" no HCs are connected".equals(fastLine)) {
readFullLineOnly(stdout);
}
} else {
fastLine = null;
return;
}
if (fastLine != null && PAUSE_PATTERN.matcher(fastLine).matches()) {
tempRoot.setPauseInfo(new InformationElement(fastLine.trim()));
readFullLineOnly(stdout);
} else {
fastLine = null;
return;
}
if (fastLine != null && CONSOLE_LOGGING_PATTERN.matcher(fastLine).matches()) {
tempRoot.setConsoleLoggingInfo(new InformationElement(fastLine.trim()));
} else {
fastLine = null;
return;
}
if (mainControllerRoot != null) {
mainControllerRoot.children().clear();
mainControllerRoot.transferData(tempRoot);
}
}
use of org.eclipse.titan.executor.views.executormonitor.InformationElement in project titan.EclipsePlug-ins by eclipse.
the class CliExecutor method processInfoOutputComponent.
/**
* Processes the component related part of the mctr_cli's answer to the info command.
* <p>
* @see #processInfoOutputHC(BufferedReader, MainControllerElement)
*
* @param stdout the output of the process to be parsed.
* @param host the host to add the component data to.
*/
private void processInfoOutputComponent(final BufferedReader stdout, final HostControllerElement host) {
Matcher matcher;
ComponentElement tempComponent;
matcher = HC_NAME_COMPONENT_PATTERN.matcher(fastLine);
if (matcher.matches()) {
tempComponent = new ComponentElement("Component " + matcher.group(1), new InformationElement("Component reference: " + matcher.group(2)));
host.addComponent(tempComponent);
readFullLineOnly(stdout);
} else {
matcher = HC_COMPONENT_PATTERN.matcher(fastLine);
if (matcher.matches()) {
tempComponent = new ComponentElement("Component " + matcher.group(1));
host.addComponent(tempComponent);
readFullLineOnly(stdout);
} else {
fastLine = null;
return;
}
}
if (fastLine != null && HC_COMPONENT_TYPE_PATTERN.matcher(fastLine).matches()) {
tempComponent.setTypeInfo(new InformationElement(fastLine.trim()));
readFullLineOnly(stdout);
}
if (fastLine != null && HC_COMPONENT_STATE_PATTERN.matcher(fastLine).matches()) {
tempComponent.setStateInfo(new InformationElement(fastLine.trim()));
readFullLineOnly(stdout);
} else {
fastLine = null;
return;
}
if (fastLine != null && HC_EXECUTED_PATTERN.matcher(fastLine).matches()) {
tempComponent.setExecutedInfo(new InformationElement(fastLine.trim()));
readFullLineOnly(stdout);
}
if (fastLine != null && HC_LOCAL_VERDICT_PATTERN.matcher(fastLine).matches()) {
tempComponent.setLocalVerdictInfo(new InformationElement(fastLine.trim()));
readFullLineOnly(stdout);
}
}
use of org.eclipse.titan.executor.views.executormonitor.InformationElement in project titan.EclipsePlug-ins by eclipse.
the class JniExecutor method updateInfoDisplay.
/**
* Updates the information displayed about the MainController's and HostControllers actual states.
*/
private void updateInfoDisplay() {
JNIMiddleWare middleware = jnimw;
McStateEnum mcState = middleware.get_state();
MainControllerElement tempRoot = new MainControllerElement("Temporal root", this);
String mcStateName = middleware.get_mc_state_name(mcState);
tempRoot.setStateInfo(new InformationElement("state: " + mcStateName));
HostControllerElement tempHost;
ComponentStruct comp;
QualifiedName qualifiedName;
ComponentElement tempComponent;
StringBuilder builder;
int nofHosts = middleware.get_nof_hosts();
HostStruct host;
for (int i = 0; i < nofHosts; i++) {
host = middleware.get_host_data(i);
tempHost = new HostControllerElement("Host Controller: ");
tempRoot.addHostController(tempHost);
tempHost.setIPAddressInfo(new InformationElement("IP address: " + host.hostname));
tempHost.setIPNumberInfo(new InformationElement("IP number: " + host.ip_addr));
tempHost.setHostNameInfo(new InformationElement("Local host name:" + host.hostname_local));
tempHost.setOperatingSystemInfo(new InformationElement(host.system_name + " " + host.system_release + " " + host.system_version));
tempHost.setStateInfo(new InformationElement("State: " + middleware.get_hc_state_name(host.hc_state)));
int activeComponents = host.n_active_components;
int[] components = host.components.clone();
middleware.release_data();
for (int component_index = 0; component_index < activeComponents; component_index++) {
comp = middleware.get_component_data(components[component_index]);
tempComponent = new ComponentElement("Component: " + comp.comp_name, new InformationElement("Component reference: " + comp.comp_ref));
tempHost.addComponent(tempComponent);
qualifiedName = comp.comp_type;
if (qualifiedName != null && qualifiedName.definition_name != null) {
builder = new StringBuilder("Component type: ");
if (qualifiedName.module_name != null) {
builder.append(qualifiedName.module_name).append('.');
}
builder.append(qualifiedName.definition_name);
tempComponent.setTypeInfo(new InformationElement(builder.toString()));
}
tempComponent.setStateInfo(new InformationElement(middleware.get_tc_state_name(comp.tc_state)));
qualifiedName = comp.tc_fn_name;
if (qualifiedName.definition_name != null) {
builder = new StringBuilder(comp.comp_ref == 1 ? "test case" : "function");
if (qualifiedName.module_name != null) {
builder.append(qualifiedName.module_name).append('.');
}
builder.append(qualifiedName.definition_name);
tempComponent.setExecutedInfo(new InformationElement(builder.toString()));
}
VerdictTypeEnum localVerdict = comp.local_verdict;
if (localVerdict != null) {
builder = new StringBuilder("local verdict: ");
builder.append(localVerdict.getName());
}
}
}
middleware.release_data();
if (mainControllerRoot != null) {
mainControllerRoot.children().clear();
mainControllerRoot.transferData(tempRoot);
}
if (Activator.getMainView() != null) {
Activator.getMainView().refreshAll();
}
}
Aggregations