Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsboyko2014-06-10 20:17:02 +0000
committersboyko2014-06-10 20:17:02 +0000
commit12b09f407d08c46a08d3634834f71701d8070da5 (patch)
treee6cffa8a0fbebc284bd579608d9e6a3d44f7418f
parent3226cd23abc0c65b6892daa0569a57fbfc225a93 (diff)
downloadorg.eclipse.qvto-12b09f407d08c46a08d3634834f71701d8070da5.tar.gz
org.eclipse.qvto-12b09f407d08c46a08d3634834f71701d8070da5.tar.xz
org.eclipse.qvto-12b09f407d08c46a08d3634834f71701d8070da5.zip
[432969] - Add hooks for contributing 3rd-party visitor decorators -Luna_RC4
debugger regression on nested transformations
-rw-r--r--plugins/org.eclipse.m2m.qvt.oml.debug.core/src/org/eclipse/m2m/qvt/oml/debug/core/vm/QVTODebugEvaluator.java4
-rw-r--r--tests/org.eclipse.m2m.tests.qvt.oml.ui/debuggerTestData/tests/testBreakpointForNestedTransf/in.ecore9
-rw-r--r--tests/org.eclipse.m2m.tests.qvt.oml.ui/debuggerTestData/tests/testBreakpointForNestedTransf/markedTest.qvto52
-rw-r--r--tests/org.eclipse.m2m.tests.qvt.oml.ui/debuggerTestData/tests/testBreakpointForNestedTransf/test.xml9
-rw-r--r--tests/org.eclipse.m2m.tests.qvt.oml.ui/src/org/eclipse/m2m/internal/tests/qvt/oml/debugger/DebuggerTests.java1
5 files changed, 73 insertions, 2 deletions
diff --git a/plugins/org.eclipse.m2m.qvt.oml.debug.core/src/org/eclipse/m2m/qvt/oml/debug/core/vm/QVTODebugEvaluator.java b/plugins/org.eclipse.m2m.qvt.oml.debug.core/src/org/eclipse/m2m/qvt/oml/debug/core/vm/QVTODebugEvaluator.java
index 300657154..4dce717a2 100644
--- a/plugins/org.eclipse.m2m.qvt.oml.debug.core/src/org/eclipse/m2m/qvt/oml/debug/core/vm/QVTODebugEvaluator.java
+++ b/plugins/org.eclipse.m2m.qvt.oml.debug.core/src/org/eclipse/m2m/qvt/oml/debug/core/vm/QVTODebugEvaluator.java
@@ -110,10 +110,10 @@ public final class QVTODebugEvaluator extends QvtOperationalEvaluationVisitorImp
}
@Override
- protected QvtOperationalEvaluationVisitorImpl createNestedEvaluationVisitor(
+ protected InternalEvaluator createNestedEvaluationVisitor(
QvtOperationalEvaluationVisitorImpl parent,
QvtOperationalEvaluationEnv nestedEvalEnv) {
- return new QVTODebugEvaluator(parent, nestedEvalEnv);
+ return new QVTODebugEvaluator(parent, nestedEvalEnv).createInterruptibleVisitor();
}
@Override
diff --git a/tests/org.eclipse.m2m.tests.qvt.oml.ui/debuggerTestData/tests/testBreakpointForNestedTransf/in.ecore b/tests/org.eclipse.m2m.tests.qvt.oml.ui/debuggerTestData/tests/testBreakpointForNestedTransf/in.ecore
new file mode 100644
index 000000000..9a365c0db
--- /dev/null
+++ b/tests/org.eclipse.m2m.tests.qvt.oml.ui/debuggerTestData/tests/testBreakpointForNestedTransf/in.ecore
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="pack" nsURI="jmodel://de/unibw/tg/pack" nsPrefix="pack">
+ <eClassifiers xsi:type="ecore:EClass" name="Class1">
+ <eAnnotations source="Anno">
+ <details key="initval" value="test"/>
+ </eAnnotations>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.m2m.tests.qvt.oml.ui/debuggerTestData/tests/testBreakpointForNestedTransf/markedTest.qvto b/tests/org.eclipse.m2m.tests.qvt.oml.ui/debuggerTestData/tests/testBreakpointForNestedTransf/markedTest.qvto
new file mode 100644
index 000000000..ea2a7b745
--- /dev/null
+++ b/tests/org.eclipse.m2m.tests.qvt.oml.ui/debuggerTestData/tests/testBreakpointForNestedTransf/markedTest.qvto
@@ -0,0 +1,52 @@
+modeltype Ecore uses ecore('http://www.eclipse.org/emf/2002/Ecore');
+
+transformation testBreakpointForNestedTransf(in inModel : Ecore)
+ extends T1
+ extends T3
+{
+ property prop2 = prop;
+ main() {
+ var v1 = new T3();
+ var v2 = new T1(inModel);
+ var v5 = prop;
+ var v6: Tuple(obj : EClassifier, size : Integer);
+ assert fatal (T3_helper() = "T3_helper ");
+--!@#b1 breakpoint
+ new T1(inModel).transform();
+ }
+}
+
+transformation T1(in inModel : Ecore)
+ access T3
+{
+ property prop : String = "prop";
+
+ main() {
+ inModel.rootObjects()![EPackage].deepclone();
+ var v1 = new T3();
+ var v2 = prop;
+ var v3: Tuple(obj : EClassifier, size : Integer);
+ assert fatal (prop = "prop");
+--!@#b2 breakpoint
+ new T3().transform();
+ }
+}
+
+
+transformation T3()
+{
+ property prop2 : String = "prop2";
+ property prop3 = 123;
+ main() {
+--!@#b3 breakpoint
+ var v1 = new T3();
+ var v4: Tuple(obj : EClassifier, size : Integer);
+ assert fatal (prop2 = "prop2");
+ assert fatal (prop3.repr() = "123");
+ }
+
+ helper T3_helper() : String {
+ return 'T3_helper '
+ }
+}
+
diff --git a/tests/org.eclipse.m2m.tests.qvt.oml.ui/debuggerTestData/tests/testBreakpointForNestedTransf/test.xml b/tests/org.eclipse.m2m.tests.qvt.oml.ui/debuggerTestData/tests/testBreakpointForNestedTransf/test.xml
new file mode 100644
index 000000000..7a0df7bc3
--- /dev/null
+++ b/tests/org.eclipse.m2m.tests.qvt.oml.ui/debuggerTestData/tests/testBreakpointForNestedTransf/test.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!DOCTYPE script SYSTEM "../DebuggerTestScript.dtd">
+
+<script>
+ <resume line="b1" cause="breakpoint"/>
+ <resume line="b2" cause="breakpoint"/>
+ <resume line="b3" cause="breakpoint"/>
+</script>
diff --git a/tests/org.eclipse.m2m.tests.qvt.oml.ui/src/org/eclipse/m2m/internal/tests/qvt/oml/debugger/DebuggerTests.java b/tests/org.eclipse.m2m.tests.qvt.oml.ui/src/org/eclipse/m2m/internal/tests/qvt/oml/debugger/DebuggerTests.java
index 030b89a86..bd113f6ae 100644
--- a/tests/org.eclipse.m2m.tests.qvt.oml.ui/src/org/eclipse/m2m/internal/tests/qvt/oml/debugger/DebuggerTests.java
+++ b/tests/org.eclipse.m2m.tests.qvt.oml.ui/src/org/eclipse/m2m/internal/tests/qvt/oml/debugger/DebuggerTests.java
@@ -71,6 +71,7 @@ public class DebuggerTests {
new SimpleDebugData("testBreakpointForExplicitOutExp"), //$NON-NLS-1$
new SimpleDebugData("testBreakpointForExpressionStatement"), //$NON-NLS-1$
new SimpleDebugData("testBreakpointForOpCallSource"), //$NON-NLS-1$
+ new SimpleDebugData("testBreakpointForNestedTransf"), //$NON-NLS-1$
};
}

Back to the top