Skip to content

Commit a985c7f

Browse files
committed
more documentation
1 parent 755df71 commit a985c7f

1 file changed

Lines changed: 16 additions & 49 deletions

File tree

README.md

Lines changed: 16 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,12 @@ Once the script is completed, all the SUTs will be available under the `dist` fo
128128
Note that here the drivers will be built as well besides the SUTs, and the SUT themselves will be instrumented by code manipulations (for white-box testing heuristics) of _EvoMaster_ (this is for JavaScript and .Net, whereas instrumentation for JVM is done at runtime, via an attached JavaAgent).
129129

130130

131-
For using EMB in other context, you can build (and install) each module separately, based on needs. See next section.
132-
However, it is important to understand how this repository is structured, to be able to effectively navigate through it.
131+
For using EMB in other context, you can build (and install) each module separately, based on needs.
132+
For example, a Maven module can be installed with:
133+
134+
``mvn clean package -DskipTests``
133135

136+
However, it is important to understand how this repository is structured, to be able to effectively navigate through it.
134137
Each folder represents a set of SUTs (and drivers) that can be built using the same tools.
135138
For example, the folder `jdk_8_maven` contains all the SUTs that need JDK 8 and are built with Maven.
136139
On the other hand, the SUTs in the folder `jdk_11_gradle` require JDK 11 and Gradle.
@@ -139,47 +142,23 @@ For JVM and .Net, each module has 2 submodules, called `cs` (short for "Case Stu
139142
`cs` contains all the source code of the different SUTs, whereas `em` contains all the drivers.
140143
Note: building a top-module will build as well all of its internal submodules.
141144

145+
Regarding JavaScript, unfortunately NodeJS does not have a good handling of multi-module projects.
146+
Each SUT has to be built separately.
147+
However, for each SUT, we put its source code under a folder called `src`, whereas all the code related to the drivers is under `em`.
142148

149+
The driver classes for Java and .Net are called `EmbeddedEvoMasterController`.
150+
For JavaScript, they are in a script file called `app-driver.js`.
151+
Note that Java also a different kind of driver called `ExternalEvoMasterController`.
152+
The difference is that in External the SUT is started on a separated process, and not running in the same JVM of the driver itself.
143153

144154

145155

146-
## Build The Systems
147-
148-
### Build JDK_8_MAVEN
149-
150-
The folder `cs` (*case study*) contains the source code of the different
151-
system under tests (SUT) in this benchmark, for JDK 8 and Maven.
152-
153-
The folder `em` (*EvoMaster*) contains the classes needed to be written to enable
154-
the use of EvoMaster on the SUTs.
155-
In particular, there are `EmbeddedEvoMasterController` and
156-
`ExternalEvoMasterController` class implementations for each SUT.
157-
Note: usually you would write a EvoMaster controller class in the same module
158-
of the SUTs.
159-
Here, they are in different modules just to make clear what is needed to implement
160-
to enable the use of EvoMaster.
161-
162-
163-
To compile and generate all the jar files, use the command:
164-
165-
``mvn clean package -DskipTests``
156+
## Old Versions
166157

167-
Currently, all the case studies do require JDK __8__.
168-
They will not compile with a different version.
169-
170-
_Note_: the case studies do import EvoMaster as a library. Current SNAPSHOT
171-
versions of the case studies do use the most recent SNAPSHOT version of EvoMaster
172-
(the two versioning numbers are aligned).
173-
We do __NOT__ publish the SNAPSHOT dependencies online.
174-
This means that, if you try to build the project directly, it will fail due to
175-
missing SNAPSHOT dependencies.
176-
177-
To use such SNAPSHOT versions, you need first a `mvn install` of EvoMaster on your
178-
machine (so that the SNAPSHOT jars are created, and put under your `~/.m2` folder).
179-
However, in the Git repository of EMB, we did tag the versions of EMB that are
180-
using the published versions of EvoMaster.
158+
The release of EMB are linked in version number with the release of EvoMaster, as EvoMaster's libraries are used in the drivers (e.g., to clean databases and configure auth info).
159+
In the Git repository of EMB, we did tag the versions of EMB.
181160
See the [releases](https://github.com/EMResearch/EMB/releases) page.
182-
For example, to use version `X` of EvoMaster, you can check out the Git commit
161+
For example, to use version `X`, you can check out the Git commit
183162
of EMB tagged with version `X`.
184163
To see the current available tags, from a command-line you can execute:
185164

@@ -206,18 +185,6 @@ the following plugin dependency version:
206185
</plugin>
207186
```
208187

209-
Besides JDK 8, to build from Maven you will also need NPM and NodeJS installed
210-
on your machine (as some projects have GUIs built with JS).
211-
212-
213-
### Build DOTNET_3
214-
215-
*Documentation under construction*
216-
217-
218-
### Build JS_NPM
219-
220-
*Documentation under construction*
221188

222189
### Build *develop* Branch
223190

0 commit comments

Comments
 (0)