summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
97d209a)
gitlab #367
Change-Id: I5524ae8c3133968a4819045fc2556439b5aa3526
import org.simantics.scl.osgi.internal.Activator;
import org.simantics.scl.osgi.internal.ServiceBasedModuleSourceRepository;
import org.simantics.scl.osgi.internal.ServiceBasedTestRepository;
import org.simantics.scl.osgi.internal.Activator;
import org.simantics.scl.osgi.internal.ServiceBasedModuleSourceRepository;
import org.simantics.scl.osgi.internal.ServiceBasedTestRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import gnu.trove.map.hash.THashMap;
/**
* Utilizies {@link TestRepository} for collecting SCL tests from bundles
*
import gnu.trove.map.hash.THashMap;
/**
* Utilizies {@link TestRepository} for collecting SCL tests from bundles
*
*/
public class SCLScriptTestBase extends FreshDatabaseTest {
*/
public class SCLScriptTestBase extends FreshDatabaseTest {
+ private static final Logger LOGGER = LoggerFactory.getLogger(SCLScriptTestBase.class);
+
private Map<String, TestRunnable> testRunnables = new THashMap<String, TestRunnable>();
private Map<String, TestRunnable> testRunnables = new THashMap<String, TestRunnable>();
@Rule public TestName testName = new TestName();
@Rule public TestName testName = new TestName();
/**
* Constructor that initially searches for all SCL test scripts and stores
* them into a Map for later access
/**
* Constructor that initially searches for all SCL test scripts and stores
* them into a Map for later access
testRunnables.put(runnable.getName(), runnable);
}
}
testRunnables.put(runnable.getName(), runnable);
}
}
/**
* Simplest method for running a SCL test
*/
protected void test() {
test(-1);
}
/**
* Simplest method for running a SCL test
*/
protected void test() {
test(-1);
}
/**
* Executes a test case with given timeout as seconds. When time runs out one
* can assume a deadlock has happened. The process is killed after the timeout
/**
* Executes a test case with given timeout as seconds. When time runs out one
* can assume a deadlock has happened. The process is killed after the timeout
protected void test(int timeout) {
testImpl(timeout);
}
protected void test(int timeout) {
testImpl(timeout);
}
/**
* Executes a test case with given timeout as seconds
*
/**
* Executes a test case with given timeout as seconds
*
SCLOsgi.SOURCE_REPOSITORY = new ServiceBasedModuleSourceRepository(Activator.getContext());
SCLOsgi.MODULE_REPOSITORY = new ModuleRepository(SCLOsgi.SOURCE_REPOSITORY);
SCLOsgi.TEST_REPOSITORY = new ServiceBasedTestRepository(Activator.getContext());
SCLOsgi.SOURCE_REPOSITORY = new ServiceBasedModuleSourceRepository(Activator.getContext());
SCLOsgi.MODULE_REPOSITORY = new ModuleRepository(SCLOsgi.SOURCE_REPOSITORY);
SCLOsgi.TEST_REPOSITORY = new ServiceBasedTestRepository(Activator.getContext());
String testName = resolveTestName();
TestRunnable runnable = testRunnables.get(testName);
String testName = resolveTestName();
TestRunnable runnable = testRunnables.get(testName);
if (timeout > -1) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
if (timeout > -1) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
+ LOGGER.info("Watchdog will kill this test process because it has been executing for over {} seconds", timeout); //$NON-NLS-1$
String processName = ManagementFactory.getRuntimeMXBean().getName();
String processName = ManagementFactory.getRuntimeMXBean().getName();
- System.out.println("PID: " + processName);
+ LOGGER.info("Test Process Name: {}", processName); //$NON-NLS-1$
String PID = processName.split("@")[0];
String command = "taskkill /F /PID " + PID;
String PID = processName.split("@")[0];
String command = "taskkill /F /PID " + PID;
- System.out.println("Command: " + command);
+ LOGGER.info("Running command to kill test process: {}", command); //$NON-NLS-1$
try {
Runtime.getRuntime().exec(command);
} catch (IOException e) {
try {
Runtime.getRuntime().exec(command);
} catch (IOException e) {
+ LOGGER.error("Failed to kill process that ran over its execution time limit of {} seconds", timeout, e);
try {
runnable.run();
} catch (Exception e) {
try {
runnable.run();
} catch (Exception e) {
+ LOGGER.error("Failed to run test {} runnable {}", testName, runnable, e);
} finally {
timer.cancel();
}
} finally {
timer.cancel();
}
try {
runnable.run();
} catch (Exception e) {
try {
runnable.run();
} catch (Exception e) {
+ LOGGER.error("Failed to run test {} runnable {}", testName, runnable, e);
/**
* Resolves the full test name based on the names of classes that extends this
* SCLScriptTestBase class.<br><br>
/**
* Resolves the full test name based on the names of classes that extends this
* SCLScriptTestBase class.<br><br>
*
* @author Marko Luukkainen <marko.luukkainen@vtt.fi>
*/
*
* @author Marko Luukkainen <marko.luukkainen@vtt.fi>
*/
-public abstract class TestBase /*extends TestCase*/ {
+public abstract class TestBase {
private static final Logger LOGGER = LoggerFactory.getLogger(TestBase.class);
public static final boolean DEBUG = Configuration.get().debug;
public static final String ROOT_LIBRARY_URI = "http:/";
private static final Logger LOGGER = LoggerFactory.getLogger(TestBase.class);
public static final boolean DEBUG = Configuration.get().debug;
public static final String ROOT_LIBRARY_URI = "http:/";
Example:
> renameNode resource "NewName"
Example:
> renameNode resource "NewName"
- "Succesfully renamed oldName to NewName"
+ "Successfully renamed oldName to NewName"
Example:
> renameMBNode entity "NewName"
Example:
> renameMBNode entity "NewName"
- "Succesfully renamed oldName to NewName"
+ "Successfully renamed oldName to NewName"
CommentMetadata cm = graph.getMetadata(CommentMetadata.class);
graph.addMetadata(cm.add("Renamed node " + nodeName + ", resource " + node + ", to " + newName));
CommentMetadata cm = graph.getMetadata(CommentMetadata.class);
graph.addMetadata(cm.add("Renamed node " + nodeName + ", resource " + node + ", to " + newName));
- return "Succesfully renamed "+ nodeName + " to " + newName;
+ return "Successfully renamed "+ nodeName + " to " + newName;