Skip to content

Commit a32394b

Browse files
committed
disable build of .NET, plus clarification
1 parent 52516a9 commit a32394b

2 files changed

Lines changed: 14 additions & 7 deletions

File tree

README.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ We just re-implemented in different languages, and put them behind a web service
8484
* SCS (not-known license, artificial string examples coming from different sources)
8585

8686

87-
### REST: .Net/C#
87+
### REST: .NET/C#
8888

8989
* Menu.API (not-known license), from [https://github.com/chayxana/Restaurant-App](https://github.com/chayxana/Restaurant-App)
9090

@@ -124,7 +124,7 @@ There are 2 main use cases for EMB:
124124
* Run experiments with other tools
125125

126126
Everything can be setup by running the script `scripts/dist.py`.
127-
Note that you will need installed at least JDK 8, JDK 11, NPM and .Net 3.x, as well as Docker.
127+
Note that you will need installed at least JDK 8, JDK 11, NPM and .NET 3.x, as well as Docker.
128128
Also, you will need to setup environment variables like `JAVA_HOME_8` and `JAVA_HOME_11`.
129129
The script will issue error messages if any prerequisite is missing.
130130
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).
@@ -145,14 +145,18 @@ Once the script is completed, all the SUTs will be available under the `dist` fo
145145

146146

147147

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).
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).
149149

150150
In the built `dist` folder, the files will be organized as follows:
151151

152152
* For JVM: `<name>-sut.jar` will be the non-instrumented SUTs, whereas their executable drivers will be called `<name>-evomaster-runner.jar`.
153153
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.
154154
* 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)
155+
* For .NET: currently only the instrumented version is available (WORK IN PROGRESS)
156+
157+
Note: the building of .NET SUTs/drivers is disabled by default in `dist.py`.
158+
The reason is that, at the time of this writing, it is _very_ expensive to publish libraries on NuGet (due to the high costs of code certificates).
159+
The EM Driver library for .NET would have to be installed manually on local machine before any of the C# drivers can be used.
156160

157161

158162

@@ -171,15 +175,15 @@ Each folder represents a set of SUTs (and drivers) that can be built using the s
171175
For example, the folder `jdk_8_maven` contains all the SUTs that need JDK 8 and are built with Maven.
172176
On the other hand, the SUTs in the folder `jdk_11_gradle` require JDK 11 and Gradle.
173177

174-
For JVM and .Net, each module has 2 submodules, called `cs` (short for "Case Study") and `em` (short for "EvoMaster").
178+
For JVM and .NET, each module has 2 submodules, called `cs` (short for "Case Study") and `em` (short for "EvoMaster").
175179
`cs` contains all the source code of the different SUTs, whereas `em` contains all the drivers.
176180
Note: building a top-module will build as well all of its internal submodules.
177181

178182
Regarding JavaScript, unfortunately NodeJS does not have a good handling of multi-module projects.
179183
Each SUT has to be built separately.
180184
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`.
181185

182-
The driver classes for Java and .Net are called `EmbeddedEvoMasterController`.
186+
The driver classes for Java and .NET are called `EmbeddedEvoMasterController`.
183187
For JavaScript, they are in a script file called `app-driver.js`.
184188
Note that Java also a different kind of driver called `ExternalEvoMasterController`.
185189
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.

scripts/dist.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,9 +245,12 @@ def makeZip():
245245
build_jdk_8_maven()
246246
build_jdk_11_maven()
247247
build_jdk_11_gradle()
248-
build_dotnet_3()
249248
build_js_npm()
250249

250+
# Note: if uncomment this, must first install EM client manually, as not available on NuGet
251+
#build_dotnet_3()
252+
253+
251254
copyEvoMasterAgent()
252255

253256
if MAKE_ZIP:

0 commit comments

Comments
 (0)