JPlag
JPlag copied to clipboard
Dedicated front-end tests (in separate projects?)
Test cases for frontends, such as the Java Feature Test, should not reside in the core projects. Rather, they should be distributed into their respective frontends. However, if these require a full JPlag run, they cannot reside in the frontend project, as they only have a dependency on the front-end utils. Thus, we may need dedicated test projects for the front-ends.
This is the current dependency graph:
graph BT;
java("Java Frontend")-->utils("Frontend Utilities");
jplag("JPlag Core")-->utils;
cpp("C/C++ Frontend")-->utils;
jplag-->java;
jplag-->cpp;
click jplag "https://github.com/jplag/JPlag/tree/master/jplag" _blank
click java "https://github.com/jplag/JPlag/tree/master/jplag.frontend.java" _blank
click cpp "https://github.com/jplag/JPlag/tree/master/jplag.frontend.cpp" _blank
click utils "https://github.com/jplag/JPlag/tree/master/jplag.frontend-utils" _blank
This is my proposed solution:
graph BT;
java("Java Frontend")-->utils("Frontend Utilities");
cpp("C/C++ Frontend")-->utils;
jplag("JPlag Core")-->java;
jplag-->utils;
jplag-->cpp;
jtest("Java Test Project")-->java;
jtest-->jplag;
cpptest(C/C++ Test Project)-->jplag;
cpptest-->cpp;
click jplag "https://github.com/jplag/JPlag/tree/master/jplag" _blank
click java "https://github.com/jplag/JPlag/tree/master/jplag.frontend.java" _blank
click cpp "https://github.com/jplag/JPlag/tree/master/jplag.frontend.cpp" _blank
click utils "https://github.com/jplag/JPlag/tree/master/jplag.frontend-utils" _blank
Unrelated: mermaid in markdown is dope!
Lightweight frontend test cases that do not depend on the JPlag core can now be defined in the frontend projects themselves. For details see #408.
Closed, as we currently employ lightweight language module tests that do not depend on the JPlag core.