You've already forked linux-packaging-mono
Imported Upstream version 5.0.0.42
Former-commit-id: fd56571888259555122d8a0f58c68838229cea2b
This commit is contained in:
parent
1190d13a04
commit
6bdd276d05
72
external/corefx/Documentation/building/cross-platform-testing.md
vendored
Normal file
72
external/corefx/Documentation/building/cross-platform-testing.md
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
# Running XUnit tests cross platform
|
||||
|
||||
Unlike Windows, where we run tests as part of the build, we have a seperate
|
||||
explicit testing step on Linux and OSX. Over time, this special step will go
|
||||
away in favor of a similar "run tests during the build" model.
|
||||
|
||||
`run-test.sh` is the shell script used by Jenkins in order to run all the XUnit
|
||||
tests cross platform. It combines the cross platform CoreCLR and CoreFX builds
|
||||
together into a test layout and then runs each test project from CoreFX.
|
||||
|
||||
In order to run tests, you need to build a bunch of different projects. The
|
||||
instructions assume you are building for Linux, but are easily modifiable for OSX.
|
||||
|
||||
1. Release or debug CoreCLR. In Jenkins we use a release CoreCLR build instead
|
||||
of debug CoreCLR since it is much faster at actually running XUnit, but debug
|
||||
will work if you have the time.
|
||||
|
||||
From the root of your CoreCLR enlistment on Linux, run `./build.sh Release` in
|
||||
order to build.
|
||||
2. A corresponding version of mscorlib.dll. Depending on your platform, this may
|
||||
be produced when you run `build.sh`. Otherwise, this can be produced by
|
||||
running `build.cmd linuxmscorlib Release` from a CoreCLR enlistment on
|
||||
Windows. Remember that the runtime and mscorlib are tightly coupled with
|
||||
respect to object sizes and layout so you need to ensure you have either a
|
||||
release coreclr and release mscorlib or debug coreclr and debug mscorlib.
|
||||
3. A Linux build of CoreFX. We currently have experimental support for building
|
||||
CoreFX on Linux via `build.sh`.
|
||||
The other option is:
|
||||
|
||||
* Build the managed parts of CoreFX on Windows. To do so run `build-managed.cmd -os=Linux`. It is okay to build a Debug version of CoreFX and run it
|
||||
on top of a release CoreCLR (which is exactly what we do in Jenkins).
|
||||
|
||||
* Build the native parts of CoreFX on Linux. To do so run `./build-native.sh` from the root of your CoreFX enlistment.
|
||||
|
||||
4. The packages folder which contains all the packages restored from NuGet and
|
||||
MyGet when building CoreFX.
|
||||
|
||||
|
||||
After building all the projects, we need to copy any of the files we built on Windows
|
||||
over to our Linux machine. The easiest way to do this is to mount a windows
|
||||
share on linux. For example, I do:
|
||||
|
||||
```
|
||||
# sudo mount.cifs "//MATELL3/D\$" ~/mnt/matell3/d -o user=matell
|
||||
```
|
||||
|
||||
If needed, copy CoreFX:
|
||||
|
||||
```
|
||||
# rsync -v -r ~/mnt/matell3/d/git/corefx/bin/tests ~/git/corefx/bin/tests
|
||||
```
|
||||
|
||||
If needed, copy the packages folder:
|
||||
|
||||
```
|
||||
# rsync -v -f ~/mnt/matell3/d/git/corefx/packages ~/git/corefx/packages
|
||||
```
|
||||
|
||||
If needed, copy mscorlib:
|
||||
```
|
||||
# rsync -v -r ~/mnt/matell3/d/git/coreclr/bin/Product/ ~/git/coreclr/bin/Product/
|
||||
```
|
||||
|
||||
Then, run the tests. We need to pass an explict path to the location of CoreCLR
|
||||
and mscorlib.dll.
|
||||
|
||||
```
|
||||
# ./run-test.sh --coreclr-bins ~/git/coreclr/bin/Product/Linux.x64.Release \
|
||||
--mscorlib-bins ~/git/coreclr/bin/Product/Linux.x64.Release \
|
||||
```
|
||||
|
||||
run-test.sh should now invoke all the managed tests.
|
||||
Reference in New Issue
Block a user