From b317c71021539e9e860df64fb0bc9903f4e90cc1 Mon Sep 17 00:00:00 2001 From: jashook Date: Fri, 20 Jul 2018 13:47:58 -0700 Subject: [PATCH] Use runtest.py to run tests for all platforms Change build-test.sh to always build the xunit wrappers. Before it would drop a token and check the existence of the token. Unify x64 linux/OSX/Windows excludes into one file, issues.targets. I have added different locations in the file which show where to put excludes. Remove all target specific aspects of issues.targets, all tests are excluded now via wildcard, this allows expanding to .cmd and .sh based on the build platform Unify path separators to forward slash(/) in issues.targets to support both platforms Clean up issues.targets by removing long standing exclude tests, specifically tests that have been excluded due to missing features like rva_statics Add DisableProjectBuild to tests which have been removed from issues.targets Conditionally add DisableProjectBuild to tests which have been marked as unsupported on unix. This is mostly a port of the unsupportedOnUnix.txt list. Instead of excluding the tests, unix will simply not build them. Note that this refcount dependency on running tests on the same platform as where they were built All exclusions ported to issues.targets for linux targets. Expand runtest.py, this includes simple issues that made it past the original CR. In addition it adds more optional features to help with inner loop dev work such as: creating a repro folder under bin/repro/.. which sets up the env and calls the failing test. In addition a launch.json will now be created under bin/repro/.. which can be used to easily debug using vscode. More logging, such as printing failures, longest running tests ect. Initial excludes ported for arm64 windows Arm64 linux, armhf unix excludes and enables running runtest.sh for these targets. arm64 windows and arm32 windows excludes and enables running runtest.cmd on arm64 targets init-tools.sh changes to pull armhf and aarch64 dotnetcli init-tools.cmd changes to pull x86 packages for dotnetcli for arm64 windows runtest.cmd for almost all scenarios will call runtest.py runtest.sh for almsot all scenarios will call runtest.py Removes all logic for running tests using runtest.sh --- Documentation/building/test-configuration.md | 14 +- .../building/unix-test-instructions.md | 63 +- .../building/windows-test-instructions.md | 8 +- build-test.sh | 24 +- init-tools.cmd | 26 +- init-tools.sh | 54 +- tests/arm/Tests.lst | 8 - tests/arm64/Tests.lst | 8 - tests/bringup_runtest.sh | 1517 ++++++++++++++ tests/issues.targets | 1456 ++++++++------ tests/runtest.cmd | 77 +- tests/runtest.proj | 3 + tests/runtest.py | 1771 +++++++++++++++-- tests/runtest.sh | 1222 ++---------- tests/scripts/arm32_ci_script.sh | 2 +- tests/scripts/arm32_ci_test.sh | 2 +- tests/src/CLRTest.Execute.Bash.targets | 13 +- tests/src/CLRTest.GC.targets | 5 +- .../CoreclrTestWrapperLib.cs | 10 - .../system/convert/ConvertToInt32_4.csproj | 4 + .../cti/system/decimal/DecimalToInt32.csproj | 4 + .../DynMethodJumpStubTests.csproj | 4 + .../hashset/Regression_Dev10_609271.csproj | 4 + .../hashset/Regression_Dev10_624201.csproj | 4 + tests/src/GC/Coverage/smalloom.csproj | 4 + .../HeapExpansion/bestfit-threaded.csproj | 3 + .../LOHCompaction/lohcompactapi.csproj | 3 + .../Primitives/NETClientPrimitives.csproj | 7 +- .../MarshalAPI/IUnknown/IUnknownTest.csproj | 4 + .../Interop/SizeConst/SizeConstTest.csproj | 4 + .../PInvoke/MarshalStructAsLayoutExp.csproj | 4 + .../IL/PInvokeTail/PInvokeTail.ilproj | 4 + .../Directed/IL/PInvokeTail/TailWinApi.ilproj | 4 + .../src/JIT/Directed/RVAInit/extended.ilproj | 3 + tests/src/JIT/Directed/RVAInit/overlap.ilproj | 3 + .../JIT/Directed/UnrollLoop/loop2_cs_d.csproj | 4 + .../Directed/UnrollLoop/loop2_cs_do.csproj | 4 + .../JIT/Directed/UnrollLoop/loop2_cs_r.csproj | 4 + .../Directed/UnrollLoop/loop2_cs_ro.csproj | 4 + .../importer/Desktop/bleref_il_d.ilproj | 3 + .../importer/Desktop/bleref_il_r.ilproj | 3 + .../Desktop/ldelemnullarr1_il_d.ilproj | 3 + .../Desktop/ldelemnullarr1_il_r.ilproj | 3 + .../importer/Desktop/nonrefsdarr_il_d.ilproj | 3 + .../importer/Desktop/nonrefsdarr_il_r.ilproj | 3 + .../oldtests/Desktop/callipinvoke_il_d.ilproj | 4 + .../oldtests/Desktop/callipinvoke_il_r.ilproj | 4 + .../coverage/oldtests/callipinvoke.ilproj | 4 + .../interlocked/rva_rvastatic1.ilproj | 3 + .../interlocked/rva_rvastatic2.ilproj | 3 + .../interlocked/rva_rvastatic3.ilproj | 3 + .../interlocked/rva_rvastatic4.ilproj | 3 + .../JIT/Directed/pinvoke/calli_excep.ilproj | 4 + tests/src/JIT/Directed/pinvoke/jump.ilproj | 4 + .../JIT/Directed/pinvoke/pinvoke-bug.csproj | 4 + .../Directed/pinvoke/pinvoke-examples.csproj | 4 + .../pinvoke/preemptive_cooperative.ilproj | 4 + tests/src/JIT/Directed/pinvoke/sin.csproj | 4 + .../JIT/Directed/pinvoke/sysinfo_cs.csproj | 4 + .../JIT/Directed/pinvoke/sysinfo_il.ilproj | 4 + tests/src/JIT/Directed/pinvoke/tail.ilproj | 4 + .../JIT/Directed/rvastatics/rvastatic1.ilproj | 3 + .../JIT/Directed/rvastatics/rvastatic2.ilproj | 3 + .../JIT/Directed/rvastatics/rvastatic3.ilproj | 3 + .../JIT/Directed/rvastatics/rvastatic4.ilproj | 3 + .../JIT/Directed/rvastatics/rvastatic5.ilproj | 3 + .../Directed/tls/mutualrecurthd-tls.ilproj | 3 + tests/src/JIT/Directed/tls/test-tls.ilproj | 3 + .../Fields/getclassfrommethodparam.csproj | 4 + .../JIT/Generics/pinvoke/instance01.csproj | 4 + .../JIT/Generics/pinvoke/instance02.csproj | 4 + .../JIT/Generics/pinvoke/instance03.csproj | 4 + .../src/JIT/Generics/pinvoke/static01.csproj | 4 + .../src/JIT/Generics/pinvoke/static02.csproj | 4 + .../Methodical/cctor/misc/global_il_d.ilproj | 3 + .../Methodical/cctor/misc/global_il_r.ilproj | 3 + .../eh/deadcode/badcodeafterfinally_d.ilproj | 3 + .../eh/deadcode/badcodeafterfinally_r.ilproj | 3 + .../explicit/coverage/expl_byte_1_d.csproj | 4 + .../explicit/coverage/expl_byte_1_r.csproj | 4 + .../explicit/coverage/expl_double_1_d.csproj | 4 + .../explicit/coverage/expl_double_1_r.csproj | 4 + .../explicit/coverage/expl_float_1_d.csproj | 4 + .../explicit/coverage/expl_float_1_r.csproj | 4 + .../explicit/coverage/expl_gc_byte_1_d.csproj | 4 + .../explicit/coverage/expl_gc_byte_1_r.csproj | 4 + .../coverage/expl_gc_double_1_d.csproj | 4 + .../coverage/expl_gc_double_1_r.csproj | 4 + .../coverage/expl_gc_float_1_d.csproj | 4 + .../coverage/expl_gc_float_1_r.csproj | 4 + .../explicit/coverage/expl_gc_int_1_d.csproj | 4 + .../explicit/coverage/expl_gc_int_1_r.csproj | 4 + .../explicit/coverage/expl_gc_long_1_d.csproj | 4 + .../explicit/coverage/expl_gc_long_1_r.csproj | 4 + .../explicit/coverage/expl_gc_obj_1_d.csproj | 4 + .../explicit/coverage/expl_gc_obj_1_r.csproj | 4 + .../coverage/expl_gc_short_1_d.csproj | 4 + .../coverage/expl_gc_short_1_r.csproj | 4 + .../explicit/coverage/expl_gc_val_1_d.csproj | 4 + .../explicit/coverage/expl_gc_val_1_r.csproj | 4 + .../explicit/coverage/expl_int_1_d.csproj | 4 + .../explicit/coverage/expl_int_1_r.csproj | 4 + .../explicit/coverage/expl_long_1_d.csproj | 4 + .../explicit/coverage/expl_long_1_r.csproj | 4 + .../explicit/coverage/expl_obj_1_d.csproj | 4 + .../explicit/coverage/expl_obj_1_r.csproj | 4 + .../explicit/coverage/expl_short_1_d.csproj | 4 + .../explicit/coverage/expl_short_1_r.csproj | 4 + .../explicit/coverage/expl_val_1_d.csproj | 4 + .../explicit/coverage/expl_val_1_r.csproj | 4 + .../explicit/coverage/seq_byte_1_d.csproj | 4 + .../explicit/coverage/seq_byte_1_r.csproj | 4 + .../explicit/coverage/seq_double_1_d.csproj | 4 + .../explicit/coverage/seq_double_1_r.csproj | 4 + .../explicit/coverage/seq_float_1_d.csproj | 4 + .../explicit/coverage/seq_float_1_r.csproj | 4 + .../explicit/coverage/seq_gc_byte_1_d.csproj | 4 + .../explicit/coverage/seq_gc_byte_1_r.csproj | 4 + .../coverage/seq_gc_double_1_d.csproj | 4 + .../coverage/seq_gc_double_1_r.csproj | 4 + .../explicit/coverage/seq_gc_float_1_d.csproj | 4 + .../explicit/coverage/seq_gc_float_1_r.csproj | 4 + .../explicit/coverage/seq_gc_int_1_d.csproj | 4 + .../explicit/coverage/seq_gc_int_1_r.csproj | 4 + .../explicit/coverage/seq_gc_long_1_d.csproj | 4 + .../explicit/coverage/seq_gc_long_1_r.csproj | 4 + .../explicit/coverage/seq_gc_obj_1_d.csproj | 4 + .../explicit/coverage/seq_gc_obj_1_r.csproj | 4 + .../explicit/coverage/seq_gc_short_1_d.csproj | 4 + .../explicit/coverage/seq_gc_short_1_r.csproj | 4 + .../explicit/coverage/seq_gc_val_1_d.csproj | 4 + .../explicit/coverage/seq_gc_val_1_r.csproj | 4 + .../explicit/coverage/seq_int_1_d.csproj | 4 + .../explicit/coverage/seq_int_1_r.csproj | 4 + .../explicit/coverage/seq_long_1_d.csproj | 4 + .../explicit/coverage/seq_long_1_r.csproj | 4 + .../explicit/coverage/seq_obj_1_d.csproj | 4 + .../explicit/coverage/seq_obj_1_r.csproj | 4 + .../explicit/coverage/seq_short_1_d.csproj | 4 + .../explicit/coverage/seq_short_1_r.csproj | 4 + .../explicit/coverage/seq_val_1_d.csproj | 4 + .../explicit/coverage/seq_val_1_r.csproj | 4 + .../Methodical/tailcall/_il_dbgpointer.ilproj | 3 + .../tailcall/_il_dbgpointer_i.ilproj | 3 + .../Methodical/tailcall/_il_relpointer.ilproj | 3 + .../tailcall/_il_relpointer_i.ilproj | 3 + .../xxobj/operand/_il_dbglocalloc.ilproj | 3 + .../xxobj/operand/_il_rellocalloc.ilproj | 3 + .../CLR-x86-EJIT/v1-m10/b07847/b07847.ilproj | 3 + .../V1-M09.5-PDC/b26324/b26324a.ilproj | 4 + .../V1-M09.5-PDC/b26324/b26324b.ilproj | 4 + .../V1-M09.5-PDC/b28901/b28901.ilproj | 4 + .../V1-M09.5-PDC/b30838/b30838.ilproj | 4 + .../V1-M09.5-PDC/b30864/b30864.ilproj | 4 + .../V1-M09.5-PDC/b32374/b32374.ilproj | 4 + .../V1-M11-Beta1/b35784/b35784.ilproj | 4 + .../V1-M11-Beta1/b36472/b36472.csproj | 4 + .../V1-M11-Beta1/b37598/b37598.csproj | 4 + .../V1-M11-Beta1/b46867/b46867.csproj | 4 + .../V1-M11-Beta1/b49644/b49644.ilproj | 3 + .../V1-M12-Beta2/b31745/b31745.csproj | 4 + .../V1-M12-Beta2/b79250/b79250.ilproj | 4 + .../V1-M13-RTM/b88793/b88793.csproj | 4 + .../V1-M13-RTM/b91248/b91248.csproj | 4 + .../V1.2-Beta1/b102637/b102637.ilproj | 3 + .../CLR-x86-JIT/V1.2-M01/b03689/b03689.ilproj | 3 + .../CLR-x86-JIT/V1.2-M01/b08046/b08046.ilproj | 3 + .../V2.0-Beta2/b409748/b409748.ilproj | 4 + .../Dev11/dev10_865840/dev10_865840.ilproj | 3 + .../JitBlue/GitHub_17777/GitHub_17777.csproj | 3 + .../VS-ia64-JIT/V1.2-M02/b12011/b12011.ilproj | 3 + .../V2.0-Beta2/b410474/b410474.ilproj | 3 + .../V2.0-RTM/b286991/b286991.ilproj | 4 + .../clr-x64-JIT/v2.1/b173569/b173569.ilproj | 4 + .../v4.0/devdiv374539/DevDiv_374539.csproj | 4 + tests/src/JIT/jit64/gc/misc/funclet.csproj | 4 + .../localloc/verify/verify01_dynamic.ilproj | 3 + .../localloc/verify/verify01_large.ilproj | 3 + .../localloc/verify/verify01_small.ilproj | 3 + .../src/JIT/jit64/mcc/interop/mcc_i01.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i02.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i03.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i04.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i05.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i06.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i07.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i10.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i11.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i12.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i13.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i14.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i15.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i16.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i17.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i30.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i31.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i32.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i33.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i34.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i35.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i36.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i37.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i50.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i51.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i52.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i53.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i54.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i55.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i56.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i57.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i60.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i61.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i62.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i63.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i64.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i65.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i66.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i67.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i70.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i71.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i72.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i73.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i74.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i75.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i76.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i77.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i80.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i81.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i82.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i83.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i84.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i85.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i86.ilproj | 4 + .../src/JIT/jit64/mcc/interop/mcc_i87.ilproj | 4 + .../JIT/jit64/opt/cse/hugeSimpleExpr1.csproj | 3 + .../jit64/opt/rngchk/ArrayWithThread_o.csproj | 3 + .../jit64/regress/ndpw/21220/b21220.ilproj | 3 + .../JIT/jit64/regress/vsw/286991/test.ilproj | 4 + .../Tailcall/TailcallVerifyWithPrefix.ilproj | 4 + .../Regressions/coreclr/0584/Test584.csproj | 4 + .../Dev11/147911/test147911.csproj | 3 + .../V1/SEH/VJ/UnmanagedToManaged.csproj | 3 + .../DefaultStackCommit.csproj | 4 + .../mutex/abandonedmutex/am04waitany.csproj | 4 + .../abandonedmutex/am05waitanymutex.csproj | 4 + .../abandonedmutex/am06abandonall.csproj | 4 + .../am07abandonmultiplemutex.csproj | 4 + .../abandonedmutex/am08mixedarray.csproj | 4 + .../mutex/openexisting/openmutexneg1.csproj | 4 + .../mutex/openexisting/openmutexneg2.csproj | 4 + .../mutex/openexisting/openmutexneg3.csproj | 4 + .../mutex/openexisting/openmutexneg4.csproj | 4 + .../mutex/openexisting/openmutexneg5.csproj | 4 + .../mutex/openexisting/openmutexneg6.csproj | 4 + .../mutex/openexisting/openmutexneg7.csproj | 4 + .../mutex/openexisting/openmutexneg8.csproj | 4 + .../mutex/openexisting/openmutexpos1.csproj | 4 + .../mutex/openexisting/openmutexpos2.csproj | 4 + .../mutex/openexisting/openmutexpos3.csproj | 4 + .../mutex/openexisting/openmutexpos4.csproj | 4 + .../regressions/whidbey_m3/200176.csproj | 4 + .../semaphore/ctoropen/semaphorector2.csproj | 4 + .../semaphore/ctoropen/semaphorector3.csproj | 4 + .../semaphore/ctoropen/semaphorector4.csproj | 4 + .../semaphore/ctoropen/semaphorector5.csproj | 4 + .../ctoropen/semaphoreopenneg1.csproj | 4 + .../ctoropen/semaphoreopenneg2.csproj | 4 + .../ctoropen/semaphoreopenneg3.csproj | 4 + .../ctoropen/semaphoreopenneg4.csproj | 4 + .../ctoropen/semaphoreopenneg5.csproj | 4 + .../ctoropen/semaphoreopenneg6.csproj | 4 + .../ctoropen/semaphoreopenneg7.csproj | 4 + .../threading/semaphore/unit/semtest.csproj | 4 + .../threadpool/bindhandle/bindhandle1.csproj | 4 + .../bindhandle/bindhandleinvalid.csproj | 4 + .../bindhandle/bindhandleinvalid3.csproj | 4 + .../bindhandle/bindhandleinvalid4.csproj | 4 + .../bindhandle/bindhandleinvalid5.csproj | 4 + .../bindhandle/bindhandleinvalid6.csproj | 4 + .../waithandle/waitall/waitallex1.csproj | 4 + .../waithandle/waitall/waitallex10.csproj | 4 + .../waithandle/waitall/waitallex11.csproj | 4 + .../waithandle/waitall/waitallex2.csproj | 4 + .../waithandle/waitall/waitallex3.csproj | 4 + .../waithandle/waitall/waitallex4.csproj | 4 + .../waithandle/waitall/waitallex5.csproj | 4 + .../waithandle/waitall/waitallex6.csproj | 4 + .../waithandle/waitall/waitallex7.csproj | 4 + .../waithandle/waitall/waitallex8.csproj | 4 + .../waithandle/waitall/waitallex8a.csproj | 4 + .../waithandle/waitall/waitallex9.csproj | 4 + .../waithandle/waitany/waitanyex1.csproj | 4 + .../waithandle/waitany/waitanyex10.csproj | 4 + .../waithandle/waitany/waitanyex2.csproj | 4 + .../waithandle/waitany/waitanyex3.csproj | 4 + .../waithandle/waitany/waitanyex4.csproj | 4 + .../waithandle/waitany/waitanyex5.csproj | 4 + .../waithandle/waitany/waitanyex6.csproj | 4 + .../waithandle/waitany/waitanyex7.csproj | 4 + .../waithandle/waitany/waitanyex8.csproj | 4 + .../waithandle/waitany/waitanyex8a.csproj | 4 + .../waithandle/waitany/waitanyex9.csproj | 4 + .../waithandle/waitone/waitoneex1.csproj | 4 + .../waithandle/waitone/waitoneex2.csproj | 4 + .../waithandle/waitone/waitoneex3.csproj | 4 + .../waithandle/waitone/waitoneex4.csproj | 4 + .../managed/Compilation/Compilation.csproj | 4 + .../src/readytorun/r2rdump/R2RDumpTest.csproj | 6 +- .../eventpipeandetw/eventpipeandetw.csproj | 4 + tests/tests.targets | 2 +- 310 files changed, 5452 insertions(+), 1950 deletions(-) create mode 100755 tests/bringup_runtest.sh diff --git a/Documentation/building/test-configuration.md b/Documentation/building/test-configuration.md index 14fbb4e3d6c7..d799bfdaad69 100644 --- a/Documentation/building/test-configuration.md +++ b/Documentation/building/test-configuration.md @@ -39,15 +39,17 @@ Test cases are categorized by priority level. The most important subset should b ``` * Disable building of a test by conditionally setting the `` property. * e.g. `true` +* Exclude test from GCStress runs by adding the following to the csproj: + * `true` +* Exclude test from JIT stress runs runs by adding the following to the csproj: + * `true` * Add NuGet/MyGet references by updating the following [test project](https://github.com/dotnet/coreclr/blob/master/tests/src/Common/test_dependencies/test_dependencies.csproj). * Build against the `mscorlib` facade by adding `true` to the test project. * Update relevent exclusion lists: - * Note that there are two build pipelines Jenkin's CI and nightly Helix - both must be updated for expected exclusion. - * Jenkin's CI build - see the associated `*.txt` files under `tests/` (e.g. `tests/testsUnsupportedOutsideWindows.txt`). - * Official nightly Helix build - see the `tests/issues.targets` file. - * ARM/ARM64 - * `tests/arm/Tests.lst` and `tests/arm64/Tests.lst` are used to define the tests to run due to limitations with XUnit. - * These files can be manually edited or the generated using `tests/scripts/lst_creator.py`. + There are currently three different exclude lists. Tests.lst is currently only used by CI. + - `tests/issues.targets` + - `tests/arm/Tests.lst` - Used by Windows arm32 testing + - `tests/arm64/Tests.lst` - Used by Windows arm64 testing ### Creating a C# test project diff --git a/Documentation/building/unix-test-instructions.md b/Documentation/building/unix-test-instructions.md index 89fead7aa689..9b0190c4a053 100644 --- a/Documentation/building/unix-test-instructions.md +++ b/Documentation/building/unix-test-instructions.md @@ -81,50 +81,15 @@ sudo apt-get install libunwind8:armhf libunwind8-dev:armhf libicu-dev:armhf libl The following instructions assume that on the Unix machine: - The CoreCLR repo is cloned at `/mnt/coreclr` -If DotNet is unsupported -- The CoreFX repo is cloned at `/mnt/corefx` -- The other platform's clone of the CoreCLR repo is mounted at `/media/coreclr` - -The following steps are different if DotNet is supported or not on your arch and os. - -### DotNet is supported - -build-test.sh will have setup the Core_Root directory correctly after the test build. If this was either skipped or needs to be regenerated use: - ->`build-test.sh generatelayoutonly` - -To run the tests run with the --coreOverlayDir path +build-test.sh will have setup the Core_Root directory correctly after the test build. ```bash -~/coreclr$ tests/runtest.sh - --testRootDir=/mnt/coreclr/bin/tests/Linux.x64.Debug - --testNativeBinDir=/mnt/coreclr/bin/obj/Linux.x64.Debug/tests - --coreOverlayDir=/mnt/coreclr/bin/tests/Linux.x64.Debug/Tests/Core_Root - --copyNativeTestBin +~/coreclr$ tests/runtest.sh x64 checked ``` -### DotNet is not supported - -Tests need to be built on another platform and copied over to the Unix machine for testing. Copy the test build over to the Unix machine: - -> `cp --recursive /media/coreclr/bin/tests/Windows_NT.x64.Debug /mnt/test/` - -See `runtest.sh` usage information: - -> `/mnt/coreclr$ tests/runtest.sh --help` - -Run tests (`Debug` may be replaced with `Release` or `Checked`, depending on which Configuration you've built): +Please use the following command for help. -```bash -/mnt/coreclr$ tests/runtest.sh - --testRootDir=/mnt/test/Windows_NT.x64.Debug - --testNativeBinDir=/mnt/coreclr/bin/obj/Linux.x64.Debug/tests - --coreClrBinDir=/mnt/coreclr/bin/Product/Linux.x64.Debug - --mscorlibDir=/mnt/coreclr/bin/Product/Linux.x64.Debug - --coreFxBinDir=/mnt/corefx/bin/runtime/netcoreapp-Linux-Debug-x64 -``` - -The method above will copy dependencies from the set of directories provided to create an 'overlay' directory. +>./tests/runtest.sh -h ### Results @@ -134,13 +99,21 @@ Test results will go into: ### Unsupported and temporarily disabled tests -These tests are skipped by default: -- Tests that are not supported outside Windows, are listed in: - > `~/coreclr/tests/testsUnsupportedOutsideWindows.txt` -- Tests that are temporarily disabled outside Windows due to unexpected failures (pending investigation), are listed in: - > `~/coreclr/tests/testsFailingOutsideWindows.txt` +Unsupported tests outside of Windows have two annotations in their csproj to +ignore them when run. + +``` +true +``` + +This will write in the bash target to skip the test by returning a passing value if run outside Windows. + +In addition: +``` +true +``` -To run only the set of temporarily disabled tests, pass in the `--runFailingTestsOnly` argument to `runtest.sh`. +Is used to disable the build, that way if building on unix cycles are saved building/running. PAL tests --------- diff --git a/Documentation/building/windows-test-instructions.md b/Documentation/building/windows-test-instructions.md index 631f036da921..de422ed57160 100644 --- a/Documentation/building/windows-test-instructions.md +++ b/Documentation/building/windows-test-instructions.md @@ -21,9 +21,9 @@ This will use `crossgen.exe` to precompile the test executables before they are ## Building Other Priority Tests - C:\git\coreclr>build-test.cmd -priority=2 + C:\git\coreclr>build-test.cmd -priority=1 -The number '2' is just an example. The default value (if no priority is specified) is 0. To clarify, if '2' is specified, all tests with CLRTestPriorty 0, 1 **and** 2 will be built and consequently run. +The number '1' is just an example. The default value (if no priority is specified) is 0. To clarify, if '1' is specified, all tests with CLRTestPriorty 0 **and** 1 will be built and consequently run. ## Examples @@ -35,7 +35,7 @@ To run a clean, priority 1, crossgen test pass: ### Building Individual Tests -Note: buildtest.cmd or build.cmd skipnative skipmscorlib needs to be run atleast once +Note: build-test.cmd or build.cmd skipnative needs to be run atleast once * Native Test: Build the generated Visual Studio solution or make file corresponding to Test cmake file. @@ -47,7 +47,7 @@ Note: buildtest.cmd or build.cmd skipnative skipmscorlib needs to be run atleast For example to run all of the tests using your checked build: - \tests\runtest.cmd -checked + \tests\runtest.cmd checked This will generate a report named as `TestRun__.html` (e.g. `TestRun_Windows_NT__x64__Checked.html`) in the subdirectory `\bin\Logs`. Any tests that failed will be listed in `TestRunResults_Windows_NT__x64__Checked.err`. diff --git a/build-test.sh b/build-test.sh index 1c4797d4879c..e5bb78c13eec 100755 --- a/build-test.sh +++ b/build-test.sh @@ -289,22 +289,18 @@ build_Tests() if [ $__BuildTestWrappers -ne -0 ]; then echo "${__MsgPrefix}Creating test wrappers..." - __XUnitWrapperBuiltMarker=${__TestBinDir}/xunit_wrapper_build + # Always create the test wrappers and set the exclude file. + export __Exclude="$__TestDir/issues.targets" + echo "Exclude set to $__TestDir/issues.targets" + build_Tests_internal "Tests_XunitWrapper" "$__ProjectDir/tests/runtest.proj" "Test Xunit Wrapper" "-BuildWrappers" "-MsBuildEventLogging= " "-TargetsWindows=false" - if [ ! -f $__XUnitWrapperBuiltMarker ]; then - - build_MSBuild_projects "Tests_XunitWrapper" "$__ProjectDir/tests/runtest.proj" "Test Xunit Wrapper" "-BuildWrappers" "-MsBuildEventLogging= " "-TargetsWindows=false" - - if [ $? -ne 0 ]; then - echo "${__MsgPrefix}Error: build failed. Refer to the build log files for details (above)" - exit 1 - else - echo "XUnit Wrappers have been built." - echo "Create marker \"${__XUnitWrapperBuiltMarker}\"" - touch $__XUnitWrapperBuiltMarker - fi + if [ $? -ne 0 ]; then + echo "${__MsgPrefix}Error: build failed. Refer to the build log files for details (above)" + exit 1 else - echo "XUnit Wrappers had been built before." + echo "XUnit Wrappers have been built." + echo "Create marker \"${__XUnitWrapperBuiltMarker}\"" + touch $__XUnitWrapperBuiltMarker fi fi diff --git a/init-tools.cmd b/init-tools.cmd index 305fe49d5f6b..90a0315e3499 100644 --- a/init-tools.cmd +++ b/init-tools.cmd @@ -47,9 +47,33 @@ echo Running %0 > "%INIT_TOOLS_LOG%" set /p DOTNET_VERSION=< "%~dp0DotnetCLIVersion.txt" if exist "%DOTNET_CMD%" goto :afterdotnetrestore +REM Use x86 tools on arm64 and x86. +REM arm32 host is not currently supported, please crossbuild. +if /i "%PROCESSOR_ARCHITECTURE%" == "arm" ( + echo "Error, arm32 arch not supported for build tools." + exit /b 1 +) + +if /i "%PROCESSOR_ARCHITECTURE%" == "amd64" ( + set _Arch="x64" + goto ArchSet +) + +REM If this is not amd64 and not arm, then we should be running on arm64 or x86 +REM either way we can (and should) use the x86 dotnet cli +REM +REM TODO: consume native arm64 toolset, blocked by official arm64 windows cli +REM : release. See https://github.com/dotnet/coreclr/issues/19614 for more +REM : information +set _Arch="x86" + +echo "init-tools.cmd: Setting arch to %_Arch% for build tools" + +:ArchSet + echo Installing dotnet cli... if NOT exist "%DOTNET_PATH%" mkdir "%DOTNET_PATH%" -set DOTNET_ZIP_NAME=dotnet-sdk-%DOTNET_VERSION%-win-x64.zip +set DOTNET_ZIP_NAME=dotnet-sdk-%DOTNET_VERSION%-win-%_Arch%.zip set DOTNET_REMOTE_PATH=https://dotnetcli.azureedge.net/dotnet/Sdk/%DOTNET_VERSION%/%DOTNET_ZIP_NAME% set DOTNET_LOCAL_PATH=%DOTNET_PATH%%DOTNET_ZIP_NAME% echo Installing '%DOTNET_REMOTE_PATH%' to '%DOTNET_LOCAL_PATH%' >> "%INIT_TOOLS_LOG%" diff --git a/init-tools.sh b/init-tools.sh index f9c0054eb8e5..f62ccb8cf209 100755 --- a/init-tools.sh +++ b/init-tools.sh @@ -71,7 +71,17 @@ if [ ! -e "$__DOTNET_PATH" ]; then echo "Warning: build not supported on 32 bit Unix" fi - __PKG_ARCH=x64 + if [ "$(uname -m)" = "armhf" ] || [ "$(uname -m)" = "arm64" ] || [ "$(uname -m)" = "aarch64" ]; then + if [ "$(uname -m)" = "armhf" ]; then + __PKG_ARCH=arm + fi + + if [ "$(uname -m)" = "arm64" ] || [ "$(uname -m)" = "aarch64" ]; then + __PKG_ARCH=arm64 + fi + else + __PKG_ARCH=x64 + fi OSName=$(uname -s) case $OSName in @@ -171,26 +181,30 @@ if [ -n "${DotNetBootstrapCliTarPath-}" ]; then unset ILASMCOMPILER_VERSION fi -echo "Initializing BuildTools..." -echo "Running: $__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR $__PACKAGES_DIR" >> "$__init_tools_log" - -# Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424 -chmod +x "$__BUILD_TOOLS_PATH/init-tools.sh" -"$__BUILD_TOOLS_PATH/init-tools.sh" "$__scriptpath" "$__DOTNET_CMD" "$__TOOLRUNTIME_DIR" "$__PACKAGES_DIR" >> "$__init_tools_log" -if [ "$?" != "0" ]; then - echo "ERROR: An error occurred when trying to initialize the tools." 1>&2 - display_error_message - exit 1 -fi - -echo "Making all .sh files executable under Tools." -# Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424 -ls "$__scriptpath/Tools/"*.sh | xargs chmod +x -ls "$__scriptpath/Tools/scripts/docker/"*.sh | xargs chmod +x +# Build tools only supported on x64 +if [ "${__PKG_ARCH}" != "x64" ] && [ "${__PKG_ARCH}" != "arm" ]; then + echo "Skipped installing build tools." +else + echo "Initializing BuildTools..." + echo "Running: $__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR $__PACKAGES_DIR" >> "$__init_tools_log" + + # Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424 + chmod +x "$__BUILD_TOOLS_PATH/init-tools.sh" + "$__BUILD_TOOLS_PATH/init-tools.sh" "$__scriptpath" "$__DOTNET_CMD" "$__TOOLRUNTIME_DIR" "$__PACKAGES_DIR" >> "$__init_tools_log" + if [ "$?" != "0" ]; then + echo "ERROR: An error occurred when trying to initialize the tools." 1>&2 + display_error_message + exit 1 + fi -"$__scriptpath/Tools/crossgen.sh" "$__scriptpath/Tools" $__PKG_RID + echo "Making all .sh files executable under Tools." + # Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424 + ls "$__scriptpath/Tools/"*.sh | xargs chmod +x + ls "$__scriptpath/Tools/scripts/docker/"*.sh | xargs chmod +x -mkdir -p "$(dirname "$__BUILD_TOOLS_SEMAPHORE")" && touch "$__BUILD_TOOLS_SEMAPHORE" + "$__scriptpath/Tools/crossgen.sh" "$__scriptpath/Tools" $__PKG_RID -echo "Done initializing tools." + mkdir -p "$(dirname "$__BUILD_TOOLS_SEMAPHORE")" && touch "$__BUILD_TOOLS_SEMAPHORE" + echo "Done initializing tools." +fi diff --git a/tests/arm/Tests.lst b/tests/arm/Tests.lst index b18febd2cacc..a1b00baa9e83 100644 --- a/tests/arm/Tests.lst +++ b/tests/arm/Tests.lst @@ -53204,14 +53204,6 @@ MaxAllowedDurationSeconds=600 Categories=EXPECTED_PASS;Pri1 HostStyle=0 -[b12011.cmd_6691] -RelativePath=JIT\Regression\VS-ia64-JIT\V1.2-M02\b12011\b12011\b12011.cmd -WorkingDir=JIT\Regression\VS-ia64-JIT\V1.2-M02\b12011\b12011 -Expected=0 -MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS -HostStyle=0 - [FlowControlNext.cmd_6692] RelativePath=CoreMangLib\cti\system\reflection\emit\flowcontrol\FlowControlNext\FlowControlNext.cmd WorkingDir=CoreMangLib\cti\system\reflection\emit\flowcontrol\FlowControlNext diff --git a/tests/arm64/Tests.lst b/tests/arm64/Tests.lst index 2c7f403d63d1..ffbdf2c64229 100644 --- a/tests/arm64/Tests.lst +++ b/tests/arm64/Tests.lst @@ -70244,14 +70244,6 @@ MaxAllowedDurationSeconds=600 Categories=JIT;EXPECTED_PASS HostStyle=0 -[b12011.cmd_9160] -RelativePath=JIT\Regression\VS-ia64-JIT\V1.2-M02\b12011\b12011\b12011.cmd -WorkingDir=JIT\Regression\VS-ia64-JIT\V1.2-M02\b12011\b12011 -Expected=0 -MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS -HostStyle=0 - [b14355.cmd_9161] RelativePath=JIT\Regression\VS-ia64-JIT\V1.2-M02\b14355\b14355\b14355.cmd WorkingDir=JIT\Regression\VS-ia64-JIT\V1.2-M02\b14355\b14355 diff --git a/tests/bringup_runtest.sh b/tests/bringup_runtest.sh new file mode 100755 index 000000000000..a4631a72c93c --- /dev/null +++ b/tests/bringup_runtest.sh @@ -0,0 +1,1517 @@ +#!/usr/bin/env bash + +function print_usage { + echo '' + echo 'CoreCLR test runner script.' + echo '' + echo 'Typical command line:' + echo '' + echo 'coreclr/tests/runtest.sh' + echo ' --testRootDir="temp/Windows_NT.x64.Debug"' + echo ' --testNativeBinDir="coreclr/bin/obj/Linux.x64.Debug/tests"' + echo ' --coreOverlayDir="coreclr/bin/tests/Linux.x64.Debug/Tests/Core_Root"' + echo ' --copyNativeTestBin' + echo '' + echo 'Required arguments:' + echo ' --testRootDir= : Root directory of the test build (e.g. coreclr/bin/tests/Windows_NT.x64.Debug).' + echo ' --testNativeBinDir= : Directory of the native CoreCLR test build (e.g. coreclr/bin/obj/Linux.x64.Debug/tests).' + echo ' (Also required: Either --coreOverlayDir, or all of the switches --coreOverlayDir overrides)' + echo '' + echo 'Optional arguments:' + echo ' --coreOverlayDir= : Directory containing core binaries and test dependencies. If not specified, the' + echo ' default is testRootDir/Tests/coreoverlay. This switch overrides --coreClrBinDir,' + echo ' --mscorlibDir, and --coreFxBinDir.' + echo ' --coreClrBinDir= : Directory of the CoreCLR build (e.g. coreclr/bin/Product/Linux.x64.Debug).' + echo ' --mscorlibDir= : Directory containing the built mscorlib.dll. If not specified, it is expected to be' + echo ' in the directory specified by --coreClrBinDir.' + echo ' --coreFxBinDir="" : Directory with CoreFX build outputs' + echo ' (e.g. "corefx/bin/runtime/netcoreapp-Linux-Debug-x64")' + echo ' If files with the same name are present in multiple directories, the first one wins.' + echo ' --testDir= : Run tests only in the specified directory. The path is relative to the directory' + echo ' specified by --testRootDir. Multiple of this switch may be specified.' + echo ' --testDirFile= : Run tests only in the directories specified by the file at . Paths are listed' + echo ' one line, relative to the directory specified by --testRootDir.' + echo ' --build-overlay-only : Build coreoverlay only, and skip running tests.' + echo ' --runFailingTestsOnly : Run only the tests that are disabled on this platform due to unexpected failures.' + echo ' Failing tests are listed in coreclr/tests/failingTestsOutsideWindows.txt, one per' + echo ' line, as paths to .sh files relative to the directory specified by --testRootDir.' + echo ' --disableEventLogging : Disable the events logged by both VM and Managed Code' + echo ' --sequential : Run tests sequentially (default is to run in parallel).' + echo ' --playlist= : Run only the tests that are specified in the file at , in the same format as' + echo ' runFailingTestsOnly' + echo ' -v, --verbose : Show output from each test.' + echo ' -h|--help : Show usage information.' + echo ' --useServerGC : Enable server GC for this test run' + echo ' --test-env : Script to set environment variables for tests' + echo ' --copyNativeTestBin : Explicitly copy native test components into the test dir' + echo ' --crossgen : Precompiles the framework managed assemblies' + echo ' --runcrossgentests : Runs the ready to run tests' + echo ' --jitstress= : Runs the tests with COMPlus_JitStress=n' + echo ' --jitstressregs= : Runs the tests with COMPlus_JitStressRegs=n' + echo ' --jitminopts : Runs the tests with COMPlus_JITMinOpts=1' + echo ' --jitforcerelocs : Runs the tests with COMPlus_ForceRelocs=1' + echo ' --jitdisasm : Runs jit-dasm on the tests' + echo ' --gcstresslevel= : Runs the tests with COMPlus_GCStress=n' + echo ' --gcname= : Runs the tests with COMPlus_GCName=n' + echo ' --ilasmroundtrip : Runs ilasm round trip on the tests' + echo ' 0: None 1: GC on all allocs and '"'easy'"' places' + echo ' 2: GC on transitions to preemptive GC 4: GC on every allowable JITed instr' + echo ' 8: GC on every allowable NGEN instr 16: GC only on a unique stack trace' + echo ' --long-gc : Runs the long GC tests' + echo ' --gcsimulator : Runs the GCSimulator tests' + echo ' --tieredcompilation : Runs the tests with COMPlus_TieredCompilation=1' + echo ' --link : Runs the tests after linking via ILlink' + echo ' --show-time : Print execution sequence and running time for each test' + echo ' --no-lf-conversion : Do not execute LF conversion before running test script' + echo ' --limitedDumpGeneration : Enables the generation of a limited number of core dumps if test(s) crash, even if ulimit' + echo ' is zero when launching this script. This option is intended for use in CI.' + echo ' --xunitOutputPath= : Create xUnit XML report at the specifed path (default: /coreclrtests.xml)' + echo '' + echo 'CoreFX Test Options ' + echo ' --corefxtests : Runs CoreFX tests' + echo ' --corefxtestsall : Runs all available CoreFX tests' + echo ' --corefxtestlist= : Runs the CoreFX tests specified in the passed list' + echo ' --testHostDir= : Directory containing a built test host including core binaries, test dependencies' + echo ' and a dotnet executable' + echo '' + echo 'Runtime Code Coverage options:' + echo ' --coreclr-coverage : Optional argument to get coreclr code coverage reports' + echo ' --coreclr-objs= : Location of root of the object directory' + echo ' containing the linux/mac coreclr build' + echo ' --coreclr-src= : Location of root of the directory' + echo ' containing the coreclr source files' + echo ' --coverage-output-dir= : Directory where coverage output will be written to' + echo '' +} + +function print_results { + echo "" + echo "=======================" + echo " Test Results" + echo "=======================" + echo "# CoreCLR Bin Dir : $coreClrBinDir" + echo "# Tests Discovered : $countTotalTests" + echo "# Passed : $countPassedTests" + echo "# Failed : $countFailedTests" + echo "# Skipped : $countSkippedTests" + echo "=======================" +} + +# Initialize counters for bookkeeping. +countTotalTests=0 +countPassedTests=0 +countFailedTests=0 +countSkippedTests=0 + +# Variables for xUnit-style XML output. XML format: https://xunit.github.io/docs/format-xml-v2.html +xunitOutputPath= +xunitTestOutputPath= + +# Variables for text file output. These can be passed back to runtest.sh using the "--playlist" argument +# to rerun specific tests. +testsPassOutputPath= +testsFailOutputPath= +testsSkipOutputPath= + +# libExtension determines extension for dynamic library files +# runtimeName determines where CoreFX Runtime files will be located +OSName=$(uname -s) +libExtension= +case $OSName in + Darwin) + libExtension="dylib" + ;; + + Linux) + libExtension="so" + ;; + + NetBSD) + libExtension="so" + ;; + + *) + echo "Unsupported OS $OSName detected, configuring as if for Linux" + libExtension="so" + ;; +esac + +function xunit_output_begin { + if [ -z "$xunitOutputPath" ]; then + xunitOutputPath=$testRootDir/coreclrtests.xml + fi + if ! [ -e $(basename "$xunitOutputPath") ]; then + xunitOutputPath=$testRootDir/coreclrtests.xml + fi + xunitTestOutputPath=${xunitOutputPath}.test + if [ -e "$xunitOutputPath" ]; then + rm -f -r "$xunitOutputPath" + fi + if [ -e "$xunitTestOutputPath" ]; then + rm -f -r "$xunitTestOutputPath" + fi +} + +function xunit_output_add_test { + # + # + # + # + + local scriptFilePath=$1 + local outputFilePath=$2 + local testResult=$3 # Pass, Fail, or Skip + local testScriptExitCode=$4 + local testRunningTime=$5 + + local testPath=${scriptFilePath%.sh} # Remove trailing ".sh" + local testDir=$(dirname "$testPath") + local testName=$(basename "$testPath") + + # Replace '/' with '.' + testPath=$(echo "$testPath" | tr / .) + testDir=$(echo "$testDir" | tr / .) + + local line + + line=" " + line="${line}>"$xunitTestOutputPath" + return + fi + + line="${line}>" + echo "$line" >>"$xunitTestOutputPath" + + line=" " + if [ "$testResult" == "Skip" ]; then + line="${line}" + echo "$line" >>"$xunitTestOutputPath" + else + line="${line}" + echo "$line" >>"$xunitTestOutputPath" + + line=" " + line="${line}" + echo "$line" >>"$xunitTestOutputPath" + line=" " + line="${line}>"$xunitTestOutputPath" + cat "$outputFilePath" >>"$xunitTestOutputPath" + line=" " + line="${line}]]>" + echo "$line" >>"$xunitTestOutputPath" + line=" " + line="${line}" + echo "$line" >>"$xunitTestOutputPath" + + line=" " + line="${line}" + echo "$line" >>"$xunitTestOutputPath" + fi + + line=" " + line="${line}" + echo "$line" >>"$xunitTestOutputPath" +} + +function xunit_output_end { + local errorSource=$1 + local errorMessage=$2 + + local errorCount + if [ -z "$errorSource" ]; then + ((errorCount = 0)) + else + ((errorCount = 1)) + fi + + echo '' >>"$xunitOutputPath" + echo '' >>"$xunitOutputPath" + + local line + + # + line=" " + line="${line}>"$xunitOutputPath" + + # + line=" " + line="${line}>"$xunitOutputPath" + + # ... + if [ -f "$xunitTestOutputPath" ]; then + cat "$xunitTestOutputPath" >>"$xunitOutputPath" + rm -f "$xunitTestOutputPath" + fi + + # + line=" " + line="${line}" + echo "$line" >>"$xunitOutputPath" + + if [ -n "$errorSource" ]; then + # + line=" " + line="${line}" + echo "$line" >>"$xunitOutputPath" + + # + line=" " + line="${line}>"$xunitOutputPath" + + # + line=" " + line="${line}${errorMessage}" + echo "$line" >>"$xunitOutputPath" + + # + line=" " + line="${line}" + echo "$line" >>"$xunitOutputPath" + + # + line=" " + line="${line}" + echo "$line" >>"$xunitOutputPath" + fi + + # + line=" " + line="${line}" + echo "$line" >>"$xunitOutputPath" + + # + echo '' >>"$xunitOutputPath" +} + +function text_file_output_begin { + if [ -z "$testsPassOutputPath" ]; then + testsPassOutputPath=$testRootDir/coreclrtests.pass.txt + fi + if ! [ -e $(basename "$testsPassOutputPath") ]; then + testsPassOutputPath=$testRootDir/coreclrtests.pass.txt + fi + if [ -e "$testsPassOutputPath" ]; then + rm -f "$testsPassOutputPath" + fi + if [ -z "$testsFailOutputPath" ]; then + testsFailOutputPath=$testRootDir/coreclrtests.fail.txt + fi + if ! [ -e $(basename "$testsFailOutputPath") ]; then + testsFailOutputPath=$testRootDir/coreclrtests.fail.txt + fi + if [ -e "$testsFailOutputPath" ]; then + rm -f "$testsFailOutputPath" + fi + if [ -z "$testsSkipOutputPath" ]; then + testsSkipOutputPath=$testRootDir/coreclrtests.skip.txt + fi + if ! [ -e $(basename "$testsSkipOutputPath") ]; then + testsSkipOutputPath=$testRootDir/coreclrtests.skip.txt + fi + if [ -e "$testsSkipOutputPath" ]; then + rm -f "$testsSkipOutputPath" + fi +} + +function text_file_output_add_test { + local scriptFilePath=$1 + local testResult=$2 # Pass, Fail, or Skip + + if [ "$testResult" == "Pass" ]; then + echo "$scriptFilePath" >>"$testsPassOutputPath" + elif [ "$testResult" == "Skip" ]; then + echo "$scriptFilePath" >>"$testsSkipOutputPath" + else + echo "$scriptFilePath" >>"$testsFailOutputPath" + fi +} + +function exit_with_error { + local errorSource=$1 + local errorMessage=$2 + local printUsage=$3 + + if [ -z "$printUsage" ]; then + ((printUsage = 0)) + fi + + echo "$errorMessage" + xunit_output_end "$errorSource" "$errorMessage" + if ((printUsage != 0)); then + print_usage + fi + exit $EXIT_CODE_EXCEPTION +} + +# Handle Ctrl-C. We will stop execution and print the results that +# we gathered so far. +function handle_ctrl_c { + local errorSource='handle_ctrl_c' + + echo "" + echo "*** Stopping... ***" + print_results + exit_with_error "$errorSource" "Test run aborted by Ctrl+C." +} + +# Register the Ctrl-C handler +trap handle_ctrl_c INT + +function create_core_overlay { + local errorSource='create_core_overlay' + local printUsage=1 + + if [ -n "$coreOverlayDir" ]; then + export CORE_ROOT="$coreOverlayDir" + + if [ -n "$copyNativeTestBin" ]; then + copy_test_native_bin_to_test_root $coreOverlayDir + fi + + return + fi + + # Check inputs to make sure we have enough information to create the core layout. $testRootDir/Tests/Core_Root should + # already exist and contain test dependencies that are not built. + local testDependenciesDir=$testRootDir/Tests/Core_Root + if [ ! -d "$testDependenciesDir" ]; then + exit_with_error "$errorSource" "Did not find the test dependencies directory: $testDependenciesDir" + fi + if [ -z "$coreClrBinDir" ]; then + exit_with_error "$errorSource" "One of --coreOverlayDir or --coreClrBinDir must be specified." "$printUsage" + fi + if [ ! -d "$coreClrBinDir" ]; then + exit_with_error "$errorSource" "Directory specified by --coreClrBinDir does not exist: $coreClrBinDir" + fi + + # Create the overlay + coreOverlayDir=$testRootDir/Tests/coreoverlay + export CORE_ROOT="$coreOverlayDir" + if [ -e "$coreOverlayDir" ]; then + rm -f -r "$coreOverlayDir" + fi + mkdir "$coreOverlayDir" + + cp -f -v "$coreFxBinDir/"* "$coreOverlayDir/" 2>/dev/null + cp -f -p -v "$coreClrBinDir/"* "$coreOverlayDir/" 2>/dev/null + if [ -d "$mscorlibDir/bin" ]; then + cp -f -v "$mscorlibDir/bin/"* "$coreOverlayDir/" 2>/dev/null + fi + cp -f -v "$testDependenciesDir/"xunit* "$coreOverlayDir/" 2>/dev/null + cp -n -v "$testDependenciesDir/"* "$coreOverlayDir/" 2>/dev/null + if [ -f "$coreOverlayDir/mscorlib.ni.dll" ]; then + # Test dependencies come from a Windows build, and mscorlib.ni.dll would be the one from Windows + rm -f "$coreOverlayDir/mscorlib.ni.dll" + fi + if [ -f "$coreOverlayDir/System.Private.CoreLib.ni.dll" ]; then + # Test dependencies come from a Windows build, and System.Private.CoreLib.ni.dll would be the one from Windows + rm -f "$coreOverlayDir/System.Private.CoreLib.ni.dll" + fi + copy_test_native_bin_to_test_root $coreOverlayDir +} + +function create_testhost +{ + if [ ! -d "$testHostDir" ]; then + exit_with_error "$errorSource" "Did not find the test host directory: $testHostDir" + fi + + # Initialize test variables + local buildToolsDir=$coreClrSrc/Tools + local dotnetExe=$buildToolsDir/dotnetcli/dotnet + local coreClrSrcTestDir=$coreClrSrc/tests + + if [ -z $coreClrBinDir ]; then + local coreClrBinDir=${coreClrSrc}/bin + export __CoreFXTestDir=${coreClrSrc}/bin/tests/CoreFX + else + export __CoreFXTestDir=${coreClrBinDir}/tests/CoreFX + fi + + local coreFXTestSetupUtilityName=CoreFX.TestUtils.TestFileSetup + local coreFXTestSetupUtility="${coreClrSrcTestDir}/src/Common/CoreFX/TestFileSetup/${coreFXTestSetupUtilityName}.csproj" + local coreFXTestSetupUtilityOutputPath=${__CoreFXTestDir}/TestUtilities + local coreFXTestBinariesOutputPath=${__CoreFXTestDir}/tests_downloaded + + if [ -z $CoreFXTestList]; then + local CoreFXTestList="${coreClrSrcTestDir}/CoreFX/CoreFX.issues.json" + fi + + case "${OSName}" in + # Check if we're running under OSX + Darwin) + local coreFXTestRemoteURL=$(<${coreClrSrcTestDir}/CoreFX/CoreFXTestListURL_OSX.txt) + local coreFXTestExclusionDef=nonosxtests + ;; + # Default to Linux + *) + local coreFXTestRemoteURL=$(<${coreClrSrcTestDir}/CoreFX/CoreFXTestListURL_Linux.txt) + local coreFXTestExclusionDef=nonlinuxtests + ;; + esac + + local coreFXTestExecutable=xunit.console.netcore.exe + local coreFXLogDir=${coreClrBinDir}/Logs/CoreFX/ + local coreFXTestExecutableArgs="--notrait category=nonnetcoreapptests --notrait category=${coreFXTestExclusionDef} --notrait category=failing --notrait category=IgnoreForCI --notrait category=OuterLoop --notrait Benchmark=true" + + chmod +x ${dotnetExe} + resetCommandArgs=("msbuild /t:Restore ${coreFXTestSetupUtility}") + echo "${dotnetExe} $resetCommandArgs" + "${dotnetExe}" $resetCommandArgs + + buildCommandArgs=("msbuild ${coreFXTestSetupUtility} /p:OutputPath=${coreFXTestSetupUtilityOutputPath} /p:Platform=${_arch} /p:Configuration=Release") + echo "${dotnetExe} $buildCommandArgs" + "${dotnetExe}" $buildCommandArgs + + if [ "${RunCoreFXTestsAll}" == "1" ]; then + local coreFXRunCommand=--runAllTests + else + local coreFXRunCommand=--runSpecifiedTests + fi + + local buildTestSetupUtilArgs=("${coreFXTestSetupUtilityOutputPath}/${coreFXTestSetupUtilityName}.dll --clean --outputDirectory ${coreFXTestBinariesOutputPath} --testListJsonPath ${CoreFXTestList} ${coreFXRunCommand} --dotnetPath ${testHostDir}/dotnet --testUrl ${coreFXTestRemoteURL} --executable ${coreFXTestExecutable} --log ${coreFXLogDir} ${coreFXTestExecutableArgs}") + echo "${dotnetExe} $buildTestSetupUtilArgs" + "${dotnetExe}" $buildTestSetupUtilArgs + + local exitCode=$? + if [ $exitCode != 0 ]; then + echo Running CoreFX tests finished with failures + else + echo Running CoreFX tests finished successfully + fi + + echo Check ${coreFXLogDir} for test run logs + + exit ${exitCode} +} + +declare -a skipCrossGenFiles + +function is_skip_crossgen_test { + for skip in "${skipCrossGenFiles[@]}"; do + if [ "$1" == "$skip" ]; then + return 0 + fi + done + return 1 +} + +function precompile_overlay_assemblies { + skipCrossGenFiles=($(read_array "$(dirname "$0")/skipCrossGenFiles.$ARCH.txt")) + + if [ $doCrossgen == 1 ]; then + local overlayDir=$CORE_ROOT + + filesToPrecompile=$(find -L $overlayDir -iname \*.dll -not -iname \*.ni.dll -not -iname \*-ms-win-\* -type f ) + for fileToPrecompile in ${filesToPrecompile} + do + local filename=${fileToPrecompile} + if [ $jitdisasm == 1 ]; then + $overlayDir/corerun $overlayDir/jit-dasm.dll --crossgen $overlayDir/crossgen --platform $overlayDir --output $testRootDir/dasm $filename + local exitCode=$? + if [ $exitCode != 0 ]; then + echo Unable to generate dasm for $filename + fi + else + if is_skip_crossgen_test "$(basename $filename)"; then + continue + fi + echo Precompiling $filename + $overlayDir/crossgen /Platform_Assemblies_Paths $overlayDir $filename 1> $filename.stdout 2>$filename.stderr + local exitCode=$? + if [[ $exitCode != 0 ]]; then + if grep -q -e '0x80131018' $filename.stderr; then + printf "\n\t$filename is not a managed assembly.\n\n" + else + echo Unable to precompile $filename. + cat $filename.stdout + cat $filename.stderr + exit $exitCode + fi + else + rm $filename.{stdout,stderr} + fi + fi + done + else + echo Skipping crossgen of FX assemblies. + fi +} + +function copy_test_native_bin_to_test_root { + local errorSource='copy_test_native_bin_to_test_root' + local coreRootDir=$1 + + if [ -z "$testNativeBinDir" ]; then + exit_with_error "$errorSource" "--testNativeBinDir is required." + fi + testNativeBinDir=$testNativeBinDir/src + if [ ! -d "$testNativeBinDir" ]; then + exit_with_error "$errorSource" "Directory specified by --testNativeBinDir does not exist: $testNativeBinDir" + fi + + # Copy native test components from the native test build into the respective test directory in the test root directory + find "$testNativeBinDir" -type f -iname "*.$libExtension" | + while IFS='' read -r filePath || [ -n "$filePath" ]; do + local dirPath=$(dirname "$filePath") + cp -f "$filePath" "$coreRootDir" + done +} + +# Variables for unsupported and failing tests +declare -a unsupportedTests +declare -a failingTests +declare -a playlistTests +((runFailingTestsOnly = 0)) + +# Get an array of items by reading the specified file line by line. +function read_array { + local theArray=() + + if [ ! -f "$1" ]; then + return + fi + + # bash in Mac OS X doesn't support 'readarray', so using alternate way instead. + # readarray -t theArray < "$1" + # Any line that starts with '#' is ignored. + while IFS='' read -r line || [ -n "$line" ]; do + if [[ $line != "#"* ]]; then + theArray[${#theArray[@]}]=$line + fi + done < "$1" + echo ${theArray[@]} +} + +function load_unsupported_tests { + # Load the list of tests that are not supported on this platform. These tests are disabled (skipped) permanently. + unsupportedTests=($(read_array "$(dirname "$0")/testsUnsupportedOutsideWindows.txt")) + unsupportedTests+=($(read_array "$(dirname "$0")/testsUnsupported.$ARCH.txt")) +} + +function load_failing_tests { + # Load the list of tests that fail on this platform. These tests are disabled (skipped) temporarily, pending investigation. + failingTests=($(read_array "$(dirname "$0")/testsFailingOutsideWindows.txt")) + failingTests+=($(read_array "$(dirname "$0")/testsFailing.$ARCH.txt")) +} + +function load_playlist_tests { + # Load the list of tests that are enabled as a part of this test playlist. + playlistTests=($(read_array "${playlistFile}")) +} + +function is_unsupported_test { + for unsupportedTest in "${unsupportedTests[@]}"; do + if [ "$1" == "$unsupportedTest" ]; then + return 0 + fi + done + return 1 +} + +function is_failing_test { + for failingTest in "${failingTests[@]}"; do + if [ "$1" == "$failingTest" ]; then + return 0 + fi + done + return 1 +} + +function is_playlist_test { + for playlistTest in "${playlistTests[@]}"; do + if [ "$1" == "$playlistTest" ]; then + return 0 + fi + done + return 1 +} + +function skip_unsupported_test { + # This function runs in a background process. It should not echo anything, and should not use global variables. This + # function is analogous to run_test, and causes the test to be skipped with the message below. + + local scriptFilePath=$1 + local outputFilePath=$2 + + echo "Not supported on this platform." >"$outputFilePath" + return 2 # skip the test +} + +function skip_failing_test { + # This function runs in a background process. It should not echo anything, and should not use global variables. This + # function is analogous to run_test, and causes the test to be skipped with the message below. + + local scriptFilePath=$1 + local outputFilePath=$2 + + echo "Temporarily disabled on this platform due to unexpected failures." >"$outputFilePath" + return 2 # skip the test +} + +function skip_non_playlist_test { + # This function runs in a background process. It should not echo anything, and should not use global variables. This + # function is analogous to run_test, and causes the test to be skipped with the message below. + + local scriptFilePath=$1 + local outputFilePath=$2 + + echo "Test is not included in the running playlist." >"$outputFilePath" + return 2 # skip the test +} + +function set_up_core_dump_generation { + # We will only enable dump generation here if we're on Mac or Linux + if [[ ! ( "$(uname -s)" == "Darwin" || "$(uname -s)" == "Linux" ) ]]; then + return + fi + + # We won't enable dump generation on OS X/macOS if the machine hasn't been + # configured with the kern.corefile pattern we expect. + if [[ ( "$(uname -s)" == "Darwin" && "$(sysctl -n kern.corefile)" != "core.%P" ) ]]; then + echo "WARNING: Core dump generation not being enabled due to unexpected kern.corefile value." + return + fi + + # Allow dump generation + ulimit -c unlimited + + if [ "$(uname -s)" == "Linux" ]; then + if [ -e /proc/self/coredump_filter ]; then + # Include memory in private and shared file-backed mappings in the dump. + # This ensures that we can see disassembly from our shared libraries when + # inspecting the contents of the dump. See 'man core' for details. + echo 0x3F > /proc/self/coredump_filter + fi + fi +} + +function print_info_from_core_file { + + #### temporary + if [ "$ARCH" == "arm64" ]; then + echo "Not inspecting core dumps on arm64 at the moment." + return + fi + #### + + local core_file_name=$1 + local executable_name=$2 + + if ! [ -e $executable_name ]; then + echo "Unable to find executable $executable_name" + return + elif ! [ -e $core_file_name ]; then + echo "Unable to find core file $core_file_name" + return + fi + + # Use LLDB to inspect the core dump on Mac, and GDB everywhere else. + if [[ "$OSName" == "Darwin" ]]; then + hash lldb 2>/dev/null || { echo >&2 "LLDB was not found. Unable to print core file."; return; } + + echo "Printing info from core file $core_file_name" + lldb -c $core_file_name -b -o 'bt' + else + # Use GDB to print the backtrace from the core file. + hash gdb 2>/dev/null || { echo >&2 "GDB was not found. Unable to print core file."; return; } + + echo "Printing info from core file $core_file_name" + gdb --batch -ex "thread apply all bt full" -ex "quit" $executable_name $core_file_name + fi +} + +function download_dumpling_script { + echo "Downloading latest version of dumpling script." + wget "https://dumpling.azurewebsites.net/api/client/dumpling.py" + + local dumpling_script="dumpling.py" + chmod +x $dumpling_script +} + +function upload_core_file_to_dumpling { + local core_file_name=$1 + local dumpling_script="dumpling.py" + local dumpling_file="local_dumplings.txt" + + # dumpling requires that the file exist before appending. + touch ./$dumpling_file + + if [ ! -x $dumpling_script ]; then + download_dumpling_script + fi + + if [ ! -x $dumpling_script ]; then + echo "Failed to download dumpling script. Dump cannot be uploaded." + return + fi + + echo "Uploading $core_file_name to dumpling service." + + local paths_to_add="" + if [ -d "$coreClrBinDir" ]; then + echo "Uploading CoreCLR binaries with dump." + paths_to_add=$coreClrBinDir + fi + + # Ensure the script has Unix line endings + perl -pi -e 's/\r\n|\n|\r/\n/g' "$dumpling_script" + + # The output from this will include a unique ID for this dump. + ./$dumpling_script "upload" "--dumppath" "$core_file_name" "--incpaths" $paths_to_add "--properties" "Project=CoreCLR" "--squelch" | tee -a $dumpling_file +} + +function preserve_core_file { + local core_file_name=$1 + local storage_location="/tmp/coredumps_coreclr" + + # Create the directory (this shouldn't fail even if it already exists). + mkdir -p $storage_location + + # Only preserve the dump if the directory is empty. Otherwise, do nothing. + # This is a way to prevent us from storing/uploading too many dumps. + if [ ! "$(ls -A $storage_location)" ]; then + echo "Copying core file $core_file_name to $storage_location" + cp $core_file_name $storage_location + + upload_core_file_to_dumpling $core_file_name + fi +} + +function inspect_and_delete_core_files { + # This function prints some basic information from core files in the current + # directory and deletes them immediately. Based on the state of the system, it may + # also upload a core file to the dumpling service. + # (see preserve_core_file). + + # Depending on distro/configuration, the core files may either be named "core" + # or "core." by default. We will read /proc/sys/kernel/core_uses_pid to + # determine which one it is. + # On OS X/macOS, we checked the kern.corefile value before enabling core dump + # generation, so we know it always includes the PID. + local core_name_uses_pid=0 + if [[ (( -e /proc/sys/kernel/core_uses_pid ) && ( "1" == $(cat /proc/sys/kernel/core_uses_pid) )) + || ( "$(uname -s)" == "Darwin" ) ]]; then + core_name_uses_pid=1 + fi + + if [ $core_name_uses_pid == "1" ]; then + # We don't know what the PID of the process was, so let's look at all core + # files whose name matches core.NUMBER + for f in core.*; do + [[ $f =~ core.[0-9]+ ]] && print_info_from_core_file "$f" $CORE_ROOT/"corerun" && preserve_core_file "$f" && rm "$f" + done + elif [ -f core ]; then + print_info_from_core_file "core" $CORE_ROOT/"corerun" + preserve_core_file "core" + rm "core" + fi +} + +function run_test { + # This function runs in a background process. It should not echo anything, and should not use global variables. + + local scriptFilePath=$1 + local outputFilePath=$2 + + # Switch to directory where the script is + cd "$(dirname "$scriptFilePath")" + + local scriptFileName=$(basename "$scriptFilePath") + local outputFileName=$(basename "$outputFilePath") + + if [ "$limitedCoreDumps" == "ON" ]; then + set_up_core_dump_generation + fi + + "./$scriptFileName" >"$outputFileName" 2>&1 + local testScriptExitCode=$? + + # We will try to print some information from generated core dumps if a debugger + # is available, and possibly store a dump in a non-transient location. + if [ "$limitedCoreDumps" == "ON" ]; then + inspect_and_delete_core_files + fi + + return $testScriptExitCode +} + +# Variables for running tests in the background +if [ `uname` = "NetBSD" ]; then + NumProc=$(getconf NPROCESSORS_ONLN) +elif [ `uname` = "Darwin" ]; then + NumProc=$(getconf _NPROCESSORS_ONLN) +else + if [ -x "$(command -v nproc)" ]; then + NumProc=$(nproc --all) + elif [ -x "$(command -v getconf)" ]; then + NumProc=$(getconf _NPROCESSORS_ONLN) + else + NumProc=1 + fi +fi +((maxProcesses = $NumProc * 3 / 2)) # long tests delay process creation, use a few more processors + +((processCount = 0)) +declare -a scriptFilePaths +declare -a outputFilePaths +declare -a processIds +declare -a testStartTimes +waitProcessIndex= +pidNone=0 + +function waitany { + local pid + local exitcode + while true; do + for (( i=0; i<$maxProcesses; i++ )); do + pid=${processIds[$i]} + if [ -z "$pid" ] || [ "$pid" == "$pidNone" ]; then + continue + fi + if ! kill -0 $pid 2>/dev/null; then + wait $pid + exitcode=$? + waitProcessIndex=$i + processIds[$i]=$pidNone + return $exitcode + fi + done + sleep 0.1 + done +} + +function get_available_process_index { + local pid + local i=0 + for (( i=0; i<$maxProcesses; i++ )); do + pid=${processIds[$i]} + if [ -z "$pid" ] || [ "$pid" == "$pidNone" ]; then + break + fi + done + echo $i +} + +function finish_test { + waitany + local testScriptExitCode=$? + local finishedProcessIndex=$waitProcessIndex + ((--processCount)) + + local scriptFilePath=${scriptFilePaths[$finishedProcessIndex]} + local outputFilePath=${outputFilePaths[$finishedProcessIndex]} + local scriptFileName=$(basename "$scriptFilePath") + + local testEndTime= + local testRunningTime= + local header= + + if ((verbose == 1)); then + header=$(printf "[%4d]" $countTotalTests) + fi + + if [ "$showTime" == "ON" ]; then + testEndTime=$(date +%s) + testRunningTime=$(( $testEndTime - ${testStartTimes[$finishedProcessIndex]} )) + header=$header$(printf "[%4ds]" $testRunningTime) + fi + + local testResult + case $testScriptExitCode in + 0) + let countPassedTests++ + testResult='Pass' + if ((verbose == 1 || runFailingTestsOnly == 1)); then + echo "PASSED - ${header}${scriptFilePath}" + else + echo " - ${header}${scriptFilePath}" + fi + ;; + 2) + let countSkippedTests++ + testResult='Skip' + echo "SKIPPED - ${header}${scriptFilePath}" + ;; + *) + let countFailedTests++ + testResult='Fail' + echo "FAILED - ${header}${scriptFilePath}" + ;; + esac + let countTotalTests++ + + if ((verbose == 1 || testScriptExitCode != 0)); then + while IFS='' read -r line || [ -n "$line" ]; do + echo " $line" + done <"$outputFilePath" + fi + + xunit_output_add_test "$scriptFilePath" "$outputFilePath" "$testResult" "$testScriptExitCode" "$testRunningTime" + text_file_output_add_test "$scriptFilePath" "$testResult" +} + +function finish_remaining_tests { + # Finish the remaining tests in the order in which they were started + while ((processCount > 0)); do + finish_test + done +} + +function prep_test { + local scriptFilePath=$1 + local scriptFileDir=$(dirname "$scriptFilePath") + + test "$verbose" == 1 && echo "Preparing $scriptFilePath" + + if [ ! "$noLFConversion" == "ON" ]; then + # Convert DOS line endings to Unix if needed + perl -pi -e 's/\r\n|\n|\r/\n/g' "$scriptFilePath" + fi + + # Add executable file mode bit if needed + chmod +x "$scriptFilePath" + + #remove any NI and Locks + rm -f $scriptFileDir/*.ni.* + rm -rf $scriptFileDir/lock +} + +function start_test { + local nextProcessIndex=$(get_available_process_index) + local scriptFilePath=$1 + if ((runFailingTestsOnly == 1)) && ! is_failing_test "$scriptFilePath"; then + return + fi + + # Skip any test that's not in the current playlist, if a playlist was + # given to us. + if [ -n "$playlistFile" ] && ! is_playlist_test "$scriptFilePath"; then + return + fi + + if ((nextProcessIndex == maxProcesses)); then + finish_test + nextProcessIndex=$(get_available_process_index) + fi + + scriptFilePaths[$nextProcessIndex]=$scriptFilePath + local scriptFileName=$(basename "$scriptFilePath") + local outputFilePath=$(dirname "$scriptFilePath")/${scriptFileName}.out + outputFilePaths[$nextProcessIndex]=$outputFilePath + + if [ "$showTime" == "ON" ]; then + testStartTimes[$nextProcessIndex]=$(date +%s) + fi + + test "$verbose" == 1 && echo "Starting $scriptFilePath" + if is_unsupported_test "$scriptFilePath"; then + skip_unsupported_test "$scriptFilePath" "$outputFilePath" & + elif ((runFailingTestsOnly == 0)) && is_failing_test "$scriptFilePath"; then + skip_failing_test "$scriptFilePath" "$outputFilePath" & + else + run_test "$scriptFilePath" "$outputFilePath" & + fi + processIds[$nextProcessIndex]=$! + + ((++processCount)) +} + +# Get a list of directories in which to scan for tests by reading the +# specified file line by line. +function set_test_directories { + local errorSource='set_test_directories' + + local listFileName=$1 + + if [ ! -f "$listFileName" ] + then + exit_with_error "$errorSource" "Test directories file not found at $listFileName" + fi + testDirectories=($(read_array "$listFileName")) +} + +function run_tests_in_directory { + local testDir=$1 + + # Recursively search through directories for .sh files to prepare them. + # Note: This needs to occur before any test runs as some of the .sh files + # depend on other .sh files + for scriptFilePath in $(find "$testDir" -type f -iname '*.sh' | sort) + do + prep_test "${scriptFilePath:2}" + done + echo "The tests have been prepared" + # Recursively search through directories for .sh files to run. + for scriptFilePath in $(find "$testDir" -type f -iname '*.sh' | sort) + do + start_test "${scriptFilePath:2}" + done +} + +function coreclr_code_coverage { + local coverageDir="$coverageOutputDir/Coverage" + local toolsDir="$coverageOutputDir/Coverage/tools" + local reportsDir="$coverageOutputDir/Coverage/reports" + local packageName="unix-code-coverage-tools.1.0.0.nupkg" + + rm -rf $coverageDir + mkdir -p $coverageDir + mkdir -p $toolsDir + mkdir -p $reportsDir + pushd $toolsDir > /dev/null + + echo "Pulling down code coverage tools" + wget -q https://www.myget.org/F/dotnet-buildtools/api/v2/package/unix-code-coverage-tools/1.0.0 -O $packageName + echo "Unzipping to $toolsDir" + unzip -q -o $packageName + + # Invoke gcovr + chmod a+rwx ./gcovr + chmod a+rwx ./$OSName/llvm-cov + + echo + echo "Generating coreclr code coverage reports at $reportsDir/coreclr.html" + echo "./gcovr $coreClrObjs --gcov-executable=$toolsDir/$OS/llvm-cov -r $coreClrSrc --html --html-details -o $reportsDir/coreclr.html" + echo + ./gcovr $coreClrObjs --gcov-executable=$toolsDir/$OSName/llvm-cov -r $coreClrSrc --html --html-details -o $reportsDir/coreclr.html + exitCode=$? + popd > /dev/null + exit $exitCode +} + +function check_cpu_architecture { + local CPUName=$(uname -m) + local __arch= + + case $CPUName in + i686) + __arch=x86 + ;; + x86_64) + __arch=x64 + ;; + armv7l) + __arch=arm + ;; + aarch64) + __arch=arm64 + ;; + *) + echo "Unknown CPU $CPUName detected, configuring as if for x64" + __arch=x64 + ;; + esac + + echo "$__arch" +} + +ARCH=$(check_cpu_architecture) +echo "Running on CPU- $ARCH" + +# Exit code constants +readonly EXIT_CODE_SUCCESS=0 # Script ran normally. +readonly EXIT_CODE_EXCEPTION=1 # Script exited because something exceptional happened (e.g. bad arguments, Ctrl-C interrupt). +readonly EXIT_CODE_TEST_FAILURE=2 # Script completed successfully, but one or more tests failed. + +# Argument variables +testRootDir= +testNativeBinDir= +coreOverlayDir= +coreClrBinDir= +mscorlibDir= +coreFxBinDir= +coreClrObjs= +coreClrSrc= +coverageOutputDir= +testEnv= +playlistFile= +showTime= +noLFConversion= +buildOverlayOnly= +gcsimulator= +longgc= +limitedCoreDumps= +illinker= +((disableEventLogging = 0)) +((serverGC = 0)) + +# Handle arguments +verbose=0 +doCrossgen=0 +jitdisasm=0 +ilasmroundtrip= + +for i in "$@" +do + case $i in + -h|--help) + print_usage + exit $EXIT_CODE_SUCCESS + ;; + -v|--verbose) + verbose=1 + ;; + --crossgen) + doCrossgen=1 + ;; + --jitstress=*) + export COMPlus_JitStress=${i#*=} + ;; + --jitstressregs=*) + export COMPlus_JitStressRegs=${i#*=} + ;; + --jitminopts) + export COMPlus_JITMinOpts=1 + ;; + --copyNativeTestBin) + export copyNativeTestBin=1 + ;; + --jitforcerelocs) + export COMPlus_ForceRelocs=1 + ;; + --link=*) + export ILLINK=${i#*=} + export DoLink=true + ;; + --tieredcompilation) + export COMPlus_TieredCompilation=1 + ;; + --jitdisasm) + jitdisasm=1 + ;; + --ilasmroundtrip) + ((ilasmroundtrip = 1)) + ;; + --testRootDir=*) + testRootDir=${i#*=} + ;; + --testNativeBinDir=*) + testNativeBinDir=${i#*=} + ;; + --coreOverlayDir=*) + coreOverlayDir=${i#*=} + ;; + --coreClrBinDir=*) + coreClrBinDir=${i#*=} + ;; + --mscorlibDir=*) + mscorlibDir=${i#*=} + ;; + --coreFxBinDir=*) + coreFxBinDir=${i#*=} + ;; + --testDir=*) + testDirectories[${#testDirectories[@]}]=${i#*=} + ;; + --testDirFile=*) + set_test_directories "${i#*=}" + ;; + --runFailingTestsOnly) + ((runFailingTestsOnly = 1)) + ;; + --disableEventLogging) + ((disableEventLogging = 1)) + ;; + --runcrossgentests) + export RunCrossGen=1 + ;; + --corefxtests) + export RunCoreFXTests=1 + ;; + --corefxtestsall) + export RunCoreFXTests=1 + export RunCoreFXTestsAll=1 + ;; + --corefxtestlist) + export RunCoreFXTests=1 + export CoreFXTestList=${i#*=} + ;; + --testHostDir=*) + export testHostDir=${i#*=} + ;; + --sequential) + ((maxProcesses = 1)) + ;; + --useServerGC) + ((serverGC = 1)) + ;; + --long-gc) + ((longgc = 1)) + ;; + --gcsimulator) + ((gcsimulator = 1)) + ;; + --playlist=*) + playlistFile=${i#*=} + ;; + --coreclr-coverage) + CoreClrCoverage=ON + ;; + --coreclr-objs=*) + coreClrObjs=${i#*=} + ;; + --coreclr-src=*) + coreClrSrc=${i#*=} + ;; + --coverage-output-dir=*) + coverageOutputDir=${i#*=} + ;; + --test-env=*) + testEnv=${i#*=} + ;; + --gcstresslevel=*) + export COMPlus_GCStress=${i#*=} + ;; + --gcname=*) + export COMPlus_GCName=${i#*=} + ;; + --show-time) + showTime=ON + ;; + --no-lf-conversion) + noLFConversion=ON + ;; + --build-overlay-only) + buildOverlayOnly=ON + ;; + --limitedDumpGeneration) + limitedCoreDumps=ON + ;; + --xunitOutputPath=*) + xunitOutputPath=${i#*=} + ;; + *) + echo "Unknown switch: $i" + print_usage + exit $EXIT_CODE_SUCCESS + ;; + esac +done + +if [ -n "$coreOverlayDir" ] && [ "$buildOverlayOnly" == "ON" ]; then + echo "Can not use \'--coreOverlayDir=\' and \'--build-overlay-only\' at the same time." + exit $EXIT_CODE_EXCEPTION +fi + +if ((disableEventLogging == 0)); then + export COMPlus_EnableEventLog=1 +fi + +export COMPlus_gcServer="$serverGC" + +if [ "$RunCoreFXTests" == 1 ]; +then + if [ -z "$coreClrSrc" ] + then + echo "Coreclr src files are required to run CoreFX tests" + echo "Coreclr src files root path can be passed using '--coreclr-src' argument" + print_usage + exit $EXIT_CODE_EXCEPTION + fi + + if [ -z "$testHostDir" ]; then + echo "--testHostDir is required to run CoreFX tests" + print_usage + exit $EXIT_CODE_EXCEPTION + fi + + if [ ! -f "$testHostDir/dotnet" ]; then + echo "Executable dotnet not found in $testHostDir" + exit $EXIT_CODE_EXCEPTION + fi + + if [ ! -d "$testHostDir" ]; then + echo "Directory specified by --testHostDir does not exist: $testRootDir" + exit $EXIT_CODE_EXCEPTION + fi + + create_testhost + exit 0 +fi + +if [ -z "$testRootDir" ]; then + echo "--testRootDir is required." + print_usage + exit $EXIT_CODE_EXCEPTION +fi +if [ ! -d "$testRootDir" ]; then + echo "Directory specified by --testRootDir does not exist: $testRootDir" + exit $EXIT_CODE_EXCEPTION +fi + +# Copy native interop test libraries over to the mscorlib path in +# order for interop tests to run on linux. +if [ -z "$mscorlibDir" ]; then + mscorlibDir=$coreClrBinDir +fi + +if [ ! -z "$longgc" ]; then + echo "Running Long GC tests" + export RunningLongGCTests=1 +fi + +if [ ! -z "$gcsimulator" ]; then + echo "Running GC simulator tests" + export RunningGCSimulatorTests=1 +fi + +if [[ ! "$jitdisasm" -eq 0 ]]; then + echo "Running jit disasm" + export RunningJitDisasm=1 +fi + +if [ ! -z "$ilasmroundtrip" ]; then + echo "Running Ilasm round trip" + export RunningIlasmRoundTrip=1 +fi + +# If this is a coverage run, make sure the appropriate args have been passed +if [ "$CoreClrCoverage" == "ON" ] +then + echo "Code coverage is enabled for this run" + echo "" + if [ ! "$OSName" == "Darwin" ] && [ ! "$OSName" == "Linux" ] + then + echo "Code Coverage not supported on $OS" + exit 1 + fi + + if [ -z "$coreClrObjs" ] + then + echo "Coreclr obj files are required to generate code coverage reports" + echo "Coreclr obj files root path can be passed using '--coreclr-obj' argument" + exit 1 + fi + + if [ -z "$coreClrSrc" ] + then + echo "Coreclr src files are required to generate code coverage reports" + echo "Coreclr src files root path can be passed using '--coreclr-src' argument" + exit 1 + fi + + if [ -z "$coverageOutputDir" ] + then + echo "Output directory for coverage results must be specified" + echo "Output path can be specified '--coverage-output-dir' argument" + exit 1 + fi +fi + +xunit_output_begin +text_file_output_begin +create_core_overlay +precompile_overlay_assemblies + +if [ "$buildOverlayOnly" == "ON" ]; +then + echo "Build overlay directory '$coreOverlayDir' complete." + exit 0 +fi + +if [ -n "$playlistFile" ] +then + # Use a playlist file exclusively, if it was provided + echo "Executing playlist $playlistFile" + load_playlist_tests +else + load_unsupported_tests + load_failing_tests +fi + +# Other architectures are not supported yet. +if [ "$ARCH" == "x64" ] +then + scriptPath=$(dirname $0) + ${scriptPath}/setup-stress-dependencies.sh --outputDir=$coreOverlayDir +elif [ "$ARCH" != "arm64" ] && [ "$ARCH" != "arm" ]; then + echo "Skip preparing for GC stress test. Dependent package is not supported on this architecture." +fi + +export __TestEnv=$testEnv + +cd "$testRootDir" + +dumplingsListPath="$testRootDir/dumplings.txt" + +# clean up any existing dumpling remnants from previous runs. +rm -f "$dumplingsListPath" +find $testRootDir -type f -name "local_dumplings.txt" -exec rm {} \; + +time_start=$(date +"%s") +if [ -z "$testDirectories" ] +then + # No test directories were specified, so run everything in the current + # directory and its subdirectories. + run_tests_in_directory "." +else + # Otherwise, run all the tests in each specified test directory. + for testDir in "${testDirectories[@]}" + do + if [ ! -d "$testDir" ]; then + echo "Test directory does not exist: $testDir" + else + run_tests_in_directory "./$testDir" + fi + done +fi +finish_remaining_tests + +print_results + +find $testRootDir -type f -name "local_dumplings.txt" -exec cat {} \; > $dumplingsListPath + +if [ -s $dumplingsListPath ]; then + cat $dumplingsListPath +else + rm $dumplingsListPath +fi + +time_end=$(date +"%s") +time_diff=$(($time_end-$time_start)) +echo "$(($time_diff / 60)) minutes and $(($time_diff % 60)) seconds taken to run CoreCLR tests." + +xunit_output_end + +if [ "$CoreClrCoverage" == "ON" ] +then + coreclr_code_coverage +fi + +if ((countFailedTests > 0)); then + exit $EXIT_CODE_TEST_FAILURE +fi + +exit $EXIT_CODE_SUCCESS diff --git a/tests/issues.targets b/tests/issues.targets index aa379047df2e..d73dcb0614d1 100644 --- a/tests/issues.targets +++ b/tests/issues.targets @@ -1,416 +1,633 @@ + - + 3392 - + 3392 - + 3392 - + 3392 - + 3392 - + 3392 - + 3392 - + 3392 - + 3392 - + 3392 - + 3392 - + 3392 - + 3392 - - 4851 + + 15353 + + + 11408 + + + + + + + 18381 - - 4851 + + Issue building native components for the test. - - 4851 + + + + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage - - 4851 + + needs triage + + + needs triage - - 4849 + + needs triage + + + needs triage - - 2451 + + needs triage - - 2451 + + needs triage - - 2451 + + needs triage - - 2451 + + needs triage - - 2451 + + needs triage - - 2451 + + needs triage - - 2451 + + needs triage - - 2451 + + needs triage - - 2451 + + needs triage - - 2451 + + - - 2451 + + times out - - 2451 + + needs triage - - 2451 + + needs triage - - 2451 + + needs triage - - 2451 + + times out - - 2451 + + times out - - 2451 + + needs triage - - 2451 + + times out - - 2451 + + times out - - 2451 + + needs triage - - 4851 + + times out - - 4851 + + times out - - 4851 + + needs triage - - 4851 + + times out - - 4851 + + times out - - 4851 + + needs triage - - 2434 + + times out - - 2441 + + times out - - 2441 + + times out - - 2441 + + times out - - 2441 + + + + + + 8648 - - 2444 + + needs triage - - 2444 + + needs triage + + + needs triage + + + needs triage - - 2444 + + needs triage + + + needs triage - - 2444 + + needs triage + + + needs triage - - 2445 + + needs triage - - 11408 + + needs triage - - 15353 + + 19441 - + + + + + 6707 - + 6707 - + 6707 - + 6707 - + 6707 - + 6707 - + 18056 - + Varargs supported on this platform - + Varargs supported on this platform 19164 - - - 19441 - - - - + + + 3392, test is useful to have because it can be run manually when making changes to the GC that can have effects in OOM scenarios, but not appropriate to run on our current test infrastructure. - + 3392, test is useful to have because it can be run manually when making changes to the GC that can have effects in OOM scenarios, but not appropriate to run on our current test infrastructure. - + 3392, test is useful to have because it can be run manually when making changes to the GC that can have effects in OOM scenarios, but not appropriate to run on our current test infrastructure. - + 3392, test is useful to have because it can be run manually when making changes to the GC that can have effects in OOM scenarios, but not appropriate to run on our current test infrastructure. - + 2420. x86 JIT doesn't support implicit tail call optimization or tail. call pop ret sequence - + 11469, The test causes OutOfMemory exception in crossgen mode. + + Varargs supported on this platform + + + Varargs supported on this platform + - + + + + 15016 + + + 15016 + + + 15016 + + + Uses illagal il tailcall pop ret + + + 9565 + + + 11534 + + + 10636 + + + 9565 + + + 9565 + + + 9565 + + + 9565 + + + 15494 + + + 9565 + + + 9565 + + + 9565 + + + 9565 + + + 9565 + + + 9565 + + + 9565 + + + 18895 + + + 9565 + + + 15494 + + + 15016 + + + 9565 + + + 9565 + + + - + 6217 - + 2420 - + + + + Varargs not supported on this platform + + + Varargs not supported on this platform + + + Varargs not supported on this platform + + + Varargs not supported on this platform + + + Varargs not supported on this platform + + + Varargs not supported on this platform + + + Varargs not supported on this platform + + + Varargs not supported on this platform + + + Varargs not supported on this platform + + + Varargs not supported on this platform + + + Issue building native components for the test. + + + Issue building native components for the test. + + + 15353 + + + 18381 + + + 18381 + + + Needs Triage + + + Needs Triage + + + Needs Triage + + + timeout + + + + + + + Test times out + + + Test times out + + + Test times out + + + Test times out + + + Test times out + + - + + + + 19340 + + - - + + + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage @@ -418,1311 +635,1316 @@ - + needs triage - + 9314 - + 9314 - + 9314 - + 9314 - + 9314 - + 9314 + + + + Fails on Windows.Nano + - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + 3392 - + 3392 - + 3392 - + 3392 - + needs triage - + needs triage - + needs triage - + needs triage needs triage - + needs triage - + needs triage - + by design Windows only - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + needs triage - + by design Windows only @@ -1730,13 +1952,13 @@ - + By Test Infrastructure design - + Bug diff --git a/tests/runtest.cmd b/tests/runtest.cmd index fb19439527d7..45e722f1e7b2 100644 --- a/tests/runtest.cmd +++ b/tests/runtest.cmd @@ -41,6 +41,8 @@ set __CrossgenAltJit= set __PerfTests= set __CoreFXTests= set __CoreFXTestsRunAllAvailable= +set __SkipGenerateLayout= +set __BuildXUnitWrappers= :Arg_Loop if "%1" == "" goto ArgsDone @@ -78,6 +80,8 @@ if /i "%1" == "jitforcerelocs" (set COMPlus_ForceRelocs=1&shift&goto Arg_ if /i "%1" == "jitdisasm" (set __JitDisasm=1&shift&goto Arg_Loop) if /i "%1" == "ilasmroundtrip" (set __IlasmRoundTrip=1&shift&goto Arg_Loop) if /i "%1" == "GenerateLayoutOnly" (set __GenerateLayoutOnly=1&shift&goto Arg_Loop) +if /i "%1" == "skipgeneratelayout" (set __SkipGenerateLayout=1&shift&goto Arg_Loop) +if /i "%1" == "buildxunitwrappers" (set __BuildXunitWrappers=1&shift&goto Arg_Loop) if /i "%1" == "PerfTests" (set __PerfTests=true&shift&goto Arg_Loop) if /i "%1" == "CoreFXTests" (set __CoreFXTests=true&shift&goto Arg_Loop) if /i "%1" == "CoreFXTestsAll" (set __CoreFXTests=true&set __CoreFXTestsRunAllAvailable=true&shift&goto Arg_Loop) @@ -90,7 +94,7 @@ if /i "%1" == "gcname" (set COMPlus_GCName=%2&shift&shift&goto Ar if /i "%1" == "timeout" (set __TestTimeout=%2&shift&shift&goto Arg_Loop) REM change it to COMPlus_GCStress when we stop using xunit harness -if /i "%1" == "gcstresslevel" (set __GCSTRESSLEVEL=%2&set __TestTimeout=1800000&shift&shift&goto Arg_Loop) +if /i "%1" == "gcstresslevel" (set COMPlus_GCStress=%2&set __TestTimeout=1800000&shift&shift&goto Arg_Loop) if /i "%1" == "collectdumps" (set __CollectDumps=true&shift&goto Arg_Loop) if /i not "%1" == "msbuildargs" goto SkipMsbuildArgs @@ -132,6 +136,77 @@ set "__TestWorkingDir=%__RootBinDir%\tests\%__BuildOS%.%__BuildArch%.%__BuildTyp if not defined XunitTestBinBase set XunitTestBinBase=%__TestWorkingDir% if not defined XunitTestReportDirBase set XunitTestReportDirBase=%XunitTestBinBase%\Reports\ +REM At this point in the script there will be a divergence in how the tests are run. +REM For official builds we will continue to run tests using the un-unified scripting +REM which relies on msbuild and calls runtest.proj directly. For all other scenarios +REM runtest.py will handle setup and will then call runtest.proj + +if defined __AgainstPackages goto SetupMSBuildAndCallRuntestProj +if "%__CoreFXTests%"=="true" goto SetupMSBuildAndCallRuntestProj +if "%__PerfTests%"=="true" goto SetupMSBuildAndCallRuntestProj +if defined __GenerateLayoutOnly goto SetupMSBuildAndCallRuntestProj + +REM We are not running in the official build scenario, call runtest.py + +set __RuntestPyArgs=-arch %__BuildArch% -build_type %__BuildType% + +if defined DoLink ( + set __RuntestPyArgs=%__RuntestPyArgs% --il_link +) + +if defined __LongGCTests ( + set __RuntestPyArgs=%__RuntestPyArgs% --long_gc +) + +if defined __GCSimulatorTests ( + set __RuntestPyArgs=%__RuntestPyArgs% --gcsimulator +) + +if defined __JitDisasm ( + set __RuntestPyArgs=%__RuntestPyArgs% --jitdisasm +) + +if defined __IlasmRoundTrip ( + set __RuntestPyArgs=%__RuntestPyArgs% --ilasmroundtrip +) + +if defined __TestEnv ( + set __RuntestPyArgs=%__RuntestPyArgs% -test_env %__TestEnv% +) + +if defined __Sequential ( + set __RuntestPyArgs=%__RuntestPyArgs% --sequential +) + +if not defined __SkipGenerateLayout ( + set __RuntestPyArgs=%__RuntestPyArgs% --generate_layout +) + +if defined __GenerateLayoutOnly ( + set __RuntestPyArgs=%__RuntestPyArgs% --generate_layout_only +) + +if defined __BuildXUnitWrappers ( + set __RuntestPyArgs=%__RuntestPyArgs% --build_xunit_test_wrappers +) + +if defined RunCrossGen ( + set __RuntestPyArgs=%__RuntestPyArgs% --run_crossgen_tests +) + +if defined __DoCrossgen ( + set __RuntestPyArgs=%__RuntestPyArgs% --precompile_core_root +) + +REM __ProjectDir is poorly named, it is actually /tests +set NEXTCMD=python "%__ProjectDir%\runtest.py" %__RuntestPyArgs% +echo !NEXTCMD! +!NEXTCMD! + +exit /b %ERRORLEVEL% + +:SetupMSBuildAndCallRuntestProj + :: Set up msbuild and tools environment. Check if msbuild and VS exist. set _msbuildexe= diff --git a/tests/runtest.proj b/tests/runtest.proj index 52eeaaf1e560..ea9a0d15ec52 100644 --- a/tests/runtest.proj +++ b/tests/runtest.proj @@ -316,6 +316,9 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). + + + diff --git a/tests/runtest.py b/tests/runtest.py index 7cadfb4b1089..6d0d30eb380a 100755 --- a/tests/runtest.py +++ b/tests/runtest.py @@ -1,12 +1,36 @@ #!/usr/bin/env python -################################################################################ -################################################################################ # -# Module: runtest.py +## Licensed to the .NET Foundation under one or more agreements. +## The .NET Foundation licenses this file to you under the MIT license. +## See the LICENSE file in the project root for more information. +# +## +# Title :runtest.py # # Notes: # -# Universal script to setup and run the xunit msbuild test runner. +# Universal script to setup and run the xunit console runner. The script relies +# on runtest.proj and the bash and batch wrappers. All test excludes will also +# come from issues.targets. If there is a jit stress or gc stress exclude, +# please add GCStressIncompatible or JitOptimizationSensitive to the test's +# ilproj or csproj. +# +# The xunit runner currently relies on tests being built on the same host as the +# target platform. This requires all tests run on linux x64 to be built by the +# same platform and arch. If this is not done, the tests will run correctly; +# however, expect failures due to incorrect exclusions in the xunit +# wrappers setup at build time. +# +# Note that for linux targets the native components to the tests are still built +# by the product build. This requires all native components to be either copied +# into the Core_Root directory or the test's managed directory. The latter is +# prone to failure; however, copying into the Core_Root directory may create +# naming conflicts. +# +# If you are running tests on a different target than the host that built, the +# native tests components must be copied from: +# bin/obj/.... 0: + # Force the build type to be capitalized + build_type = build_type.capitalize() + + if not build_type in valid_build_types: + print "Unsupported configuration: %s." % build_type + print "Supported configurations: %s" % "[%s]" % ", ".join(valid_build_types) + sys.exit(1) + + return build_type + + build_type = check_build_type(build_type) + if test_location is None: - print "Using default test location." - test_location = os.path.join(coreclr_repo_location, "bin", "tests", "%s.%s.%s" % (host_os, arch, build_type)) - print "TestLocation: %s" % test_location - print + default_test_location = os.path.join(coreclr_repo_location, "bin", "tests", "%s.%s.%s" % (host_os, arch, build_type)) + + if os.path.isdir(default_test_location): + test_location = default_test_location + + print "Using default test location." + print "TestLocation: %s" % default_test_location + print + + else: + # The tests for the default location have not been built. + print "Error, unable to find the tests at %s" % default_test_location + + suggested_location = None + possible_test_locations = [item for item in os.listdir(os.path.join(coreclr_repo_location, "bin", "tests")) if host_os in item and arch in item] + if len(possible_test_locations) > 0: + print "Tests are built for the following:" + for item in possible_test_locations: + print item.replace(".", " ") + + print "Please run runtest.py again with the correct build-type by passing -build_type" + else: + print "No tests have been built for this host and arch. Please run build-test.%s" % ("cmd" if host_os == "Windows_NT" else "sh") + + sys.exit(1) + else: + # If we have supplied our own test location then we need to create a test location + # that the scripting will expect. As it is now, there is a dependency on the + # test location being under test/.. + + # Make sure that we are using the correct build_type. This is a test drop, it is possible + # that we are inferring the build type to be Debug incorrectly. + + if build_type not in test_location: + # Remove punctuation + corrected_build_type = re.sub("[%s]" % string.punctuation, "", test_location.split(".")[-1]) + build_type = check_build_type(corrected_build_type) + + default_test_location = os.path.join(coreclr_repo_location, "bin", "tests", "%s.%s.%s" % (host_os, arch, build_type)) + + # Remove optional end os.path.sep + if test_location[-1] == os.path.sep: + test_location = test_location[:-1] + + if test_location != default_test_location and os.path.isdir(default_test_location): + # Remove the existing directory if there is one. + shutil.rmtree(default_test_location) + + print "Non-standard test location being used." + print "Overwrite the standard location with these tests." + print "TODO: Change runtest.proj to allow running from non-standard test location." + print "" + + print "cp -r %s %s" % (test_location, default_test_location) + shutil.copytree(test_location, default_test_location) + + test_location = default_test_location + + # unset core_root so it can be put in the default location + core_root = None + + # Force the core_root to be setup again. + args.generate_layout = True + + else: + test_location = default_test_location + + print "Using default test location." + print "TestLocation: %s" % default_test_location + print if core_root is None: - print "Using default location for core_root." - core_root = os.path.join(test_location, "Tests", "Core_Root") + default_core_root = os.path.join(test_location, "Tests", "Core_Root") + + if os.path.isdir(default_core_root): + core_root = default_core_root + + print "Using default location for core_root." + print "Core_Root: %s" % core_root + print + + elif args.generate_layout is False: + # CORE_ROOT has not been setup correctly. + print "Error, unable to find CORE_ROOT at %s" % default_core_root + print "Please run runtest.py with --generate_layout specified." + + sys.exit(1) + + else: + print "--generate_layout passed. Core_Root will be populated at: %s" % default_core_root + core_root = default_core_root + else: print "Core_Root: %s" % core_root - print if host_os != "Windows_NT": if test_native_bin_location is None: @@ -349,33 +919,23 @@ def setup_args(args): test_native_bin_location = os.path.join(os.path.join(coreclr_repo_location, "bin", "obj", "%s.%s.%s" % (host_os, arch, build_type), "tests")) print "Native bin location: %s" % test_native_bin_location print - - valid_arches = ["x64", "x86", "arm", "arm64"] - if not arch in valid_arches: - print "Unsupported architecture: %s." % arch - print "Supported architectures: %s" % "[%s]" % ", ".join(valid_arches) - sys.exit(1) - - valid_build_types = ["Debug", "Checked", "Release"] - if not build_type in valid_build_types: - print "Unsupported configuration: %s." % build_type - print "Supported configurations: %s" % "[%s]" % ", ".join(valid_build_types) - sys.exit(1) - - if not os.path.isdir(test_location): - print "Error, test location: %s, does not exist." % test_location - sys.exit(1) - - if not os.path.isdir(core_root): - print "Error, core_root: %s, does not exist." % core_root - sys.exit(1) - - if host_os != "Windows_NT": + if not os.path.isdir(test_native_bin_location): print "Error, test_native_bin_location: %s, does not exist." % test_native_bin_location sys.exit(1) - return host_os, arch, build_type, coreclr_repo_location, core_root, test_location, test_native_bin_location + if args.product_location is None and args.generate_layout: + product_location = os.path.join(coreclr_repo_location, "bin", "Product", "%s.%s.%s" % (host_os, arch, build_type)) + if not os.path.isdir(product_location): + print "Error, unable to determine the product location. This is most likely because build_type was" + print "incorrectly passed. Or the product is not built. Please explicitely pass -product_location" + + sys.exit(1) + + else: + product_location = args.product_location + + return host_os, arch, build_type, coreclr_repo_location, product_location, core_root, test_location, test_native_bin_location def setup_tools(host_os, coreclr_repo_location): """ Setup the tools for the repo @@ -392,16 +952,18 @@ def setup_tools(host_os, coreclr_repo_location): is_windows = host_os == "Windows_NT" - if os.path.isfile(os.path.join(tools_dir, "msbuild.%s" % ("cmd" if is_windows else "sh"))): + dotnetcli_location = os.path.join(coreclr_repo_location, "Tools", "dotnetcli", "dotnet%s" % (".exe" if host_os == "Windows_NT" else "")) + + if os.path.isfile(dotnetcli_location): setup = True # init the tools for the repo if not setup: command = None if is_windows: - command = [os.path.join(coreclr_repo_location, "init_tools.cmd")] + command = [os.path.join(coreclr_repo_location, "init-tools.cmd")] else: - command = ["sh", os.path.join(coreclr_repo_location, "init_tools.sh")] + command = ["bash", os.path.join(coreclr_repo_location, "init-tools.sh")] print " ".join(command) subprocess.check_output(command) @@ -410,27 +972,1008 @@ def setup_tools(host_os, coreclr_repo_location): return setup -################################################################################ -# Main -################################################################################ +def setup_coredis_tools(coreclr_repo_location, host_os, arch, core_root): + """ Setup CoreDisTools if needed -def main(args): - host_os, arch, build_type, coreclr_repo_location, core_root, test_location, test_native_bin_location = setup_args(args) + Args: + coreclr_repo_location(str) : coreclr repo location + host_os(str) : os + arch(str) : arch + core_root(str) : core_root + """ + + test_location = os.path.join(coreclr_repo_location, "tests") + + def is_coredis_tools_supported(host_os, arch): + """ Is coredis tools supported on this os/arch + + Args: + host_os(str): os + arch(str) : arch + + """ + unsupported_unix_arches = ["arm", "arm64"] + + if host_os.lower() == "osx": + return False + + return True + + if host_os != "Windows_NT" and arch in unsupported_unix_arches: + return False + + return True + + if is_coredis_tools_supported(host_os, arch): + command = None + if host_os == "Windows_NT": + command = [os.path.join(test_location, "setup-stress-dependencies.cmd"), "/arch", arch, "/outputdir", core_root] + else: + command = [os.path.join(test_location, "setup-stress-dependencies.sh"), "--outputDir=%s" % core_root] + + proc = subprocess.Popen(command) + proc.communicate() + + if proc.returncode != 0: + print "setup_stress_dependencies.sh failed." + sys.exit(1) + else: + print "GCStress C is not supported on your platform." + sys.exit(1) + +def precompile_core_root(test_location, + host_os, + arch, + core_root, + use_jit_disasm=False, + altjit_name=False): + """ Precompile all of the assemblies in the core_root directory + + Args: + test_location(str) : test location + host_os(str) : os + core_root(str) : location of core_root + use_jit_disasm(Bool) : use jit disasm + altjit_name(str) : name of the altjit + + """ + + skip_list = [ + ".*xunit.*", + ".*api-ms-win-core.*", + ".*api-ms-win.*", + ".*System.Private.CoreLib.*" + ] + + unix_skip_list = [ + ".*mscorlib.*", + ".*System.Runtime.WindowsRuntime.*", + ".*System.Runtime.WindowsRuntime.UI.Xaml.*", + ".*R2RDump.dll.*" + ] + + arm64_unix_skip_list = [ + ".*Microsoft.CodeAnalysis.VisualBasic.*", + ".*System.Net.NameResolution.*", + ".*System.Net.Sockets.*", + ".*System.Net.Primitives.*" + ] + + if host_os != "Windows_NT": + skip_list += unix_skip_list + + if arch == "arm64": + skip_list += arm64_unix_skip_list + + assert os.path.isdir(test_location) + assert os.path.isdir(core_root) + + crossgen = os.path.join(core_root, "crossgen%s" % (".exe" if host_os == "Windows_NT" else "")) + assert os.path.isfile(crossgen) + + def call_crossgen(file, env): + assert os.path.isfile(crossgen) + command = [crossgen, "/Platform_Assemblies_Paths", core_root, file] + + if use_jit_disasm: + core_run = os.path.join(core_root, "corerun%s" % (".exe" if host_os == "Windows_NT" else "")) + assert os.path.isfile(core_run) + + command = [core_run, + os.path.join(core_root, "jit-dasm.dll"), + "--crossgen", + crossgen, + "--platform", + core_root, + "--output", + os.path.join(test_location, "dasm"), + file] + + proc = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env) + proc.communicate() + + return_code = proc.returncode + + passed = False + if return_code == -2146230517: + print "%s is not a managed assembly." % file + return passed + + if return_code != 0: + print "Unable to precompile %s" % file + return passed + + print "Successfully precompiled %s" % file + passed = True + + return passed + + print "Precompiling all assemblies in %s" % core_root + print + + env = os.environ.copy() + + if not altjit_name is None: + env["COMPlus_AltJit"]="*" + env["COMPlus_AltJitNgen"]="*" + env["COMPlus_AltJitName"]=altjit_name + env["COMPlus_AltJitAssertOnNYI"]="1" + env["COMPlus_NoGuiOnAssert"]="1" + env["COMPlus_ContinueOnAssert"]="0" + + dlls = [os.path.join(core_root, item) for item in os.listdir(core_root) if item.endswith("dll") and "mscorlib" not in item] + + def in_skip_list(item): + found = False + for skip_re in skip_list: + if re.match(skip_re, item.lower()) is not None: + found = True + return found + + dlls = [dll for dll in dlls if not in_skip_list(dll)] + + for dll in dlls: + call_crossgen(dll, env) + + print + +def setup_core_root(host_os, + arch, + build_type, + coreclr_repo_location, + test_native_bin_location, + product_location, + test_location, + core_root, + is_corefx=False, + generate_layout=True): + """ Setup the core root + + Args: + host_os(str) : os + arch(str) : architecture + build_type(str) : build configuration + coreclr_repo_location(str) : coreclr repo location + product_location(str) : Product location + core_root(str) : Location for core_root + is_corefx : Building corefx core_root + + Optional Args: + is_corefx(Bool) : Pass if planning on running corex + : tests + + """ + global g_verbose + + assert os.path.isdir(product_location) + + # Create core_root if it does not exist + if os.path.isdir(core_root): + shutil.rmtree(core_root) + + os.makedirs(core_root) + + # Setup the dotnetcli location + dotnetcli_location = os.path.join(coreclr_repo_location, "Tools", "dotnetcli", "dotnet%s" % (".exe" if host_os == "Windows_NT" else "")) + + # Set global env variables. + os.environ["__BuildLogRootName"] = "Restore_Product" + + if host_os != "Windows_NT": + os.environ["__DistroRid"] = "%s-%s" % ("osx" if sys.platform == "darwin" else "linux", arch) + + command = [os.path.join(coreclr_repo_location, "run.%s" % ("cmd" if host_os == "Windows_NT" else "sh")), + "build", + "-Project=%s" % os.path.join(coreclr_repo_location, "tests", "build.proj")] + + logs_dir = os.path.join(coreclr_repo_location, "bin", "Logs") + if not os.path.isdir(logs_dir): + os.makedirs(logs_dir) + + log_path = os.path.join(logs_dir, "Restore_Product%s_%s_%s" % (host_os, arch, build_type)) + build_log = log_path + ".log" + wrn_log = log_path + ".wrn" + err_log = log_path + ".err" + + msbuild_log_params = "/fileloggerparameters:\"Verbosity=normal;LogFile=%s\"" % build_log + msbuild_wrn_params = "/fileloggerparameters1:\"WarningsOnly;LogFile=%s\"" % wrn_log + msbuild_err_params = "/fileloggerparameters2:\"ErrorsOnly;LogFile=%s\"" % err_log + + command += ["-MsBuildLog=%s" % msbuild_log_params, + "-MsBuildWrn=%s" % msbuild_wrn_params, + "-MsBuildErr=%s" % msbuild_err_params] + + if host_os != "Windows_NT": + command = ["bash"] + command + command += ["-MsBuildEventLogging=\"/l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log\""] + + if g_verbose: + command += ["-verbose"] + + command += [ "-BatchRestorePackages", + "-BuildType=%s" % build_type, + "-BuildArch=%s" % arch, + "-BuildOS=%s" % host_os] + + print "Restoring packages..." + print " ".join(command) + + if not g_verbose: + proc = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + else: + proc = subprocess.Popen(command) + + try: + proc.communicate() + except KeyboardInterrupt: + proc.kill() + sys.exit(1) + + if proc.returncode == 1: + "Error test dependency resultion failed." + return False + + os.environ["__BuildLogRootName"] = "" + + # Copy restored packages to core_root + # Set global env variables. + os.environ["__BuildLogRootName"] = "Tests_Overlay_Managed" + + if host_os != "Windows_NT": + os.environ["__DistroRid"] = "%s-%s" % ("osx" if sys.platform == "darwin" else "linux", arch) + os.environ["__RuntimeId"] = os.environ["__DistroRid"] + + os.environ["Core_Root"] = core_root + os.environ["xUnitTestBinBase"] = os.path.dirname(os.path.dirname(core_root)) + + command = [os.path.join(coreclr_repo_location, "run.%s" % ("cmd" if host_os == "Windows_NT" else "sh")), + "build", + "-Project=%s" % os.path.join(coreclr_repo_location, "tests", "runtest.proj")] + + logs_dir = os.path.join(coreclr_repo_location, "bin", "Logs") + if not os.path.isdir(logs_dir): + os.makedirs(logs_dir) + + log_path = os.path.join(logs_dir, "Tests_Overlay_Managed%s_%s_%s" % (host_os, arch, build_type)) + build_log = log_path + ".log" + wrn_log = log_path + ".wrn" + err_log = log_path + ".err" + + msbuild_log_params = "/fileloggerparameters:\"Verbosity=normal;LogFile=%s\"" % build_log + msbuild_wrn_params = "/fileloggerparameters1:\"WarningsOnly;LogFile=%s\"" % wrn_log + msbuild_err_params = "/fileloggerparameters2:\"ErrorsOnly;LogFile=%s\"" % err_log + + command += ["-MsBuildLog=%s" % msbuild_log_params, + "-MsBuildWrn=%s" % msbuild_wrn_params, + "-MsBuildErr=%s" % msbuild_err_params] + + if host_os != "Windows_NT": + command = ["bash"] + command + command += ["-MsBuildEventLogging=\"/l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log\""] + + if g_verbose: + command += ["-verbose"] + + command += [ "-testOverlay", + "-BuildType=%s" % build_type, + "-BuildArch=%s" % arch, + "-BuildOS=%s" % host_os] + + print "" + print "Creating Core_Root..." + print " ".join(command) + + if not g_verbose: + proc = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + else: + proc = subprocess.Popen(command) + + try: + proc.communicate() + except KeyboardInterrupt: + proc.kill() + sys.exit(1) + + if proc.returncode == 1: + "Error test dependency resultion failed." + return False + + os.environ["__BuildLogRootName"] = "" + os.environ["xUnitTestBinBase"] = "" + os.environ["__RuntimeId"] = "" + + def copy_tree(src, dest): + """ Simple copy from src to dest + """ + assert os.path.isdir(src) + assert os.path.isdir(dest) + + for item in os.listdir(src): + if ".nuget" in item: + pass + item = os.path.join(src, item) + + if os.path.isfile(item): + shutil.copy2(item, dest) + + if host_os != "Windows_NT": + # Set executable bit + os.chmod(os.path.join(dest, item), 0774) + else: + new_dir = os.path.join(dest, os.path.basename(item)) + if os.path.isdir(new_dir): + shutil.rmtree(new_dir) + + shutil.copytree(item, new_dir) + + # Copy the product dir to the core_root directory + print + print "Copying Product Bin to Core_Root:" + print "cp -r %s%s* %s" % (product_location, os.path.sep, core_root) + copy_tree(product_location, core_root) + print "---------------------------------------------------------------------" + print + + if is_corefx: + corefx_utility_setup = os.path.join(coreclr_repo_location, + "src", + "Common", + "CoreFX", + "TestFileSetup", + "CoreFX.TestUtils.TestFileSetup.csproj") + + os.environ["__BuildLogRootName"] = "Tests_GenerateTestHost" + msbuild_command = [dotnetcli_location, + "msbuild", + os.path.join(coreclr_repo_location, "tests", "runtest.proj"), + "/p:GenerateRuntimeLayout=true"] + proc = subprocess.Popen(msbuild_command) + proc.communicate() + + if not proc.returncode == 0: + "Error test dependency resultion failed." + return False + + os.environ["__BuildLogRootName"] = "" + + msbuild_command = [dotnetcli_location, + "msbuild", + "/t:Restore", + corefx_utility_setup] + + proc = subprocess.Popen(msbuild_command) + proc.communicate() + + if proc.returncode == 1: + "Error test dependency resultion failed." + return False + + corefx_logpath = os.path.join(coreclr_repo_location, + "bin", + "tests", + "%s.%s.%s" % (host_os, arch, build_type), + "CoreFX", + "CoreFXTestUtilities") + + msbuild_command = [dotnetcli_location, + "msbuild", + "/p:Configuration=%s" % build_type, + "/p:OSGroup=%s" % host_os, + "/p:Platform=%s" % arch, + "/p:OutputPath=%s" % corefx_logpath, + corefx_utility_setup] + + proc = subprocess.Popen(msbuild_command) + proc.communicate() + + if proc.returncode == 1: + "Error test dependency resultion failed." + return False + + print "Core_Root setup." + print "" + + return True + +def delete_existing_wrappers(test_location): + """ Delete the existing xunit wrappers + + Args: + test_location(str) : location of the test + """ + + assert os.path.isdir(test_location) or os.path.isfile(test_location) + + extension = "dll" + + if os.path.isdir(test_location): + for item in os.listdir(test_location): + delete_existing_wrappers(os.path.join(test_location, item)) + elif test_location.endswith(extension) and "xunitwrapper" in test_location.lower(): + # Delete the test wrapper. + + print "rm %s" % test_location + os.remove(test_location) + +def build_test_wrappers(host_os, + arch, + build_type, + coreclr_repo_location, + test_location): + """ Build the coreclr test wrappers + + Args: + host_os(str) : os + arch(str) : architecture + build_type(str) : build configuration + coreclr_repo_location(str) : coreclr repo location + test_location(str) : location of the test + + Notes: + Build the xUnit test wrappers. Note that this will have been done as a + part of build-test.cmd/sh. It is possible that the host has a different + set of dependencies from the target or the exclude list has changed + after building. + + """ + global g_verbose + + delete_existing_wrappers(test_location) + + # Setup the dotnetcli location + dotnetcli_location = os.path.join(coreclr_repo_location, "Tools", "dotnetcli", "dotnet%s" % (".exe" if host_os == "Windows_NT" else "")) + + # Set global env variables. + os.environ["__BuildLogRootName"] = "Tests_XunitWrapper" + os.environ["__Exclude"] = os.path.join(coreclr_repo_location, "tests", "issues.targets") + + command = [dotnetcli_location, + "msbuild", + os.path.join(coreclr_repo_location, "tests", "runtest.proj"), + "/p:RestoreAdditionalProjectSources=https://dotnet.myget.org/F/dotnet-core/", + "/p:BuildWrappers=true", + "/p:TargetsWindows=%s" % ("true" if host_os == "Windows_NT" else "false")] + + logs_dir = os.path.join(coreclr_repo_location, "bin", "Logs") + if not os.path.isdir(logs_dir): + os.makedirs(logs_dir) + + log_path = os.path.join(logs_dir, "Tests_XunitWrapper%s_%s_%s" % (host_os, arch, build_type)) + build_log = log_path + ".log" + wrn_log = log_path + ".wrn" + err_log = log_path + ".err" + + command += ["/fileloggerparameters:\"Verbosity=normal;LogFile=%s\"" % build_log, + "/fileloggerparameters1:\"WarningsOnly;LogFile=%s\"" % wrn_log, + "/fileloggerparameters2:\"ErrorsOnly;LogFile=%s\"" % err_log, + "/consoleloggerparameters:Summary"] + + command += ["/p:__BuildOS=%s" % host_os, + "/p:__BuildArch=%s" % arch, + "/p:__BuildType=%s" % build_type, + "/p:__LogsDir=%s" % logs_dir] + + print "Creating test wrappers..." + print " ".join(command) + + if not g_verbose: + proc = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + if not running_in_ci(): + try: + expected_time_to_complete = 60*5 # 5 Minutes + estimated_time_running = 0 + + time_delta = 1 + + while True: + time_remaining = expected_time_to_complete - estimated_time_running + time_in_minutes = math.floor(time_remaining / 60) + remaining_seconds = time_remaining % 60 + + sys.stdout.write("\rEstimated time remaining: %d minutes %d seconds" % (time_in_minutes, remaining_seconds)) + sys.stdout.flush() + + time.sleep(time_delta) + estimated_time_running += time_delta + + if estimated_time_running == expected_time_to_complete: + break + if proc.poll() is not None: + break + + except KeyboardInterrupt: + proc.kill() + sys.exit(1) + else: + proc = subprocess.Popen(command) + + try: + proc.communicate() + except KeyboardInterrupt: + proc.kill() + sys.exit(1) + + if proc.returncode == 1: + "Error test dependency resultion failed." + return False + +def find_test_from_name(host_os, test_location, test_name): + """ Given a test's name return the location on disk + + Args: + host_os (str) : os + test_location (str) :path to the coreclr tests + test_name (str) : Name of the test, all special characters will have + : been replaced with underscores. + + Return: + test_path (str): Path of the test based on its name + """ + + location = test_name + + # Lambdas and helpers + is_file_or_dir = lambda path : os.path.isdir(path) or os.path.isfile(path) + def match_filename(test_path): + # Scan through the test directory looking for a similar + # file + global file_name_cache + + if not os.path.isdir(os.path.dirname(test_path)): + pass + + assert os.path.isdir(os.path.dirname(test_path)) + size_of_largest_name_file = 0 + + dir_contents = file_name_cache[os.path.dirname(test_path)] + + if dir_contents is None: + dir_contents = defaultdict(lambda: None) + for item in os.listdir(os.path.dirname(test_path)): + dir_contents[re.sub("[%s]" % string.punctuation, "_", item)] = item + + file_name_cache[os.path.dirname(test_path)] = dir_contents + + # It is possible there has already been a match + # therefore we need to remove the punctuation again. + basename_to_match = re.sub("[%s]" % string.punctuation, "_", os.path.basename(test_path)) + if basename_to_match in dir_contents: + test_path = os.path.join(os.path.dirname(test_path), dir_contents[basename_to_match]) + + size_of_largest_name_file = len(max(dir_contents, key=len)) + + return test_path, size_of_largest_name_file + + def dir_has_nested_substrings(test_path, test_item): + """ A directory has multiple paths where one path is a substring of another + """ + + dir_contents = file_name_cache[os.path.dirname(test_path)] + + if dir_contents is None: + dir_contents = defaultdict(lambda: None) + for item in os.listdir(os.path.dirname(test_path)): + dir_contents[re.sub("[%s]" % string.punctuation, "_", item)] = item + + file_name_cache[os.path.dirname(test_path)] = dir_contents + + test_item = re.sub("[%s]" % string.punctuation, "_", test_item) + + count = 0 + for item in dir_contents: + if test_item in item: + count += 1 + + return count > 1 + + # Find the test by searching down the directory list. + starting_path = test_location + loc_split = location.split("_") + append = False + for index, item in enumerate(loc_split): + if not append: + test_path = os.path.join(starting_path, item) + else: + append = False + test_path, size_of_largest_name_file = match_filename(starting_path + "_" + item) + + if not is_file_or_dir(test_path): + append = True + + # It is possible that there is another directory that is named + # without an underscore. + elif index + 1 < len(loc_split) and os.path.isdir(test_path): + next_test_path = os.path.join(test_path, loc_split[index + 1]) + + if not is_file_or_dir(next_test_path) or dir_has_nested_substrings(test_path, item): + added_path = test_path + for forward_index in range(index + 1, len(loc_split)): + added_path, size_of_largest_name_file = match_filename(added_path + "_" + loc_split[forward_index]) + if is_file_or_dir(added_path): + append = True + break + elif size_of_largest_name_file < len(os.path.basename(added_path)): + break + + starting_path = test_path + + location = starting_path + if not os.path.isfile(location): + pass + + assert(os.path.isfile(location)) + + return location + +def parse_test_results(host_os, arch, build_type, coreclr_repo_location, test_location): + """ Parse the test results for test execution information + + Args: + host_os : os + arch : architecture run on + build_type : build configuration (debug, checked, release) + coreclr_repo_location : coreclr repo location + test_location : path to coreclr tests + + """ + logs_dir = os.path.join(coreclr_repo_location, "bin", "Logs") + log_path = os.path.join(logs_dir, "TestRunResults_%s_%s_%s" % (host_os, arch, build_type)) + print "Parsing test results from (%s)" % log_path + + test_run_location = os.path.join(coreclr_repo_location, "bin", "Logs", "testRun.xml") + + if not os.path.isfile(test_run_location): + # Check if this is a casing issue + + found = False + for item in os.listdir(os.path.dirname(test_run_location)): + item_lower = item.lower() + if item_lower == "testrun.xml": + # Correct the name. + os.rename(os.path.join(coreclr_repo_location, "bin", "Logs", item), test_run_location) + found = True + break + + if not found: + print "Unable to find testRun.xml. This normally means the tests did not run." + print "It could also mean there was a problem logging. Please run the tests again." + + return + + if host_os != "Windows_NT" and running_in_ci(): + # Huge hack. + # TODO change netci to parse testRun.xml + shutil.copy2(test_run_location, os.path.join(os.path.dirname(test_run_location), "coreclrtests.xml")) + + assemblies = xml.etree.ElementTree.parse(test_run_location).getroot() + + tests = defaultdict(lambda: None) + for assembly in assemblies: + for collection in assembly: + if collection.tag == "errors" and collection.text != None: + # Something went wrong during running the tests. + print "Error running the tests, please run runtest.py again." + sys.exit(1) + elif collection.tag != "errors": + test_name = None + for test in collection: + type = test.attrib["type"] + method = test.attrib["method"] + + type = type.split("._")[0] + test_name = type + method + + assert test_name != None + + failed = collection.attrib["failed"] + skipped = collection.attrib["skipped"] + passed = collection.attrib["passed"] + time = float(collection.attrib["time"]) + + test_output = None + + if failed == "1": + failure_info = collection[0][0] + + test_output = failure_info[0].text + + test_location_on_filesystem = find_test_from_name(host_os, test_location, test_name) + + assert os.path.isfile(test_location_on_filesystem) + + assert tests[test_name] == None + tests[test_name] = defaultdict(lambda: None, { + "name": test_name, + "test_path": test_location_on_filesystem, + "failed": failed, + "skipped": skipped, + "passed": passed, + "time": time, + "test_output": test_output + }) + + return tests + +def print_summary(tests): + """ Print a summary of the test results + + Args: + tests (defaultdict[String]: { }): The tests that were reported by + : xunit + + """ + + assert tests is not None + + failed_tests = [] + passed_tests = [] + skipped_tests = [] + + for test in tests: + test = tests[test] + + if test["failed"] == "1": + failed_tests.append(test) + elif test["passed"] == "1": + passed_tests.append(test) + else: + skipped_tests.append(test) + + print + print "Total tests run: %d" % len(tests) + print + print "Total passing tests: %d" % len(passed_tests) + print "Total failed tests: %d" % len(failed_tests) + print "Total skipped tests: %d" % len(skipped_tests) + print + + failed_tests.sort(key=lambda item: item["time"], reverse=True) + passed_tests.sort(key=lambda item: item["time"], reverse=True) + skipped_tests.sort(key=lambda item: item["time"], reverse=True) + + def print_tests_helper(tests, stop_count): + for index, item in enumerate(tests): + time = item["time"] + unit = "seconds" + time_remainder = "" + second_unit = "" + saved_time = time + remainder_str = "" + + # If it can be expressed in hours + if time > 60**2: + time = saved_time / (60**2) + time_remainder = saved_time % (60**2) + time_remainder /= 60 + time_remainder = math.floor(time_remainder) + unit = "hours" + second_unit = "minutes" + + remainder_str = " %s %s" % (int(time_remainder), second_unit) + + elif time > 60 and time < 60**2: + time = saved_time / 60 + time_remainder = saved_time % 60 + time_remainder = math.floor(time_remainder) + unit = "minutes" + second_unit = "seconds" + + remainder_str = " %s %s" % (int(time_remainder), second_unit) + + print "%s (%d %s%s)" % (item["test_path"], time, unit, remainder_str) + + if stop_count != None: + if index >= stop_count: + break + + if len(failed_tests) > 0: + print "Failed tests:" + print + print_tests_helper(failed_tests, None) + + + if len(passed_tests) > 50: + print + print "50 slowest passing tests:" + print + print_tests_helper(passed_tests, 50) + + if len(failed_tests) > 0: + print + print "#################################################################" + print "Output of failing tests:" + print + + for item in failed_tests: + print "[%s]: " % item["test_path"] + print + + test_output = item["test_output"] + + # XUnit results are captured as escaped, escaped characters. + test_output = test_output.replace("\\r", "\r") + test_output = test_output.replace("\\n", "\n") + + print test_output + print + + print + print "#################################################################" + print "End of output of failing tests" + print "#################################################################" + print + +def create_repro(host_os, arch, build_type, env, core_root, coreclr_repo_location, tests): + """ Go through the failing tests and create repros for them + + Args: + host_os (String) : os + arch (String) : architecture + build_type (String) : build configuration (debug, checked, release) + core_root (String) : Core_Root path + coreclr_repo_location (String) : Location of coreclr git repo + tests (defaultdict[String]: { }): The tests that were reported by + : xunit + + """ + assert tests is not None + + failed_tests = [tests[item] for item in tests if tests[item]["failed"] == "1"] + if len(failed_tests) == 0: + return + + bin_location = os.path.join(coreclr_repo_location, "bin") + assert os.path.isdir(bin_location) + + repro_location = os.path.join(bin_location, "repro", "%s.%s.%s" % (host_os, arch, build_type)) + if os.path.isdir(repro_location): + shutil.rmtree(repro_location) + + print "mkdir %s" % repro_location + os.makedirs(repro_location) + + print + print "Creating repo files, they can be found at: %s" % repro_location + + assert os.path.isdir(repro_location) + + # Now that the repro_location exists under /bin/repro + # create wrappers which will simply run the test with the correct environment + for test in failed_tests: + debug_env = DebugEnv(host_os, arch, build_type, env, core_root, coreclr_repo_location, test) + debug_env.write_repro() + + print "Repro files written." + print "They can be found at %s" % repro_location + +def do_setup(host_os, + arch, + build_type, + coreclr_repo_location, + product_location, + test_location, + test_native_bin_location, + core_root, + unprocessed_args, + test_env): + global gc_stress_c # Setup the tools for the repo. setup_tools(host_os, coreclr_repo_location) - env = get_environment() - ret_code = create_and_use_test_env(host_os, - env, - lambda path: run_tests(host_os, - arch, - build_type, - core_root, - coreclr_repo_location, - test_location, - test_native_bin_location, - test_env=path)) + if unprocessed_args.generate_layout: + success = setup_core_root(host_os, + arch, + build_type, + coreclr_repo_location, + test_native_bin_location, + product_location, + test_location, + core_root) + + if not success: + print "Error GenerateLayout has failed." + sys.exit(1) + + if unprocessed_args.generate_layout_only: + sys.exit(0) + + if unprocessed_args.precompile_core_root: + precompile_core_root(test_location, host_os, arch, core_root, use_jit_disasm=args.jitdisasm, altjit_name=unprocessed_args.crossgen_altjit) + + # If COMPlus_GCStress is set then we need to setup cordistools + if gc_stress_c: + setup_coredis_tools(coreclr_repo_location, host_os, arch, core_root) + + # Copy all the native libs to core_root + if host_os != "Windows_NT": + copy_native_test_bin_to_core_root(host_os, os.path.join(test_native_bin_location, "src"), core_root) + + correct_line_endings(host_os, test_location) + + if unprocessed_args.build_test_wrappers: + build_test_wrappers(host_os, arch, build_type, coreclr_repo_location, test_location) + + run_tests(host_os, + arch, + build_type, + core_root, + coreclr_repo_location, + test_location, + test_native_bin_location, + is_illink=unprocessed_args.il_link, + is_long_gc=unprocessed_args.long_gc, + is_gcsimulator=unprocessed_args.gcsimulator, + is_jitdasm=unprocessed_args.jitdisasm, + is_ilasm=unprocessed_args.ilasmroundtrip, + run_sequential=unprocessed_args.sequential, + run_crossgen_tests=unprocessed_args.run_crossgen_tests, + test_env=test_env) + +################################################################################ +# Main +################################################################################ + +def main(args): + global g_verbose + g_verbose = args.verbose + + host_os, arch, build_type, coreclr_repo_location, product_location, core_root, test_location, test_native_bin_location = setup_args(args) + + env = get_environment(test_env=args.test_env) + if not args.analyze_results_only: + if args.test_env is not None: + ret_code = do_setup(host_os, + arch, + build_type, + coreclr_repo_location, + product_location, + test_location, + test_native_bin_location, + core_root, + args, + args.test_env) + else: + ret_code = create_and_use_test_env(host_os, + env, + lambda path: do_setup(host_os, + arch, + build_type, + coreclr_repo_location, + product_location, + test_location, + test_native_bin_location, + core_root, + args, + path)) + print "Test run finished." + + tests = parse_test_results(host_os, arch, build_type, coreclr_repo_location, test_location) + + if tests is not None: + print_summary(tests) + create_repro(host_os, arch, build_type, env, core_root, coreclr_repo_location, tests) ################################################################################ # __main__ @@ -438,4 +1981,4 @@ def main(args): if __name__ == "__main__": args = parser.parse_args() - sys.exit(main(args)) \ No newline at end of file + sys.exit(main(args)) diff --git a/tests/runtest.sh b/tests/runtest.sh index a4631a72c93c..614692e4f83a 100755 --- a/tests/runtest.sh +++ b/tests/runtest.sh @@ -6,44 +6,22 @@ function print_usage { echo '' echo 'Typical command line:' echo '' - echo 'coreclr/tests/runtest.sh' - echo ' --testRootDir="temp/Windows_NT.x64.Debug"' - echo ' --testNativeBinDir="coreclr/bin/obj/Linux.x64.Debug/tests"' - echo ' --coreOverlayDir="coreclr/bin/tests/Linux.x64.Debug/Tests/Core_Root"' - echo ' --copyNativeTestBin' + echo 'coreclr/tests/runtest.sh ' echo '' - echo 'Required arguments:' + echo 'Optional arguments:' echo ' --testRootDir= : Root directory of the test build (e.g. coreclr/bin/tests/Windows_NT.x64.Debug).' echo ' --testNativeBinDir= : Directory of the native CoreCLR test build (e.g. coreclr/bin/obj/Linux.x64.Debug/tests).' - echo ' (Also required: Either --coreOverlayDir, or all of the switches --coreOverlayDir overrides)' - echo '' - echo 'Optional arguments:' - echo ' --coreOverlayDir= : Directory containing core binaries and test dependencies. If not specified, the' - echo ' default is testRootDir/Tests/coreoverlay. This switch overrides --coreClrBinDir,' - echo ' --mscorlibDir, and --coreFxBinDir.' + echo ' --coreOverlayDir= : Directory containing core binaries and test dependencies.' echo ' --coreClrBinDir= : Directory of the CoreCLR build (e.g. coreclr/bin/Product/Linux.x64.Debug).' - echo ' --mscorlibDir= : Directory containing the built mscorlib.dll. If not specified, it is expected to be' - echo ' in the directory specified by --coreClrBinDir.' - echo ' --coreFxBinDir="" : Directory with CoreFX build outputs' - echo ' (e.g. "corefx/bin/runtime/netcoreapp-Linux-Debug-x64")' - echo ' If files with the same name are present in multiple directories, the first one wins.' - echo ' --testDir= : Run tests only in the specified directory. The path is relative to the directory' - echo ' specified by --testRootDir. Multiple of this switch may be specified.' - echo ' --testDirFile= : Run tests only in the directories specified by the file at . Paths are listed' - echo ' one line, relative to the directory specified by --testRootDir.' echo ' --build-overlay-only : Build coreoverlay only, and skip running tests.' - echo ' --runFailingTestsOnly : Run only the tests that are disabled on this platform due to unexpected failures.' - echo ' Failing tests are listed in coreclr/tests/failingTestsOutsideWindows.txt, one per' - echo ' line, as paths to .sh files relative to the directory specified by --testRootDir.' + echo ' --generateLayoutOnly : Build Core_Root only and skip running tests' + echo ' --generateLayout : Force generating layout, even if core_root is passed.' echo ' --disableEventLogging : Disable the events logged by both VM and Managed Code' echo ' --sequential : Run tests sequentially (default is to run in parallel).' - echo ' --playlist= : Run only the tests that are specified in the file at , in the same format as' - echo ' runFailingTestsOnly' echo ' -v, --verbose : Show output from each test.' echo ' -h|--help : Show usage information.' echo ' --useServerGC : Enable server GC for this test run' echo ' --test-env : Script to set environment variables for tests' - echo ' --copyNativeTestBin : Explicitly copy native test components into the test dir' echo ' --crossgen : Precompiles the framework managed assemblies' echo ' --runcrossgentests : Runs the ready to run tests' echo ' --jitstress= : Runs the tests with COMPlus_JitStress=n' @@ -61,11 +39,9 @@ function print_usage { echo ' --gcsimulator : Runs the GCSimulator tests' echo ' --tieredcompilation : Runs the tests with COMPlus_TieredCompilation=1' echo ' --link : Runs the tests after linking via ILlink' - echo ' --show-time : Print execution sequence and running time for each test' - echo ' --no-lf-conversion : Do not execute LF conversion before running test script' - echo ' --limitedDumpGeneration : Enables the generation of a limited number of core dumps if test(s) crash, even if ulimit' - echo ' is zero when launching this script. This option is intended for use in CI.' echo ' --xunitOutputPath= : Create xUnit XML report at the specifed path (default: /coreclrtests.xml)' + echo ' --skipXunitWrapperBuild : Skip creating the xunit wrapper' + echo ' --printLastResultsOnly : Print the results of the last run' echo '' echo 'CoreFX Test Options ' echo ' --corefxtests : Runs CoreFX tests' @@ -73,372 +49,6 @@ function print_usage { echo ' --corefxtestlist= : Runs the CoreFX tests specified in the passed list' echo ' --testHostDir= : Directory containing a built test host including core binaries, test dependencies' echo ' and a dotnet executable' - echo '' - echo 'Runtime Code Coverage options:' - echo ' --coreclr-coverage : Optional argument to get coreclr code coverage reports' - echo ' --coreclr-objs= : Location of root of the object directory' - echo ' containing the linux/mac coreclr build' - echo ' --coreclr-src= : Location of root of the directory' - echo ' containing the coreclr source files' - echo ' --coverage-output-dir= : Directory where coverage output will be written to' - echo '' -} - -function print_results { - echo "" - echo "=======================" - echo " Test Results" - echo "=======================" - echo "# CoreCLR Bin Dir : $coreClrBinDir" - echo "# Tests Discovered : $countTotalTests" - echo "# Passed : $countPassedTests" - echo "# Failed : $countFailedTests" - echo "# Skipped : $countSkippedTests" - echo "=======================" -} - -# Initialize counters for bookkeeping. -countTotalTests=0 -countPassedTests=0 -countFailedTests=0 -countSkippedTests=0 - -# Variables for xUnit-style XML output. XML format: https://xunit.github.io/docs/format-xml-v2.html -xunitOutputPath= -xunitTestOutputPath= - -# Variables for text file output. These can be passed back to runtest.sh using the "--playlist" argument -# to rerun specific tests. -testsPassOutputPath= -testsFailOutputPath= -testsSkipOutputPath= - -# libExtension determines extension for dynamic library files -# runtimeName determines where CoreFX Runtime files will be located -OSName=$(uname -s) -libExtension= -case $OSName in - Darwin) - libExtension="dylib" - ;; - - Linux) - libExtension="so" - ;; - - NetBSD) - libExtension="so" - ;; - - *) - echo "Unsupported OS $OSName detected, configuring as if for Linux" - libExtension="so" - ;; -esac - -function xunit_output_begin { - if [ -z "$xunitOutputPath" ]; then - xunitOutputPath=$testRootDir/coreclrtests.xml - fi - if ! [ -e $(basename "$xunitOutputPath") ]; then - xunitOutputPath=$testRootDir/coreclrtests.xml - fi - xunitTestOutputPath=${xunitOutputPath}.test - if [ -e "$xunitOutputPath" ]; then - rm -f -r "$xunitOutputPath" - fi - if [ -e "$xunitTestOutputPath" ]; then - rm -f -r "$xunitTestOutputPath" - fi -} - -function xunit_output_add_test { - # - # - # - # - - local scriptFilePath=$1 - local outputFilePath=$2 - local testResult=$3 # Pass, Fail, or Skip - local testScriptExitCode=$4 - local testRunningTime=$5 - - local testPath=${scriptFilePath%.sh} # Remove trailing ".sh" - local testDir=$(dirname "$testPath") - local testName=$(basename "$testPath") - - # Replace '/' with '.' - testPath=$(echo "$testPath" | tr / .) - testDir=$(echo "$testDir" | tr / .) - - local line - - line=" " - line="${line}>"$xunitTestOutputPath" - return - fi - - line="${line}>" - echo "$line" >>"$xunitTestOutputPath" - - line=" " - if [ "$testResult" == "Skip" ]; then - line="${line}" - echo "$line" >>"$xunitTestOutputPath" - else - line="${line}" - echo "$line" >>"$xunitTestOutputPath" - - line=" " - line="${line}" - echo "$line" >>"$xunitTestOutputPath" - line=" " - line="${line}>"$xunitTestOutputPath" - cat "$outputFilePath" >>"$xunitTestOutputPath" - line=" " - line="${line}]]>" - echo "$line" >>"$xunitTestOutputPath" - line=" " - line="${line}" - echo "$line" >>"$xunitTestOutputPath" - - line=" " - line="${line}" - echo "$line" >>"$xunitTestOutputPath" - fi - - line=" " - line="${line}" - echo "$line" >>"$xunitTestOutputPath" -} - -function xunit_output_end { - local errorSource=$1 - local errorMessage=$2 - - local errorCount - if [ -z "$errorSource" ]; then - ((errorCount = 0)) - else - ((errorCount = 1)) - fi - - echo '' >>"$xunitOutputPath" - echo '' >>"$xunitOutputPath" - - local line - - # - line=" " - line="${line}>"$xunitOutputPath" - - # - line=" " - line="${line}>"$xunitOutputPath" - - # ... - if [ -f "$xunitTestOutputPath" ]; then - cat "$xunitTestOutputPath" >>"$xunitOutputPath" - rm -f "$xunitTestOutputPath" - fi - - # - line=" " - line="${line}" - echo "$line" >>"$xunitOutputPath" - - if [ -n "$errorSource" ]; then - # - line=" " - line="${line}" - echo "$line" >>"$xunitOutputPath" - - # - line=" " - line="${line}>"$xunitOutputPath" - - # - line=" " - line="${line}${errorMessage}" - echo "$line" >>"$xunitOutputPath" - - # - line=" " - line="${line}" - echo "$line" >>"$xunitOutputPath" - - # - line=" " - line="${line}" - echo "$line" >>"$xunitOutputPath" - fi - - # - line=" " - line="${line}" - echo "$line" >>"$xunitOutputPath" - - # - echo '' >>"$xunitOutputPath" -} - -function text_file_output_begin { - if [ -z "$testsPassOutputPath" ]; then - testsPassOutputPath=$testRootDir/coreclrtests.pass.txt - fi - if ! [ -e $(basename "$testsPassOutputPath") ]; then - testsPassOutputPath=$testRootDir/coreclrtests.pass.txt - fi - if [ -e "$testsPassOutputPath" ]; then - rm -f "$testsPassOutputPath" - fi - if [ -z "$testsFailOutputPath" ]; then - testsFailOutputPath=$testRootDir/coreclrtests.fail.txt - fi - if ! [ -e $(basename "$testsFailOutputPath") ]; then - testsFailOutputPath=$testRootDir/coreclrtests.fail.txt - fi - if [ -e "$testsFailOutputPath" ]; then - rm -f "$testsFailOutputPath" - fi - if [ -z "$testsSkipOutputPath" ]; then - testsSkipOutputPath=$testRootDir/coreclrtests.skip.txt - fi - if ! [ -e $(basename "$testsSkipOutputPath") ]; then - testsSkipOutputPath=$testRootDir/coreclrtests.skip.txt - fi - if [ -e "$testsSkipOutputPath" ]; then - rm -f "$testsSkipOutputPath" - fi -} - -function text_file_output_add_test { - local scriptFilePath=$1 - local testResult=$2 # Pass, Fail, or Skip - - if [ "$testResult" == "Pass" ]; then - echo "$scriptFilePath" >>"$testsPassOutputPath" - elif [ "$testResult" == "Skip" ]; then - echo "$scriptFilePath" >>"$testsSkipOutputPath" - else - echo "$scriptFilePath" >>"$testsFailOutputPath" - fi -} - -function exit_with_error { - local errorSource=$1 - local errorMessage=$2 - local printUsage=$3 - - if [ -z "$printUsage" ]; then - ((printUsage = 0)) - fi - - echo "$errorMessage" - xunit_output_end "$errorSource" "$errorMessage" - if ((printUsage != 0)); then - print_usage - fi - exit $EXIT_CODE_EXCEPTION -} - -# Handle Ctrl-C. We will stop execution and print the results that -# we gathered so far. -function handle_ctrl_c { - local errorSource='handle_ctrl_c' - - echo "" - echo "*** Stopping... ***" - print_results - exit_with_error "$errorSource" "Test run aborted by Ctrl+C." -} - -# Register the Ctrl-C handler -trap handle_ctrl_c INT - -function create_core_overlay { - local errorSource='create_core_overlay' - local printUsage=1 - - if [ -n "$coreOverlayDir" ]; then - export CORE_ROOT="$coreOverlayDir" - - if [ -n "$copyNativeTestBin" ]; then - copy_test_native_bin_to_test_root $coreOverlayDir - fi - - return - fi - - # Check inputs to make sure we have enough information to create the core layout. $testRootDir/Tests/Core_Root should - # already exist and contain test dependencies that are not built. - local testDependenciesDir=$testRootDir/Tests/Core_Root - if [ ! -d "$testDependenciesDir" ]; then - exit_with_error "$errorSource" "Did not find the test dependencies directory: $testDependenciesDir" - fi - if [ -z "$coreClrBinDir" ]; then - exit_with_error "$errorSource" "One of --coreOverlayDir or --coreClrBinDir must be specified." "$printUsage" - fi - if [ ! -d "$coreClrBinDir" ]; then - exit_with_error "$errorSource" "Directory specified by --coreClrBinDir does not exist: $coreClrBinDir" - fi - - # Create the overlay - coreOverlayDir=$testRootDir/Tests/coreoverlay - export CORE_ROOT="$coreOverlayDir" - if [ -e "$coreOverlayDir" ]; then - rm -f -r "$coreOverlayDir" - fi - mkdir "$coreOverlayDir" - - cp -f -v "$coreFxBinDir/"* "$coreOverlayDir/" 2>/dev/null - cp -f -p -v "$coreClrBinDir/"* "$coreOverlayDir/" 2>/dev/null - if [ -d "$mscorlibDir/bin" ]; then - cp -f -v "$mscorlibDir/bin/"* "$coreOverlayDir/" 2>/dev/null - fi - cp -f -v "$testDependenciesDir/"xunit* "$coreOverlayDir/" 2>/dev/null - cp -n -v "$testDependenciesDir/"* "$coreOverlayDir/" 2>/dev/null - if [ -f "$coreOverlayDir/mscorlib.ni.dll" ]; then - # Test dependencies come from a Windows build, and mscorlib.ni.dll would be the one from Windows - rm -f "$coreOverlayDir/mscorlib.ni.dll" - fi - if [ -f "$coreOverlayDir/System.Private.CoreLib.ni.dll" ]; then - # Test dependencies come from a Windows build, and System.Private.CoreLib.ni.dll would be the one from Windows - rm -f "$coreOverlayDir/System.Private.CoreLib.ni.dll" - fi - copy_test_native_bin_to_test_root $coreOverlayDir } function create_testhost @@ -516,181 +126,6 @@ function create_testhost exit ${exitCode} } -declare -a skipCrossGenFiles - -function is_skip_crossgen_test { - for skip in "${skipCrossGenFiles[@]}"; do - if [ "$1" == "$skip" ]; then - return 0 - fi - done - return 1 -} - -function precompile_overlay_assemblies { - skipCrossGenFiles=($(read_array "$(dirname "$0")/skipCrossGenFiles.$ARCH.txt")) - - if [ $doCrossgen == 1 ]; then - local overlayDir=$CORE_ROOT - - filesToPrecompile=$(find -L $overlayDir -iname \*.dll -not -iname \*.ni.dll -not -iname \*-ms-win-\* -type f ) - for fileToPrecompile in ${filesToPrecompile} - do - local filename=${fileToPrecompile} - if [ $jitdisasm == 1 ]; then - $overlayDir/corerun $overlayDir/jit-dasm.dll --crossgen $overlayDir/crossgen --platform $overlayDir --output $testRootDir/dasm $filename - local exitCode=$? - if [ $exitCode != 0 ]; then - echo Unable to generate dasm for $filename - fi - else - if is_skip_crossgen_test "$(basename $filename)"; then - continue - fi - echo Precompiling $filename - $overlayDir/crossgen /Platform_Assemblies_Paths $overlayDir $filename 1> $filename.stdout 2>$filename.stderr - local exitCode=$? - if [[ $exitCode != 0 ]]; then - if grep -q -e '0x80131018' $filename.stderr; then - printf "\n\t$filename is not a managed assembly.\n\n" - else - echo Unable to precompile $filename. - cat $filename.stdout - cat $filename.stderr - exit $exitCode - fi - else - rm $filename.{stdout,stderr} - fi - fi - done - else - echo Skipping crossgen of FX assemblies. - fi -} - -function copy_test_native_bin_to_test_root { - local errorSource='copy_test_native_bin_to_test_root' - local coreRootDir=$1 - - if [ -z "$testNativeBinDir" ]; then - exit_with_error "$errorSource" "--testNativeBinDir is required." - fi - testNativeBinDir=$testNativeBinDir/src - if [ ! -d "$testNativeBinDir" ]; then - exit_with_error "$errorSource" "Directory specified by --testNativeBinDir does not exist: $testNativeBinDir" - fi - - # Copy native test components from the native test build into the respective test directory in the test root directory - find "$testNativeBinDir" -type f -iname "*.$libExtension" | - while IFS='' read -r filePath || [ -n "$filePath" ]; do - local dirPath=$(dirname "$filePath") - cp -f "$filePath" "$coreRootDir" - done -} - -# Variables for unsupported and failing tests -declare -a unsupportedTests -declare -a failingTests -declare -a playlistTests -((runFailingTestsOnly = 0)) - -# Get an array of items by reading the specified file line by line. -function read_array { - local theArray=() - - if [ ! -f "$1" ]; then - return - fi - - # bash in Mac OS X doesn't support 'readarray', so using alternate way instead. - # readarray -t theArray < "$1" - # Any line that starts with '#' is ignored. - while IFS='' read -r line || [ -n "$line" ]; do - if [[ $line != "#"* ]]; then - theArray[${#theArray[@]}]=$line - fi - done < "$1" - echo ${theArray[@]} -} - -function load_unsupported_tests { - # Load the list of tests that are not supported on this platform. These tests are disabled (skipped) permanently. - unsupportedTests=($(read_array "$(dirname "$0")/testsUnsupportedOutsideWindows.txt")) - unsupportedTests+=($(read_array "$(dirname "$0")/testsUnsupported.$ARCH.txt")) -} - -function load_failing_tests { - # Load the list of tests that fail on this platform. These tests are disabled (skipped) temporarily, pending investigation. - failingTests=($(read_array "$(dirname "$0")/testsFailingOutsideWindows.txt")) - failingTests+=($(read_array "$(dirname "$0")/testsFailing.$ARCH.txt")) -} - -function load_playlist_tests { - # Load the list of tests that are enabled as a part of this test playlist. - playlistTests=($(read_array "${playlistFile}")) -} - -function is_unsupported_test { - for unsupportedTest in "${unsupportedTests[@]}"; do - if [ "$1" == "$unsupportedTest" ]; then - return 0 - fi - done - return 1 -} - -function is_failing_test { - for failingTest in "${failingTests[@]}"; do - if [ "$1" == "$failingTest" ]; then - return 0 - fi - done - return 1 -} - -function is_playlist_test { - for playlistTest in "${playlistTests[@]}"; do - if [ "$1" == "$playlistTest" ]; then - return 0 - fi - done - return 1 -} - -function skip_unsupported_test { - # This function runs in a background process. It should not echo anything, and should not use global variables. This - # function is analogous to run_test, and causes the test to be skipped with the message below. - - local scriptFilePath=$1 - local outputFilePath=$2 - - echo "Not supported on this platform." >"$outputFilePath" - return 2 # skip the test -} - -function skip_failing_test { - # This function runs in a background process. It should not echo anything, and should not use global variables. This - # function is analogous to run_test, and causes the test to be skipped with the message below. - - local scriptFilePath=$1 - local outputFilePath=$2 - - echo "Temporarily disabled on this platform due to unexpected failures." >"$outputFilePath" - return 2 # skip the test -} - -function skip_non_playlist_test { - # This function runs in a background process. It should not echo anything, and should not use global variables. This - # function is analogous to run_test, and causes the test to be skipped with the message below. - - local scriptFilePath=$1 - local outputFilePath=$2 - - echo "Test is not included in the running playlist." >"$outputFilePath" - return 2 # skip the test -} - function set_up_core_dump_generation { # We will only enable dump generation here if we're on Mac or Linux if [[ ! ( "$(uname -s)" == "Darwin" || "$(uname -s)" == "Linux" ) ]]; then @@ -717,400 +152,6 @@ function set_up_core_dump_generation { fi } -function print_info_from_core_file { - - #### temporary - if [ "$ARCH" == "arm64" ]; then - echo "Not inspecting core dumps on arm64 at the moment." - return - fi - #### - - local core_file_name=$1 - local executable_name=$2 - - if ! [ -e $executable_name ]; then - echo "Unable to find executable $executable_name" - return - elif ! [ -e $core_file_name ]; then - echo "Unable to find core file $core_file_name" - return - fi - - # Use LLDB to inspect the core dump on Mac, and GDB everywhere else. - if [[ "$OSName" == "Darwin" ]]; then - hash lldb 2>/dev/null || { echo >&2 "LLDB was not found. Unable to print core file."; return; } - - echo "Printing info from core file $core_file_name" - lldb -c $core_file_name -b -o 'bt' - else - # Use GDB to print the backtrace from the core file. - hash gdb 2>/dev/null || { echo >&2 "GDB was not found. Unable to print core file."; return; } - - echo "Printing info from core file $core_file_name" - gdb --batch -ex "thread apply all bt full" -ex "quit" $executable_name $core_file_name - fi -} - -function download_dumpling_script { - echo "Downloading latest version of dumpling script." - wget "https://dumpling.azurewebsites.net/api/client/dumpling.py" - - local dumpling_script="dumpling.py" - chmod +x $dumpling_script -} - -function upload_core_file_to_dumpling { - local core_file_name=$1 - local dumpling_script="dumpling.py" - local dumpling_file="local_dumplings.txt" - - # dumpling requires that the file exist before appending. - touch ./$dumpling_file - - if [ ! -x $dumpling_script ]; then - download_dumpling_script - fi - - if [ ! -x $dumpling_script ]; then - echo "Failed to download dumpling script. Dump cannot be uploaded." - return - fi - - echo "Uploading $core_file_name to dumpling service." - - local paths_to_add="" - if [ -d "$coreClrBinDir" ]; then - echo "Uploading CoreCLR binaries with dump." - paths_to_add=$coreClrBinDir - fi - - # Ensure the script has Unix line endings - perl -pi -e 's/\r\n|\n|\r/\n/g' "$dumpling_script" - - # The output from this will include a unique ID for this dump. - ./$dumpling_script "upload" "--dumppath" "$core_file_name" "--incpaths" $paths_to_add "--properties" "Project=CoreCLR" "--squelch" | tee -a $dumpling_file -} - -function preserve_core_file { - local core_file_name=$1 - local storage_location="/tmp/coredumps_coreclr" - - # Create the directory (this shouldn't fail even if it already exists). - mkdir -p $storage_location - - # Only preserve the dump if the directory is empty. Otherwise, do nothing. - # This is a way to prevent us from storing/uploading too many dumps. - if [ ! "$(ls -A $storage_location)" ]; then - echo "Copying core file $core_file_name to $storage_location" - cp $core_file_name $storage_location - - upload_core_file_to_dumpling $core_file_name - fi -} - -function inspect_and_delete_core_files { - # This function prints some basic information from core files in the current - # directory and deletes them immediately. Based on the state of the system, it may - # also upload a core file to the dumpling service. - # (see preserve_core_file). - - # Depending on distro/configuration, the core files may either be named "core" - # or "core." by default. We will read /proc/sys/kernel/core_uses_pid to - # determine which one it is. - # On OS X/macOS, we checked the kern.corefile value before enabling core dump - # generation, so we know it always includes the PID. - local core_name_uses_pid=0 - if [[ (( -e /proc/sys/kernel/core_uses_pid ) && ( "1" == $(cat /proc/sys/kernel/core_uses_pid) )) - || ( "$(uname -s)" == "Darwin" ) ]]; then - core_name_uses_pid=1 - fi - - if [ $core_name_uses_pid == "1" ]; then - # We don't know what the PID of the process was, so let's look at all core - # files whose name matches core.NUMBER - for f in core.*; do - [[ $f =~ core.[0-9]+ ]] && print_info_from_core_file "$f" $CORE_ROOT/"corerun" && preserve_core_file "$f" && rm "$f" - done - elif [ -f core ]; then - print_info_from_core_file "core" $CORE_ROOT/"corerun" - preserve_core_file "core" - rm "core" - fi -} - -function run_test { - # This function runs in a background process. It should not echo anything, and should not use global variables. - - local scriptFilePath=$1 - local outputFilePath=$2 - - # Switch to directory where the script is - cd "$(dirname "$scriptFilePath")" - - local scriptFileName=$(basename "$scriptFilePath") - local outputFileName=$(basename "$outputFilePath") - - if [ "$limitedCoreDumps" == "ON" ]; then - set_up_core_dump_generation - fi - - "./$scriptFileName" >"$outputFileName" 2>&1 - local testScriptExitCode=$? - - # We will try to print some information from generated core dumps if a debugger - # is available, and possibly store a dump in a non-transient location. - if [ "$limitedCoreDumps" == "ON" ]; then - inspect_and_delete_core_files - fi - - return $testScriptExitCode -} - -# Variables for running tests in the background -if [ `uname` = "NetBSD" ]; then - NumProc=$(getconf NPROCESSORS_ONLN) -elif [ `uname` = "Darwin" ]; then - NumProc=$(getconf _NPROCESSORS_ONLN) -else - if [ -x "$(command -v nproc)" ]; then - NumProc=$(nproc --all) - elif [ -x "$(command -v getconf)" ]; then - NumProc=$(getconf _NPROCESSORS_ONLN) - else - NumProc=1 - fi -fi -((maxProcesses = $NumProc * 3 / 2)) # long tests delay process creation, use a few more processors - -((processCount = 0)) -declare -a scriptFilePaths -declare -a outputFilePaths -declare -a processIds -declare -a testStartTimes -waitProcessIndex= -pidNone=0 - -function waitany { - local pid - local exitcode - while true; do - for (( i=0; i<$maxProcesses; i++ )); do - pid=${processIds[$i]} - if [ -z "$pid" ] || [ "$pid" == "$pidNone" ]; then - continue - fi - if ! kill -0 $pid 2>/dev/null; then - wait $pid - exitcode=$? - waitProcessIndex=$i - processIds[$i]=$pidNone - return $exitcode - fi - done - sleep 0.1 - done -} - -function get_available_process_index { - local pid - local i=0 - for (( i=0; i<$maxProcesses; i++ )); do - pid=${processIds[$i]} - if [ -z "$pid" ] || [ "$pid" == "$pidNone" ]; then - break - fi - done - echo $i -} - -function finish_test { - waitany - local testScriptExitCode=$? - local finishedProcessIndex=$waitProcessIndex - ((--processCount)) - - local scriptFilePath=${scriptFilePaths[$finishedProcessIndex]} - local outputFilePath=${outputFilePaths[$finishedProcessIndex]} - local scriptFileName=$(basename "$scriptFilePath") - - local testEndTime= - local testRunningTime= - local header= - - if ((verbose == 1)); then - header=$(printf "[%4d]" $countTotalTests) - fi - - if [ "$showTime" == "ON" ]; then - testEndTime=$(date +%s) - testRunningTime=$(( $testEndTime - ${testStartTimes[$finishedProcessIndex]} )) - header=$header$(printf "[%4ds]" $testRunningTime) - fi - - local testResult - case $testScriptExitCode in - 0) - let countPassedTests++ - testResult='Pass' - if ((verbose == 1 || runFailingTestsOnly == 1)); then - echo "PASSED - ${header}${scriptFilePath}" - else - echo " - ${header}${scriptFilePath}" - fi - ;; - 2) - let countSkippedTests++ - testResult='Skip' - echo "SKIPPED - ${header}${scriptFilePath}" - ;; - *) - let countFailedTests++ - testResult='Fail' - echo "FAILED - ${header}${scriptFilePath}" - ;; - esac - let countTotalTests++ - - if ((verbose == 1 || testScriptExitCode != 0)); then - while IFS='' read -r line || [ -n "$line" ]; do - echo " $line" - done <"$outputFilePath" - fi - - xunit_output_add_test "$scriptFilePath" "$outputFilePath" "$testResult" "$testScriptExitCode" "$testRunningTime" - text_file_output_add_test "$scriptFilePath" "$testResult" -} - -function finish_remaining_tests { - # Finish the remaining tests in the order in which they were started - while ((processCount > 0)); do - finish_test - done -} - -function prep_test { - local scriptFilePath=$1 - local scriptFileDir=$(dirname "$scriptFilePath") - - test "$verbose" == 1 && echo "Preparing $scriptFilePath" - - if [ ! "$noLFConversion" == "ON" ]; then - # Convert DOS line endings to Unix if needed - perl -pi -e 's/\r\n|\n|\r/\n/g' "$scriptFilePath" - fi - - # Add executable file mode bit if needed - chmod +x "$scriptFilePath" - - #remove any NI and Locks - rm -f $scriptFileDir/*.ni.* - rm -rf $scriptFileDir/lock -} - -function start_test { - local nextProcessIndex=$(get_available_process_index) - local scriptFilePath=$1 - if ((runFailingTestsOnly == 1)) && ! is_failing_test "$scriptFilePath"; then - return - fi - - # Skip any test that's not in the current playlist, if a playlist was - # given to us. - if [ -n "$playlistFile" ] && ! is_playlist_test "$scriptFilePath"; then - return - fi - - if ((nextProcessIndex == maxProcesses)); then - finish_test - nextProcessIndex=$(get_available_process_index) - fi - - scriptFilePaths[$nextProcessIndex]=$scriptFilePath - local scriptFileName=$(basename "$scriptFilePath") - local outputFilePath=$(dirname "$scriptFilePath")/${scriptFileName}.out - outputFilePaths[$nextProcessIndex]=$outputFilePath - - if [ "$showTime" == "ON" ]; then - testStartTimes[$nextProcessIndex]=$(date +%s) - fi - - test "$verbose" == 1 && echo "Starting $scriptFilePath" - if is_unsupported_test "$scriptFilePath"; then - skip_unsupported_test "$scriptFilePath" "$outputFilePath" & - elif ((runFailingTestsOnly == 0)) && is_failing_test "$scriptFilePath"; then - skip_failing_test "$scriptFilePath" "$outputFilePath" & - else - run_test "$scriptFilePath" "$outputFilePath" & - fi - processIds[$nextProcessIndex]=$! - - ((++processCount)) -} - -# Get a list of directories in which to scan for tests by reading the -# specified file line by line. -function set_test_directories { - local errorSource='set_test_directories' - - local listFileName=$1 - - if [ ! -f "$listFileName" ] - then - exit_with_error "$errorSource" "Test directories file not found at $listFileName" - fi - testDirectories=($(read_array "$listFileName")) -} - -function run_tests_in_directory { - local testDir=$1 - - # Recursively search through directories for .sh files to prepare them. - # Note: This needs to occur before any test runs as some of the .sh files - # depend on other .sh files - for scriptFilePath in $(find "$testDir" -type f -iname '*.sh' | sort) - do - prep_test "${scriptFilePath:2}" - done - echo "The tests have been prepared" - # Recursively search through directories for .sh files to run. - for scriptFilePath in $(find "$testDir" -type f -iname '*.sh' | sort) - do - start_test "${scriptFilePath:2}" - done -} - -function coreclr_code_coverage { - local coverageDir="$coverageOutputDir/Coverage" - local toolsDir="$coverageOutputDir/Coverage/tools" - local reportsDir="$coverageOutputDir/Coverage/reports" - local packageName="unix-code-coverage-tools.1.0.0.nupkg" - - rm -rf $coverageDir - mkdir -p $coverageDir - mkdir -p $toolsDir - mkdir -p $reportsDir - pushd $toolsDir > /dev/null - - echo "Pulling down code coverage tools" - wget -q https://www.myget.org/F/dotnet-buildtools/api/v2/package/unix-code-coverage-tools/1.0.0 -O $packageName - echo "Unzipping to $toolsDir" - unzip -q -o $packageName - - # Invoke gcovr - chmod a+rwx ./gcovr - chmod a+rwx ./$OSName/llvm-cov - - echo - echo "Generating coreclr code coverage reports at $reportsDir/coreclr.html" - echo "./gcovr $coreClrObjs --gcov-executable=$toolsDir/$OS/llvm-cov -r $coreClrSrc --html --html-details -o $reportsDir/coreclr.html" - echo - ./gcovr $coreClrObjs --gcov-executable=$toolsDir/$OSName/llvm-cov -r $coreClrSrc --html --html-details -o $reportsDir/coreclr.html - exitCode=$? - popd > /dev/null - exit $exitCode -} - function check_cpu_architecture { local CPUName=$(uname -m) local __arch= @@ -1137,6 +178,10 @@ function check_cpu_architecture { echo "$__arch" } +################################################################################ +# Handle Arguments +################################################################################ + ARCH=$(check_cpu_architecture) echo "Running on CPU- $ARCH" @@ -1146,6 +191,8 @@ readonly EXIT_CODE_EXCEPTION=1 # Script exited because something exceptional readonly EXIT_CODE_TEST_FAILURE=2 # Script completed successfully, but one or more tests failed. # Argument variables +buildArch=$ARCH +buildConfiguration="Debug" testRootDir= testNativeBinDir= coreOverlayDir= @@ -1172,6 +219,10 @@ verbose=0 doCrossgen=0 jitdisasm=0 ilasmroundtrip= +skipXunitWrapperBuild= +printLastResultsOnly= +generateLayoutOnly= +generateLayout= for i in "$@" do @@ -1183,6 +234,33 @@ do -v|--verbose) verbose=1 ;; + x64) + buildArch="x64" + ;; + x86) + buildArch="x86" + ;; + arm) + buildArch="arm" + ;; + arm64) + buildArch="arm64" + ;; + debug|Debug) + buildConfiguration="Debug" + ;; + checked|Checked) + buildConfiguration="Checked" + ;; + release|Release) + buildConfiguration="Release" + ;; + --skipXunitWrapperBuild) + skipXunitWrapperBuild=1 + ;; + --printLastResultsOnly) + printLastResultsOnly=1 + ;; --crossgen) doCrossgen=1 ;; @@ -1306,6 +384,12 @@ do --build-overlay-only) buildOverlayOnly=ON ;; + --generateLayoutOnly) + generateLayoutOnly=1 + ;; + --generateLayout) + generateLayout=1 + ;; --limitedDumpGeneration) limitedCoreDumps=ON ;; @@ -1320,10 +404,9 @@ do esac done -if [ -n "$coreOverlayDir" ] && [ "$buildOverlayOnly" == "ON" ]; then - echo "Can not use \'--coreOverlayDir=\' and \'--build-overlay-only\' at the same time." - exit $EXIT_CODE_EXCEPTION -fi +################################################################################ +# Runtests +################################################################################ if ((disableEventLogging == 0)); then export COMPlus_EnableEventLog=1 @@ -1331,6 +414,10 @@ fi export COMPlus_gcServer="$serverGC" +################################################################################ +# CoreFX +################################################################################ + if [ "$RunCoreFXTests" == 1 ]; then if [ -z "$coreClrSrc" ] @@ -1361,157 +448,120 @@ then exit 0 fi +################################################################################ +# Runtest.py +################################################################################ + +runtestPyArguments=("-arch" "${buildArch}" "-build_type" "${buildConfiguration}") +scriptPath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" + if [ -z "$testRootDir" ]; then - echo "--testRootDir is required." - print_usage - exit $EXIT_CODE_EXCEPTION + echo "testRootDir and other existing arguments is no longer required. If the " + echo "default location is incorrect or does not exist, please use " + echo "--testRootDir to explicitly override the defaults." + + echo "" fi -if [ ! -d "$testRootDir" ]; then - echo "Directory specified by --testRootDir does not exist: $testRootDir" - exit $EXIT_CODE_EXCEPTION + +echo "Build Architecture : ${buildArch}" +echo "Build Configuration : ${buildConfiguration}" + +if [ ! -z "$testRootDir" ]; then + runtestPyArguments+=("-test_location" "$testRootDir") + echo "Test Location : ${testRootDir}" fi -# Copy native interop test libraries over to the mscorlib path in -# order for interop tests to run on linux. -if [ -z "$mscorlibDir" ]; then - mscorlibDir=$coreClrBinDir +if [ ! -z "$coreClrBinDir" ]; then + runtestPyArguments+=("-product_location" "$coreClrBinDir") + echo "Product Location : ${coreClrBinDir}" fi +if [ -z "$coreOverlayDir" ]; then + runtestPyArguments+=("--generate_layout") +else + runtestPyArguments+=("-core_root" "$coreOverlayDir") + echo "Core Root Location : ${coreOverlayDir}" +fi + +if [ ! -z "$testNativeBinDir" ]; then + runtestPyArguments+=("-test_native_bin_location" "$testNativeBinDir") + echo "Test Native Bin Location : ${testNativeBinDir}" +fi + +if [ ! -z "${testEnv}" ]; then + runtestPyArguments+=("-test_env" "${testEnv}") + echo "Test Env : ${testEnv}" +fi + +echo "" + if [ ! -z "$longgc" ]; then echo "Running Long GC tests" - export RunningLongGCTests=1 + runtestPyArguments+=("--long_gc") fi if [ ! -z "$gcsimulator" ]; then echo "Running GC simulator tests" - export RunningGCSimulatorTests=1 + runtestPyArguments+=("--gcsimulator") fi if [[ ! "$jitdisasm" -eq 0 ]]; then echo "Running jit disasm" - export RunningJitDisasm=1 + runtestPyArguments+=("--jitdisasm") fi if [ ! -z "$ilasmroundtrip" ]; then echo "Running Ilasm round trip" - export RunningIlasmRoundTrip=1 + runtestPyArguments+=("--ilasmroundtrip") fi -# If this is a coverage run, make sure the appropriate args have been passed -if [ "$CoreClrCoverage" == "ON" ] -then - echo "Code coverage is enabled for this run" - echo "" - if [ ! "$OSName" == "Darwin" ] && [ ! "$OSName" == "Linux" ] - then - echo "Code Coverage not supported on $OS" - exit 1 - fi - - if [ -z "$coreClrObjs" ] - then - echo "Coreclr obj files are required to generate code coverage reports" - echo "Coreclr obj files root path can be passed using '--coreclr-obj' argument" - exit 1 - fi - - if [ -z "$coreClrSrc" ] - then - echo "Coreclr src files are required to generate code coverage reports" - echo "Coreclr src files root path can be passed using '--coreclr-src' argument" - exit 1 - fi - - if [ -z "$coverageOutputDir" ] - then - echo "Output directory for coverage results must be specified" - echo "Output path can be specified '--coverage-output-dir' argument" - exit 1 - fi +if [ ! -z "$skipXunitWrapperBuild" ]; then + echo "Skipping xunit wrapper build. If build-test was called on a different" + echo "host_os or arch the test run will most likely have failures." +else + # By default rebuild the test wrappers, as we cannot gaurentee the following + # is true: + # 1) There are no added or removed excludes since the tests were built + # 2) That the wrapper generation happened on the same host_os and arch + # as where we are running now + # + # Note that the wrapper generation is slow. To skip this pass --skipXunitWrapperBuild + # if the above requirements are met. + + runtestPyArguments+=("--build_xunit_test_wrappers") fi -xunit_output_begin -text_file_output_begin -create_core_overlay -precompile_overlay_assemblies - -if [ "$buildOverlayOnly" == "ON" ]; -then - echo "Build overlay directory '$coreOverlayDir' complete." - exit 0 +if (($verbose!=0)); then + runtestPyArguments+=("--verbose") fi -if [ -n "$playlistFile" ] -then - # Use a playlist file exclusively, if it was provided - echo "Executing playlist $playlistFile" - load_playlist_tests -else - load_unsupported_tests - load_failing_tests +if [ ! -z "$buildOverlayOnly" ] || [ ! -z "$generateLayoutOnly" ]; then + echo "Will only Generate Core_Root" + runtestPyArguments+=("--generate_layout_only") fi -# Other architectures are not supported yet. -if [ "$ARCH" == "x64" ] -then - scriptPath=$(dirname $0) - ${scriptPath}/setup-stress-dependencies.sh --outputDir=$coreOverlayDir -elif [ "$ARCH" != "arm64" ] && [ "$ARCH" != "arm" ]; then - echo "Skip preparing for GC stress test. Dependent package is not supported on this architecture." +if [ ! -z "$generateLayout" ]; then + runtestPyArguments+=("--generate_layout") fi -export __TestEnv=$testEnv - -cd "$testRootDir" - -dumplingsListPath="$testRootDir/dumplings.txt" - -# clean up any existing dumpling remnants from previous runs. -rm -f "$dumplingsListPath" -find $testRootDir -type f -name "local_dumplings.txt" -exec rm {} \; - -time_start=$(date +"%s") -if [ -z "$testDirectories" ] -then - # No test directories were specified, so run everything in the current - # directory and its subdirectories. - run_tests_in_directory "." -else - # Otherwise, run all the tests in each specified test directory. - for testDir in "${testDirectories[@]}" - do - if [ ! -d "$testDir" ]; then - echo "Test directory does not exist: $testDir" - else - run_tests_in_directory "./$testDir" - fi - done +if [ ! -z "$sequential" ]; then + echo "Run tests sequentially." + runtestPyArguments+=("--sequential") fi -finish_remaining_tests -print_results - -find $testRootDir -type f -name "local_dumplings.txt" -exec cat {} \; > $dumplingsListPath - -if [ -s $dumplingsListPath ]; then - cat $dumplingsListPath -else - rm $dumplingsListPath +if [ ! -z "$printLastResultsOnly" ]; then + runtestPyArguments+=("--analyze_results_only") fi -time_end=$(date +"%s") -time_diff=$(($time_end-$time_start)) -echo "$(($time_diff / 60)) minutes and $(($time_diff % 60)) seconds taken to run CoreCLR tests." - -xunit_output_end - -if [ "$CoreClrCoverage" == "ON" ] -then - coreclr_code_coverage +if [ ! -z "$RunCrossGen" ]; then + runtestPyArguments+=("--run_crossgen_tests") fi -if ((countFailedTests > 0)); then - exit $EXIT_CODE_TEST_FAILURE +if (($doCrossgen!=0)); then + runtestPyArguments+=("--precompile_core_root") fi -exit $EXIT_CODE_SUCCESS +# Run the tests using cross platform runtest.py +echo "python ${scriptPath}/runtest.py ${runtestPyArguments[@]}" +python "${scriptPath}/runtest.py" "${runtestPyArguments[@]}" +exit "$?" diff --git a/tests/scripts/arm32_ci_script.sh b/tests/scripts/arm32_ci_script.sh index 51a54947e01e..ff4231435f90 100755 --- a/tests/scripts/arm32_ci_script.sh +++ b/tests/scripts/arm32_ci_script.sh @@ -353,7 +353,7 @@ function copy_to_emulator { function run_tests { sudo chroot $__ARMEmulRootfs /bin/bash -x < - - 2 - 0 + 0 + diff --git a/tests/src/CLRTest.GC.targets b/tests/src/CLRTest.GC.targets index f959aaf6e006..f28eca4b99d0 100644 --- a/tests/src/CLRTest.GC.targets +++ b/tests/src/CLRTest.GC.targets @@ -18,10 +18,7 @@ WARNING: When setting properties based on their current state (for example: --> - - 2 - 0 - + 0 true BuildAndRun 1 + + + true + true diff --git a/tests/src/CoreMangLib/cti/system/decimal/DecimalToInt32.csproj b/tests/src/CoreMangLib/cti/system/decimal/DecimalToInt32.csproj index 1a383a73b55f..599c3d611339 100644 --- a/tests/src/CoreMangLib/cti/system/decimal/DecimalToInt32.csproj +++ b/tests/src/CoreMangLib/cti/system/decimal/DecimalToInt32.csproj @@ -12,6 +12,10 @@ true BuildAndRun 1 + + + true + true diff --git a/tests/src/CoreMangLib/cti/system/reflection/emit/DynMethodJumpStubTests/DynMethodJumpStubTests.csproj b/tests/src/CoreMangLib/cti/system/reflection/emit/DynMethodJumpStubTests/DynMethodJumpStubTests.csproj index 0f358866a4c0..2fe258684ba8 100644 --- a/tests/src/CoreMangLib/cti/system/reflection/emit/DynMethodJumpStubTests/DynMethodJumpStubTests.csproj +++ b/tests/src/CoreMangLib/cti/system/reflection/emit/DynMethodJumpStubTests/DynMethodJumpStubTests.csproj @@ -8,6 +8,10 @@ {742D9E05-668D-4B90-97F9-717A7572FE6C} Exe 1 + + + true + true diff --git a/tests/src/CoreMangLib/system/collections/generic/hashset/Regression_Dev10_609271.csproj b/tests/src/CoreMangLib/system/collections/generic/hashset/Regression_Dev10_609271.csproj index 920d19f2142f..13c106880fce 100644 --- a/tests/src/CoreMangLib/system/collections/generic/hashset/Regression_Dev10_609271.csproj +++ b/tests/src/CoreMangLib/system/collections/generic/hashset/Regression_Dev10_609271.csproj @@ -12,6 +12,10 @@ true BuildAndRun 1 + + + true + true diff --git a/tests/src/CoreMangLib/system/collections/generic/hashset/Regression_Dev10_624201.csproj b/tests/src/CoreMangLib/system/collections/generic/hashset/Regression_Dev10_624201.csproj index 6464b17f3bad..e9e5186cfe88 100644 --- a/tests/src/CoreMangLib/system/collections/generic/hashset/Regression_Dev10_624201.csproj +++ b/tests/src/CoreMangLib/system/collections/generic/hashset/Regression_Dev10_624201.csproj @@ -12,6 +12,10 @@ true BuildAndRun 1 + + + true + true diff --git a/tests/src/GC/Coverage/smalloom.csproj b/tests/src/GC/Coverage/smalloom.csproj index 5d12fc2fb70f..225b74416017 100644 --- a/tests/src/GC/Coverage/smalloom.csproj +++ b/tests/src/GC/Coverage/smalloom.csproj @@ -11,6 +11,10 @@ ..\..\ true 1 + + + true + true diff --git a/tests/src/GC/Features/HeapExpansion/bestfit-threaded.csproj b/tests/src/GC/Features/HeapExpansion/bestfit-threaded.csproj index 027710051322..979bccfd403b 100644 --- a/tests/src/GC/Features/HeapExpansion/bestfit-threaded.csproj +++ b/tests/src/GC/Features/HeapExpansion/bestfit-threaded.csproj @@ -10,6 +10,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ true + + + true diff --git a/tests/src/GC/Features/LOHCompaction/lohcompactapi.csproj b/tests/src/GC/Features/LOHCompaction/lohcompactapi.csproj index a10bed150d60..40839267f31f 100644 --- a/tests/src/GC/Features/LOHCompaction/lohcompactapi.csproj +++ b/tests/src/GC/Features/LOHCompaction/lohcompactapi.csproj @@ -10,6 +10,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ true + + + true diff --git a/tests/src/Interop/COM/NETClients/Primitives/NETClientPrimitives.csproj b/tests/src/Interop/COM/NETClients/Primitives/NETClientPrimitives.csproj index 0bb40d739bfd..094bea906399 100644 --- a/tests/src/Interop/COM/NETClients/Primitives/NETClientPrimitives.csproj +++ b/tests/src/Interop/COM/NETClients/Primitives/NETClientPrimitives.csproj @@ -10,9 +10,10 @@ Exe {209912F9-0DA1-4184-9CC1-8D583BAF4A28};{87799F5D-CEBD-499D-BDBA-B2C6105CD766} App.manifest - - - true + + + true + true diff --git a/tests/src/Interop/MarshalAPI/IUnknown/IUnknownTest.csproj b/tests/src/Interop/MarshalAPI/IUnknown/IUnknownTest.csproj index b02b40ca2bc8..66154907572f 100644 --- a/tests/src/Interop/MarshalAPI/IUnknown/IUnknownTest.csproj +++ b/tests/src/Interop/MarshalAPI/IUnknown/IUnknownTest.csproj @@ -12,6 +12,10 @@ ..\..\ $(DefineConstants);STATIC + + + true + true diff --git a/tests/src/Interop/SizeConst/SizeConstTest.csproj b/tests/src/Interop/SizeConst/SizeConstTest.csproj index 3d333736f947..d8718bd907dd 100644 --- a/tests/src/Interop/SizeConst/SizeConstTest.csproj +++ b/tests/src/Interop/SizeConst/SizeConstTest.csproj @@ -12,6 +12,10 @@ ..\..\ $(DefineConstants);STATIC 1 + + + true + true diff --git a/tests/src/Interop/StructMarshalling/PInvoke/MarshalStructAsLayoutExp.csproj b/tests/src/Interop/StructMarshalling/PInvoke/MarshalStructAsLayoutExp.csproj index 56484d4aacc1..2a38e61fbe94 100644 --- a/tests/src/Interop/StructMarshalling/PInvoke/MarshalStructAsLayoutExp.csproj +++ b/tests/src/Interop/StructMarshalling/PInvoke/MarshalStructAsLayoutExp.csproj @@ -13,6 +13,10 @@ true $(DefineConstants);STATIC 1 + + + true + true diff --git a/tests/src/JIT/Directed/IL/PInvokeTail/PInvokeTail.ilproj b/tests/src/JIT/Directed/IL/PInvokeTail/PInvokeTail.ilproj index f91fe0842974..06f8aa889bf5 100644 --- a/tests/src/JIT/Directed/IL/PInvokeTail/PInvokeTail.ilproj +++ b/tests/src/JIT/Directed/IL/PInvokeTail/PInvokeTail.ilproj @@ -12,6 +12,10 @@ ..\..\ true 1 + + + true + true diff --git a/tests/src/JIT/Directed/IL/PInvokeTail/TailWinApi.ilproj b/tests/src/JIT/Directed/IL/PInvokeTail/TailWinApi.ilproj index 59f063e83f0e..1a54638c33b2 100644 --- a/tests/src/JIT/Directed/IL/PInvokeTail/TailWinApi.ilproj +++ b/tests/src/JIT/Directed/IL/PInvokeTail/TailWinApi.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/Directed/RVAInit/extended.ilproj b/tests/src/JIT/Directed/RVAInit/extended.ilproj index b760bfe130ff..ceee9feab2b0 100644 --- a/tests/src/JIT/Directed/RVAInit/extended.ilproj +++ b/tests/src/JIT/Directed/RVAInit/extended.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/RVAInit/overlap.ilproj b/tests/src/JIT/Directed/RVAInit/overlap.ilproj index e0d8699c0271..edac1051d308 100644 --- a/tests/src/JIT/Directed/RVAInit/overlap.ilproj +++ b/tests/src/JIT/Directed/RVAInit/overlap.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/UnrollLoop/loop2_cs_d.csproj b/tests/src/JIT/Directed/UnrollLoop/loop2_cs_d.csproj index 7bf84d4d23cb..e65be2c3cb53 100644 --- a/tests/src/JIT/Directed/UnrollLoop/loop2_cs_d.csproj +++ b/tests/src/JIT/Directed/UnrollLoop/loop2_cs_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Directed/UnrollLoop/loop2_cs_do.csproj b/tests/src/JIT/Directed/UnrollLoop/loop2_cs_do.csproj index 74af92dfd3ae..4e26179428f3 100644 --- a/tests/src/JIT/Directed/UnrollLoop/loop2_cs_do.csproj +++ b/tests/src/JIT/Directed/UnrollLoop/loop2_cs_do.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Directed/UnrollLoop/loop2_cs_r.csproj b/tests/src/JIT/Directed/UnrollLoop/loop2_cs_r.csproj index c1531e998150..756cb493a971 100644 --- a/tests/src/JIT/Directed/UnrollLoop/loop2_cs_r.csproj +++ b/tests/src/JIT/Directed/UnrollLoop/loop2_cs_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Directed/UnrollLoop/loop2_cs_ro.csproj b/tests/src/JIT/Directed/UnrollLoop/loop2_cs_ro.csproj index d44913ee5e70..14b453f3645e 100644 --- a/tests/src/JIT/Directed/UnrollLoop/loop2_cs_ro.csproj +++ b/tests/src/JIT/Directed/UnrollLoop/loop2_cs_ro.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Directed/coverage/importer/Desktop/bleref_il_d.ilproj b/tests/src/JIT/Directed/coverage/importer/Desktop/bleref_il_d.ilproj index 1a95d063242f..8b46a1108bea 100644 --- a/tests/src/JIT/Directed/coverage/importer/Desktop/bleref_il_d.ilproj +++ b/tests/src/JIT/Directed/coverage/importer/Desktop/bleref_il_d.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/coverage/importer/Desktop/bleref_il_r.ilproj b/tests/src/JIT/Directed/coverage/importer/Desktop/bleref_il_r.ilproj index 51fc8ca58e5e..488abd841b06 100644 --- a/tests/src/JIT/Directed/coverage/importer/Desktop/bleref_il_r.ilproj +++ b/tests/src/JIT/Directed/coverage/importer/Desktop/bleref_il_r.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/coverage/importer/Desktop/ldelemnullarr1_il_d.ilproj b/tests/src/JIT/Directed/coverage/importer/Desktop/ldelemnullarr1_il_d.ilproj index db1f6d2576e8..9f9a0fec42de 100644 --- a/tests/src/JIT/Directed/coverage/importer/Desktop/ldelemnullarr1_il_d.ilproj +++ b/tests/src/JIT/Directed/coverage/importer/Desktop/ldelemnullarr1_il_d.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/coverage/importer/Desktop/ldelemnullarr1_il_r.ilproj b/tests/src/JIT/Directed/coverage/importer/Desktop/ldelemnullarr1_il_r.ilproj index 3110cd22ea0c..9eb3d4dc557f 100644 --- a/tests/src/JIT/Directed/coverage/importer/Desktop/ldelemnullarr1_il_r.ilproj +++ b/tests/src/JIT/Directed/coverage/importer/Desktop/ldelemnullarr1_il_r.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/coverage/importer/Desktop/nonrefsdarr_il_d.ilproj b/tests/src/JIT/Directed/coverage/importer/Desktop/nonrefsdarr_il_d.ilproj index 42ca4d643a62..15c5250d2300 100644 --- a/tests/src/JIT/Directed/coverage/importer/Desktop/nonrefsdarr_il_d.ilproj +++ b/tests/src/JIT/Directed/coverage/importer/Desktop/nonrefsdarr_il_d.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/coverage/importer/Desktop/nonrefsdarr_il_r.ilproj b/tests/src/JIT/Directed/coverage/importer/Desktop/nonrefsdarr_il_r.ilproj index 9df84e4fb99d..23de8ebd647b 100644 --- a/tests/src/JIT/Directed/coverage/importer/Desktop/nonrefsdarr_il_r.ilproj +++ b/tests/src/JIT/Directed/coverage/importer/Desktop/nonrefsdarr_il_r.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/coverage/oldtests/Desktop/callipinvoke_il_d.ilproj b/tests/src/JIT/Directed/coverage/oldtests/Desktop/callipinvoke_il_d.ilproj index 75fd19463864..520b055be405 100644 --- a/tests/src/JIT/Directed/coverage/oldtests/Desktop/callipinvoke_il_d.ilproj +++ b/tests/src/JIT/Directed/coverage/oldtests/Desktop/callipinvoke_il_d.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/Directed/coverage/oldtests/Desktop/callipinvoke_il_r.ilproj b/tests/src/JIT/Directed/coverage/oldtests/Desktop/callipinvoke_il_r.ilproj index 8425399eda2f..c775fc63899f 100644 --- a/tests/src/JIT/Directed/coverage/oldtests/Desktop/callipinvoke_il_r.ilproj +++ b/tests/src/JIT/Directed/coverage/oldtests/Desktop/callipinvoke_il_r.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/Directed/coverage/oldtests/callipinvoke.ilproj b/tests/src/JIT/Directed/coverage/oldtests/callipinvoke.ilproj index 88f2d6b4fbc2..05307fdbde70 100644 --- a/tests/src/JIT/Directed/coverage/oldtests/callipinvoke.ilproj +++ b/tests/src/JIT/Directed/coverage/oldtests/callipinvoke.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic1.ilproj b/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic1.ilproj index 7bafa42efbf1..04d0eef8c099 100644 --- a/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic1.ilproj +++ b/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic1.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic2.ilproj b/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic2.ilproj index d0a33c942926..2ff4801a0c91 100644 --- a/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic2.ilproj +++ b/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic2.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic3.ilproj b/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic3.ilproj index 698d0015dec6..7ba339ab0203 100644 --- a/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic3.ilproj +++ b/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic3.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic4.ilproj b/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic4.ilproj index 466559cad9ea..2b9c717398fa 100644 --- a/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic4.ilproj +++ b/tests/src/JIT/Directed/intrinsic/interlocked/rva_rvastatic4.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/pinvoke/calli_excep.ilproj b/tests/src/JIT/Directed/pinvoke/calli_excep.ilproj index 35d185a38652..138068f32882 100644 --- a/tests/src/JIT/Directed/pinvoke/calli_excep.ilproj +++ b/tests/src/JIT/Directed/pinvoke/calli_excep.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ true + + + true + true diff --git a/tests/src/JIT/Directed/pinvoke/jump.ilproj b/tests/src/JIT/Directed/pinvoke/jump.ilproj index 56b98933c4c7..dfc750c0d423 100644 --- a/tests/src/JIT/Directed/pinvoke/jump.ilproj +++ b/tests/src/JIT/Directed/pinvoke/jump.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Directed/pinvoke/pinvoke-bug.csproj b/tests/src/JIT/Directed/pinvoke/pinvoke-bug.csproj index d63f70037972..dc790f93b0e3 100644 --- a/tests/src/JIT/Directed/pinvoke/pinvoke-bug.csproj +++ b/tests/src/JIT/Directed/pinvoke/pinvoke-bug.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Directed/pinvoke/pinvoke-examples.csproj b/tests/src/JIT/Directed/pinvoke/pinvoke-examples.csproj index 3b273fab4d57..c53e99d7725c 100644 --- a/tests/src/JIT/Directed/pinvoke/pinvoke-examples.csproj +++ b/tests/src/JIT/Directed/pinvoke/pinvoke-examples.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Directed/pinvoke/preemptive_cooperative.ilproj b/tests/src/JIT/Directed/pinvoke/preemptive_cooperative.ilproj index 20f09948415a..13709460e78d 100644 --- a/tests/src/JIT/Directed/pinvoke/preemptive_cooperative.ilproj +++ b/tests/src/JIT/Directed/pinvoke/preemptive_cooperative.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Directed/pinvoke/sin.csproj b/tests/src/JIT/Directed/pinvoke/sin.csproj index b467bae0e82c..96d7e9d15f10 100644 --- a/tests/src/JIT/Directed/pinvoke/sin.csproj +++ b/tests/src/JIT/Directed/pinvoke/sin.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Directed/pinvoke/sysinfo_cs.csproj b/tests/src/JIT/Directed/pinvoke/sysinfo_cs.csproj index b7bfffb2a595..195f64d1ffb6 100644 --- a/tests/src/JIT/Directed/pinvoke/sysinfo_cs.csproj +++ b/tests/src/JIT/Directed/pinvoke/sysinfo_cs.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Directed/pinvoke/sysinfo_il.ilproj b/tests/src/JIT/Directed/pinvoke/sysinfo_il.ilproj index c522536a165b..0619cd29213a 100644 --- a/tests/src/JIT/Directed/pinvoke/sysinfo_il.ilproj +++ b/tests/src/JIT/Directed/pinvoke/sysinfo_il.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Directed/pinvoke/tail.ilproj b/tests/src/JIT/Directed/pinvoke/tail.ilproj index 3f00df9d3770..45e12b0d2025 100644 --- a/tests/src/JIT/Directed/pinvoke/tail.ilproj +++ b/tests/src/JIT/Directed/pinvoke/tail.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ true + + + true + true diff --git a/tests/src/JIT/Directed/rvastatics/rvastatic1.ilproj b/tests/src/JIT/Directed/rvastatics/rvastatic1.ilproj index d8fc5f5da3de..51b199fe7222 100644 --- a/tests/src/JIT/Directed/rvastatics/rvastatic1.ilproj +++ b/tests/src/JIT/Directed/rvastatics/rvastatic1.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/rvastatics/rvastatic2.ilproj b/tests/src/JIT/Directed/rvastatics/rvastatic2.ilproj index 9b8f43dc7d41..76bb474b54c1 100644 --- a/tests/src/JIT/Directed/rvastatics/rvastatic2.ilproj +++ b/tests/src/JIT/Directed/rvastatics/rvastatic2.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/rvastatics/rvastatic3.ilproj b/tests/src/JIT/Directed/rvastatics/rvastatic3.ilproj index 905335f29fd4..496ea3a09476 100644 --- a/tests/src/JIT/Directed/rvastatics/rvastatic3.ilproj +++ b/tests/src/JIT/Directed/rvastatics/rvastatic3.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/rvastatics/rvastatic4.ilproj b/tests/src/JIT/Directed/rvastatics/rvastatic4.ilproj index d93887501e6e..983fd8fcf35f 100644 --- a/tests/src/JIT/Directed/rvastatics/rvastatic4.ilproj +++ b/tests/src/JIT/Directed/rvastatics/rvastatic4.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/rvastatics/rvastatic5.ilproj b/tests/src/JIT/Directed/rvastatics/rvastatic5.ilproj index 5e8db6395b8c..ded7b0d0d26d 100644 --- a/tests/src/JIT/Directed/rvastatics/rvastatic5.ilproj +++ b/tests/src/JIT/Directed/rvastatics/rvastatic5.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/tls/mutualrecurthd-tls.ilproj b/tests/src/JIT/Directed/tls/mutualrecurthd-tls.ilproj index 77a02ef230c0..3c164cab4fe4 100644 --- a/tests/src/JIT/Directed/tls/mutualrecurthd-tls.ilproj +++ b/tests/src/JIT/Directed/tls/mutualrecurthd-tls.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Directed/tls/test-tls.ilproj b/tests/src/JIT/Directed/tls/test-tls.ilproj index e08518b00d1c..7e8d3e066b14 100644 --- a/tests/src/JIT/Directed/tls/test-tls.ilproj +++ b/tests/src/JIT/Directed/tls/test-tls.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Generics/Fields/getclassfrommethodparam.csproj b/tests/src/JIT/Generics/Fields/getclassfrommethodparam.csproj index ac84fe97a256..67f5640c47b4 100644 --- a/tests/src/JIT/Generics/Fields/getclassfrommethodparam.csproj +++ b/tests/src/JIT/Generics/Fields/getclassfrommethodparam.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Generics/pinvoke/instance01.csproj b/tests/src/JIT/Generics/pinvoke/instance01.csproj index 204e6256be6d..fbda58b7c821 100644 --- a/tests/src/JIT/Generics/pinvoke/instance01.csproj +++ b/tests/src/JIT/Generics/pinvoke/instance01.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Generics/pinvoke/instance02.csproj b/tests/src/JIT/Generics/pinvoke/instance02.csproj index 2f0fa0e8bc87..4c5299049a45 100644 --- a/tests/src/JIT/Generics/pinvoke/instance02.csproj +++ b/tests/src/JIT/Generics/pinvoke/instance02.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Generics/pinvoke/instance03.csproj b/tests/src/JIT/Generics/pinvoke/instance03.csproj index 6065c48163c1..8ae4b0a75338 100644 --- a/tests/src/JIT/Generics/pinvoke/instance03.csproj +++ b/tests/src/JIT/Generics/pinvoke/instance03.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Generics/pinvoke/static01.csproj b/tests/src/JIT/Generics/pinvoke/static01.csproj index 0d2ad1249b98..a8d0135714d1 100644 --- a/tests/src/JIT/Generics/pinvoke/static01.csproj +++ b/tests/src/JIT/Generics/pinvoke/static01.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Generics/pinvoke/static02.csproj b/tests/src/JIT/Generics/pinvoke/static02.csproj index 5049b07211cc..0d0cabcf1f9e 100644 --- a/tests/src/JIT/Generics/pinvoke/static02.csproj +++ b/tests/src/JIT/Generics/pinvoke/static02.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Methodical/cctor/misc/global_il_d.ilproj b/tests/src/JIT/Methodical/cctor/misc/global_il_d.ilproj index e955807e56d9..96ab267f6a98 100644 --- a/tests/src/JIT/Methodical/cctor/misc/global_il_d.ilproj +++ b/tests/src/JIT/Methodical/cctor/misc/global_il_d.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Methodical/cctor/misc/global_il_r.ilproj b/tests/src/JIT/Methodical/cctor/misc/global_il_r.ilproj index 8024636ea3ab..0a54f7d8b52e 100644 --- a/tests/src/JIT/Methodical/cctor/misc/global_il_r.ilproj +++ b/tests/src/JIT/Methodical/cctor/misc/global_il_r.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Methodical/eh/deadcode/badcodeafterfinally_d.ilproj b/tests/src/JIT/Methodical/eh/deadcode/badcodeafterfinally_d.ilproj index 4f54d9f4b046..fa45ece1237d 100644 --- a/tests/src/JIT/Methodical/eh/deadcode/badcodeafterfinally_d.ilproj +++ b/tests/src/JIT/Methodical/eh/deadcode/badcodeafterfinally_d.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Methodical/eh/deadcode/badcodeafterfinally_r.ilproj b/tests/src/JIT/Methodical/eh/deadcode/badcodeafterfinally_r.ilproj index 0ded8304d029..26357394e3ed 100644 --- a/tests/src/JIT/Methodical/eh/deadcode/badcodeafterfinally_r.ilproj +++ b/tests/src/JIT/Methodical/eh/deadcode/badcodeafterfinally_r.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_byte_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_byte_1_d.csproj index 57e09e18e75b..46b9ab4e7a2b 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_byte_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_byte_1_d.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ false + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_byte_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_byte_1_r.csproj index 95b48e387708..02f2ea65d504 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_byte_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_byte_1_r.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ false + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_double_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_double_1_d.csproj index f33ccb8b9599..77ed359ca393 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_double_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_double_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_double_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_double_1_r.csproj index 364a86c231ee..069b60b752db 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_double_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_double_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_float_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_float_1_d.csproj index 0f1627b05728..39f90314dadf 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_float_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_float_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_float_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_float_1_r.csproj index f25107dee393..07f5c5edc3bc 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_float_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_float_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_byte_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_byte_1_d.csproj index 1237990e2326..894825dca199 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_byte_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_byte_1_d.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ false + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_byte_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_byte_1_r.csproj index 9beec0ce9dd6..ad37a58f9295 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_byte_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_byte_1_r.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ false + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_double_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_double_1_d.csproj index e999b97a71b3..e0eabce6d3af 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_double_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_double_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_double_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_double_1_r.csproj index b471590f7caa..0b36f15c1b22 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_double_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_double_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_float_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_float_1_d.csproj index fa6cb4ceef57..4231e6799b88 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_float_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_float_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_float_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_float_1_r.csproj index da8c547870f9..c882be5321d7 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_float_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_float_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_int_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_int_1_d.csproj index f346359c0998..ccf4fc029162 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_int_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_int_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_int_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_int_1_r.csproj index 15e392ed6c95..a925e5de8d81 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_int_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_int_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_long_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_long_1_d.csproj index 33684a999fa8..4622d7bb9edf 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_long_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_long_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_long_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_long_1_r.csproj index 8a491c3ccfe8..d127438ca9ad 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_long_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_long_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_obj_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_obj_1_d.csproj index a6a09ce82ddb..578b4d67eeff 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_obj_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_obj_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_obj_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_obj_1_r.csproj index 1518108329b8..64aee6d1b288 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_obj_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_obj_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_short_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_short_1_d.csproj index 2c12738a5e81..ec7340a44c17 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_short_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_short_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_short_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_short_1_r.csproj index b4fd9b9c0cde..852192bd4313 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_short_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_short_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_val_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_val_1_d.csproj index cc6db5b6e702..646dd9632cfd 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_val_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_val_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_val_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_val_1_r.csproj index 4915874c6bfe..3a26adf36929 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_gc_val_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_gc_val_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_int_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_int_1_d.csproj index 44720bdadbef..ce8dab8d1977 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_int_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_int_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_int_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_int_1_r.csproj index 92639917aebe..e93425948788 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_int_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_int_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_long_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_long_1_d.csproj index 7a3a22f55106..eaa8d6943da0 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_long_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_long_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_long_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_long_1_r.csproj index 5ba095a4c8bf..e968c94abb9b 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_long_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_long_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_obj_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_obj_1_d.csproj index a744c5c9d017..a187787b9a5f 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_obj_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_obj_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_obj_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_obj_1_r.csproj index d6c6193413cb..bf60fa8b1709 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_obj_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_obj_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_short_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_short_1_d.csproj index 31e783763182..4077cb7856b4 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_short_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_short_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_short_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_short_1_r.csproj index 34e57bf7a827..64f5ad2b8ebc 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_short_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_short_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_val_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_val_1_d.csproj index 18d6bbad1cb7..e235345ed456 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_val_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_val_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/expl_val_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/expl_val_1_r.csproj index ea71f3e8ba0b..1871e2883580 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/expl_val_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/expl_val_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_byte_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_byte_1_d.csproj index 887797e3a7d9..9870d3a724cf 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_byte_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_byte_1_d.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ false + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_byte_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_byte_1_r.csproj index f48e0a3b9eff..4a647d2ce6b8 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_byte_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_byte_1_r.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ false + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_double_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_double_1_d.csproj index ae6f842036a3..450dbe443da4 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_double_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_double_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_double_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_double_1_r.csproj index 3a9feed3408e..0bb8b46d05f4 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_double_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_double_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_float_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_float_1_d.csproj index 434e98b66ea0..806adadb9bfd 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_float_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_float_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_float_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_float_1_r.csproj index b2ea622f1727..c09562b99ac0 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_float_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_float_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_byte_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_byte_1_d.csproj index 036e0608e9d7..15bb2f0c5832 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_byte_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_byte_1_d.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ false + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_byte_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_byte_1_r.csproj index 75f2b4166f1b..e7ddf16b5503 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_byte_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_byte_1_r.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ false + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_double_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_double_1_d.csproj index a3eb9f5e2a77..9b0fc200bea2 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_double_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_double_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_double_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_double_1_r.csproj index bc8e0200ce0e..f3e5f9932686 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_double_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_double_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_float_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_float_1_d.csproj index 3451a12e8bdd..7d1edd786b42 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_float_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_float_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_float_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_float_1_r.csproj index 5642a0ab7052..fbf0e2cc561d 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_float_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_float_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_int_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_int_1_d.csproj index 518ded14a447..b9f86856e18e 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_int_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_int_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_int_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_int_1_r.csproj index 7ac731c2b055..4aee1cbc047d 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_int_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_int_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_long_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_long_1_d.csproj index 26bab64ca908..a85e7f0243ad 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_long_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_long_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_long_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_long_1_r.csproj index 87a35f283756..f523c18fc16f 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_long_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_long_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_obj_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_obj_1_d.csproj index 01e4d644a9ac..7cde0d9ed499 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_obj_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_obj_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_obj_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_obj_1_r.csproj index 62920a9a6aab..0b85f2fd02a4 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_obj_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_obj_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_short_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_short_1_d.csproj index 7cacea7e29d4..b760ed05d23a 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_short_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_short_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_short_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_short_1_r.csproj index 86c0723a1c59..fdb045fd1ce1 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_short_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_short_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_val_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_val_1_d.csproj index e28c957e6958..52569b94445f 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_val_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_val_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_val_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_val_1_r.csproj index 3c7806417043..0452b9cee689 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_gc_val_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_gc_val_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_int_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_int_1_d.csproj index c26e68bc386e..9001cfd91fd3 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_int_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_int_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_int_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_int_1_r.csproj index 49b92fb27ebb..80917950528e 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_int_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_int_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_long_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_long_1_d.csproj index 5af197febc50..5bbe27e8b300 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_long_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_long_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_long_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_long_1_r.csproj index 2b113545deec..da666277f768 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_long_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_long_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_obj_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_obj_1_d.csproj index 4f4bb158d11e..9830ff51df13 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_obj_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_obj_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_obj_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_obj_1_r.csproj index 0ac43dcea2a5..4dc9a5171e11 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_obj_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_obj_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_short_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_short_1_d.csproj index 6c2cb27645a9..990a926144fd 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_short_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_short_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_short_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_short_1_r.csproj index 9dd538dbfe8b..059b624673f4 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_short_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_short_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_val_1_d.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_val_1_d.csproj index a914bea349af..14b8c69cee87 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_val_1_d.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_val_1_d.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/explicit/coverage/seq_val_1_r.csproj b/tests/src/JIT/Methodical/explicit/coverage/seq_val_1_r.csproj index 2b2ade5d91e8..4c7548557d90 100644 --- a/tests/src/JIT/Methodical/explicit/coverage/seq_val_1_r.csproj +++ b/tests/src/JIT/Methodical/explicit/coverage/seq_val_1_r.csproj @@ -12,6 +12,10 @@ ..\..\ false 1 + + + true + true diff --git a/tests/src/JIT/Methodical/tailcall/_il_dbgpointer.ilproj b/tests/src/JIT/Methodical/tailcall/_il_dbgpointer.ilproj index 634f34a27bb0..4c721cf5747c 100644 --- a/tests/src/JIT/Methodical/tailcall/_il_dbgpointer.ilproj +++ b/tests/src/JIT/Methodical/tailcall/_il_dbgpointer.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Methodical/tailcall/_il_dbgpointer_i.ilproj b/tests/src/JIT/Methodical/tailcall/_il_dbgpointer_i.ilproj index f26becade4f2..8795713dd93f 100644 --- a/tests/src/JIT/Methodical/tailcall/_il_dbgpointer_i.ilproj +++ b/tests/src/JIT/Methodical/tailcall/_il_dbgpointer_i.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Methodical/tailcall/_il_relpointer.ilproj b/tests/src/JIT/Methodical/tailcall/_il_relpointer.ilproj index 5f03b1fd81b4..795b964fdfea 100644 --- a/tests/src/JIT/Methodical/tailcall/_il_relpointer.ilproj +++ b/tests/src/JIT/Methodical/tailcall/_il_relpointer.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Methodical/tailcall/_il_relpointer_i.ilproj b/tests/src/JIT/Methodical/tailcall/_il_relpointer_i.ilproj index 13a4ebb9ff43..53c40d3b61ab 100644 --- a/tests/src/JIT/Methodical/tailcall/_il_relpointer_i.ilproj +++ b/tests/src/JIT/Methodical/tailcall/_il_relpointer_i.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Methodical/xxobj/operand/_il_dbglocalloc.ilproj b/tests/src/JIT/Methodical/xxobj/operand/_il_dbglocalloc.ilproj index 420692e283ee..a338809dbf2d 100644 --- a/tests/src/JIT/Methodical/xxobj/operand/_il_dbglocalloc.ilproj +++ b/tests/src/JIT/Methodical/xxobj/operand/_il_dbglocalloc.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Methodical/xxobj/operand/_il_rellocalloc.ilproj b/tests/src/JIT/Methodical/xxobj/operand/_il_rellocalloc.ilproj index f99329a0c3f1..0663dd856717 100644 --- a/tests/src/JIT/Methodical/xxobj/operand/_il_rellocalloc.ilproj +++ b/tests/src/JIT/Methodical/xxobj/operand/_il_rellocalloc.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Regression/CLR-x86-EJIT/v1-m10/b07847/b07847.ilproj b/tests/src/JIT/Regression/CLR-x86-EJIT/v1-m10/b07847/b07847.ilproj index fd2beb14c982..9c5d30e3b881 100644 --- a/tests/src/JIT/Regression/CLR-x86-EJIT/v1-m10/b07847/b07847.ilproj +++ b/tests/src/JIT/Regression/CLR-x86-EJIT/v1-m10/b07847/b07847.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26324/b26324a.ilproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26324/b26324a.ilproj index ff863cf7f657..8a40c155cc5e 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26324/b26324a.ilproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26324/b26324a.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26324/b26324b.ilproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26324/b26324b.ilproj index 41d11997c563..d328463d58ce 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26324/b26324b.ilproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26324/b26324b.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28901/b28901.ilproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28901/b28901.ilproj index 952931b6ebc8..93e9326b1b22 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28901/b28901.ilproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28901/b28901.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30838/b30838.ilproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30838/b30838.ilproj index eff989c03cdd..b0b589059d37 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30838/b30838.ilproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30838/b30838.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30864/b30864.ilproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30864/b30864.ilproj index ac0c98382202..64cbef643612 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30864/b30864.ilproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30864/b30864.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b32374/b32374.ilproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b32374/b32374.ilproj index c3fe21506b67..78b2ad2fbf85 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b32374/b32374.ilproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b32374/b32374.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b35784/b35784.ilproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b35784/b35784.ilproj index 78010e59dd63..f801161000b6 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b35784/b35784.ilproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b35784/b35784.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b36472/b36472.csproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b36472/b36472.csproj index a15a6bbee19b..2119b713967a 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b36472/b36472.csproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b36472/b36472.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b37598/b37598.csproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b37598/b37598.csproj index ddb5cbd509aa..370f644d1592 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b37598/b37598.csproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b37598/b37598.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b46867/b46867.csproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b46867/b46867.csproj index 76615bc6060f..9fe04285758a 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b46867/b46867.csproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b46867/b46867.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b49644/b49644.ilproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b49644/b49644.ilproj index 6df2d0063fc8..bb3b87e4d7d9 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b49644/b49644.ilproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b49644/b49644.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31745/b31745.csproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31745/b31745.csproj index df9593a79cd5..53826d6c50cb 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31745/b31745.csproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31745/b31745.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b79250/b79250.ilproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b79250/b79250.ilproj index 0a65dc6de19e..4b4027e8e45e 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b79250/b79250.ilproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b79250/b79250.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b88793/b88793.csproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b88793/b88793.csproj index 82daf3848236..6bbee1e2266f 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b88793/b88793.csproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b88793/b88793.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b91248/b91248.csproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b91248/b91248.csproj index 7d4c5344fffa..084ab4162431 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b91248/b91248.csproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b91248/b91248.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1.2-Beta1/b102637/b102637.ilproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1.2-Beta1/b102637/b102637.ilproj index b021b3163680..a53f73f20887 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1.2-Beta1/b102637/b102637.ilproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1.2-Beta1/b102637/b102637.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b03689/b03689.ilproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b03689/b03689.ilproj index 3034d902caf2..f8928a5581f3 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b03689/b03689.ilproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b03689/b03689.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b08046/b08046.ilproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b08046/b08046.ilproj index b8784dc2f8c3..ea236aa5269b 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b08046/b08046.ilproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b08046/b08046.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b409748/b409748.ilproj b/tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b409748/b409748.ilproj index eb9a1dad3537..5b89ff0fafc6 100644 --- a/tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b409748/b409748.ilproj +++ b/tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b409748/b409748.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Regression/Dev11/dev10_865840/dev10_865840.ilproj b/tests/src/JIT/Regression/Dev11/dev10_865840/dev10_865840.ilproj index aac5aa4ea870..f20d1e4888d7 100644 --- a/tests/src/JIT/Regression/Dev11/dev10_865840/dev10_865840.ilproj +++ b/tests/src/JIT/Regression/Dev11/dev10_865840/dev10_865840.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Regression/JitBlue/GitHub_17777/GitHub_17777.csproj b/tests/src/JIT/Regression/JitBlue/GitHub_17777/GitHub_17777.csproj index 5bd417ae6c76..272e875d6864 100644 --- a/tests/src/JIT/Regression/JitBlue/GitHub_17777/GitHub_17777.csproj +++ b/tests/src/JIT/Regression/JitBlue/GitHub_17777/GitHub_17777.csproj @@ -14,6 +14,9 @@ $(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages ..\..\ 7a9bfb7d + + + true diff --git a/tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b12011/b12011.ilproj b/tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b12011/b12011.ilproj index 0f1c133187c3..2f7bdaae22d0 100644 --- a/tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b12011/b12011.ilproj +++ b/tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b12011/b12011.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ true + + + true diff --git a/tests/src/JIT/Regression/VS-ia64-JIT/V2.0-Beta2/b410474/b410474.ilproj b/tests/src/JIT/Regression/VS-ia64-JIT/V2.0-Beta2/b410474/b410474.ilproj index 66c7a74d73c8..b072e953f006 100644 --- a/tests/src/JIT/Regression/VS-ia64-JIT/V2.0-Beta2/b410474/b410474.ilproj +++ b/tests/src/JIT/Regression/VS-ia64-JIT/V2.0-Beta2/b410474/b410474.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/Regression/VS-ia64-JIT/V2.0-RTM/b286991/b286991.ilproj b/tests/src/JIT/Regression/VS-ia64-JIT/V2.0-RTM/b286991/b286991.ilproj index a1d2d499c108..da2f6f643dfd 100644 --- a/tests/src/JIT/Regression/VS-ia64-JIT/V2.0-RTM/b286991/b286991.ilproj +++ b/tests/src/JIT/Regression/VS-ia64-JIT/V2.0-RTM/b286991/b286991.ilproj @@ -12,6 +12,10 @@ ..\..\ true 1 + + + true + true diff --git a/tests/src/JIT/Regression/clr-x64-JIT/v2.1/b173569/b173569.ilproj b/tests/src/JIT/Regression/clr-x64-JIT/v2.1/b173569/b173569.ilproj index cd6637377c54..5eb287d2ba1a 100644 --- a/tests/src/JIT/Regression/clr-x64-JIT/v2.1/b173569/b173569.ilproj +++ b/tests/src/JIT/Regression/clr-x64-JIT/v2.1/b173569/b173569.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/Regression/clr-x64-JIT/v4.0/devdiv374539/DevDiv_374539.csproj b/tests/src/JIT/Regression/clr-x64-JIT/v4.0/devdiv374539/DevDiv_374539.csproj index 6e4aa76ce85e..66b4fa3bdf19 100644 --- a/tests/src/JIT/Regression/clr-x64-JIT/v4.0/devdiv374539/DevDiv_374539.csproj +++ b/tests/src/JIT/Regression/clr-x64-JIT/v4.0/devdiv374539/DevDiv_374539.csproj @@ -13,6 +13,10 @@ 1 + + + true + true diff --git a/tests/src/JIT/jit64/gc/misc/funclet.csproj b/tests/src/JIT/jit64/gc/misc/funclet.csproj index 5dc7e5002560..7ab17cc627ef 100644 --- a/tests/src/JIT/jit64/gc/misc/funclet.csproj +++ b/tests/src/JIT/jit64/gc/misc/funclet.csproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/localloc/verify/verify01_dynamic.ilproj b/tests/src/JIT/jit64/localloc/verify/verify01_dynamic.ilproj index 25820075fd2e..fc9f28082909 100644 --- a/tests/src/JIT/jit64/localloc/verify/verify01_dynamic.ilproj +++ b/tests/src/JIT/jit64/localloc/verify/verify01_dynamic.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/jit64/localloc/verify/verify01_large.ilproj b/tests/src/JIT/jit64/localloc/verify/verify01_large.ilproj index 9c971212565e..1182f98c349a 100644 --- a/tests/src/JIT/jit64/localloc/verify/verify01_large.ilproj +++ b/tests/src/JIT/jit64/localloc/verify/verify01_large.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/jit64/localloc/verify/verify01_small.ilproj b/tests/src/JIT/jit64/localloc/verify/verify01_small.ilproj index 6803b3f7753c..014796d8cb9a 100644 --- a/tests/src/JIT/jit64/localloc/verify/verify01_small.ilproj +++ b/tests/src/JIT/jit64/localloc/verify/verify01_small.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i01.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i01.ilproj index aafaca368647..b5f25d3ea54a 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i01.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i01.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i02.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i02.ilproj index 9c445a6713c2..4102fed9410a 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i02.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i02.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i03.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i03.ilproj index 43580c7a72f7..a65947da67c3 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i03.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i03.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i04.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i04.ilproj index 8961104760e5..978de3f1d5ee 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i04.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i04.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i05.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i05.ilproj index 8cb2b9bf6ef3..7b530a7f835c 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i05.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i05.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i06.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i06.ilproj index bc18ec8c266e..8b0ef2d52e13 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i06.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i06.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i07.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i07.ilproj index 4927701d58d6..690142ba7d2f 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i07.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i07.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i10.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i10.ilproj index 8ed3ebac5c12..f65d6e0e1858 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i10.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i10.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i11.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i11.ilproj index f970593e987b..053d45dd6669 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i11.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i11.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i12.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i12.ilproj index e0159627adaf..fae559f90347 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i12.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i12.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i13.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i13.ilproj index 23d16ec50078..aa8d74d31b35 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i13.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i13.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i14.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i14.ilproj index 9d0b68b148d0..9442042af388 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i14.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i14.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i15.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i15.ilproj index 8445bdaa98b7..c5787367306e 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i15.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i15.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i16.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i16.ilproj index 01991bd1ecbe..0df7c51e9678 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i16.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i16.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i17.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i17.ilproj index b8394e6933bc..3db24063c69c 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i17.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i17.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i30.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i30.ilproj index 75e291ca3e97..1636d099def3 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i30.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i30.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i31.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i31.ilproj index 4460df7bb358..ac2a47651695 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i31.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i31.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i32.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i32.ilproj index 6a5b859f63a5..56ef1e2fd93a 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i32.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i32.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i33.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i33.ilproj index 6b367a016c54..91d4833c592a 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i33.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i33.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i34.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i34.ilproj index c6fd8accfaa3..45e4d7df1cdf 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i34.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i34.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i35.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i35.ilproj index 546e95fc178d..166c08f503cc 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i35.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i35.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i36.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i36.ilproj index 019c1a5e803f..577da7279bde 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i36.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i36.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i37.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i37.ilproj index 2b7c93deb23b..aa41c4355f95 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i37.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i37.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i50.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i50.ilproj index 6769938a1168..5936a1ac8397 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i50.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i50.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i51.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i51.ilproj index 298bde1ba2dd..b604120d1087 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i51.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i51.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i52.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i52.ilproj index 50195cfd66e7..63f1df7c7852 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i52.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i52.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i53.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i53.ilproj index cce1234b10d7..6e69083db56f 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i53.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i53.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i54.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i54.ilproj index cf80fb5077dc..078427143997 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i54.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i54.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i55.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i55.ilproj index 21b4c7bbc8ea..a125e6ed99c8 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i55.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i55.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i56.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i56.ilproj index c15d02485904..3f3ed3737abc 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i56.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i56.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i57.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i57.ilproj index 2c3705afc8d4..a12a1f14abe7 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i57.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i57.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i60.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i60.ilproj index 3306d1f1d789..5e130a3c1e3a 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i60.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i60.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i61.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i61.ilproj index 875a398e9653..16e1e56580d1 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i61.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i61.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i62.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i62.ilproj index ba54aac87160..2669a5ceb975 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i62.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i62.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i63.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i63.ilproj index 07fdbd512649..a9cbbce326d3 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i63.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i63.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i64.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i64.ilproj index cef4778ff395..79b555f2dbbf 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i64.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i64.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i65.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i65.ilproj index 6d4b787c5e04..771aca90ecba 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i65.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i65.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i66.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i66.ilproj index d24686cfff17..9de92883ab52 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i66.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i66.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i67.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i67.ilproj index 4be027f3bf79..5c9f301b7ff7 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i67.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i67.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i70.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i70.ilproj index ef9996d56733..28c3d2cafeb2 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i70.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i70.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i71.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i71.ilproj index 65c1a8176a2f..1bb6ab6c520b 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i71.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i71.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i72.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i72.ilproj index 281f275a82ee..f7cc5d38062a 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i72.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i72.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i73.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i73.ilproj index 436dda1dd711..2a4a4c367e0d 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i73.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i73.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i74.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i74.ilproj index 7e86001f0bb9..abe6c535f024 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i74.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i74.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i75.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i75.ilproj index 2de84d35f524..021eca2cacac 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i75.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i75.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i76.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i76.ilproj index 8a312cac76fd..ca9ca9289043 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i76.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i76.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i77.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i77.ilproj index 478afc5f8891..0be1d28c5c96 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i77.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i77.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i80.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i80.ilproj index b8296515f105..d675576b8d11 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i80.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i80.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i81.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i81.ilproj index 9d3f6e09381e..a63de2312cfc 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i81.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i81.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i82.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i82.ilproj index 043c0f3d724e..0d10d0bb6c5e 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i82.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i82.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i83.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i83.ilproj index 0cd0fb1e8386..b78d4378767b 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i83.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i83.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i84.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i84.ilproj index a56fae22e522..ae0e47d158c8 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i84.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i84.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i85.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i85.ilproj index b1c1b0475cf4..94898c19d70c 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i85.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i85.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i86.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i86.ilproj index b690ba91f072..5096492b0f29 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i86.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i86.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/jit64/mcc/interop/mcc_i87.ilproj b/tests/src/JIT/jit64/mcc/interop/mcc_i87.ilproj index 16af55fcc369..b42ba9fcea3a 100644 --- a/tests/src/JIT/jit64/mcc/interop/mcc_i87.ilproj +++ b/tests/src/JIT/jit64/mcc/interop/mcc_i87.ilproj @@ -10,6 +10,10 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true + true diff --git a/tests/src/JIT/jit64/opt/cse/hugeSimpleExpr1.csproj b/tests/src/JIT/jit64/opt/cse/hugeSimpleExpr1.csproj index 07365609ec74..0784ebdd299e 100644 --- a/tests/src/JIT/jit64/opt/cse/hugeSimpleExpr1.csproj +++ b/tests/src/JIT/jit64/opt/cse/hugeSimpleExpr1.csproj @@ -10,6 +10,9 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true diff --git a/tests/src/JIT/jit64/opt/rngchk/ArrayWithThread_o.csproj b/tests/src/JIT/jit64/opt/rngchk/ArrayWithThread_o.csproj index fde489d9f498..992ac1c5229c 100644 --- a/tests/src/JIT/jit64/opt/rngchk/ArrayWithThread_o.csproj +++ b/tests/src/JIT/jit64/opt/rngchk/ArrayWithThread_o.csproj @@ -10,6 +10,9 @@ Exe {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ + + + true diff --git a/tests/src/JIT/jit64/regress/ndpw/21220/b21220.ilproj b/tests/src/JIT/jit64/regress/ndpw/21220/b21220.ilproj index 50f2b455b071..36ce9e3afe20 100644 --- a/tests/src/JIT/jit64/regress/ndpw/21220/b21220.ilproj +++ b/tests/src/JIT/jit64/regress/ndpw/21220/b21220.ilproj @@ -11,6 +11,9 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true diff --git a/tests/src/JIT/jit64/regress/vsw/286991/test.ilproj b/tests/src/JIT/jit64/regress/vsw/286991/test.ilproj index b1788a5a3505..47af7182002d 100644 --- a/tests/src/JIT/jit64/regress/vsw/286991/test.ilproj +++ b/tests/src/JIT/jit64/regress/vsw/286991/test.ilproj @@ -12,6 +12,10 @@ ..\..\ true 1 + + + true + true diff --git a/tests/src/JIT/opt/Tailcall/TailcallVerifyWithPrefix.ilproj b/tests/src/JIT/opt/Tailcall/TailcallVerifyWithPrefix.ilproj index 169e8aed37ee..dd5c6bb0f3e2 100644 --- a/tests/src/JIT/opt/Tailcall/TailcallVerifyWithPrefix.ilproj +++ b/tests/src/JIT/opt/Tailcall/TailcallVerifyWithPrefix.ilproj @@ -11,6 +11,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ $(DefineConstants);STATIC + + + true + true diff --git a/tests/src/Regressions/coreclr/0584/Test584.csproj b/tests/src/Regressions/coreclr/0584/Test584.csproj index 65a6eb813831..431ef3283dfa 100644 --- a/tests/src/Regressions/coreclr/0584/Test584.csproj +++ b/tests/src/Regressions/coreclr/0584/Test584.csproj @@ -12,6 +12,10 @@ true BuildAndRun 1 + + + true + true diff --git a/tests/src/baseservices/exceptions/regressions/Dev11/147911/test147911.csproj b/tests/src/baseservices/exceptions/regressions/Dev11/147911/test147911.csproj index ca6facd7658e..4feae8cbced5 100644 --- a/tests/src/baseservices/exceptions/regressions/Dev11/147911/test147911.csproj +++ b/tests/src/baseservices/exceptions/regressions/Dev11/147911/test147911.csproj @@ -12,6 +12,9 @@ true BuildAndRun 1 + + + true diff --git a/tests/src/baseservices/exceptions/regressions/V1/SEH/VJ/UnmanagedToManaged.csproj b/tests/src/baseservices/exceptions/regressions/V1/SEH/VJ/UnmanagedToManaged.csproj index a473e87c800d..882764f9d846 100644 --- a/tests/src/baseservices/exceptions/regressions/V1/SEH/VJ/UnmanagedToManaged.csproj +++ b/tests/src/baseservices/exceptions/regressions/V1/SEH/VJ/UnmanagedToManaged.csproj @@ -12,6 +12,9 @@ true BuildAndRun 1 + + + true diff --git a/tests/src/baseservices/threading/commitstackonlyasneeded/DefaultStackCommit.csproj b/tests/src/baseservices/threading/commitstackonlyasneeded/DefaultStackCommit.csproj index fe215363fad6..d3142735ff61 100644 --- a/tests/src/baseservices/threading/commitstackonlyasneeded/DefaultStackCommit.csproj +++ b/tests/src/baseservices/threading/commitstackonlyasneeded/DefaultStackCommit.csproj @@ -12,6 +12,10 @@ true BuildAndRun 1 + + + true + true diff --git a/tests/src/baseservices/threading/mutex/abandonedmutex/am04waitany.csproj b/tests/src/baseservices/threading/mutex/abandonedmutex/am04waitany.csproj index 5b221edb1aea..1938baaa017e 100644 --- a/tests/src/baseservices/threading/mutex/abandonedmutex/am04waitany.csproj +++ b/tests/src/baseservices/threading/mutex/abandonedmutex/am04waitany.csproj @@ -12,6 +12,10 @@ 1 /size:10 /pos:0 true + + + true + true diff --git a/tests/src/baseservices/threading/mutex/abandonedmutex/am05waitanymutex.csproj b/tests/src/baseservices/threading/mutex/abandonedmutex/am05waitanymutex.csproj index 1ee5aac44258..68409e01e5a5 100644 --- a/tests/src/baseservices/threading/mutex/abandonedmutex/am05waitanymutex.csproj +++ b/tests/src/baseservices/threading/mutex/abandonedmutex/am05waitanymutex.csproj @@ -12,6 +12,10 @@ 1 /size:64 /pos:63 true + + + true + true diff --git a/tests/src/baseservices/threading/mutex/abandonedmutex/am06abandonall.csproj b/tests/src/baseservices/threading/mutex/abandonedmutex/am06abandonall.csproj index f439180bea3e..a68918004480 100644 --- a/tests/src/baseservices/threading/mutex/abandonedmutex/am06abandonall.csproj +++ b/tests/src/baseservices/threading/mutex/abandonedmutex/am06abandonall.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/mutex/abandonedmutex/am07abandonmultiplemutex.csproj b/tests/src/baseservices/threading/mutex/abandonedmutex/am07abandonmultiplemutex.csproj index 2456bb8e45d2..7660c8de57a1 100644 --- a/tests/src/baseservices/threading/mutex/abandonedmutex/am07abandonmultiplemutex.csproj +++ b/tests/src/baseservices/threading/mutex/abandonedmutex/am07abandonmultiplemutex.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/mutex/abandonedmutex/am08mixedarray.csproj b/tests/src/baseservices/threading/mutex/abandonedmutex/am08mixedarray.csproj index 804b758c690d..2f7bf9d8b56c 100644 --- a/tests/src/baseservices/threading/mutex/abandonedmutex/am08mixedarray.csproj +++ b/tests/src/baseservices/threading/mutex/abandonedmutex/am08mixedarray.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg1.csproj b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg1.csproj index 37a09059d712..3998bd001401 100644 --- a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg1.csproj +++ b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg1.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg2.csproj b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg2.csproj index e7a6eba461e4..f91785574c6a 100644 --- a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg2.csproj +++ b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg2.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg3.csproj b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg3.csproj index e5136f995d20..e626463cb962 100644 --- a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg3.csproj +++ b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg3.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg4.csproj b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg4.csproj index 3c718faceae2..1bc0e8c66537 100644 --- a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg4.csproj +++ b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg4.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg5.csproj b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg5.csproj index 21a481cced5b..fe01bb8bdc89 100644 --- a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg5.csproj +++ b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg5.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg6.csproj b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg6.csproj index 91d4792eb935..7810ed57811f 100644 --- a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg6.csproj +++ b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg6.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg7.csproj b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg7.csproj index 042084ab86ff..14de86a7fc78 100644 --- a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg7.csproj +++ b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg7.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg8.csproj b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg8.csproj index 02906017e37f..fc86ed5d29b5 100644 --- a/tests/src/baseservices/threading/mutex/openexisting/openmutexneg8.csproj +++ b/tests/src/baseservices/threading/mutex/openexisting/openmutexneg8.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/mutex/openexisting/openmutexpos1.csproj b/tests/src/baseservices/threading/mutex/openexisting/openmutexpos1.csproj index 2fd73f9aede2..eb655b6f1289 100644 --- a/tests/src/baseservices/threading/mutex/openexisting/openmutexpos1.csproj +++ b/tests/src/baseservices/threading/mutex/openexisting/openmutexpos1.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/mutex/openexisting/openmutexpos2.csproj b/tests/src/baseservices/threading/mutex/openexisting/openmutexpos2.csproj index a432e1f8b307..2e7db2880ec0 100644 --- a/tests/src/baseservices/threading/mutex/openexisting/openmutexpos2.csproj +++ b/tests/src/baseservices/threading/mutex/openexisting/openmutexpos2.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/mutex/openexisting/openmutexpos3.csproj b/tests/src/baseservices/threading/mutex/openexisting/openmutexpos3.csproj index c0a6aeb97ed4..40e113611711 100644 --- a/tests/src/baseservices/threading/mutex/openexisting/openmutexpos3.csproj +++ b/tests/src/baseservices/threading/mutex/openexisting/openmutexpos3.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/mutex/openexisting/openmutexpos4.csproj b/tests/src/baseservices/threading/mutex/openexisting/openmutexpos4.csproj index f219be12823a..beecf83af5f0 100644 --- a/tests/src/baseservices/threading/mutex/openexisting/openmutexpos4.csproj +++ b/tests/src/baseservices/threading/mutex/openexisting/openmutexpos4.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/regressions/whidbey_m3/200176.csproj b/tests/src/baseservices/threading/regressions/whidbey_m3/200176.csproj index a45b526a88ed..44114682a643 100644 --- a/tests/src/baseservices/threading/regressions/whidbey_m3/200176.csproj +++ b/tests/src/baseservices/threading/regressions/whidbey_m3/200176.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector2.csproj b/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector2.csproj index 3301e9e6f870..cdb3297c6546 100644 --- a/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector2.csproj +++ b/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector2.csproj @@ -11,6 +11,10 @@ ..\..\ 1 /iCount:0 /mCount:1 /semName:MySemaphoreName + + + true + true diff --git a/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector3.csproj b/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector3.csproj index 061528bc54d1..0494fecc4a92 100644 --- a/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector3.csproj +++ b/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector3.csproj @@ -11,6 +11,10 @@ ..\..\ 1 /iCount:10 /mCount:10 /semname:abcdefghijklmnopqrstuvwxyz + + + true + true diff --git a/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector4.csproj b/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector4.csproj index 7273b602dcd1..14a554d1cbcf 100644 --- a/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector4.csproj +++ b/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector4.csproj @@ -11,6 +11,10 @@ ..\..\ 1 /iCount:3 /mCount:5 /iRandom:260 + + + true + true diff --git a/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector5.csproj b/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector5.csproj index 4ceecac734b8..760e56c86e0c 100644 --- a/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector5.csproj +++ b/tests/src/baseservices/threading/semaphore/ctoropen/semaphorector5.csproj @@ -11,6 +11,10 @@ ..\..\ 1 /iCount:2147483647 /mCount:2147483647 /iRandom:220 + + + true + true diff --git a/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg1.csproj b/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg1.csproj index 2384490b5814..6bf5930fe43e 100644 --- a/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg1.csproj +++ b/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg1.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg2.csproj b/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg2.csproj index db61bfc0bd63..955e8e8ae4f6 100644 --- a/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg2.csproj +++ b/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg2.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg3.csproj b/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg3.csproj index 7ad6cd105afa..07e35cf868aa 100644 --- a/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg3.csproj +++ b/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg3.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg4.csproj b/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg4.csproj index d69032eb72df..8ab7a32c520c 100644 --- a/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg4.csproj +++ b/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg4.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg5.csproj b/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg5.csproj index 15b1ff59cb95..34ba4e327f08 100644 --- a/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg5.csproj +++ b/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg5.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg6.csproj b/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg6.csproj index 817aca2ae090..5f401a226b5b 100644 --- a/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg6.csproj +++ b/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg6.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg7.csproj b/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg7.csproj index 2155e221a20d..b2e5f2531989 100644 --- a/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg7.csproj +++ b/tests/src/baseservices/threading/semaphore/ctoropen/semaphoreopenneg7.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/semaphore/unit/semtest.csproj b/tests/src/baseservices/threading/semaphore/unit/semtest.csproj index 48ce59c2a407..91a6ffd110a7 100644 --- a/tests/src/baseservices/threading/semaphore/unit/semtest.csproj +++ b/tests/src/baseservices/threading/semaphore/unit/semtest.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/threadpool/bindhandle/bindhandle1.csproj b/tests/src/baseservices/threading/threadpool/bindhandle/bindhandle1.csproj index cafede0e8092..b76a4e486193 100644 --- a/tests/src/baseservices/threading/threadpool/bindhandle/bindhandle1.csproj +++ b/tests/src/baseservices/threading/threadpool/bindhandle/bindhandle1.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid.csproj b/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid.csproj index 4936eb1c91e1..18ff388c3526 100644 --- a/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid.csproj +++ b/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid3.csproj b/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid3.csproj index 40a45e35624a..e0df25486321 100644 --- a/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid3.csproj +++ b/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid3.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid4.csproj b/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid4.csproj index b4680468a995..2c5d161c1edc 100644 --- a/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid4.csproj +++ b/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid4.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid5.csproj b/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid5.csproj index f612e480db55..bf9bd985b2a9 100644 --- a/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid5.csproj +++ b/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid5.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid6.csproj b/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid6.csproj index 3bd9e99769ed..d5ddd04bd24b 100644 --- a/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid6.csproj +++ b/tests/src/baseservices/threading/threadpool/bindhandle/bindhandleinvalid6.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitall/waitallex1.csproj b/tests/src/baseservices/threading/waithandle/waitall/waitallex1.csproj index 64bc02b7c179..7239c414ddd6 100644 --- a/tests/src/baseservices/threading/waithandle/waitall/waitallex1.csproj +++ b/tests/src/baseservices/threading/waithandle/waitall/waitallex1.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitall/waitallex10.csproj b/tests/src/baseservices/threading/waithandle/waitall/waitallex10.csproj index 1afd2ab08ff9..973d2b52d98f 100644 --- a/tests/src/baseservices/threading/waithandle/waitall/waitallex10.csproj +++ b/tests/src/baseservices/threading/waithandle/waitall/waitallex10.csproj @@ -12,6 +12,10 @@ 1 /size:64 /pos:63 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitall/waitallex11.csproj b/tests/src/baseservices/threading/waithandle/waitall/waitallex11.csproj index 8e16927f4c91..e2a47fc85378 100644 --- a/tests/src/baseservices/threading/waithandle/waitall/waitallex11.csproj +++ b/tests/src/baseservices/threading/waithandle/waitall/waitallex11.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitall/waitallex2.csproj b/tests/src/baseservices/threading/waithandle/waitall/waitallex2.csproj index 2402f87dd88e..c7fbc269a9a0 100644 --- a/tests/src/baseservices/threading/waithandle/waitall/waitallex2.csproj +++ b/tests/src/baseservices/threading/waithandle/waitall/waitallex2.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitall/waitallex3.csproj b/tests/src/baseservices/threading/waithandle/waitall/waitallex3.csproj index 96103d0a3b6d..23eda26db1a9 100644 --- a/tests/src/baseservices/threading/waithandle/waitall/waitallex3.csproj +++ b/tests/src/baseservices/threading/waithandle/waitall/waitallex3.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitall/waitallex4.csproj b/tests/src/baseservices/threading/waithandle/waitall/waitallex4.csproj index 3384e91a202e..8eb3b5acd94d 100644 --- a/tests/src/baseservices/threading/waithandle/waitall/waitallex4.csproj +++ b/tests/src/baseservices/threading/waithandle/waitall/waitallex4.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitall/waitallex5.csproj b/tests/src/baseservices/threading/waithandle/waitall/waitallex5.csproj index 64c39d767a06..7c89c3685f54 100644 --- a/tests/src/baseservices/threading/waithandle/waitall/waitallex5.csproj +++ b/tests/src/baseservices/threading/waithandle/waitall/waitallex5.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitall/waitallex6.csproj b/tests/src/baseservices/threading/waithandle/waitall/waitallex6.csproj index 8fe852d35805..0d80f5a9a1be 100644 --- a/tests/src/baseservices/threading/waithandle/waitall/waitallex6.csproj +++ b/tests/src/baseservices/threading/waithandle/waitall/waitallex6.csproj @@ -12,6 +12,10 @@ 1 /size:2 /pos:0 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitall/waitallex7.csproj b/tests/src/baseservices/threading/waithandle/waitall/waitallex7.csproj index 98af403de8d8..ba160f7f7ae4 100644 --- a/tests/src/baseservices/threading/waithandle/waitall/waitallex7.csproj +++ b/tests/src/baseservices/threading/waithandle/waitall/waitallex7.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitall/waitallex8.csproj b/tests/src/baseservices/threading/waithandle/waitall/waitallex8.csproj index f871aa6ee885..3ab4ca24381c 100644 --- a/tests/src/baseservices/threading/waithandle/waitall/waitallex8.csproj +++ b/tests/src/baseservices/threading/waithandle/waitall/waitallex8.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitall/waitallex8a.csproj b/tests/src/baseservices/threading/waithandle/waitall/waitallex8a.csproj index 96cc5ebf500a..23b2d204e31a 100644 --- a/tests/src/baseservices/threading/waithandle/waitall/waitallex8a.csproj +++ b/tests/src/baseservices/threading/waithandle/waitall/waitallex8a.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitall/waitallex9.csproj b/tests/src/baseservices/threading/waithandle/waitall/waitallex9.csproj index f1de7e9d9f40..dacc4e1fd7db 100644 --- a/tests/src/baseservices/threading/waithandle/waitall/waitallex9.csproj +++ b/tests/src/baseservices/threading/waithandle/waitall/waitallex9.csproj @@ -11,6 +11,10 @@ ..\..\ 1 /size:64 /pos:63 + + + true + true true diff --git a/tests/src/baseservices/threading/waithandle/waitany/waitanyex1.csproj b/tests/src/baseservices/threading/waithandle/waitany/waitanyex1.csproj index ebbfc6f9f1af..2d647dfb412c 100644 --- a/tests/src/baseservices/threading/waithandle/waitany/waitanyex1.csproj +++ b/tests/src/baseservices/threading/waithandle/waitany/waitanyex1.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitany/waitanyex10.csproj b/tests/src/baseservices/threading/waithandle/waitany/waitanyex10.csproj index 0ce38e97359e..833c64246cb0 100644 --- a/tests/src/baseservices/threading/waithandle/waitany/waitanyex10.csproj +++ b/tests/src/baseservices/threading/waithandle/waitany/waitanyex10.csproj @@ -12,6 +12,10 @@ 1 /size:2 /pos:1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitany/waitanyex2.csproj b/tests/src/baseservices/threading/waithandle/waitany/waitanyex2.csproj index 00d6b1f86cc6..3eb506236055 100644 --- a/tests/src/baseservices/threading/waithandle/waitany/waitanyex2.csproj +++ b/tests/src/baseservices/threading/waithandle/waitany/waitanyex2.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitany/waitanyex3.csproj b/tests/src/baseservices/threading/waithandle/waitany/waitanyex3.csproj index f5d085809a43..b770b216d480 100644 --- a/tests/src/baseservices/threading/waithandle/waitany/waitanyex3.csproj +++ b/tests/src/baseservices/threading/waithandle/waitany/waitanyex3.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitany/waitanyex4.csproj b/tests/src/baseservices/threading/waithandle/waitany/waitanyex4.csproj index e2ff2e100cc7..b6dcbc11917e 100644 --- a/tests/src/baseservices/threading/waithandle/waitany/waitanyex4.csproj +++ b/tests/src/baseservices/threading/waithandle/waitany/waitanyex4.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitany/waitanyex5.csproj b/tests/src/baseservices/threading/waithandle/waitany/waitanyex5.csproj index e2582518974f..ac57e6231c3a 100644 --- a/tests/src/baseservices/threading/waithandle/waitany/waitanyex5.csproj +++ b/tests/src/baseservices/threading/waithandle/waitany/waitanyex5.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitany/waitanyex6.csproj b/tests/src/baseservices/threading/waithandle/waitany/waitanyex6.csproj index f668197ff9ac..e1a3aad3f807 100644 --- a/tests/src/baseservices/threading/waithandle/waitany/waitanyex6.csproj +++ b/tests/src/baseservices/threading/waithandle/waitany/waitanyex6.csproj @@ -11,6 +11,10 @@ ..\..\ 1 /size:2 /pos:1 + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitany/waitanyex7.csproj b/tests/src/baseservices/threading/waithandle/waitany/waitanyex7.csproj index de9c88c44dff..bd55fe9e1e66 100644 --- a/tests/src/baseservices/threading/waithandle/waitany/waitanyex7.csproj +++ b/tests/src/baseservices/threading/waithandle/waitany/waitanyex7.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitany/waitanyex8.csproj b/tests/src/baseservices/threading/waithandle/waitany/waitanyex8.csproj index d49015a362cb..0f8c05e36762 100644 --- a/tests/src/baseservices/threading/waithandle/waitany/waitanyex8.csproj +++ b/tests/src/baseservices/threading/waithandle/waitany/waitanyex8.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitany/waitanyex8a.csproj b/tests/src/baseservices/threading/waithandle/waitany/waitanyex8a.csproj index ab055d1f547b..4811890ac8c3 100644 --- a/tests/src/baseservices/threading/waithandle/waitany/waitanyex8a.csproj +++ b/tests/src/baseservices/threading/waithandle/waitany/waitanyex8a.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitany/waitanyex9.csproj b/tests/src/baseservices/threading/waithandle/waitany/waitanyex9.csproj index 9f17ad6e2364..dabb01e94ae6 100644 --- a/tests/src/baseservices/threading/waithandle/waitany/waitanyex9.csproj +++ b/tests/src/baseservices/threading/waithandle/waitany/waitanyex9.csproj @@ -12,6 +12,10 @@ 1 /size:2 /pos:1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitone/waitoneex1.csproj b/tests/src/baseservices/threading/waithandle/waitone/waitoneex1.csproj index 071412e0bd5f..a055dad299cc 100644 --- a/tests/src/baseservices/threading/waithandle/waitone/waitoneex1.csproj +++ b/tests/src/baseservices/threading/waithandle/waitone/waitoneex1.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitone/waitoneex2.csproj b/tests/src/baseservices/threading/waithandle/waitone/waitoneex2.csproj index 79649b48977b..bba539ccdd45 100644 --- a/tests/src/baseservices/threading/waithandle/waitone/waitoneex2.csproj +++ b/tests/src/baseservices/threading/waithandle/waitone/waitoneex2.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitone/waitoneex3.csproj b/tests/src/baseservices/threading/waithandle/waitone/waitoneex3.csproj index 176e3f5a65de..0ffbf6261447 100644 --- a/tests/src/baseservices/threading/waithandle/waitone/waitoneex3.csproj +++ b/tests/src/baseservices/threading/waithandle/waitone/waitoneex3.csproj @@ -11,6 +11,10 @@ ..\..\ 1 true + + + true + true diff --git a/tests/src/baseservices/threading/waithandle/waitone/waitoneex4.csproj b/tests/src/baseservices/threading/waithandle/waitone/waitoneex4.csproj index a3c992cd42d3..ecc910bcfd86 100644 --- a/tests/src/baseservices/threading/waithandle/waitone/waitoneex4.csproj +++ b/tests/src/baseservices/threading/waithandle/waitone/waitoneex4.csproj @@ -10,6 +10,10 @@ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\ 1 + + + true + true diff --git a/tests/src/managed/Compilation/Compilation.csproj b/tests/src/managed/Compilation/Compilation.csproj index 7a2b31bb284a..e0c369e9c6ec 100644 --- a/tests/src/managed/Compilation/Compilation.csproj +++ b/tests/src/managed/Compilation/Compilation.csproj @@ -13,6 +13,10 @@ $(DefineConstants);STATIC true + + + true + true diff --git a/tests/src/readytorun/r2rdump/R2RDumpTest.csproj b/tests/src/readytorun/r2rdump/R2RDumpTest.csproj index 104f2291c83e..410620a6eb11 100644 --- a/tests/src/readytorun/r2rdump/R2RDumpTest.csproj +++ b/tests/src/readytorun/r2rdump/R2RDumpTest.csproj @@ -16,7 +16,11 @@ $(BashCoreClrDir)bin/Product/$(BuildOS).$(BuildArch).$(BuildType)/netcoreapp2.0/R2RDump.dll $(BashCoreClrDir)Tools/dotnetcli/dotnet $(CoreClrDir)tests\src\readytorun\r2rdump\files\$(BuildOS).$(BuildArch).$(BuildType)\ - true + + + + true + true diff --git a/tests/src/tracing/eventsource/eventpipeandetw/eventpipeandetw.csproj b/tests/src/tracing/eventsource/eventpipeandetw/eventpipeandetw.csproj index 31c9137ca357..d8e0b99d3852 100644 --- a/tests/src/tracing/eventsource/eventpipeandetw/eventpipeandetw.csproj +++ b/tests/src/tracing/eventsource/eventpipeandetw/eventpipeandetw.csproj @@ -13,6 +13,10 @@ $(DefineConstants);STATIC true 0 + + + true + true diff --git a/tests/tests.targets b/tests/tests.targets index e1e6f58ba805..6c3afcd7f134 100644 --- a/tests/tests.targets +++ b/tests/tests.targets @@ -65,7 +65,7 @@ $(CorerunExecutable) $(XunitConsoleRunner) @(TestAssemblies->'%(Identity)', ' ') $(XunitArgs) - +