You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+16-49Lines changed: 16 additions & 49 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -128,9 +128,12 @@ Once the script is completed, all the SUTs will be available under the `dist` fo
128
128
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).
129
129
130
130
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``
133
135
136
+
However, it is important to understand how this repository is structured, to be able to effectively navigate through it.
134
137
Each folder represents a set of SUTs (and drivers) that can be built using the same tools.
135
138
For example, the folder `jdk_8_maven` contains all the SUTs that need JDK 8 and are built with Maven.
136
139
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
139
142
`cs` contains all the source code of the different SUTs, whereas `em` contains all the drivers.
140
143
Note: building a top-module will build as well all of its internal submodules.
141
144
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`.
142
148
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.
143
153
144
154
145
155
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
166
157
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.
181
160
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
183
162
of EMB tagged with version `X`.
184
163
To see the current available tags, from a command-line you can execute:
185
164
@@ -206,18 +185,6 @@ the following plugin dependency version:
206
185
</plugin>
207
186
```
208
187
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).
0 commit comments