diff options
Diffstat (limited to 'tests')
33 files changed, 863 insertions, 189 deletions
diff --git a/tests/issues.targets b/tests/issues.targets index ff2b314789..ad36f1adfe 100644 --- a/tests/issues.targets +++ b/tests/issues.targets @@ -199,16 +199,16 @@ <Issue>3392</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\divrem\div\u8div_cs_do\u8div_cs_do.cmd"> - <Issue>needs triage</Issue> + <Issue>2413</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\divrem\div\u8div_cs_ro\u8div_cs_ro.cmd"> - <Issue>needs triage</Issue> + <Issue>2413</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\divrem\rem\u8rem_cs_do\u8rem_cs_do.cmd"> - <Issue>needs triage</Issue> + <Issue>2412</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\divrem\rem\u8rem_cs_ro\u8rem_cs_ro.cmd"> - <Issue>needs triage</Issue> + <Issue>2412</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\tailcall_v4\smallFrame\smallFrame.cmd"> <Issue>tail. call pop ret is only supported on amd64</Issue> @@ -223,13 +223,13 @@ <Issue>needs triage</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\opt\Tailcall\TailcallVerifyWithPrefix\TailcallVerifyWithPrefix.cmd"> - <Issue>x86 JIT doesn't support implicit tail call optimization or tail. call pop ret sequence</Issue> + <Issue>2420. x86 JIT doesn't support implicit tail call optimization or tail. call pop ret sequence</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\Roslyn\CscBench\CscBench.cmd"> - <Issue>6844</Issue> + <Issue>7038,7173</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\Dev11\External\dev11_239804\ShowLocallocAlignment\ShowLocallocAlignment.cmd"> - <Issue>needs triage</Issue> + <Issue>7163</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\managed\Compilation\Compilation\Compilation.cmd"> <Issue>needs triage</Issue> diff --git a/tests/runtest.sh b/tests/runtest.sh index cd5da9484d..adf7895d2f 100755 --- a/tests/runtest.sh +++ b/tests/runtest.sh @@ -909,15 +909,9 @@ function coreclr_code_coverage { } function check_cpu_architecture { - # Use uname to determine what the CPU is. - local CPUName=$(uname -p) + local CPUName=$(uname -m) local __arch= - # Some Linux platforms report unknown for platform, but the arch for machine. - if [ "$CPUName" == "unknown" ]; then - CPUName=$(uname -m) - fi - case $CPUName in i686) __arch=x86 @@ -941,6 +935,7 @@ function check_cpu_architecture { } ARCH=$(check_cpu_architecture) +echo "Running on CPU- $ARCH" # Exit code constants readonly EXIT_CODE_SUCCESS=0 # Script ran normally. diff --git a/tests/scripts/perf-prep.sh b/tests/scripts/perf-prep.sh index 3c232b0c2e..800b5cb6f4 100644 --- a/tests/scripts/perf-prep.sh +++ b/tests/scripts/perf-prep.sh @@ -44,6 +44,18 @@ echo "branch = $perfBranch" echo "architecture = $perfArch" echo "configuration = $perfConfig" +# Install nuget to download benchview package, which includes the script machinedata.py for machine data collection +wget https://dist.nuget.org/win-x86-commandline/latest/nuget.exe +chmod u+x ./nuget.exe +./nuget.exe install Microsoft.BenchView.JSONFormat -Source http://benchviewtestfeed.azurewebsites.net/nuget -OutputDirectory ./tests/scripts -Prerelease + +# Install python 3.5.2 to run machinedata.py for machine data collection +sudo add-apt-repository ppa:fkrull/deadsnakes +sudo apt-get update +sudo apt-get --assume-yes install python3.5 +python3.5 --version +python3.5 ./tests/scripts/Microsoft.BenchView.JSONFormat.0.1.0-pre010/tools/machinedata.py + # Set up the copies # Coreclr build containing the tests and mscorlib curl http://dotnet-ci.cloudapp.net/job/$perfBranch/job/master/job/release_windows_nt/lastSuccessfulBuild/artifact/bin/tests/tests.zip -o tests.zip diff --git a/tests/scripts/run-xunit-perf.sh b/tests/scripts/run-xunit-perf.sh index e56194ce8b..39202ecbc7 100644 --- a/tests/scripts/run-xunit-perf.sh +++ b/tests/scripts/run-xunit-perf.sh @@ -386,18 +386,9 @@ echo "CORE_ROOT dir = $CORE_ROOT" DO_SETUP=TRUE -dir $testNativeBinDir/../../../../.. -echo 'dir $testNativeBinDir/../../../../..' -dir $testNativeBinDir/../../../../../packages -echo 'dir $testNativeBinDir/../../../../../packages' -dir $testNativeBinDir/../../../../../packages/Microsoft.DotNet.xunit.performance.runner.cli -echo 'dir $testNativeBinDir/../../../../../packages/Microsoft.DotNet.xunit.performance.runner.cli' -dir $testNativeBinDir/../../../../../packages/Microsoft.DotNet.xunit.performance.runner.cli/1.0.0-alpha-build0035 -echo 'dir $testNativeBinDir/../../../../../packages/Microsoft.DotNet.xunit.performance.runner.cli/1.0.0-alpha-build0035' - if [ ${DO_SETUP} == "TRUE" ]; then -cp $testNativeBinDir/../../../../../packages/Microsoft.DotNet.xunit.performance.runner.cli/1.0.0-alpha-build0035/lib/netstandard1.3/Microsoft.DotNet.xunit.performance.runner.cli.dll . -cp $testNativeBinDir/../../../../../packages/Microsoft.DotNet.xunit.performance.run.core/1.0.0-alpha-build0035/lib/dotnet/*.dll . +cp $testNativeBinDir/../../../../../packages/Microsoft.DotNet.xunit.performance.runner.cli/1.0.0-alpha-build0040/lib/netstandard1.3/Microsoft.DotNet.xunit.performance.runner.cli.dll . +cp $testNativeBinDir/../../../../../packages/Microsoft.DotNet.xunit.performance.run.core/1.0.0-alpha-build0040/lib/dotnet/*.dll . fi # Run coreclr performance tests @@ -414,5 +405,7 @@ cp $testcase . chmod u+x ./corerun ./corerun Microsoft.DotNet.xunit.performance.runner.cli.dll $test -runner xunit.console.netcore.exe -runnerhost ./corerun -verbose -runid perf-$testname - done + +mkdir ../../../../../sandbox +cp *.xml ../../../../../sandbox diff --git a/tests/setup-runtime-dependencies.sh b/tests/setup-runtime-dependencies.sh index 06586736a0..4573e084bd 100755 --- a/tests/setup-runtime-dependencies.sh +++ b/tests/setup-runtime-dependencies.sh @@ -87,6 +87,10 @@ fi # This script must be located in coreclr/tests. scriptDir=$(cd "$(dirname "$0")"; pwd -P) + +echo "Running init-tools.sh" +$scriptDir/../init-tools.sh + dotnetToolsDir=$scriptDir/../Tools dotnetCmd=${dotnetToolsDir}/dotnetcli/dotnet packageDir=${scriptDir}/../packages diff --git a/tests/src/CLRTest.Execute.targets b/tests/src/CLRTest.Execute.targets index 17cb69f1da..b49785b9d6 100644 --- a/tests/src/CLRTest.Execute.targets +++ b/tests/src/CLRTest.Execute.targets @@ -105,6 +105,7 @@ This file contains the logic for providing Execution Script generation. <BatchScriptSnippetGen></BatchScriptSnippetGen> </PropertyGroup> + <Import Project="CLRTest.Jit.targets" /> <Import Project="CLRTest.CrossGen.targets" /> <Import Project="CLRTest.GC.targets" /> <Import Project="CLRTest.Execute.*.targets" /> diff --git a/tests/src/CLRTest.Jit.targets b/tests/src/CLRTest.Jit.targets new file mode 100644 index 0000000000..c295634d55 --- /dev/null +++ b/tests/src/CLRTest.Jit.targets @@ -0,0 +1,35 @@ + +<!-- +*********************************************************************************************** +CLRTest.Jit.targets + +WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have + created a backup copy. Incorrect changes to this file will make it + impossible to load or build your projects from the command-line or the IDE. + +This file contains the logic for generating command scripts for special GC tests. + +WARNING: When setting properties based on their current state (for example: + <Foo Condition="'$(Foo)'==''>Bar</Foo>). Be very careful. Another script generation + target might be trying to do the same thing. It's better to avoid this by instead setting a new property. + + Additionally, be careful with itemgroups. Include will propagate outside of the target too! + +*********************************************************************************************** +--> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup Condition="$(RunWithGcStress) != ''" > + <CLRTestBatchPreCommands> +<![CDATA[ + $(CLRTestBatchPreCommands) +set COMPlus_GCStress=$(RunWithGcStress) + ]]> + </CLRTestBatchPreCommands> + <BashCLRTestPreCommands> +<![CDATA[ + $(BashCLRTestPreCommands) +export COMPlus_GCStress=$(RunWithGcStress) + ]]> + </BashCLRTestPreCommands> + </PropertyGroup> +</Project> diff --git a/tests/src/Common/test_dependencies/project.json b/tests/src/Common/test_dependencies/project.json index 12262efcb1..84cdf894cb 100644 --- a/tests/src/Common/test_dependencies/project.json +++ b/tests/src/Common/test_dependencies/project.json @@ -7,67 +7,67 @@ "Microsoft.DotNet.xunit.performance": "1.0.0-alpha-build0040", "Microsoft.DotNet.xunit.performance.analysis": "1.0.0-alpha-build0040", "Microsoft.DotNet.xunit.performance.runner.Windows": "1.0.0-alpha-build0040", - "Microsoft.Win32.Primitives": "4.3.0-beta-24431-01", + "Microsoft.Win32.Primitives": "4.3.0-beta-24514-06", "Newtonsoft.Json": "7.0.1", - "Microsoft.NETCore.Platforms": "4.3.0-beta-24431-01", - "Microsoft.NETCore.Targets": "4.3.0-beta-24431-01", - "System.Collections.Immutable": "1.3.0-beta-24431-01", - "System.Threading.Thread": "4.3.0-beta-24431-01", - "System.Collections": "4.3.0-beta-24431-01", - "System.Xml.XmlSerializer": "4.3.0-beta-24431-01", - "System.Collections.Concurrent": "4.3.0-beta-24431-01", - "System.ObjectModel": "4.3.0-beta-24431-01", - "System.Runtime.Numerics": "4.3.0-beta-24431-01", - "System.Collections.NonGeneric": "4.3.0-beta-24431-01", - "System.Collections.Specialized": "4.3.0-beta-24431-01", - "System.ComponentModel": "4.3.0-beta-24431-01", - "System.Reflection.Emit.Lightweight": "4.3.0-beta-24431-01", - "System.Reflection.TypeExtensions": "4.3.0-beta-24431-01", - "System.Console": "4.3.0-beta-24431-01", - "System.Diagnostics.Contracts": "4.3.0-beta-24431-01", - "System.Diagnostics.Debug": "4.3.0-beta-24431-01", - "System.Diagnostics.Process": "4.3.0-beta-24431-01", - "System.Diagnostics.Tools": "4.3.0-beta-24431-01", - "System.Diagnostics.Tracing": "4.3.0-beta-24431-01", - "System.Dynamic.Runtime": "4.3.0-beta-24431-01", - "System.Globalization": "4.3.0-beta-24431-01", - "System.Globalization.Calendars": "4.3.0-beta-24431-01", - "System.IO": "4.3.0-beta-24431-01", - "System.IO.FileSystem": "4.3.0-beta-24431-01", - "System.IO.FileSystem.Primitives": "4.3.0-beta-24431-01", - "System.Linq": "4.3.0-beta-24431-01", - "System.Linq.Queryable": "4.3.0-beta-24431-01", - "System.Linq.Expressions": "4.3.0-beta-24431-01", - "System.Reflection": "4.3.0-beta-24431-01", - "System.Reflection.Extensions": "4.3.0-beta-24431-01", - "System.Resources.ResourceManager": "4.3.0-beta-24431-01", - "System.Runtime": "4.3.0-beta-24431-01", - "System.Runtime.CompilerServices.Unsafe": "4.3.0-beta-24431-01", - "System.Runtime.Extensions": "4.3.0-beta-24431-01", - "System.Runtime.Handles": "4.3.0-beta-24431-01", - "System.Runtime.InteropServices": "4.3.0-beta-24431-01", - "System.Runtime.InteropServices.RuntimeInformation": "4.3.0-beta-24431-01", - "System.Runtime.Loader": "4.3.0-beta-24431-01", - "System.Runtime.Serialization.Json": "4.3.0-beta-24431-01", + "Microsoft.NETCore.Platforms": "1.0.2-beta-24514-06", + "Microsoft.NETCore.Targets": "1.0.3-beta-24514-06", + "System.Collections.Immutable": "1.3.0-beta-24514-06", + "System.Threading.Thread": "4.3.0-beta-24514-06", + "System.Collections": "4.3.0-beta-24514-06", + "System.Xml.XmlSerializer": "4.3.0-beta-24514-06", + "System.Collections.Concurrent": "4.3.0-beta-24514-06", + "System.ObjectModel": "4.3.0-beta-24514-06", + "System.Runtime.Numerics": "4.3.0-beta-24514-06", + "System.Collections.NonGeneric": "4.3.0-beta-24514-06", + "System.Collections.Specialized": "4.3.0-beta-24514-06", + "System.ComponentModel": "4.3.0-beta-24514-06", + "System.Reflection.Emit.Lightweight": "4.3.0-beta-24514-06", + "System.Reflection.TypeExtensions": "4.3.0-beta-24514-06", + "System.Console": "4.3.0-beta-24514-06", + "System.Diagnostics.Contracts": "4.3.0-beta-24514-06", + "System.Diagnostics.Debug": "4.3.0-beta-24514-06", + "System.Diagnostics.Process": "4.3.0-beta-24514-06", + "System.Diagnostics.Tools": "4.3.0-beta-24514-06", + "System.Diagnostics.Tracing": "4.3.0-beta-24514-06", + "System.Dynamic.Runtime": "4.3.0-beta-24514-06", + "System.Globalization": "4.3.0-beta-24514-06", + "System.Globalization.Calendars": "4.3.0-beta-24514-06", + "System.IO": "4.3.0-beta-24514-06", + "System.IO.FileSystem": "4.3.0-beta-24514-06", + "System.IO.FileSystem.Primitives": "4.3.0-beta-24514-06", + "System.Linq": "4.3.0-beta-24514-06", + "System.Linq.Queryable": "4.3.0-beta-24514-06", + "System.Linq.Expressions": "4.3.0-beta-24514-06", + "System.Reflection": "4.3.0-beta-24514-06", + "System.Reflection.Extensions": "4.3.0-beta-24514-06", + "System.Resources.ResourceManager": "4.3.0-beta-24514-06", + "System.Runtime": "4.3.0-beta-24514-06", + "System.Runtime.CompilerServices.Unsafe": "4.3.0-beta-24514-06", + "System.Runtime.Extensions": "4.3.0-beta-24514-06", + "System.Runtime.Handles": "4.3.0-beta-24514-06", + "System.Runtime.InteropServices": "4.3.0-beta-24514-06", + "System.Runtime.InteropServices.RuntimeInformation": "4.3.0-beta-24514-06", + "System.Runtime.Loader": "4.3.0-beta-24514-06", + "System.Runtime.Serialization.Json": "4.3.0-beta-24514-06", "System.Runtime.Serialization.Primitives": "4.1.1", - "System.Runtime.Serialization.Xml": "4.3.0-beta-24431-01", - "System.Security.Cryptography.Algorithms": "4.3.0-beta-24431-01", - "System.Text.Encoding": "4.3.0-beta-24431-01", - "System.Text.Encoding.Extensions": "4.3.0-beta-24431-01", - "System.Text.RegularExpressions": "4.3.0-beta-24431-01", - "System.Threading": "4.3.0-beta-24431-01", - "System.Threading.AccessControl": "4.3.0-beta-24431-01", - "System.Threading.Overlapped": "4.3.0-beta-24431-01", - "System.Threading.Tasks": "4.3.0-beta-24431-01", - "System.Threading.Tasks.Parallel": "4.3.0-beta-24431-01", - "System.Threading.ThreadPool": "4.3.0-beta-24431-01", - "System.Threading.Timer": "4.3.0-beta-24431-01", - "System.Xml.ReaderWriter": "4.3.0-beta-24431-01", - "System.Xml.XDocument": "4.3.0-beta-24431-01", - "System.Xml.XmlDocument": "4.3.0-beta-24431-01", - "System.Xml.XPath": "4.3.0-beta-24431-01", - "System.Xml.XPath.XmlDocument": "4.3.0-beta-24431-01", - "System.Numerics.Vectors": "4.3.0-beta-24431-01" + "System.Runtime.Serialization.Xml": "4.3.0-beta-24514-06", + "System.Security.Cryptography.Algorithms": "4.3.0-beta-24514-06", + "System.Text.Encoding": "4.3.0-beta-24514-06", + "System.Text.Encoding.Extensions": "4.3.0-beta-24514-06", + "System.Text.RegularExpressions": "4.3.0-beta-24514-06", + "System.Threading": "4.3.0-beta-24514-06", + "System.Threading.AccessControl": "4.3.0-beta-24514-06", + "System.Threading.Overlapped": "4.3.0-beta-24514-06", + "System.Threading.Tasks": "4.3.0-beta-24514-06", + "System.Threading.Tasks.Parallel": "4.3.0-beta-24514-06", + "System.Threading.ThreadPool": "4.3.0-beta-24514-06", + "System.Threading.Timer": "4.3.0-beta-24514-06", + "System.Xml.ReaderWriter": "4.3.0-beta-24514-06", + "System.Xml.XDocument": "4.3.0-beta-24514-06", + "System.Xml.XmlDocument": "4.3.0-beta-24514-06", + "System.Xml.XPath": "4.3.0-beta-24514-06", + "System.Xml.XPath.XmlDocument": "4.3.0-beta-24514-06", + "System.Numerics.Vectors": "4.3.0-beta-24514-06" }, "frameworks": { "netcoreapp1.0": { diff --git a/tests/src/GC/Scenarios/FinalizeTimeout/FinalizeTimeout.cs b/tests/src/GC/Scenarios/FinalizeTimeout/FinalizeTimeout.cs index 0fda8172e4..60a6861734 100644 --- a/tests/src/GC/Scenarios/FinalizeTimeout/FinalizeTimeout.cs +++ b/tests/src/GC/Scenarios/FinalizeTimeout/FinalizeTimeout.cs @@ -17,6 +17,7 @@ public class FinalizeTimeout do { finalizableObject = new BlockingFinalizerOnShutdown(); + GC.KeepAlive(finalizableObject); } while (!BlockingFinalizerOnShutdown.finalizerCompletedOnce); // Start a bunch of threads that allocate continuously, to increase the chance that when Main returns, one of the @@ -42,12 +43,15 @@ public class FinalizeTimeout { byte[] b; while (true) + { b = new byte[1024]; + GC.KeepAlive(b); + } } private class BlockingFinalizerOnShutdown { - public static bool finalizerCompletedOnce = false; + public volatile static bool finalizerCompletedOnce = false; public bool isLastObject = false; ~BlockingFinalizerOnShutdown() @@ -68,6 +72,7 @@ public class FinalizeTimeout do { o = new object(); + GC.KeepAlive(o); } while ((++i & 0xff) != 0 || (elapsed = DateTime.Now - start) < timeout); Console.WriteLine("Finalizer end"); diff --git a/tests/src/JIT/config/benchmark+roslyn/project.json b/tests/src/JIT/config/benchmark+roslyn/project.json index bc169df22b..7f24514e5c 100644 --- a/tests/src/JIT/config/benchmark+roslyn/project.json +++ b/tests/src/JIT/config/benchmark+roslyn/project.json @@ -4,23 +4,23 @@ "Microsoft.DotNet.xunit.performance": "1.0.0-alpha-build0040", "Microsoft.DotNet.xunit.performance.analysis": "1.0.0-alpha-build0040", "Microsoft.DotNet.xunit.performance.runner.Windows": "1.0.0-alpha-build0040", - "Microsoft.NETCore.Platforms": "4.3.0-beta-24431-01", - "System.Console": "4.3.0-beta-24431-01", - "System.Dynamic.Runtime": "4.3.0-beta-24431-01", - "System.Linq": "4.3.0-beta-24431-01", - "System.IO.FileSystem": "4.3.0-beta-24431-01", - "System.Numerics.Vectors": "4.3.0-beta-24431-01", - "System.Reflection": "4.3.0-beta-24431-01", - "System.Reflection.Extensions": "4.3.0-beta-24431-01", - "System.Reflection.TypeExtensions": "4.3.0-beta-24431-01", - "System.Runtime": "4.3.0-beta-24431-01", - "System.Runtime.Extensions": "4.3.0-beta-24431-01", - "System.Runtime.Numerics": "4.3.0-beta-24431-01", - "System.Text.RegularExpressions": "4.3.0-beta-24431-01", - "System.Threading": "4.3.0-beta-24431-01", - "System.Threading.Tasks": "4.3.0-beta-24431-01", - "System.Threading.Tasks.Parallel": "4.3.0-beta-24431-01", - "System.Security.Cryptography.Algorithms": "4.3.0-beta-24431-01", + "Microsoft.NETCore.Platforms": "1.0.2-beta-24514-06", + "System.Console": "4.3.0-beta-24514-06", + "System.Dynamic.Runtime": "4.3.0-beta-24514-06", + "System.Linq": "4.3.0-beta-24514-06", + "System.IO.FileSystem": "4.3.0-beta-24514-06", + "System.Numerics.Vectors": "4.3.0-beta-24514-06", + "System.Reflection": "4.3.0-beta-24514-06", + "System.Reflection.Extensions": "4.3.0-beta-24514-06", + "System.Reflection.TypeExtensions": "4.3.0-beta-24514-06", + "System.Runtime": "4.3.0-beta-24514-06", + "System.Runtime.Extensions": "4.3.0-beta-24514-06", + "System.Runtime.Numerics": "4.3.0-beta-24514-06", + "System.Text.RegularExpressions": "4.3.0-beta-24514-06", + "System.Threading": "4.3.0-beta-24514-06", + "System.Threading.Tasks": "4.3.0-beta-24514-06", + "System.Threading.Tasks.Parallel": "4.3.0-beta-24514-06", + "System.Security.Cryptography.Algorithms": "4.3.0-beta-24514-06", "xunit": "2.2.0-beta2-build3300", "xunit.console.netcore": "1.0.2-prerelease-00177", "xunit.runner.utility": "2.2.0-beta2-build3300" diff --git a/tests/src/JIT/config/benchmark+serialize/project.json b/tests/src/JIT/config/benchmark+serialize/project.json index 00852ca32e..3515da0890 100644 --- a/tests/src/JIT/config/benchmark+serialize/project.json +++ b/tests/src/JIT/config/benchmark+serialize/project.json @@ -3,21 +3,21 @@ "Microsoft.DotNet.xunit.performance": "1.0.0-alpha-build0040", "Microsoft.DotNet.xunit.performance.analysis": "1.0.0-alpha-build0040", "Microsoft.DotNet.xunit.performance.runner.Windows": "1.0.0-alpha-build0040", - "Microsoft.NETCore.Platforms": "4.3.0-beta-24431-01", + "Microsoft.NETCore.Platforms": "1.0.2-beta-24514-06", "Newtonsoft.Json": "7.0.1", - "System.Console": "4.3.0-beta-24431-01", - "System.IO": "4.3.0-beta-24431-01", - "System.IO.FileSystem": "4.3.0-beta-24431-01", - "System.Linq": "4.3.0-beta-24431-01", - "System.ObjectModel": "4.3.0-beta-24431-01", - "System.Dynamic.Runtime": "4.3.0-beta-24431-01", - "System.Runtime": "4.3.0-beta-24431-01", - "System.Runtime.Serialization.Json": "4.3.0-beta-24431-01", + "System.Console": "4.3.0-beta-24514-06", + "System.IO": "4.3.0-beta-24514-06", + "System.IO.FileSystem": "4.3.0-beta-24514-06", + "System.Linq": "4.3.0-beta-24514-06", + "System.ObjectModel": "4.3.0-beta-24514-06", + "System.Dynamic.Runtime": "4.3.0-beta-24514-06", + "System.Runtime": "4.3.0-beta-24514-06", + "System.Runtime.Serialization.Json": "4.3.0-beta-24514-06", "System.Runtime.Serialization.Primitives": "4.1.1", - "System.Runtime.Serialization.Xml": "4.3.0-beta-24431-01", - "System.Text.RegularExpressions": "4.3.0-beta-24431-01", - "System.Xml.XmlDocument": "4.3.0-beta-24431-01", - "System.Xml.XmlSerializer": "4.3.0-beta-24431-01", + "System.Runtime.Serialization.Xml": "4.3.0-beta-24514-06", + "System.Text.RegularExpressions": "4.3.0-beta-24514-06", + "System.Xml.XmlDocument": "4.3.0-beta-24514-06", + "System.Xml.XmlSerializer": "4.3.0-beta-24514-06", "xunit": "2.2.0-beta2-build3300", "xunit.console.netcore": "1.0.2-prerelease-00177", "xunit.runner.utility": "2.2.0-beta2-build3300" diff --git a/tests/src/JIT/config/benchmark/project.json b/tests/src/JIT/config/benchmark/project.json index b11e62a75c..675f3ea27f 100644 --- a/tests/src/JIT/config/benchmark/project.json +++ b/tests/src/JIT/config/benchmark/project.json @@ -3,24 +3,24 @@ "Microsoft.DotNet.xunit.performance": "1.0.0-alpha-build0040", "Microsoft.DotNet.xunit.performance.analysis": "1.0.0-alpha-build0040", "Microsoft.DotNet.xunit.performance.runner.Windows": "1.0.0-alpha-build0040", - "Microsoft.NETCore.Platforms": "4.3.0-beta-24431-01", - "System.Collections.NonGeneric": "4.3.0-beta-24431-01", - "System.Console": "4.3.0-beta-24431-01", - "System.IO.FileSystem": "4.3.0-beta-24431-01", - "System.Linq": "4.3.0-beta-24431-01", - "System.Linq.Expressions": "4.3.0-beta-24431-01", - "System.Numerics.Vectors": "4.3.0-beta-24431-01", - "System.Runtime": "4.3.0-beta-24431-01", - "System.Runtime.Extensions": "4.3.0-beta-24431-01", - "System.Runtime.Numerics": "4.3.0-beta-24431-01", - "System.Text.RegularExpressions": "4.3.0-beta-24431-01", - "System.Threading": "4.3.0-beta-24431-01", - "System.Threading.Tasks": "4.3.0-beta-24431-01", - "System.Threading.Tasks.Parallel": "4.3.0-beta-24431-01", - "System.Diagnostics.Process": "4.3.0-beta-24431-01", - "System.Xml.XmlDocument": "4.3.0-beta-24431-01", - "System.Xml.XPath": "4.3.0-beta-24431-01", - "System.Xml.XPath.XmlDocument": "4.3.0-beta-24431-01", + "Microsoft.NETCore.Platforms": "1.0.2-beta-24514-06", + "System.Collections.NonGeneric": "4.3.0-beta-24514-06", + "System.Console": "4.3.0-beta-24514-06", + "System.IO.FileSystem": "4.3.0-beta-24514-06", + "System.Linq": "4.3.0-beta-24514-06", + "System.Linq.Expressions": "4.3.0-beta-24514-06", + "System.Numerics.Vectors": "4.3.0-beta-24514-06", + "System.Runtime": "4.3.0-beta-24514-06", + "System.Runtime.Extensions": "4.3.0-beta-24514-06", + "System.Runtime.Numerics": "4.3.0-beta-24514-06", + "System.Text.RegularExpressions": "4.3.0-beta-24514-06", + "System.Threading": "4.3.0-beta-24514-06", + "System.Threading.Tasks": "4.3.0-beta-24514-06", + "System.Threading.Tasks.Parallel": "4.3.0-beta-24514-06", + "System.Diagnostics.Process": "4.3.0-beta-24514-06", + "System.Xml.XmlDocument": "4.3.0-beta-24514-06", + "System.Xml.XPath": "4.3.0-beta-24514-06", + "System.Xml.XPath.XmlDocument": "4.3.0-beta-24514-06", "xunit": "2.2.0-beta2-build3300", "xunit.console.netcore": "1.0.2-prerelease-00177", "xunit.runner.utility": "2.2.0-beta2-build3300" diff --git a/tests/src/JIT/config/extra/project.json b/tests/src/JIT/config/extra/project.json index cea61e481b..a9ec9d637e 100644 --- a/tests/src/JIT/config/extra/project.json +++ b/tests/src/JIT/config/extra/project.json @@ -1,21 +1,21 @@ { "dependencies": { - "Microsoft.NETCore.Platforms": "4.3.0-beta-24431-01", - "System.Collections": "4.3.0-beta-24431-01", - "System.Console": "4.3.0-beta-24431-01", - "System.Diagnostics.Debug": "4.3.0-beta-24431-01", - "System.Runtime.InteropServices.RuntimeInformation": "4.3.0-beta-24431-01", - "System.Diagnostics.Process": "4.3.0-beta-24431-01", - "System.Globalization": "4.3.0-beta-24431-01", - "System.IO": "4.3.0-beta-24431-01", - "System.IO.FileSystem": "4.3.0-beta-24431-01", - "System.Reflection": "4.3.0-beta-24431-01", - "System.Reflection.Extensions": "4.3.0-beta-24431-01", - "System.Reflection.TypeExtensions": "4.3.0-beta-24431-01", - "System.Runtime": "4.3.0-beta-24431-01", - "System.Runtime.Extensions": "4.3.0-beta-24431-01", - "System.Runtime.CompilerServices.Unsafe": "4.3.0-beta-24431-01", - "System.Runtime.InteropServices": "4.3.0-beta-24431-01" + "Microsoft.NETCore.Platforms": "1.0.2-beta-24514-06", + "System.Collections": "4.3.0-beta-24514-06", + "System.Console": "4.3.0-beta-24514-06", + "System.Diagnostics.Debug": "4.3.0-beta-24514-06", + "System.Runtime.InteropServices.RuntimeInformation": "4.3.0-beta-24514-06", + "System.Diagnostics.Process": "4.3.0-beta-24514-06", + "System.Globalization": "4.3.0-beta-24514-06", + "System.IO": "4.3.0-beta-24514-06", + "System.IO.FileSystem": "4.3.0-beta-24514-06", + "System.Reflection": "4.3.0-beta-24514-06", + "System.Reflection.Extensions": "4.3.0-beta-24514-06", + "System.Reflection.TypeExtensions": "4.3.0-beta-24514-06", + "System.Runtime": "4.3.0-beta-24514-06", + "System.Runtime.Extensions": "4.3.0-beta-24514-06", + "System.Runtime.CompilerServices.Unsafe": "4.3.0-beta-24514-06", + "System.Runtime.InteropServices": "4.3.0-beta-24514-06" }, "frameworks": { "netcoreapp1.0": {} diff --git a/tests/src/JIT/config/minimal/project.json b/tests/src/JIT/config/minimal/project.json index bb33840a1a..3d3ebe5e5a 100644 --- a/tests/src/JIT/config/minimal/project.json +++ b/tests/src/JIT/config/minimal/project.json @@ -1,10 +1,10 @@ { "dependencies": { - "Microsoft.NETCore.Platforms": "4.3.0-beta-24431-01", - "System.Console": "4.3.0-beta-24431-01", - "System.Runtime": "4.3.0-beta-24431-01", - "System.Runtime.Extensions": "4.3.0-beta-24431-01", - "System.Runtime.InteropServices": "4.3.0-beta-24431-01" + "Microsoft.NETCore.Platforms": "1.0.2-beta-24514-06", + "System.Console": "4.3.0-beta-24514-06", + "System.Runtime": "4.3.0-beta-24514-06", + "System.Runtime.Extensions": "4.3.0-beta-24514-06", + "System.Runtime.InteropServices": "4.3.0-beta-24514-06" }, "frameworks": { "netcoreapp1.0": {} diff --git a/tests/src/JIT/config/threading+thread/project.json b/tests/src/JIT/config/threading+thread/project.json index d3d8683261..8788ae726a 100644 --- a/tests/src/JIT/config/threading+thread/project.json +++ b/tests/src/JIT/config/threading+thread/project.json @@ -1,12 +1,12 @@ { "dependencies": { - "Microsoft.NETCore.Platforms": "4.3.0-beta-24431-01", - "System.Console": "4.3.0-beta-24431-01", - "System.Numerics.Vectors": "4.3.0-beta-24431-01", - "System.Runtime": "4.3.0-beta-24431-01", - "System.Runtime.Extensions": "4.3.0-beta-24431-01", - "System.Threading": "4.3.0-beta-24431-01", - "System.Threading.Thread": "4.3.0-beta-24431-01" + "Microsoft.NETCore.Platforms": "1.0.2-beta-24514-06", + "System.Console": "4.3.0-beta-24514-06", + "System.Numerics.Vectors": "4.3.0-beta-24514-06", + "System.Runtime": "4.3.0-beta-24514-06", + "System.Runtime.Extensions": "4.3.0-beta-24514-06", + "System.Threading": "4.3.0-beta-24514-06", + "System.Threading.Thread": "4.3.0-beta-24514-06" }, "frameworks": { "netcoreapp1.0": {} diff --git a/tests/src/JIT/config/threading/project.json b/tests/src/JIT/config/threading/project.json index 3e04f840d8..d7dc904f3c 100644 --- a/tests/src/JIT/config/threading/project.json +++ b/tests/src/JIT/config/threading/project.json @@ -1,10 +1,10 @@ { "dependencies": { - "Microsoft.NETCore.Platforms": "4.3.0-beta-24431-01", - "System.Console": "4.3.0-beta-24431-01", - "System.Runtime": "4.3.0-beta-24431-01", - "System.Runtime.Extensions": "4.3.0-beta-24431-01", - "System.Threading": "4.3.0-beta-24431-01" + "Microsoft.NETCore.Platforms": "1.0.2-beta-24514-06", + "System.Console": "4.3.0-beta-24514-06", + "System.Runtime": "4.3.0-beta-24514-06", + "System.Runtime.Extensions": "4.3.0-beta-24514-06", + "System.Threading": "4.3.0-beta-24514-06" }, "frameworks": { "netcoreapp1.0": {} diff --git a/tests/src/baseservices/compilerservices/FixedAddressValueType/FixedAddressValueType.cs b/tests/src/baseservices/compilerservices/FixedAddressValueType/FixedAddressValueType.cs new file mode 100644 index 0000000000..bf10d817e5 --- /dev/null +++ b/tests/src/baseservices/compilerservices/FixedAddressValueType/FixedAddressValueType.cs @@ -0,0 +1,60 @@ +// 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. +// +using System; +using System.Runtime.CompilerServices; + +public struct Age { + public int years; + public int months; +} + +public class FreeClass +{ + public static Age FreeAge; + + public static unsafe IntPtr AddressOfFreeAge() + { + fixed (Age* pointer = &FreeAge) + { return (IntPtr) pointer; } + } +} + +public class FixedClass +{ + [FixedAddressValueType] + public static Age FixedAge; + + public static unsafe IntPtr AddressOfFixedAge() + { + fixed (Age* pointer = &FixedAge) + { return (IntPtr) pointer; } + } +} + +public class Example +{ + public static int Main() + { + // Get addresses of static Age fields. + IntPtr freePtr1 = FreeClass.AddressOfFreeAge(); + + IntPtr fixedPtr1 = FixedClass.AddressOfFixedAge(); + + // Garbage collection. + GC.Collect(3, GCCollectionMode.Forced, true, true); + GC.WaitForPendingFinalizers(); + + // Get addresses of static Age fields after garbage collection. + IntPtr freePtr2 = FreeClass.AddressOfFreeAge(); + IntPtr fixedPtr2 = FixedClass.AddressOfFixedAge(); + + if(freePtr1 != freePtr2 && fixedPtr1 == fixedPtr2) + { + return 100; + } + + return -1; + } +} diff --git a/tests/src/baseservices/compilerservices/FixedAddressValueType/FixedAddressValueType.csproj b/tests/src/baseservices/compilerservices/FixedAddressValueType/FixedAddressValueType.csproj new file mode 100644 index 0000000000..72ba0b9741 --- /dev/null +++ b/tests/src/baseservices/compilerservices/FixedAddressValueType/FixedAddressValueType.csproj @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid> + <OutputType>Exe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <FileAlignment>512</FileAlignment> + <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> + <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> + <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + <ReferenceLocalMscorlib>true</ReferenceLocalMscorlib> + <CLRTestKind>BuildAndRun</CLRTestKind> + <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + </PropertyGroup> + <!-- Default configurations to help VS understand the configurations --> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + </PropertyGroup> + <ItemGroup> + <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies"> + <Visible>False</Visible> + </CodeAnalysisDependentAssemblyPaths> + </ItemGroup> + <ItemGroup> + <!-- Add Compile Object Here --> + <Compile Include="FixedAddressValueType.cs" /> + </ItemGroup> + <ItemGroup> + <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> + </ItemGroup> + <ItemGroup> + <NoWarn Include="42016,42020,42025,42024" /> + </ItemGroup> + <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> + <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' "> + </PropertyGroup> +</Project> diff --git a/tests/src/baseservices/compilerservices/RuntimeHelpers/ExecuteCodeWithGuaranteedCleanup.cs b/tests/src/baseservices/compilerservices/RuntimeHelpers/ExecuteCodeWithGuaranteedCleanup.cs new file mode 100644 index 0000000000..58cee3ca36 --- /dev/null +++ b/tests/src/baseservices/compilerservices/RuntimeHelpers/ExecuteCodeWithGuaranteedCleanup.cs @@ -0,0 +1,62 @@ +// 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. +// +using System; +using System.Runtime.CompilerServices; + +namespace GCD +{ + /// <summary> + /// Summary description for Class1. + /// </summary> + class GCD + { + private int _val = -2; + private int _exitcode = -1; + public GCD() {} + public int GetExitCode(){ return _exitcode;} + public void g () + { + throw new System.Exception("TryCode test"); + } + public void TryCode0 (object obj) + { + _val = (int)obj; + g(); + } + public void CleanupCode0 (object obj, bool excpThrown) + { + if(excpThrown && ((int)obj == _val)) + { + _exitcode = 100; + } + } + } + + + class GCDTest + { + /// <summary> + /// The main entry point for the application. + /// </summary> + [STAThread] + static int Main(string[] args) + { + GCD gcd = new GCD(); + RuntimeHelpers.TryCode t = new RuntimeHelpers.TryCode(gcd.TryCode0); + RuntimeHelpers.CleanupCode c = new RuntimeHelpers.CleanupCode(gcd.CleanupCode0); + int val = 21; + try + { + RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(t, c, val); + } + catch (Exception Ex) + { + + } + + return gcd.GetExitCode(); + } + } +} diff --git a/tests/src/baseservices/compilerservices/RuntimeHelpers/ExecuteCodeWithGuaranteedCleanup.csproj b/tests/src/baseservices/compilerservices/RuntimeHelpers/ExecuteCodeWithGuaranteedCleanup.csproj new file mode 100644 index 0000000000..605d11b1f1 --- /dev/null +++ b/tests/src/baseservices/compilerservices/RuntimeHelpers/ExecuteCodeWithGuaranteedCleanup.csproj @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid> + <OutputType>Exe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <FileAlignment>512</FileAlignment> + <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> + <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> + <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + <ReferenceLocalMscorlib>true</ReferenceLocalMscorlib> + <CLRTestKind>BuildAndRun</CLRTestKind> + </PropertyGroup> + <!-- Default configurations to help VS understand the configurations --> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + </PropertyGroup> + <ItemGroup> + <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies"> + <Visible>False</Visible> + </CodeAnalysisDependentAssemblyPaths> + </ItemGroup> + <ItemGroup> + <!-- Add Compile Object Here --> + <Compile Include="ExecuteCodeWithGuaranteedCleanup.cs" /> + </ItemGroup> + <ItemGroup> + <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> + </ItemGroup> + <ItemGroup> + <NoWarn Include="42016,42020,42025,42024" /> + </ItemGroup> + <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> + <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' "> + </PropertyGroup> +</Project> diff --git a/tests/src/baseservices/compilerservices/RuntimeWrappedException/RuntimeWrappedException.cs b/tests/src/baseservices/compilerservices/RuntimeWrappedException/RuntimeWrappedException.cs new file mode 100644 index 0000000000..29fb347ae1 --- /dev/null +++ b/tests/src/baseservices/compilerservices/RuntimeWrappedException/RuntimeWrappedException.cs @@ -0,0 +1,63 @@ +// 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. +// +using System; +using System.IO; +using System.Runtime.CompilerServices; +using System.Runtime.Serialization; + +class Test +{ + public static int Main(string[] args) + { + int retVal = 0; + var thrower = new StringThrowerClass(); + try + { + thrower.InstanceMethod(); + } + + catch (RuntimeWrappedException ex) + { + + if ( !ex.WrappedException.ToString().Contains("Inside StringThrower") ) + { +// Console.WriteLine("Incorrect exception and/or message. Expected RuntimeWrappedException: An object that does not derive "+ +// "from System.Exception has been wrapped in a RuntimeWrappedException.\n But actually got: " + ex.InnerException); + retVal = -1; + } + + StreamingContext ctx; + +// TODO: Expose once we have access to FormatterConverter +// var info = new SerializationInfo(typeof(RuntimeWrappedException), new FormatterConverter()); +// ex.GetObjectData(info,ctx); +// + try + { + ex.GetObjectData(null,ctx); + } + catch (ArgumentNullException ex1) + { + retVal = 100; + } + catch (Exception ex1) + { + retVal = -1; + } + + + } + catch (Exception ex) + { +// Console.WriteLine("Incorrect exception thrown. Expected RuntimeWrappedException, but actually got: " + ex); + retVal = -2; + } + + + return retVal; + + + } +} diff --git a/tests/src/baseservices/compilerservices/RuntimeWrappedException/RuntimeWrappedException.csproj b/tests/src/baseservices/compilerservices/RuntimeWrappedException/RuntimeWrappedException.csproj new file mode 100644 index 0000000000..4b0c5cf68d --- /dev/null +++ b/tests/src/baseservices/compilerservices/RuntimeWrappedException/RuntimeWrappedException.csproj @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid> + <OutputType>Exe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <FileAlignment>512</FileAlignment> + <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> + <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> + <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + <ReferenceLocalMscorlib>true</ReferenceLocalMscorlib> + <CLRTestKind>BuildAndRun</CLRTestKind> + </PropertyGroup> + <!-- Default configurations to help VS understand the configurations --> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + </PropertyGroup> + <ItemGroup> + <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies"> + <Visible>False</Visible> + </CodeAnalysisDependentAssemblyPaths> + </ItemGroup> + <ItemGroup> + <!-- Add Compile Object Here --> + <Compile Include="RuntimeWrappedException.cs" /> + </ItemGroup> + <ItemGroup> + <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="StringThrower.ilproj" /> + </ItemGroup> + <ItemGroup> + <NoWarn Include="42016,42020,42025,42024" /> + </ItemGroup> + <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> + <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' "> + </PropertyGroup> +</Project> diff --git a/tests/src/baseservices/compilerservices/RuntimeWrappedException/StringThrower.il b/tests/src/baseservices/compilerservices/RuntimeWrappedException/StringThrower.il new file mode 100644 index 0000000000..92c9139f7c --- /dev/null +++ b/tests/src/baseservices/compilerservices/RuntimeWrappedException/StringThrower.il @@ -0,0 +1,40 @@ +// 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. + +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 2:0:0:0 +} + +.assembly StringThrower {} + +.class public auto ansi StringThrowerClass + extends [mscorlib]System.Object +{ + .field public static int32 intStatic + + + .method public hidebysig instance void + InstanceMethod() cil managed noinlining + { + .maxstack 8 + + ldstr "Inside StringThrower" + throw + ret + } // end of method A::methodA + + + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + + .maxstack 8 + ldarg.0 + call instance void class [mscorlib]System.Object::.ctor() + ret + } // end of method Test1::.ctor + +} diff --git a/tests/src/baseservices/compilerservices/RuntimeWrappedException/StringThrower.ilproj b/tests/src/baseservices/compilerservices/RuntimeWrappedException/StringThrower.ilproj new file mode 100644 index 0000000000..79667cc7c6 --- /dev/null +++ b/tests/src/baseservices/compilerservices/RuntimeWrappedException/StringThrower.ilproj @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <AssemblyName>$(MSBuildProjectName)</AssemblyName> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <FileAlignment>512</FileAlignment> + <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> + <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> + <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + </PropertyGroup> + <!-- Default configurations to help VS understand the configurations --> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + </PropertyGroup> + <ItemGroup> + <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies"> + <Visible>False</Visible> + </CodeAnalysisDependentAssemblyPaths> + </ItemGroup> + <PropertyGroup> + + </PropertyGroup> + <ItemGroup> + <Compile Include="StringThrower.il" /> + </ItemGroup> + <ItemGroup> + <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> + </ItemGroup> + <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> + <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' "> + </PropertyGroup> +</Project> diff --git a/tests/src/baseservices/compilerservices/modulector/moduleCctor.il b/tests/src/baseservices/compilerservices/modulector/moduleCctor.il new file mode 100644 index 0000000000..06bf6ac12c --- /dev/null +++ b/tests/src/baseservices/compilerservices/modulector/moduleCctor.il @@ -0,0 +1,110 @@ +// 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. + +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 2:0:0:0 +} + +.assembly moduleCctor {} +.assembly extern FieldTypes +{ + .publickeytoken = (C0 30 5C 36 38 0B A4 29 ) // .0\68..) + .ver 0:0:0:0 +} + + .method private hidebysig specialname rtspecialname static + void .cctor() cil managed + { + .maxstack 8 + nop + ldsfld int32 IntHolder::val + ldc.i4.1 + add + stsfld int32 IntHolder::val +// ldstr "modCctor.txt" +// ldstr "inside .cctor" +// call void [mscorlib]System.IO.File::WriteAllText(string, +// string) + ret + } // end of method Foo::.cctor + + +// =============== CLASS MEMBERS DECLARATION =================== +.class public auto ansi beforefieldinit IntHolder + extends [mscorlib]System.Object +{ + // Fields + .field public static int32 val + + // Methods + .method public hidebysig specialname rtspecialname + instance void .ctor () cil managed + { + // Method begins at RVA 0x2050 + // Code size 8 (0x8) + .maxstack 8 + + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ret + } // end of method IntHolder::.ctor + + .method private hidebysig specialname rtspecialname static + void .cctor () cil managed + { + // Method begins at RVA 0x2059 + // Code size 7 (0x7) + .maxstack 8 + + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 IntHolder::val + IL_0006: ret + } // end of method IntHolder::.cctor + + .method public hidebysig static + void Assign ( + int32 arg + ) cil managed + { + // Method begins at RVA 0x2078 + // Code size 8 (0x8) + .maxstack 8 + + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: stsfld int32 IntHolder::val + IL_0007: ret + } // end of method IntHolder::Assign + .method public hidebysig static + void Check ( + int32 arg + ) cil managed + { + // Method begins at RVA 0x2050 + // Code size 28 (0x1c) + .maxstack 2 + .locals init ( + [0] bool + ) + + IL_0000: nop + IL_0001: ldsfld int32 IntHolder::val + IL_0006: ldarg.0 + IL_0007: ceq + IL_0009: ldc.i4.0 + IL_000a: ceq + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: brfalse.s IL_001b + + IL_0010: ldstr "Mod Ctor did not functon correctly" + IL_0015: newobj instance void [mscorlib]System.Exception::.ctor(string) + IL_001a: throw + + IL_001b: ret + } // end of method IntHolder::Check +} // end of class IntHolder diff --git a/tests/src/baseservices/compilerservices/modulector/moduleCctor.ilproj b/tests/src/baseservices/compilerservices/modulector/moduleCctor.ilproj new file mode 100644 index 0000000000..c846e02edb --- /dev/null +++ b/tests/src/baseservices/compilerservices/modulector/moduleCctor.ilproj @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <AssemblyName>$(MSBuildProjectName)</AssemblyName> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <FileAlignment>512</FileAlignment> + <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> + <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> + <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + </PropertyGroup> + <!-- Default configurations to help VS understand the configurations --> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + </PropertyGroup> + <ItemGroup> + <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies"> + <Visible>False</Visible> + </CodeAnalysisDependentAssemblyPaths> + </ItemGroup> + <PropertyGroup> + + </PropertyGroup> + <ItemGroup> + <Compile Include="moduleCctor.il" /> + </ItemGroup> + <ItemGroup> + <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> + </ItemGroup> + <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> + <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' "> + </PropertyGroup> +</Project> diff --git a/tests/src/baseservices/compilerservices/modulector/runmoduleconstructor.cs b/tests/src/baseservices/compilerservices/modulector/runmoduleconstructor.cs new file mode 100644 index 0000000000..d1192f167a --- /dev/null +++ b/tests/src/baseservices/compilerservices/modulector/runmoduleconstructor.cs @@ -0,0 +1,38 @@ +// 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. +// +using System; +using System.Reflection; +using System.IO; +using System.Runtime.Loader; +using System.Runtime.CompilerServices; +using System.Globalization; + +class RuntimeHelperTest +{ + public static int Main(string[] args) + { + AssemblyLoadContext resolver0 = AssemblyLoadContext.Default; + Assembly asm0 = resolver0.LoadFromAssemblyName(new AssemblyName("moduleCctor")); + Module mod = asm0.ManifestModule; + + RuntimeHelpers.RunModuleConstructor(mod.ModuleHandle); + var oType = asm0.GetType("IntHolder",true); + MethodInfo check = oType.GetMethod("Check"); + MethodInfo assign = oType.GetMethod("Assign"); + + object[] initial = {1}; + object[] final = {100}; + + check.Invoke(null, initial); + assign.Invoke(null, final); + check.Invoke(null, final); + RuntimeHelpers.RunModuleConstructor(mod.ModuleHandle); + check.Invoke(null, final); + + + return 100; + + } +} diff --git a/tests/src/baseservices/compilerservices/modulector/runmoduleconstructor.csproj b/tests/src/baseservices/compilerservices/modulector/runmoduleconstructor.csproj new file mode 100644 index 0000000000..fff05ea610 --- /dev/null +++ b/tests/src/baseservices/compilerservices/modulector/runmoduleconstructor.csproj @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid> + <OutputType>Exe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <FileAlignment>512</FileAlignment> + <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> + <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> + <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + <ReferenceLocalMscorlib>true</ReferenceLocalMscorlib> + <CLRTestKind>BuildAndRun</CLRTestKind> + </PropertyGroup> + <!-- Default configurations to help VS understand the configurations --> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + </PropertyGroup> + <ItemGroup> + <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies"> + <Visible>False</Visible> + </CodeAnalysisDependentAssemblyPaths> + </ItemGroup> + <ItemGroup> + <!-- Add Compile Object Here --> + <Compile Include="runmoduleconstructor.cs" /> + </ItemGroup> + <ItemGroup> + <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="moduleCctor.ilproj" /> + </ItemGroup> + <ItemGroup> + <NoWarn Include="42016,42020,42025,42024" /> + </ItemGroup> + <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> + <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' "> + </PropertyGroup> +</Project> diff --git a/tests/src/dir.common.props b/tests/src/dir.common.props index 2e5bfd05a8..d5de5794d0 100644 --- a/tests/src/dir.common.props +++ b/tests/src/dir.common.props @@ -58,11 +58,6 @@ <TestRuntimeProjectLockJson>$(TestRuntimeProjectJsonDir)\project.lock.json</TestRuntimeProjectLockJson> </PropertyGroup> - <!-- Default priority building values. --> - <PropertyGroup> - <CLRTestKind Condition="'$(CLRTestKind)' == ' '">BuildAndRun</CLRTestKind> - <CLRTestPriority Condition="'$(CLRTestPriority)' == ''">0</CLRTestPriority> - </PropertyGroup> </Project> diff --git a/tests/src/dir.props b/tests/src/dir.props index 262feeaaaf..454db91dc4 100644 --- a/tests/src/dir.props +++ b/tests/src/dir.props @@ -10,7 +10,6 @@ <!-- Disable some C# warnings for the tests. --> <NoWarn>78,162,164,168,169,219,251,252,414,429,642,649,652,675,1691,1717,1718,3001,3002,3003,3005,3008</NoWarn> <GenerateAssemblyInfo>false</GenerateAssemblyInfo> - <CLRTestKind>BuildAndRun</CLRTestKind> <SkipSigning Condition="'$(CrossGen)' == 'true'">true</SkipSigning> <!-- Set the project.json directory for generated TestWrappers. --> <TestWrappersPackagesConfigFileDirectory>$(MSBuildThisFileDirectory)TestWrappersConfig\</TestWrappersPackagesConfigFileDirectory> diff --git a/tests/src/dir.targets b/tests/src/dir.targets index 31d9304880..8235ba91a7 100644 --- a/tests/src/dir.targets +++ b/tests/src/dir.targets @@ -1,8 +1,23 @@ <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <!-- Default priority building values. --> + <PropertyGroup> + <CLRTestKind Condition="'$(CLRTestKind)' == '' and '$(OutputType)' == 'Library'">SharedLibrary</CLRTestKind> + <CLRTestKind Condition="'$(CLRTestKind)' == ''">BuildAndRun</CLRTestKind> + <CLRTestPriority Condition="'$(CLRTestPriority)' == ''">0</CLRTestPriority> + </PropertyGroup> + <!-- All CLRTests need to be of a certain "kind". These kinds are enumerated below. By default all tests are BuildAndRun. This means that the build system will Build them and construct a run-batch-script for them. --> <Choose> + <When Condition=" '$(CLRTestKind)'=='SharedLibrary'"> + <PropertyGroup> + <_CLRTestCompilesSource>true</_CLRTestCompilesSource> + <_CLRTestNeedsToRun>false</_CLRTestNeedsToRun> + <GenerateRunScript>false</GenerateRunScript> + <_CLRTestBuildsExecutable>false</_CLRTestBuildsExecutable> + </PropertyGroup> + </When> <When Condition=" '$(CLRTestKind)'=='BuildAndRun' "> <PropertyGroup> <GenerateRunScript>true</GenerateRunScript> @@ -28,14 +43,6 @@ <_CLRTestCompilesSource>false</_CLRTestCompilesSource> </PropertyGroup> </When> - <When Condition=" '$(CLRTestKind)'=='SharedLibrary' Or '$(OutputType)' == 'Library' "> - <PropertyGroup> - <_CLRTestCompilesSource>true</_CLRTestCompilesSource> - <_CLRTestNeedsToRun>false</_CLRTestNeedsToRun> - <GenerateRunScript>false</GenerateRunScript> - <_CLRTestBuildsExecutable>false</_CLRTestBuildsExecutable> - </PropertyGroup> - </When> </Choose> <PropertyGroup> diff --git a/tests/x86_jit32_issues.targets b/tests/x86_jit32_issues.targets index 0f573812a9..b16941076e 100644 --- a/tests/x86_jit32_issues.targets +++ b/tests/x86_jit32_issues.targets @@ -320,7 +320,7 @@ <Issue>5286</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\Dev11\External\dev11_239804\ShowLocallocAlignment\ShowLocallocAlignment.cmd"> - <Issue>needs triage</Issue> + <Issue>7163</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\JitBlue\GitHub_4044\GitHub_4044\GitHub_4044.cmd"> <Issue>needs triage</Issue> diff --git a/tests/x86_legacy_backend_issues.targets b/tests/x86_legacy_backend_issues.targets index c18d0e6a6c..ef4ff0a840 100644 --- a/tests/x86_legacy_backend_issues.targets +++ b/tests/x86_legacy_backend_issues.targets @@ -137,7 +137,7 @@ <Issue>2414</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\opt\cse\HugeArray1\HugeArray1.cmd"> - <Issue>needs triage</Issue> + <Issue>2408</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\regress\ndpw\21220\b21220\b21220.cmd"> <Issue>2414</Issue> @@ -229,16 +229,16 @@ <Issue>3392</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\divrem\div\u8div_cs_do\u8div_cs_do.cmd"> - <Issue>needs triage</Issue> + <Issue>2413</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\divrem\div\u8div_cs_ro\u8div_cs_ro.cmd"> - <Issue>needs triage</Issue> + <Issue>2413</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\divrem\rem\u8rem_cs_do\u8rem_cs_do.cmd"> - <Issue>needs triage</Issue> + <Issue>2412</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\divrem\rem\u8rem_cs_ro\u8rem_cs_ro.cmd"> - <Issue>needs triage</Issue> + <Issue>2412</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\tailcall_v4\smallFrame\smallFrame.cmd"> <Issue>tail. call pop ret is only supported on amd64</Issue> @@ -253,13 +253,13 @@ <Issue>needs triage</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\opt\Tailcall\TailcallVerifyWithPrefix\TailcallVerifyWithPrefix.cmd"> - <Issue>x86 JIT doesn't support implicit tail call optimization or tail. call pop ret sequence</Issue> + <Issue>2420. x86 JIT doesn't support implicit tail call optimization or tail. call pop ret sequence</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\Roslyn\CscBench\CscBench.cmd"> <Issue>6844</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\Dev11\External\dev11_239804\ShowLocallocAlignment\ShowLocallocAlignment.cmd"> - <Issue>needs triage</Issue> + <Issue>7163</Issue> </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\managed\Compilation\Compilation\Compilation.cmd"> <Issue>needs triage</Issue> |