Skip to content

Commit b125412

Browse files
authored
Merge pull request #1194 from IETS3/feature/RunInterpreterConfigbyCommand
Feature: Evaluate tests by interpreter from command line
2 parents 01507d1 + 0ad4657 commit b125412

File tree

28 files changed

+15494
-952
lines changed

28 files changed

+15494
-952
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ The project does _not_ follow Semantic Versioning and the changes are documented
77

88
## Feburary 2025
99

10+
### Added
11+
12+
- a new approach to run interpreter test case from command line (and inside MPS) directly without invoking JUnit code generation
13+
1014
### Fixed
1115

1216
- Strings are not comparable with strings with constraints.

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ The project is separated into the following virtual packages:
5555
| [build-languages.xml](http://127.0.0.1:63320/node?ref=r%3Ac3d6ae0c-8b10-477f-a3e9-5dc8700ceb13%28org.iets3.opensource.build.build%29%2F6354991446090808661) | This ant script contains all languages and generates the finished zip file. |
5656
| [build-distro.xml](http://127.0.0.1:63320/node?ref=r%3Ac3d6ae0c-8b10-477f-a3e9-5dc8700ceb13%28org.iets3.opensource.build.build%29%2F8098566576010865830) | This ant script combines the files from the mbeddr platform with the files from the previous script. |
5757
| [build-tests.xml](http://127.0.0.1:63320/node?ref=r%3Ac3d6ae0c-8b10-477f-a3e9-5dc8700ceb13%28org.iets3.opensource.build.build%29%2F950113207300454071) | This ant script contains all the test languages and solutions and also runs the KernelF generated tests as part of the build. This is achieved by including an instance of [RunKernelFGeneratedTests](http://127.0.0.1:63320/node?ref=r%3A2ce4b587-5587-43f7-8005-e3fb84f231b0%28org.iets3.opensource.build.gentests.structure%29%2F4604852045247358203). |
58+
| [build-testInterpreter.xml](http://127.0.0.1:63320/node?ref=r%3Ac3d6ae0c-8b10-477f-a3e9-5dc8700ceb13%28org.iets3.opensource.build.build%29%2F9022445546689294517) | This ant script generates and builds all project components to run the interpreter on test cases, without generating code for the tests. All test cases (specified per solution [here](http://127.0.0.1:63320/node?ref=r%3Ac3d6ae0c-8b10-477f-a3e9-5dc8700ceb13%28org.iets3.opensource.build.build%29%2F8961448726282409247)), are not generated but directly run using the interpreter.|
5859

5960
### analysis
6061
| Name | Description |

build.gradle

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,21 @@ task buildLanguages(type: BuildLanguages, dependsOn: prebuild) {
224224
script "$buildDir/scripts/build-languages.xml"
225225
}
226226

227+
task execTestsByInterpreter(type: TestLanguages, dependsOn: buildLanguages) {
228+
script "$buildDir/scripts/build-testInterpreter.xml"
229+
targets "generate","build"
230+
doLast {
231+
ant.taskdef(name: 'junitInterpreterReport',
232+
classname: 'org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator',
233+
classpath: configurations.junitAnt.asPath)
234+
ant.junitInterpreterReport(toDir: "$buildDir", tofile: "AggregatedInterpreterTestSuites.xml") {
235+
fileset(dir: "$buildDir", includes: '**/InterpreterTestSuite*.xml', excludes: 'tmp/**')
236+
report(format: 'frames', todir: "$buildDir/junitInterpreterReport" )
237+
}
238+
ant.echo("JUnit Interpreter report placed into $buildDir/junitInterpreterReport/index.html")
239+
}
240+
}
241+
227242

228243
task buildAndRunTests(type: TestLanguages, dependsOn: buildLanguages) {
229244
script "$buildDir/scripts/build-tests.xml"

build/scripts/build-allScripts.xml

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
<module ref="3ae9cfda-f938-4524-b4ca-fbcba3b0525b(com.mbeddr.platform)" kind="cl" />
6060
<module ref="f1fb7b1c-ce0d-423c-9369-4a661d600029(de.itemis.mps.extensions.build)" kind="cl" />
6161
<module ref="422c2909-59d6-41a9-b318-40e6256b250f(jetbrains.mps.ide.build)" kind="cl" />
62+
<module ref="9d000fbd-bdca-4a46-b39b-c5ba9e79b38c(org.iets3.opensource.build.gentests)" kind="cl" />
6263
</dependencies>
6364
<uses>
6465
<language id="l:798100da-4f0a-421a-b991-71f8c50ce5d2:jetbrains.mps.build" />
@@ -272,7 +273,7 @@
272273

273274
<target name="makeDependents" />
274275

275-
<target name="java.compile.org.iets3.opensource.build" depends="java.compile.org.iets3.opensource.build.gentests.rt, fetchDependencies">
276+
<target name="java.compile.org.iets3.opensource.build" depends="java.compile.org.iets3.opensource.build.gentests, java.compile.org.iets3.opensource.build.gentests.rt, fetchDependencies">
276277
<mkdir dir="${iets3.lang.opensource}/solutions/org.iets3.opensource.build/source_gen" />
277278
<mkdir dir="${build.tmp}/java/out/org.iets3.opensource.build" />
278279
<javac destdir="${build.tmp}/java/out/org.iets3.opensource.build" fork="false" encoding="utf8" includeantruntime="false" debug="true">
@@ -281,11 +282,54 @@
281282
<path location="${iets3.lang.opensource}/solutions/org.iets3.opensource.build/source_gen" />
282283
</src>
283284
<classpath>
285+
<fileset file="${artifacts.mps}/lib/mps-annotations.jar" />
286+
<fileset file="${artifacts.mps}/lib/mps-openapi.jar" />
287+
<fileset file="${artifacts.mps}/lib/mps-context.jar" />
288+
<fileset file="${artifacts.mps}/lib/mps-constraints-runtime.jar" />
289+
<fileset file="${artifacts.mps}/lib/mps-core.jar" />
290+
<fileset file="${artifacts.mps}/lib/mps-problem.jar" />
291+
<fileset file="${artifacts.mps}/lib/mps-feedback-api.jar" />
292+
<fileset file="${artifacts.mps}/lib/mps-platform.jar" />
293+
<fileset file="${artifacts.mps}/lib/mps-messages-api.jar" />
294+
<fileset file="${artifacts.mps}/lib/mps-messages-for-rules.jar" />
295+
<fileset file="${artifacts.mps}/lib/mps-behavior-api.jar" />
296+
<fileset file="${artifacts.mps}/lib/mps-behavior-runtime.jar" />
297+
<fileset file="${artifacts.mps}/lib/mps-closures.jar" />
298+
<fileset file="${artifacts.mps}/lib/mps-collections.jar" />
299+
<fileset file="${artifacts.mps}/lib/mps-tuples.jar" />
284300
<fileset file="${artifacts.mps}/lib/mps-references.jar" />
301+
<fileset file="${artifacts.mps}/lib/mps-editor.jar" />
302+
<fileset file="${artifacts.mps}/lib/mps-editor-api.jar" />
303+
<fileset file="${artifacts.mps}/lib/mps-editor-runtime.jar" />
304+
<fileset file="${artifacts.mps}/lib/mps-generator.jar" />
305+
<fileset file="${artifacts.mps}/lib/mps-persistence.jar" />
306+
<fileset file="${artifacts.mps}/lib/mps-environment.jar" />
307+
<fileset file="${artifacts.mps}/lib/mps-project-check.jar" />
308+
<pathelement path="${build.tmp}/java/out/org.iets3.opensource.build.gentests" />
285309
<pathelement path="${build.tmp}/java/out/org.iets3.opensource.build.gentests.rt" />
286310
<fileset file="${iets3.lang.opensource}/solutions/org.iets3.opensource.build.gentests.rt/lib/takari-cpsuite-1.2.7.jar" />
311+
<fileset file="${artifacts.mps}/lib/annotations.jar" />
312+
<fileset file="${artifacts.mps}/lib/app.jar" />
313+
<fileset file="${artifacts.mps}/lib/app-client.jar" />
314+
<fileset file="${artifacts.mps}/lib/lib.jar" />
315+
<fileset file="${artifacts.mps}/lib/lib-client.jar" />
316+
<fileset file="${artifacts.mps}/lib/util.jar" />
317+
<fileset file="${artifacts.mps}/lib/util_rt.jar" />
318+
<fileset file="${artifacts.mps}/lib/util-8.jar" />
319+
<fileset file="${artifacts.mps}/lib/forms_rt.jar" />
320+
<fileset file="${artifacts.mps}/lib/java-impl.jar" />
321+
<fileset file="${artifacts.mps}/lib/jps-model.jar" />
322+
<fileset file="${artifacts.mps}/lib/testFramework.jar" />
323+
<fileset file="${artifacts.mps}/lib/stats.jar" />
324+
<fileset file="${artifacts.mps}/lib/platform-loader.jar" />
287325
<fileset file="${artifacts.com.mbeddr.platform}/com.mbeddr.platform.jar" />
288326
<fileset file="${artifacts.com.mbeddr.platform}/de.itemis.mps.extensions.build/languages/de.itemis.mps.extensions.build/de.itemis.mps.extensions.build.jar" />
327+
<fileset file="${artifacts.mps}/plugins/mps-build/languages/build/jetbrains.mps.build.jar" />
328+
<fileset file="${artifacts.mps}/plugins/mps-build/languages/build/jetbrains.mps.build.mps.runner.jar" />
329+
<fileset file="${artifacts.mps}/plugins/mps-build/languages/build/jetbrains.mps.build.workflow.jar" />
330+
<fileset file="${artifacts.mps}/languages/xml/jetbrains.mps.core.xml.jar" />
331+
<fileset file="${artifacts.mps}/languages/languageDesign/jetbrains.mps.lang.core.jar" />
332+
<fileset file="${artifacts.mps}/languages/languageDesign/jetbrains.mps.lang.traceable.jar" />
289333
</classpath>
290334
</javac>
291335
<copy todir="${build.tmp}/java/out/org.iets3.opensource.build">
@@ -345,6 +389,7 @@
345389
<fileset file="${artifacts.mps}/languages/baseLanguage/jetbrains.mps.baseLanguage.logging.runtime.jar" />
346390
<fileset file="${artifacts.mps}/plugins/mps-build/languages/build/jetbrains.mps.build.jar" />
347391
<fileset file="${artifacts.mps}/plugins/mps-build/languages/build/jetbrains.mps.build.mps.jar" />
392+
<fileset file="${artifacts.mps}/plugins/mps-build/languages/build/jetbrains.mps.build.mps.runner.jar" />
348393
<fileset file="${artifacts.mps}/plugins/mps-build/languages/build/jetbrains.mps.build.mps.tests.jar" />
349394
<fileset file="${artifacts.mps}/plugins/mps-build/languages/build/jetbrains.mps.build.workflow.jar" />
350395
<fileset file="${artifacts.mps}/languages/xml/jetbrains.mps.core.xml.jar" />
@@ -413,6 +458,8 @@
413458
<fileset file="${artifacts.mps}/plugins/mps-build/languages/build/jetbrains.mps.build.jar" />
414459
<fileset file="${artifacts.mps}/plugins/mps-build/languages/build/jetbrains.mps.build.mps.jar" />
415460
<fileset file="${artifacts.mps}/plugins/mps-build/languages/build/jetbrains.mps.build.mps-generator.jar" />
461+
<fileset file="${artifacts.mps}/plugins/mps-build/languages/build/jetbrains.mps.build.mps.runner.jar" />
462+
<fileset file="${artifacts.mps}/plugins/mps-build/languages/build/jetbrains.mps.build.mps.runner-generator.jar" />
416463
<fileset file="${artifacts.mps}/plugins/mps-build/languages/build/jetbrains.mps.build.mps.tests.jar" />
417464
<fileset file="${artifacts.mps}/plugins/mps-build/languages/build/jetbrains.mps.build.workflow.jar" />
418465
<fileset file="${artifacts.mps}/languages/xml/jetbrains.mps.core.xml.jar" />

code/languages/org.iets3.opensource/.mps/modules.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484
<modulePath path="$PROJECT_DIR$/languages/test.org.iets3.analysis.base.solvable/test.org.iets3.analysis.base.solvable.mpl" folder="analysis.test" />
8585
<modulePath path="$PROJECT_DIR$/languages/test.ts.expr.os.nix/test.ts.expr.os.nix.mpl" folder="expr.tests" />
8686
<modulePath path="$PROJECT_DIR$/languages/test.ts.expr.os.validNameConcept/test.ts.expr.os.validNameConcept.mpl" folder="expr.tests" />
87+
<modulePath path="$PROJECT_DIR$/solutions/InterpreterTestExecutor/InterpreterTestExecutor.msd" folder="_build" />
8788
<modulePath path="$PROJECT_DIR$/solutions/org.iets3.components.core.interpreter/org.iets3.components.core.interpreter.msd" folder="comp" />
8889
<modulePath path="$PROJECT_DIR$/solutions/org.iets3.components.core.sandbox/org.iets3.components.core.sandbox.msd" folder="comp" />
8990
<modulePath path="$PROJECT_DIR$/solutions/org.iets3.core.expr.adt.interpreter/org.iets3.core.expr.adt.interpreter.msd" folder="expr.lang-advanced" />
@@ -142,6 +143,7 @@
142143
<modulePath path="$PROJECT_DIR$/solutions/org.iets3.opensource.allScripts.build/org.iets3.opensource.allScripts.build.msd" folder="_build" />
143144
<modulePath path="$PROJECT_DIR$/solutions/org.iets3.opensource.build.gentests.rt/org.iets3.opensource.build.gentests.rt.msd" folder="_build" />
144145
<modulePath path="$PROJECT_DIR$/solutions/org.iets3.opensource.build/org.iets3.opensource.build.msd" folder="_build" />
146+
<modulePath path="$PROJECT_DIR$/solutions/org.iets3.opensource.interpreterExecutor/org.iets3.opensource.interpreterExecutor.msd" folder="_build" />
145147
<modulePath path="$PROJECT_DIR$/solutions/org.iets3.opensource.linters/org.iets3.opensource.linters.msd" folder="linters" />
146148
<modulePath path="$PROJECT_DIR$/solutions/playground/playground.msd" folder="expr.tests" />
147149
<modulePath path="$PROJECT_DIR$/solutions/test.ex.core.expr.genjava/test.ex.core.expr.genjava.msd" folder="expr.genjava" />

code/languages/org.iets3.opensource/languages/org.iets3.components.core/models/editor.mps

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1605,7 +1605,7 @@
16051605
<ref role="1XX52x" to="w9y2:6LfBX8YlosD" resolve="ComponentInstance" />
16061606
<node concept="3EZMnI" id="6LfBX8Ylotb" role="2wV5jI">
16071607
<node concept="PMmxH" id="4MeRni2HsBy" role="3EZMnx">
1608-
<ref role="PMmxG" node="4MeRni2HpkZ" resolve="ISubstructureContentAlias" />
1608+
<ref role="PMmxG" node="4MeRni2HpkZ" resolve="ISubstructureContentKeywordAlias" />
16091609
</node>
16101610
<node concept="PMmxH" id="4A8SzOVg3Nv" role="3EZMnx">
16111611
<ref role="PMmxG" to="ir4w:4A8SzOVasuR" resolve="summary" />
@@ -1715,7 +1715,7 @@
17151715
<ref role="1XX52x" to="w9y2:7Zvsa54vnWq" resolve="AssemblyConnector" />
17161716
<node concept="3EZMnI" id="7Zvsa54vwrw" role="2wV5jI">
17171717
<node concept="PMmxH" id="4MeRni2HqtC" role="3EZMnx">
1718-
<ref role="PMmxG" node="4MeRni2HpkZ" resolve="ISubstructureContentAlias" />
1718+
<ref role="PMmxG" node="4MeRni2HpkZ" resolve="ISubstructureContentKeywordAlias" />
17191719
</node>
17201720
<node concept="PMmxH" id="4A8SzOVg3Cw" role="3EZMnx">
17211721
<ref role="PMmxG" to="ir4w:4A8SzOVasuR" resolve="summary" />
@@ -9120,7 +9120,7 @@
91209120
<node concept="3EZMnI" id="cJpacq1V_2" role="2wV5jI">
91219121
<node concept="l2Vlx" id="cJpacq1V_3" role="2iSdaV" />
91229122
<node concept="PMmxH" id="4MeRni2HBl7" role="3EZMnx">
9123-
<ref role="PMmxG" node="4MeRni2HpkZ" resolve="ISubstructureContentAlias" />
9123+
<ref role="PMmxG" node="4MeRni2HpkZ" resolve="ISubstructureContentKeywordAlias" />
91249124
</node>
91259125
<node concept="PMmxH" id="4A8SzOVg3TG" role="3EZMnx">
91269126
<ref role="PMmxG" to="ir4w:4A8SzOVasuR" resolve="summary" />
@@ -9448,7 +9448,7 @@
94489448
<node concept="3EZMnI" id="cJpacq2_pm" role="2wV5jI">
94499449
<node concept="l2Vlx" id="cJpacq2_pn" role="2iSdaV" />
94509450
<node concept="PMmxH" id="4MeRni2H$LI" role="3EZMnx">
9451-
<ref role="PMmxG" node="4MeRni2HpkZ" resolve="ISubstructureContentAlias" />
9451+
<ref role="PMmxG" node="4MeRni2HpkZ" resolve="ISubstructureContentKeywordAlias" />
94529452
</node>
94539453
<node concept="PMmxH" id="4A8SzOVg3Tg" role="3EZMnx">
94549454
<ref role="PMmxG" to="ir4w:4A8SzOVasuR" resolve="summary" />
@@ -12627,7 +12627,7 @@
1262712627
<node concept="3EZMnI" id="1yY6_Uj8oYK" role="2wV5jI">
1262812628
<node concept="l2Vlx" id="1yY6_Uj8oYL" role="2iSdaV" />
1262912629
<node concept="PMmxH" id="4MeRni2Hy6w" role="3EZMnx">
12630-
<ref role="PMmxG" node="4MeRni2HpkZ" resolve="ISubstructureContentAlias" />
12630+
<ref role="PMmxG" node="4MeRni2HpkZ" resolve="ISubstructureContentKeywordAlias" />
1263112631
</node>
1263212632
<node concept="PMmxH" id="1yY6_Uj8oYN" role="3EZMnx">
1263312633
<ref role="PMmxG" to="ir4w:4A8SzOVasuR" resolve="summary" />

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.dataflow/models/editor.mps

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@
438438
<ref role="1XX52x" to="gx5r:4YhD5cZsmA4" resolve="ExprBlock" />
439439
<node concept="3EZMnI" id="2vkvJYSN66c" role="2wV5jI">
440440
<node concept="PMmxH" id="1znK7yZd9a2" role="3EZMnx">
441-
<ref role="PMmxG" to="m999:1znK7yZd5ns" resolve="TopLevelExprContentAlias" />
441+
<ref role="PMmxG" to="m999:1znK7yZd5ns" resolve="ITopLevelExprContentAlias" />
442442
</node>
443443
<node concept="_tjkj" id="2vkvJYSN6eZ" role="3EZMnx">
444444
<node concept="3EZMnI" id="2vkvJYSN6bF" role="_tjki">
@@ -629,7 +629,7 @@
629629
<node concept="3EZMnI" id="3_milxHI$D1" role="3EZMnx">
630630
<node concept="l2Vlx" id="5IgV30Xk_HK" role="2iSdaV" />
631631
<node concept="PMmxH" id="1znK7yZd8UR" role="3EZMnx">
632-
<ref role="PMmxG" to="m999:1znK7yZd5ns" resolve="TopLevelExprContentAlias" />
632+
<ref role="PMmxG" to="m999:1znK7yZd5ns" resolve="ITopLevelExprContentAlias" />
633633
</node>
634634
<node concept="_tjkj" id="2vkvJYSPA7e" role="3EZMnx">
635635
<node concept="3EZMnI" id="2vkvJYSPA7f" role="_tjki">

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.doc/models/editor.mps

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,7 @@
581581
<node concept="2iRkQZ" id="1JOtRcapYu4" role="2iSdaV" />
582582
<node concept="3EZMnI" id="1sudaVNqvmh" role="3EZMnx">
583583
<node concept="PMmxH" id="1znK7yZdcjw" role="3EZMnx">
584-
<ref role="PMmxG" to="m999:1znK7yZd5ns" resolve="TopLevelExprContentAlias" />
584+
<ref role="PMmxG" to="m999:1znK7yZd5ns" resolve="ITopLevelExprContentAlias" />
585585
</node>
586586
<node concept="3F1sOY" id="1JOtRcapYu$" role="3EZMnx">
587587
<ref role="1NtTu8" to="34lm:1JOtRcapYu0" resolve="path" />
@@ -760,7 +760,7 @@
760760
<ref role="1XX52x" to="34lm:4vZ65iK7gAp" resolve="Bookmark" />
761761
<node concept="3EZMnI" id="4vZ65iK7gBb" role="2wV5jI">
762762
<node concept="PMmxH" id="1znK7yZdbFD" role="3EZMnx">
763-
<ref role="PMmxG" to="m999:1znK7yZd5ns" resolve="TopLevelExprContentAlias" />
763+
<ref role="PMmxG" to="m999:1znK7yZd5ns" resolve="ITopLevelExprContentAlias" />
764764
</node>
765765
<node concept="3F0A7n" id="4vZ65iK7hp5" role="3EZMnx">
766766
<ref role="1NtTu8" to="34lm:4vZ65iK7hoR" resolve="label" />

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.lookup/models/editor.mps

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@
325325
<ref role="1XX52x" to="8qwc:55lPkJGFLaQ" resolve="LookupTable" />
326326
<node concept="3EZMnI" id="55lPkJGG4A_" role="2wV5jI">
327327
<node concept="PMmxH" id="1znK7yZdc$o" role="3EZMnx">
328-
<ref role="PMmxG" to="m999:1znK7yZd5ns" resolve="TopLevelExprContentAlias" />
328+
<ref role="PMmxG" to="m999:1znK7yZd5ns" resolve="ITopLevelExprContentAlias" />
329329
</node>
330330
<node concept="3F0A7n" id="55lPkJGG5aw" role="3EZMnx">
331331
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.messages/models/editor.mps

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -576,7 +576,7 @@
576576
<node concept="3EZMnI" id="3vxfdxbcDNW" role="2wV5jI">
577577
<node concept="3EZMnI" id="3vxfdxbcDNB" role="3EZMnx">
578578
<node concept="PMmxH" id="1znK7yZddp_" role="3EZMnx">
579-
<ref role="PMmxG" to="m999:1znK7yZd5ns" resolve="TopLevelExprContentAlias" />
579+
<ref role="PMmxG" to="m999:1znK7yZd5ns" resolve="ITopLevelExprContentAlias" />
580580
</node>
581581
<node concept="3F0A7n" id="3vxfdxbcDNQ" role="3EZMnx">
582582
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />

0 commit comments

Comments
 (0)