Skip to content

Commit dd13f53

Browse files
committed
[JavaEngine] Add first version of java engine test plugin
1 parent 789d57c commit dd13f53

File tree

10 files changed

+236
-0
lines changed

10 files changed

+236
-0
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<classpath>
3+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
4+
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
5+
<classpathentry kind="src" path="src"/>
6+
<classpathentry kind="src" path="xtend-gen"/>
7+
<classpathentry kind="output" path="bin"/>
8+
</classpath>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>org.gemoc.executionframework.test.javaengine</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
13+
<buildCommand>
14+
<name>org.eclipse.jdt.core.javabuilder</name>
15+
<arguments>
16+
</arguments>
17+
</buildCommand>
18+
<buildCommand>
19+
<name>org.eclipse.pde.ManifestBuilder</name>
20+
<arguments>
21+
</arguments>
22+
</buildCommand>
23+
<buildCommand>
24+
<name>org.eclipse.pde.SchemaBuilder</name>
25+
<arguments>
26+
</arguments>
27+
</buildCommand>
28+
</buildSpec>
29+
<natures>
30+
<nature>org.eclipse.pde.PluginNature</nature>
31+
<nature>org.eclipse.jdt.core.javanature</nature>
32+
<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
33+
</natures>
34+
</projectDescription>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
eclipse.preferences.version=1
2+
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3+
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
4+
org.eclipse.jdt.core.compiler.compliance=1.8
5+
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6+
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7+
org.eclipse.jdt.core.compiler.source=1.8

java_execution/java_engine/tests/org.gemoc.executionframework.test.javaengine/JavaEngineTests.launch

Lines changed: 43 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
Manifest-Version: 1.0
2+
Bundle-ManifestVersion: 2
3+
Bundle-Name: Javaengine
4+
Bundle-SymbolicName: org.gemoc.executionframework.test.javaengine
5+
Bundle-Version: 1.0.0.qualifier
6+
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
7+
Require-Bundle: com.google.guava,
8+
org.eclipse.xtext.xbase.lib,
9+
org.eclipse.xtend.lib,
10+
org.eclipse.xtend.lib.macro,
11+
org.gemoc.executionframework.test.lib;bundle-version="1.0.0",
12+
org.gemoc.execution.sequential.javaengine;bundle-version="2.3.0",
13+
org.eclipse.emf.common;bundle-version="2.12.0",
14+
org.junit;bundle-version="4.12.0",
15+
org.gemoc.executionframework.engine;bundle-version="2.3.0",
16+
org.gemoc.xdsmlframework.api;bundle-version="2.3.0",
17+
fr.inria.diverse.k3.al.annotationprocessor.plugin;bundle-version="3.2.1"
18+
Export-Package: org.gemoc.executionframework.test.javaengine.languages
19+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
source.. = src/,\
2+
xtend-gen/
3+
output.. = bin/
4+
bin.includes = META-INF/,\
5+
.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package org.gemoc.executionframework.test.javaengine
2+
3+
import java.util.Set
4+
import org.eclipse.emf.common.util.URI
5+
import org.gemoc.execution.sequential.javaengine.PlainK3ExecutionEngine
6+
import org.gemoc.execution.sequential.javaengine.SequentialModelExecutionContext
7+
import org.gemoc.executionframework.test.lib.IEngineWrapper
8+
import org.gemoc.executionframework.test.lib.ILanguageWrapper
9+
import org.gemoc.executionframework.test.lib.impl.TestRunConfiguration
10+
import org.gemoc.xdsmlframework.api.core.ExecutionMode
11+
import org.gemoc.xdsmlframework.api.core.IExecutionContext
12+
import org.gemoc.xdsmlframework.api.core.IRunConfiguration
13+
import org.gemoc.executionframework.test.lib.IExecutableModel
14+
15+
class JavaEngineWrapper implements IEngineWrapper {
16+
17+
private PlainK3ExecutionEngine engine
18+
19+
override run() {
20+
engine.start();
21+
engine.joinThread();
22+
if (engine.error != null)
23+
throw engine.error
24+
}
25+
26+
override prepare(ILanguageWrapper wrapper, IExecutableModel model, Set<String> addons, URI uri) {
27+
engine = new PlainK3ExecutionEngine()
28+
val IRunConfiguration runConf = new TestRunConfiguration(model, uri,wrapper,addons)
29+
val IExecutionContext exeContext = new SequentialModelExecutionContext(runConf, ExecutionMode::Run);
30+
exeContext.initializeResourceModel();
31+
engine.initialize(exeContext)
32+
engine.stopOnAddonError = true;
33+
}
34+
35+
override getRealEngine() {
36+
return engine
37+
}
38+
39+
40+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package org.gemoc.executionframework.test.javaengine.languages
2+
3+
import org.gemoc.executionframework.test.lib.ILanguageWrapper
4+
5+
class LegacyFSM implements ILanguageWrapper {
6+
7+
override getEntryPoint() {
8+
"public static void org.gemoc.sample.legacyfsm.xsfsm.xsfsm.aspects.StateMachineAspect.main(org.gemoc.sample.legacyfsm.xsfsm.xsfsm.fsm.StateMachine)"
9+
}
10+
11+
override getLanguageName() {
12+
"org.gemoc.sample.legacyfsm.xsfsm.XSFSM"
13+
}
14+
15+
override getInitializationMethod() {
16+
"org.gemoc.sample.legacyfsm.xsfsm.xsfsm.aspects.StateMachineAspect.initializeModel"
17+
}
18+
19+
20+
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.gemoc.executionframework.test.javaengine.languages
2+
3+
import org.gemoc.executionframework.test.lib.ILanguageWrapper
4+
5+
class TFSM implements ILanguageWrapper {
6+
7+
override getEntryPoint() {
8+
"public static void org.gemoc.sample.tfsm.sequential.xtfsm.aspects.TimedSystemAspect.main(org.gemoc.sample.tfsm.sequential.xtfsm.tfsm.TimedSystem)"
9+
}
10+
11+
override getLanguageName() {
12+
"org.gemoc.sample.tfsm.sequential.XTfsm"
13+
}
14+
15+
override getInitializationMethod() {
16+
"org.gemoc.sample.tfsm.sequential.xtfsm.aspects.TimedSystemAspect.initializeModel"
17+
}
18+
19+
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package org.gemoc.executionframework.test.javaengine.tests
2+
3+
import org.gemoc.executionframework.test.javaengine.JavaEngineWrapper
4+
import org.gemoc.executionframework.test.javaengine.languages.LegacyFSM
5+
import org.gemoc.executionframework.test.javaengine.languages.TFSM
6+
import org.gemoc.executionframework.test.lib.impl.TestHelper
7+
import org.gemoc.executionframework.test.lib.impl.TestModel
8+
import org.junit.Test
9+
10+
class JavaEngineTests {
11+
12+
public static val tfsmModelsPlugin = "org.gemoc.sample.tfsm.sequential.single_traffic_light_sample"
13+
public static val legacyFsmModelsPlugin = "org.gemoc.sample.legacyfsm.model_examples"
14+
15+
@Test
16+
def void testTFSM() {
17+
TestHelper::testWithoutExtraAddons(new JavaEngineWrapper(), new TFSM(),
18+
new TestModel(tfsmModelsPlugin, "/", "single_traffic_light.xtfsm", "",""))
19+
}
20+
21+
@Test
22+
def void testTFSMGenericTrace() {
23+
TestHelper::testWithGenericTrace(new JavaEngineWrapper(), new TFSM(),
24+
new TestModel(tfsmModelsPlugin, "/", "single_traffic_light.xtfsm", "",""))
25+
}
26+
27+
@Test
28+
def void testLegacyFSM() {
29+
TestHelper::testWithGenericTrace(new JavaEngineWrapper(), new LegacyFSM(),
30+
new TestModel(legacyFsmModelsPlugin, "/", "BitShifting.fsm", "000101010","?lang=org.gemoc.sample.legacyfsm.xsfsm.XSFSM"))
31+
}
32+
33+
@Test
34+
def void testLegacyFSMGenericTrace() {
35+
TestHelper::testWithoutExtraAddons(new JavaEngineWrapper(), new LegacyFSM(),
36+
new TestModel(legacyFsmModelsPlugin, "/", "BitShifting.fsm", "000101010","?lang=org.gemoc.sample.legacyfsm.xsfsm.XSFSM"))
37+
}
38+
39+
}

0 commit comments

Comments
 (0)