summaryrefslogtreecommitdiff
path: root/tests/scripts
AgeCommit message (Collapse)AuthorFilesLines
2018-06-15Update SDK used to build jitutils to 2.1 RC (#18290)Andy Ayers1-3/+7
In anticipation of taking a dependence on netcoreapp2.1 for the forthcoming PMI work from jitutils. Also make sure to shut down build servers before cleaning up the SDK.
2018-04-05Add Word2Vec Benchmark Harness (#17350)Michelle McDaniel1-2/+2
* Add Word2Vec Benchmark Harness This change adds an additional scenario benchmark, the Word2Vec benchmark. The harness pulls down Word2Vec.Net from eabdullin, applies a patch of changes that we made to work with netcoreapp21, harness the word training and search, and then runs the benchmark. It also updates the timeout for running benchmarks, since the training scenario on a 100M file takes about 7 minutes locally.
2018-03-28Removing 'EXPERIMENTAL' from tiered compilation env var (#17283)Noah Falk1-1/+1
Things have progressed far enough that its time to use a friendlier name. The feature still still has performance aspects that need to be investigated and improved, but I don't want to scare people off simply because it isn't as fast as it could be. This also updates to use a newer CoreFX version for JitBench since that appeared to be broken, and updated some comments and usage of the tieredcompilation variable.
2018-03-28Merge pull request #17090 from debayang/corefx_testsBruce Forstall1-6/+44
Fix run-corefx-tests.py for Arm64 Linux cross build
2018-03-28Fix run-corefx-tests.py for Arm64Debayan Ghosh1-6/+44
Enable cross build of corefx on x64, creates runtime for arm64 and builds corefx tests.
2018-03-26Linux arm32 testingBruce Forstall1-16/+16
Add support for arm Ubuntu testing on hardware. Most JIT stress jobs are enabled. GC stress jobs are not enabled currently (they haven't been tried yet). Most jobs have both PR trigger jobs as well as weekly "cron" jobs. Job frequency will be adjusted as we gain experience with the load. Initially, there are no automatically triggered PR jobs, but I plan to add one or more soon. Moved existing arm Ubuntu (on emulator) and arm Tizen (on emulator) to use new "armem" pseudo-architecture. The arm Ubuntu jobs have the product cross-built on Ubuntu/x64 in Docker, use tests built in a new Windows_NT x86 BuildOnly (`_bld`) job, and are run on hardware after copying over all the correct artifacts. Refactored lots of code related to determining if a particular combination of os/architecture/configuration/isPR/etc. should create a job. Refactored test/flow job creation. runtest.sh now creates three files based on test results that can be fed back to runtest.sh using the `--playlist` argument: coreclrtests.pass.txt, coreclrtests.fail.txt, coreclrtests.skip.txt. New script `runtesttilstable.sh` runs `runtest.sh` in a loop, rerunning failing tests until no tests fail, or a maximum iteration count is reached (default: 4). This works around existing issues with flaky test failures on Linux/arm32 hardware. Some extraneous unused jobs have been removed, such as unused `_bld` jobs and non-PR triggered `innerloop` jobs.
2018-02-28Revert: Simplify test dependencies for benchmarks (#16647)Andy Ayers1-0/+36
This reverts commit 0598b6b8af0fb560837ce0bb8f3c8236c05bbdc9. Updates to xunit console runner break things in Helix. So reverting until we can get that part sorted. Also undoes version updates from #16597; we can't move these forward yet as we're back to netstandard 1.4 for the time being.
2018-02-26Simplify test dependencies for benchmarks (#16378)Andy Ayers1-36/+0
Remove the special benchmark configs and update benchmark projects accordingly. Also update other random projects that were referencing benchmark configs. Benchmarks now build against the default standard. Addresses #14124, #16126.
2018-02-21Add more benchmarks to JitBench (#16353)Noah Falk1-6/+14
* Add more JitBench Benchmarks a) JitBench includes several more benchmarks and a refactored runner to make it easier to add more b) A new JitBench/unofficial_dotnet SDK style build project offers simpler developer workflow at the command line and in VS when working with these Benchmarks c) Misc build issues with local dotnet build in the test tree have workarounds now, but official CI builds still don't support it d) run-xunit-perf.py has support to run a specific assembly from the testBinLoc folder intended to handle selecting a binary from the folder of binaries produced in the .Net Core SDK project build process. However until CI build can support building projects that way the xunit-perf support is unused.
2018-02-20Add CI perf repro script (#16414)Noah Falk1-0/+174
* Add CI perf repro script There wasn't any good way to reproduce what happens in CI for perf jobs because groovy can't be directly run. As a first step to solving this I created a python script that reproduces the perf leg I needed.
2018-02-08Change corefx test process (#16263)Bruce Forstall1-5/+56
Instead of using the `/p:CoreCLROverridePath` switch when building corefx, to bring in coreclr, build corefx normally. This builds against the coreclr packages that corefx has already been validated against in the CI, so the build should always work. Then, copy over our built coreclr bits before testing. This method is expected to have better behavior in most breaking change scenarios.
2018-02-07Add configuration to options to submission.py (#16127)Michelle McDaniel1-0/+3
2018-02-06Merge pull request #16006 from BruceForstall/AddWindowsArmCoreFxTestingBruce Forstall2-3/+100
Enable Windows ARM32 corefx testing
2018-02-06Fix handling of return code for system() calls (#16225)Jan Kotas1-4/+6
The value returned from system() is encoded bag of bits that gets misinterpretted once it starts propagate through the system. Normalize it to 0/1.
2018-02-06Enable Windows ARM32 corefx testingBruce Forstall2-3/+100
We create a flow job for each arm32 corefx mode, e.g. arm_cross_checked_windows_nt_corefx_jitstress1_flow_prtest. This depends on a build job that is specific to the stress mode, e.g. arm_cross_checked_windows_nt_corefx_jitstress1_bld_prtest, which (on x64) builds CoreCLR, then clones and builds CoreFX using run-corefx-tests.py. In particular, it only builds the CoreFX tests; it doesn't run them. Note that because the CoreFX test build embeds the stress mode environment variables in its generated RunTests.cmd scripts, we need a different corefx build dependency for each corefx test run; we can't share the builds. The build script then ZIPs up the CoreFX tests and generated CoreFX runtime (which will include the coreclr runtime because we built CoreFX with the `/p:CoreCLROverridePath` argument), and archives these. The test job, which runs on an arm64 machine, then copies the ZIPed tests and runtime, unzips them, and runs a batch script to run each RunTests.cmd file. Note that we don't use any existing mechanism to run each test (such as msbuild), and I believe the CoreFX msbuild harness doesn't have any mechanism to just run a previously built set of tests. There is a very simple test exclusion mechanism: an entire test assembly can be excluded by putting its name (e.g., System.IO.Ports.Tests), in a file (e.g., tests\arm\corefx_test_exclusions.txt). Note that this corefx testing mechanism is only enabled for arm (aka arm32), not armlb or arm64.
2018-02-04Revert "For corefx testing, use a matching corefx repo version git hash"Jan Kotas1-47/+6
2018-01-22Merge pull request #15944 from BruceForstall/CorefxTestUseCorrectVersionBruce Forstall1-6/+47
For corefx testing, use a matching corefx repo version git hash
2018-01-19Convert perf.groovy to use run-xunit-perf.py (#15881)Michelle McDaniel3-1000/+16
* Convert perf.groovy to use run-xunit-perf.py Also removes run-xunit-perf.cmd and run-xunit-perf.sh. This change moves us to using build-tests.sh to generate the layout (ie pull down corefx), so this change fixes #12143.
2018-01-19For corefx testing, use a matching corefx repo version git hashBruce Forstall1-6/+47
If the user doesn't specify a specific corefx commit hash to use, try to find the matching commit hash in the coreclr repro. If the matching hash can't be found, use 'HEAD'. We find the matching corefx commit hash by first parsing file 'dependencies.props' at the root of the coreclr repro, looking for this: <MicrosoftPrivateCoreFxNETCoreAppPackageVersion>4.5.0-preview1-26112-01</MicrosoftPrivateCoreFxNETCoreAppPackageVersion> This determines the corefx package version that matches. Next, we look for the version.txt file in the package cache, e.g., <coreclr_root>\packages\microsoft.private.corefx.netcoreapp\4.5.0-preview1-26112-01\version.txt The contents of this file is exactly the git commit hash we need to use, e.g.: 197a0699b08087ea85581679afdd9fd7b5c465c3 The version.txt file is created when the corefx package is restored, which happens when doing one of: Windows: tests\runtests.cmd GenerateLayoutOnly non-Windows: build-test.sh generatelayoutonly It would also be possible to not depend on the package already being downloaded, but instead download the correct package here, using the determined "MicrosoftPrivateCoreFxNETCoreAppPackageVersion" package version, e.g.: https://dotnet.myget.org/F/dotnet-core/api/v2/package/Microsoft.Private.CoreFx.NETCoreApp/4.5.0-preview1-26112-01 and then extracting the ZIP archive to find the version.txt file. This might get easier if the corefx commit hash is added directly to dependencies.props, as discussed in https://github.com/dotnet/buildtools/issues/1141.
2018-01-12Convert run-xunit-perf to py script (#15568)Michelle McDaniel3-14/+631
* Convert run-xunit-perf to python script This change merges the two run-xunit-perf scripts (.sh and .cmd) into one unified python script and updates the pipeline job to use the pythong script. This change also updates the linux jobs to use the new build-tests.sh generatelayoutonly command so that we don't need to pull down corefx from the cloud anymore. The unified python script enables us to more easily update both linux scripting and windows scripting at the same time so that one does not lag behind the other (such as when we add new configurations or options like slicing). This change also turns linux testing back on by default for PRs.
2018-01-09Fixing https://github.com/aspnet/JitBench/issues/80 (#15764)José Rivero1-0/+2
- Issue was fixed with this: https://github.com/aspnet/JitBench/pull/82 - Set the UseSharedCompilation=false to avoid that the `VBCSCompiler.exe` stays running.
2017-12-01Change name to perf jobs to reflect the actual OS they run on (#15314)Victor "Nate" Graf1-2/+3
* Change name fo perf jobs to reflect the actual OS they run on * readd Ubuntu 14.04
2017-11-26Fix Powershell error (#15217)Bruce Forstall1-1/+1
2017-11-22Fix all powershell invocations in scripts, CI code and tests to include ↵Jacek Blaszczynski1-1/+1
-NoProfile (#15164) Code execution in several scripts and tests can be affected by powershell profile execution at startup. Adding -NoProfile option to all powershell invocations which may be affected by execution of profile startup code.
2017-11-08Small number of bug fixes. (#14900)José Rivero1-22/+40
- Added stability prefix to the scenario benchmark (JitBench) - Specify output directory to the `run-xunit-perf.cmd` script and avoid the extra step to xcopy files to the archive folder. - Added a command line parser class to the illink scenario, and changed its behavior where it used to fail when a new command line option passed to xUnit was not recognized. - Save the output log of the tests into the sandbox-logs folder. - Updating the label of the machine pool used by the illink scenario
2017-11-05Improve altjit corefx testingBruce Forstall1-5/+19
For altjit, we can't run managed code from .NET installs that are not under test. The XSLT Compiler tests invoke an XSLT Compiler from the machine installed desktop framework. When it sees the AltJit variables, but no altjit compiler dll, it dies. So, don't run those tests. They have been annotated with a new attribute to allow this exclusion.
2017-11-03Fix perf-prep for throughput (#14845)Michelle McDaniel1-1/+1
There is a missing ! before checking to see if the throughput benchmarks have already been downloaded. Currently, we download them if they already exist, where we want to download them if they don't already exist. This change fixes that.
2017-11-02Add perf pipeline job full groovy (#14397)Michelle McDaniel3-15/+36
This change converts our perf testing to use pipeline jobs. Pipeline jobs allow us to do the following: 1) Test on the same commit for each of the test legs 2) Parallelize the build and test steps. 3) Separate the build and test steps from one another. This gives us the ability to use the same build assets for all of the test legs of the same configuration. It also allows us to build on virtual machines and test on perf machines, so we only use the perf resources for testing. 4) Have different test scenarios for PRs and rolling. This isn't strictly a benefit of pipeline jobs, but certainly is made easier by them. 5) Allows us to have one trigger for PR jobs which will get us all the perf testing scenarios. This change also cleans up the groovy scripting for perf testing.
2017-11-01Updating xUnit Benchmark Scenarios to capture Etw with Pmc support. (#14734)José Rivero2-17/+92
- Adding 'tiered' jitting - Enable JitBench to capture Pmc data (Profile=On) - Fixed some xUnit performance warnings - Enforce DOTNET_MULTILEVEL_LOOKUP environment to be turned off - Specify `dotnet publish` output directory.
2017-11-01Update URLs to use for formatter job (#14785)Andy Ayers1-4/+5
Need 2.0 SDK now. Not sure of the best URLs but these seem to work. Also shorten path so we don't run into windows pathlength issues.
2017-10-17Merge pull request #14334 from BruceForstall/AddTestEnvToWindowsBruce Forstall1-4/+3
Fix corefx testing invocation
2017-10-16Fix call to submission.py in run-throughput-perf.pyMichelle McDaniel1-1/+7
In run-throughput-perf.py, we were calling submission.py with --arch, but submission.py requires -arch or --architecture. This recently made submission.py start failing in throughput jobs. This change also fixes run-throughput-perf so that if submission.py or upload.py fail, the script fails so we see these jobs as failing in the lab.
2017-10-09Fix corefx testing invocationBruce Forstall1-4/+3
Instead of executing the environment-setting script before calling build-tests, pass the `/p:PreExecutionTestScript=<env_script>` msbuild property, which will write the environment script directly into the generated corefx RunTests.cmd scripts. Thus, the environment changes will be made immediately before the test is run. Depends on https://github.com/dotnet/buildtools/pull/1723.
2017-09-26[ARM32] Update armel rootfs for Tizen (#14173)Hyung-Kyu Choi1-2/+2
* [Tizen/ARM32] Update armel rootfs for Tizen - Add lttng-ust-dev to Tizen rootfs for cross build - Use rootfs of the latest Tizen 4.0 Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com> * [Tizen/ARM32] Update Tizen CI script - Update arm32 CI script for Tizen to use the latest environment Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
2017-09-22fix arm64_post_build typojashook1-1/+1
2017-09-21Merge pull request #14126 from jashook/use_new_x64_clientJarret Shook1-4/+11
Add support for priority and update x64 client
2017-09-21Add support for priority and update x64 clientjashook1-4/+11
2017-09-19Refine ARM64 CI stress modes allowedBruce Forstall1-2/+2
For JitStressRegs, allow 0x10, 0x80, 0x1000; don't use simple 10 or 80 in names (to match netci.groovy). Remove "tieredcompilation" from allowed modes; it is not supported in the CI smarty helper currently.
2017-09-18First step to enable Windows RyuJIT/arm32 testingBruce Forstall1-9/+20
Renames arm legacy backend jobs to "armlb" and keeps "arm" for RyuJIT/arm32 testing.
2017-09-12Merge pull request #13918 from adiaaida/unifyPerfConfigsMichelle McDaniel1-0/+11
Add OptLevel and JitName configurations
2017-09-12Add OptLevel and JitName configurationsMichelle McDaniel1-0/+11
To unify the configuration names in benchview, add OptLevel and JitName configurations in run-xunit-perf.sh. This change does not add min_opts to perf.groovy.
2017-09-05Add nopgo option for throughput runsMichelle McDaniel1-2/+13
2017-09-01Lst File updates.jashook1-14/+39
This change includes: 1) lst_creator updates to allow adding priority tags automatically 2) arm32 lstFile updates: 29 new tests, 50 removed 3) arm64 lstFile updates: 80 new tests, 55 removed
2017-08-31Bug fix on measurement.py loop (#13711)José Rivero1-5/+5
The loop was iterating through fixed file name and a pattern. The fixed file name did not exist, and the whole function failed. With this change, we loop through the files if they exist.
2017-08-30Error out if specified testBinLoc path does not exist. (#13700)José Rivero1-1/+5
2017-08-27Merge pull request #13581 from noahfalk/fix_corefx_testingNoah Falk1-1/+1
Fix running corefx tests
2017-08-25Minor performance infrastructure changes. (#13557)José Rivero1-18/+23
- IlLink scenario will run on a VM (currently it is only measuring MSIL size) - Updated the patterns of files to search for on scenario runs - Updated the JitBench commit hash being used () - Disable min_opt from the PR correctness mode. - String was not being interpolated.
2017-08-24Fix running corefx testsnoahfalk1-1/+1
Running CoreFX tests was supposed to use a batch file (env_script) to run CoreFX tests under different environment configurations. However due to subtlties in how the command line is parsed none of the environment variables set by this script would actually persist for the execution of the tests. As best I can tell prior to this fix specifying a env_script had no effect whatsoever on windows, and our CI corefx test stress scenarios weren't actually testing the scenario they claimed to be testing. cmd /c "Set.bat&&Check.bat" will propagate env vars set in Set.bat so that they are visible in Check.bat because both batch files execute within the context of the newly invoked cmd.exe process. However cmd /c Set.bat&&Check.bat (no quotes) will run Set.bat in its own cmd.exe process, then exit that process and run Check.bat in the parent shell process. The parent process does not have any environment variable changes that were made by Set.bat.
2017-08-17Add minopts scenario for Legacy backendRoman Artemev2-4/+50
2017-08-15Small perf infrastructure changes (#13325)José Rivero2-51/+89
- Move xUnit Perf Api output files to a folder `Logs` under sandbox - Made necessary changes to `perf.groovy` to archive artifacts - Added a switch -outputdir to the run-xunit-perf* scripts - Enable running all CoreClr scenarios (JitBench & IlLink) despite failure - Move sandbox to bin folder - Use the default output dir: `.\bin\sandbox`