diff options
author | sboyko | 2014-06-10 20:17:02 +0000 |
---|---|---|
committer | sboyko | 2014-06-10 20:17:02 +0000 |
commit | 12b09f407d08c46a08d3634834f71701d8070da5 (patch) | |
tree | e6cffa8a0fbebc284bd579608d9e6a3d44f7418f | |
parent | 3226cd23abc0c65b6892daa0569a57fbfc225a93 (diff) | |
download | org.eclipse.qvto-12b09f407d08c46a08d3634834f71701d8070da5.tar.gz org.eclipse.qvto-12b09f407d08c46a08d3634834f71701d8070da5.tar.xz org.eclipse.qvto-12b09f407d08c46a08d3634834f71701d8070da5.zip |
debugger regression on nested transformations
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$ }; } |