Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
VIATRA/Query/DeveloperDocumentation/FeatureSetAndTesting
Contents
Features (UI Components)
Query Editor
The Xtext-based editor can be used to create EMF-IncQuery queries. The editor provides many features to ease the development, such as automatic code completion, validation, etc.
Query Explorer
This view can be used to apply queries on various EMF instance models. The Query Explorer can interact with EMF-based editors such as the generated tree editor, and even with GMF and Graphiti editors. Advanced querying use cases, like pattern match set filtering and detail observation is also available with the Query Explorer. The following picture presents the Pattern Editor and the Query Explorer view. More
Preferences
Validation framework
EMF-IncQuery provides facilities to create validation rules based on the pattern language of the framework. These rules can be evaluated on various EMF instance models and upon violations of constraints, markers are automatically created in the Eclipse Problems View. More
Viewers
The goal of the IncQuery Viewers component is to help developing model-driven user interfaces by filling and updating model viewer results with the results of model queries. The implementation relies on (and is modeled after) the JFace Data binding and JFace Viewers libraries. More
Rete Visualizer
Testing framework
IncQuery Debugger View
The EMF-IncQuery debugger tooling aims to provide useful functionalities for the users, so that they can easily observe the contents of the EMF-IncQuery related artifacts when the program execution has stopped at a breakpoint. More
Test suites
EMF-IncQuery Test Suites | ||||||
---|---|---|---|---|---|---|
Test project name | Metamodel | Test type | Tested feature | Coverage (the most covered components) | Repository | CI Site |
patternlanguage.emf.tests | no metamodel | unit test | Testing elements of the patternlanguage and parsing | patternlanguage (50%), patternlanguage.emf (50%) | incquery-core-repo | Hudson |
runtime.base.itc.test | no metamodel | unit test | Testing graph implementation and graph traversal algorithms | runtime.base.itc (67%) | incquery-core-repo | Hudson |
runtime.tests | dynamically created | component integration test | Testing matcher and functional dependency (minimal cover) | runtime (30%), patternlanguage (30%), snapshot (30%) | incquery-core-repo | Hudson |
network.tests | network.ecore | component test (performance) | Testing different size of models and investigating performance | runtime (30%) | eiq-examples-repo | - |
school.tests | school.ecore | component integration test | Executing different queries on school model and framework testing | runtime (50%), patternlanguage (50%), snapshot(50%) | eiq-examples-repo | Jenkins |
ecorequery.tests | ecore.ecore | component integration test | Executing different queries on Ecore.ecore model | runtime (40%), patternlanguage (40%) | eiq-examples-repo | Jenkins |
bpmn.tests | only instance model | out of date | out of date | out of date | eiq-examples-repo | - |
derivedTest | derivedModel.ecore | out of date | out of date | out of date | eiq-examples-repo | - |
runtime.base.test | school.ecore (school1.school and school2.school) | unit test | Testing getters for different EMF types (also dynamic EMF models) | runtime.base (70%), runtime.base.itc (50%) | eiq-examples-repo | - |
runtime.runonce.tests | eiqlibrary.ecore | component integration test | Test cases that run different kind of derived features in run-once engine | runtime.matchers (50%), runtime.base (45%), runtime.rete (45%) | examples-repo | - |
bpm.tests | derivedModel.ecore, integrated.ecore, operation.ecore, process.ecore, system.ecore | component integration test | Executing queries on BPMN model and testing IncQueryEngine features | runtime.matchers (50%), runtime.rete(45%) | examples-repo | Jenkins |