eclipse-epsilon / epsilon

Epsilon is a family of Java-based scripting languages for automating common model-based software engineering tasks, such as code generation, model-to-model transformation and model validation, that work out of the box with EMF (including Xtext and Sirius), UML (including Cameo/MagicDraw), Simulink, XML and other types of models.
https://eclipse.org/epsilon
Eclipse Public License 2.0
67 stars 10 forks source link

[DAP] Add tests for other Epsilon languages #99

Closed agarciadom closed 5 months ago

agarciadom commented 6 months ago

It'd be useful to have tests ensuring that the DAP support works as intended from other languages besides EOL.

agarciadom commented 5 months ago

EGX + EGL is now working as well. This one required redesigning the adapter quite a bit, as the old assumption that we were only tracking one thread of execution didn't quite hold. I'll continue looking at the other Epsilon languages.

agarciadom commented 5 months ago

EVL tests have been added in d09184583. These did not require any changes in the adapter.

agarciadom commented 5 months ago

ETL tests have been added in 14a3737ce. No changes needed in the adapter.

agarciadom commented 5 months ago

ECL tests have been added in 1dc3ca2e0. No changes needed in the adapter.

agarciadom commented 5 months ago

EML tests have been added in 0c42b33d8. No changes needed in the adapter.

agarciadom commented 5 months ago

EPL tests have been added in 5961dba56. I noticed we weren't setting end line+column values in the stack traces, so we're doing that now. I also noticed that Epsilon is 1-based for lines and 0-based for columns, so I tweaked the column number conversion in the adapter as well.

agarciadom commented 5 months ago

An EMG test has been added in d786f5eda. It's a very small test: it assumes imports are tested from the EOL side of things.

agarciadom commented 5 months ago

Pinset tests were added in eccab2986. I found a subtle bug in how we reused object references in SuspendedState while writing the tests of this class. There was also a problem in PinsetDebugger where it wouldn't let you stop at the expression of a column.

agarciadom commented 5 months ago

Flock tests were added in f10e37ab6. No changes to the debug adapter.

agarciadom commented 5 months ago

Forgot to mention EUnit: tests have been added for it in c4c6720b1. Had to make a few fixes to protect against several possible NPEs. With this, we cover everything except EWL, which would need some additional UI tweaks to flip it to DAP-based debugging anyway: that's for another issue.