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
+31-5Lines changed: 31 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -117,25 +117,51 @@ To use EMB, you need to clone this repository:
117
117
git clone https://github.com/EMResearch/EMB.git
118
118
```
119
119
120
-
There are 2 use cases for EMB:
120
+
There are 2 main use cases for EMB:
121
121
122
122
* Run experiments with _EvoMaster_
123
123
124
124
* Run experiments with other tools
125
125
126
-
To run experiments with _EvoMaster_, everything can be setup by running the script `scripts/dist.py`.
126
+
Everything can be setup by running the script `scripts/dist.py`.
127
127
Note that you will need installed at least JDK 8, JDK 11, NPM and .Net 3.x, as well as Docker.
128
128
Also, you will need to setup environment variables like `JAVA_HOME_8` and `JAVA_HOME_11`.
129
129
The script will issue error messages if any prerequisite is missing.
130
-
Once the script is completed, all the SUTs will be available under the `dist` folder, and a `dist.zip` will be created as well.
131
-
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).
130
+
Once the script is completed, all the SUTs will be available under the `dist` folder, and a `dist.zip` will be created as well (if `scripts/dist.py` is run with `True` as input).
131
+
132
+
[//]: #(There is also a Docker file to run `dist.py`, named `build.dockerfile`.)
[//]: #(The `dist` folder with all SUTs will be under `/emb/dist`. )
145
+
146
+
147
+
148
+
Note that here the drivers will be built as well besides the SUTs, and the SUT themselves will also have an instrumented version (for white-box testing heuristics) for _EvoMaster_ (this is for JavaScript and .Net, whereas instrumentation for JVM is done at runtime, via an attached JavaAgent).
149
+
150
+
In the built `dist` folder, the files will be organized as follows:
151
+
152
+
* For JVM: `<name>-sut.jar` will be the non-instrumented SUTs, whereas their executable drivers will be called `<name>-evomaster-runner.jar`.
153
+
Instrumentation can be done at runtime by attaching the `evomaster-agent.jar` JavaAgent. If you are running experiments with EvoMaster, this will be automatically attached when running experiments with `exp.py` (available in the EvoMaster's repository). Or it can be attached manually with JVM option `-Devomaster.instrumentation.jar.path=evomaster-agent.jar` when starting the driver.
154
+
* For NodeJS: under the folder `<name>` (for each NodeJS SUT), the SUT is available under `src`, whereas the instrumented version is under `build`.
155
+
* For .Net: currently only the instrumented version is available (WORK IN PROGRESS)
156
+
157
+
132
158
133
159
For running experiments with EvoMaster, you can also "start" each driver directly from an IDE (e.g., IntelliJ).
134
160
Each of these drivers has a "main" method that is running a REST API (binding on default port 40100), where each operation (like start/stop/reset the SUT) can be called via an HTTP message by EvoMaster.
135
161
For JavaScript, you need to use the files `em-main.js`.
136
162
137
163
138
-
For using EMB in other contexts besides EvoMaster, you can build (and install) each module separately, based on needs.
164
+
You can also build (and install) each module separately, based on needs.
139
165
For example, a Maven module can be installed with:
0 commit comments