Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
ARM64: Launch test build and run in parallel
|
|
This change allows to buildtest.cmd for arm64 in separate.
Currently we build coreclr and tests for arm64 and then run tests in
sequence even though we run the pre-built test suite.
This change pushes down the test built part into the lab post script that
launches buildtests.cmd and arm64postbuild.cmd concurrently. The latter
part is mostly waiting for the results from arm64 box. So we can almost
hide the test build time which is around 30 min.
|
|
|
|
|
|
|
|
|
|
I often fall into a build failure like the following when passing /clean
E:\Github\coreclr\tests\runtest.proj : error MSB4057: The target "rebuild"
does not exist in the project.
runtest.proj is actually invoked in two places one from a part of
build.cmd targeting CreateTestOverlay only, and the other from
runtest.cmd, which creates wrapper and actually running the tests.
So, definining "rebuild" target that does "clean" and "build" doesn't
solve this problem.
The fix is to not target "rebuild" in the former case since we are
explicitly targeting "CreateTestOverlay" only. Instead of putting "/t:rebuild"
in the common msbuild argument, I added it to each instance except this case.
|
|
|
|
than 260 chars
|
|
|
|
|
|
Apply the same kind of changes that were applied to build.cmd:
1. Improved readability and structure of the code.
2. Make all three look similar.
3. Add "sequential" and "msbuildargs" options
4. Add better logging and less verbose console output
|
|
This enables ilasm round-trip testing for Windows.
In order to test il{d}asm on xPlatforms, I injected ilasm round trip before executing the test.
This means this step is a part of the runtest not the buildtest -- unlike runtest, currently buildtest is only on Windows.
1. Test batch file is extended to run ildasm followed by ilasm.
2. BuildTest has now an optional flag "ilasmroundtrip" to enable the round-trip tests. Note under this flag, we run both the original binary and the round-trip binary respectively.
3. Test timeout is increased since the round-trip is part of runtime.
4. Did some clean-up on CLRTest.Execute.Batch.targets
5. Bail out the round-trip tests that are built against mscorlib instead of .Net Core.
6. Added /raweh to ildasm due to https://github.com/dotnet/coreclr/issues/2481
7. ilasmroundtrip.targets (~10 tests) are added to enable them by default in a regular test run.
Tested with enabling the entire tests (>5K tests) with 'ilasmroundtrip' on, which should be on in a daily or weekly stress mode.
|
|
This enables the use of ilasm from CoreCLR build to populate il tests instead of using a stock ilasm on Windows desktop.
Note currently we populate tests (even for xPlatforms) on Windows only.
But when we migrate this test population on xPlatforms, this can be simply used as well.
All permission related attributes are dropped which CoreCLR ignores anyhow. Or ilasm will fail to parse such attributes.
|
|
In checked builds coreclr, mscorlib, and the test are built optimized
but assertion checking is on. This adds additional coverage (the jit is
optimizing and assertion checking is on), speeds up testing compared to debug,
and allows testing JIT stress modes.
This doesn't affect CoreFX.
Several tests are currently failing in checked configuration due to newly
discovered bugs (JIT asserts). We didn't see these asserts in debug mode
because by default JIT is in minopt mode; we didn't see these bugs in release
mode because assertion checking is off. I will file the bugs once checked build
changes are in.
|
|
Provides for standalone execution as well as xunit discovery. I've also created a benchmark project.json for the various benchmarks to share.
Add inner iterations to bump per outer-iteration time to around 1 second. Conditionalize iteration count on Debug/Release build type.
Also, reduce logging verbosity by default when building tests. Add a "verbose" option to buildtest.cmd to ramp it back up.
|
|
|
|
These tests target the SysV AMD64 ABI in particular, which relies on
field types to decide how to pass by-value structs.
|
|
|
|
The following changes are being submitted in order to prepare for a large collection of tests to be ported from the internal legacy test tree.
- Adds "build kinds" to the test tree.
- Adds some documentation for the test tree
- Adds a Test Priority feature (see documentation Documentation/project-docs/tests.md for more information.
- Dropped the cs_template.csproj types and converted to individual CSProject files.
|
|
CoreCLR tests will need to be built on Windows and copied over to a non-Windows machine. Then, coreclr/tests/runtest.sh along
with some switches can be used to run the tests.
Changes:
- Run tests in parallel by default (use --sequential to force sequential mode)
- Update Windows test build to produce the Windows core overlay that includes test dependencies that are not built
- Add a number of switches (see coreclr/tests/runtest.sh for details) to provide locations of:
- The Windows test build
- The CoreCLR native test build
- Either:
- This:
- The core layout (including all of the below)
- Or:
- The CoreCLR build
- mscorlib.dll
- The CoreFX build
- The CoreFX native build
- Using information from above, build or use the core layout, and copy native test binaries to the respective test directories
- Add --testDir to specify an inclusive list of test directories to run
- Add text files to exclude tests:
- coreclr/tests/testsUnsupportedOutsideWindows.txt - Tests that are not supported outside Windows
- coreclr/tests/testsFailingOutsideWindows.txt - Tests that are known to fail outside Windows and are temporarily disabled while they are investigated
- Add --runFailingTestsOnly to run only the tests listed in coreclr/tests/testsFailingOutsideWindows.txt to verify known failures
- Produce xUnit-style output for the CI, output goes into <Windows test build folder>/coreclrtests.xml
|
|
|
|
Change build and tests scripts to detect VS2015 and use that if available by default
|
|
This allows building the Windows x86 version of CoreCLR by using "x86" for the BuildArch parameter of build.cmd. Note that CMAKE_SYSTEM_PROCESSOR is no longer used in Windows builds to set IS_64BIT_BUILD.
This change is enough to get CoreCLR to build but more changes are required for it to actually run correctly. In particular, the JIT compiler support for x86 is pretty limited at this point.
|
|
|
|
Especially with the builds of the tests, the diag logging significantly reduces TP in the build and seems to reduce parallelism a bit too. Change this to normal.
|
|
|
|
CMAKE_BUILD_TYPE should not be used with multi-configuration toolsets like Visual Studio. This commit removes the dependence of the Windows build on CMAKE_BUILD_TYPE.
See (https://github.com/dotnet/coreclr/pull/1111#commitcomment-11562822).
|
|
* Enables whole program optimization for release configuration
on Windows.
* Fixes all messages "/LTCG specified but no code generation required;
remove /LTCG from link command line to improve linker performance"
which slow down the build process.
* Fixes all messages "MSIL .netmodule or module compiled with /GL
found; restarting link with /LTCG; add /LTCG to the link command
line to improve linker performance" which slow down the build
process.
* The previous two fixes work in Release and Debug builds on Windows.
Issue-URL: #1086
|
|
|
|
The use of goto :eof in numerous places in the build and test scripts is problematic. If preceded by an echo or other command, it will overwrite the exit code and the script may return incorrectly. This was happening for buildtest, masking a recent ycompilation error in one of the tests.
Change all of the goto :eof's to exit /b.
|
|
This modifies the `build.cmd`, `build.sh`, and `buildtest.cmd` to only
remove previous output (binaries, intermediates, and logs) for the
selected configuration when the `clean` argument is specified.
This also modifies `runtest.cmd` to output log files in the same format
as `build.cmd`, `build.sh`, and `buildtest.cmd` do currently.
|
|
Previous it was required to have VS2013 but now VS2015 can also be used. The default is still 2013 though.
On a machine with both version installed it is possible to force VS2013/VS2015 with a parameter.
Note: Still some work has to be done to make compilation successfull on VS2015.
|
|
Conflicts:
build.cmd
|
|
non-zero code
|
|
* binaries is now bin, intermediates is now obj
* modifying unixmscorlib build to instead be linuxmscorlib + osxmscorlib.
* Change OS=Unix to OS=Linux/OS=OSX and modified properties to mimic corefx's TargetsUnix.
|
|
This change fixes an issue where tests cannot be built alone as well as cleans up the paths. The general path cleanup was done so that the path format and variable names generally follow the main build of the coreclr repo. Some highlights are:
* Don't use Cmake as a directory name for intermediates, use intermediates instead.
* Disable 4820 warning (this is about padding) when building tests. Reduces noise in output significantly
* Some fixes in typos and casing in the project files and build scripts
|
|
builds the managed components. The managed components can refer to the native projects by the following construct in the .csproj
<ProjectReference Include="CMakeLists.txt">
[tfs-changeset: 1427574]
|
|
Rework the output paths so that the OS may appear in them. This then follows the same form as corefx. This solves a number of problems:
1) When building unix mscorlib after the regular build, we would use the wrong intermediates for incremental.
2) When testing windows after building unix mscorlib we'd use the wrong outputs and fail.
This change removes our cmake directory and moves cmake generated files into intermediates (under OS/arch paths)
The reason is that the intermediates go under here when actually doing the build, and on unix based systems, we need to generate the cmake files for different builds into different directories for the purpose of preserving incremental builds.
Change clean behavior
Clean should simply delete the root binary. We also should not make assumptions about
whether necessary directories are available when we begin to build and should create them every time if
necessary.
Create directories as needed.
|
|
Fixes #178
|
|
|
|
deleted a new line
|
|
|
|
|
|
[tfs-changeset: 1407945]
|