jason-lang / jason

Jason is a fully-fledged interpreter for an extended version of AgentSpeak, a BDI agent-oriented logic programming language.
http://jason-lang.github.io
GNU Lesser General Public License v3.0
224 stars 67 forks source link

Embedding test facilities #67

Closed cleberjamaral closed 4 years ago

cleberjamaral commented 4 years ago

This is a work in progress! Do not merge until fixing the paths processing.

The problem it is addressing is how to embed all test facilities into Jason in order to a project that uses jason.jar can do unit-tests of its own asl files, using the unit-tests facilities such as tests management which gives support to Continuous Integration services.

Currently, most of the classes in src/test/jason/ are already embeded, but besides the need to add into the build.gradle of the user's project the task testJason, the user also must have the project unit-tests.mas2j, the agent test_manager and logging.properties files for the different verbosity of tests. It seems that the task of gradle would be solved when a grade plugin for jason is developed. For the other files, I am trying to use a mas2j that comes from the jar, as well as the logging properties and agent test_manager.

cleberjamaral commented 4 years ago

It is outdated. This WIP has started with the following commit: https://github.com/jason-lang/jason/commit/08a060fd59bdcc3a3337b3760eb782569702ba25

It still need to be found a way to allow an embedded mas2j to run asl that are out of the jar. It wasn't tested if an aslSrcPath could be like ../../somepath in which could lead to a folder out of the jar. But it would be vulnerable to the address of the jar in a sub-project (is it necessarily placed into lib/?). It seems a better solution would to add another argument to the main class which is another way to add a source path, but doing so it would be a path of the host machine which would avoid the vulnerability mentioned in the other possible solution.