1. 18 6月, 2022 15 次提交
    • S
      Remove some dead code / branches (#70146) · 9d0fcb5c
      Stephen Toub 提交于
      * Remove some dead code / branches
      
      Some signal amidst the noise in an lgtm.com report.
      
      * Address PR feedback
      9d0fcb5c
    • L
      Enable lib tests that used to fail with GC issues (#70831) · 6dc9faa8
      Lakshan Fernando 提交于
      * enable lib tests that used to fail with GC issues
      
      * excluding linq parallel test since that doesn't build
      
      * Threading.Thread tests have issues
      
      * Excluding new test failures
      6dc9faa8
    • S
      Use u8 in a few more places (#70894) · 7a2cccd6
      Stephen Toub 提交于
      * Use u8 in a few more places
      
      * A few more u8s
      7a2cccd6
    • A
      Harden for null byrefs (#70317) · 4adb1172
      Aaron Robinson 提交于
      * Remove enum_flag_Unrestored usage in boxing stubs.
      
      * Add AND instruction (21h) to x86 decoder.
      
      * Update mono for null ref in interpreter paths.
      
      * Disable test on llvmfullaot and wasm
      
      * Handle null destination for intrinsics.
      4adb1172
    • D
      [main] Update dependencies from dotnet/runtime dotnet/icu dotnet/xharness... · e9175f47
      dotnet-maestro[bot] 提交于
      [main] Update dependencies from dotnet/runtime dotnet/icu dotnet/xharness dotnet/runtime-assets dotnet/emsdk dotnet/roslyn-analyzers (#70476)
      
      * Update dependencies from https://github.com/dotnet/runtime-assets build 20220608.1
      
      Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.Formats.Tar.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData
       From Version 7.0.0-beta.22281.1 -> To Version 7.0.0-beta.22308.1
      
      * Update dependencies from https://github.com/dotnet/emsdk build 20220608.2
      
      Microsoft.NET.Workload.Emscripten.Manifest-7.0.100
       From Version 7.0.0-preview.6.22281.1 -> To Version 7.0.0-preview.6.22308.2
      
      * Update dependencies from https://github.com/dotnet/xharness build 20220610.1
      
      Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
       From Version 1.0.0-prerelease.22305.1 -> To Version 1.0.0-prerelease.22310.1
      
      * Revert "Update dependencies from https://github.com/dotnet/emsdk build 20220608.2"
      
      This reverts commit bbb4e156.
      
      * Update dependencies from https://github.com/dotnet/icu build 20220609.1
      
      Microsoft.NETCore.Runtime.ICU.Transport
       From Version 7.0.0-preview.6.22306.1 -> To Version 7.0.0-preview.6.22309.1
      
      * Update dependencies from https://github.com/dotnet/emsdk build 20220608.2
      
      Microsoft.NET.Workload.Emscripten.Manifest-7.0.100
       From Version 7.0.0-preview.6.22281.1 -> To Version 7.0.0-preview.6.22308.2
      
      * Update dependencies from https://github.com/dotnet/runtime-assets build 20220610.1
      
      Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.Formats.Tar.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData
       From Version 7.0.0-beta.22281.1 -> To Version 7.0.0-beta.22310.1
      
      * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20220610.1
      
      Microsoft.CodeAnalysis.NetAnalyzers
       From Version 7.0.0-preview1.22302.1 -> To Version 7.0.0-preview1.22310.1
      
      * Update dependencies from https://github.com/dotnet/runtime build 20220612.5
      
      Microsoft.NET.Sdk.IL , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.DotNetHost , Microsoft.NETCore.DotNetHostPolicy , Microsoft.NETCore.ILAsm , runtime.native.System.IO.Ports , System.Text.Json
       From Version 7.0.0-preview.6.22305.4 -> To Version 7.0.0-preview.6.22312.5
      
      * Update dependencies from https://github.com/dotnet/icu build 20220613.1
      
      Microsoft.NETCore.Runtime.ICU.Transport
       From Version 7.0.0-preview.6.22306.1 -> To Version 7.0.0-preview.6.22313.1
      
      * Update dependencies from https://github.com/dotnet/xharness build 20220613.1
      
      Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
       From Version 1.0.0-prerelease.22310.1 -> To Version 1.0.0-prerelease.22313.1
      
      * Update dependencies from https://github.com/dotnet/runtime-assets build 20220613.1
      
      Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.Formats.Tar.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData
       From Version 7.0.0-beta.22281.1 -> To Version 7.0.0-beta.22313.1
      
      * Update dependencies from https://github.com/dotnet/emsdk build 20220613.1
      
      Microsoft.NET.Workload.Emscripten.Manifest-7.0.100
       From Version 7.0.0-preview.6.22281.1 -> To Version 7.0.0-preview.6.22313.1
      
      * [wasm] Wasm.Build.Tests: Disable strict version checks for emcc
      
      Due to the way we have to update `dotnet/emsdk`, and get the update PRs
      in `runtime`, the emsdk version can be mismatched. For example, if
      `dotnet/emsdk` has already updated to `3.1.12`, but `dotnet/runtime` is
      still on `3.1.7`. This is an expected scenario while working on updating
      to a newer emscripten.
      
      The version mismatch will still show up, but as a warning now.
      
      * Update dependencies from https://github.com/dotnet/xharness build 20220614.1
      
      Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
       From Version 1.0.0-prerelease.22310.1 -> To Version 1.0.0-prerelease.22314.1
      
      * [wasm] Wasm.Build.Tests: Update Skiasharp reference
      
      The skiasharp dependent tests fail with:
      `error : undefined symbol: _ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv`.
      
      Update the reference to the latest package which added a binary compiled
      for `3.1.7`.
      
      * [wasm] Workaround a test failure in WBT
      
      Currently, there is a mismatch between emsdk versions with the workload
      emscripten packs using `3.1.12`, and the runtime being built with
      `3.1.7`. And that is causing
      `Wasm.Build.Tests.NativeLibraryTests.ProjectUsingSkiaSharp` to fail with:
      
      ```
      EXEC : error : undefined symbol: _ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv (referenced by top-level compiled C/C++ code) [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
      EXEC : warning : Link with `-sLLD_REPORT_UNDEFINED` to get more information on undefined symbols [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
      EXEC : warning : To disable errors for undefined symbols use `-sERROR_ON_UNDEFINED_SYMBOLS=0` [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
      EXEC : warning : __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
      EXEC : error : undefined symbol: _ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv (referenced by top-level compiled C/C++ code) [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
      EXEC : warning : __ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
      EXEC : error : Aborting compilation due to previous errors [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
      emcc : error : '/datadisks/disk1/work/B1420981/w/ACC90933/e/dotnet-workload/packs/Microsoft.NET.Runtime.Emscripten.3.1.12.Node.linux-x64/7.0.0-preview.6.22313.1/tools/bin/node /datadisks/disk1/work/B1420981/w/ACC90933/e/dotnet-workload/packs/Microsoft.NET.Runtime.Emscripten.3.1.12.Sdk.linux-x64/7.0.0-preview.6.22313.1/tools/emscripten/src/compiler.js /datadisks/disk1/work/B1420981/t/tmp44tn7y2d.json' failed (returned 1) [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
      ```
      
      This commit adds a temporary workaround to ignore the undefined symbols
      for this specific test. And this should be removed when runtime is
      updated to `3.1.12` .
      Co-authored-by: Ndotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
      Co-authored-by: NAlexander Köplinger <alex.koeplinger@outlook.com>
      Co-authored-by: NLarry Ewing <lewing@microsoft.com>
      Co-authored-by: NAnkit Jain <radical@gmail.com>
      e9175f47
    • A
      Append the function pointer type (#70923) · df822e75
      Aaron Robinson 提交于
      The issue here was the recursion into PrettyPrintSigWorkerInternal
      that would reset the buffer. Now, we pass in a new buffer and append
      it when we return.
      df822e75
    • S
    • J
      Add support for delegate GDV and method-based vtable GDV (#68703) · cae8546c
      Jakob Botsch Nielsen 提交于
      Add support for instrumenting delegate calls and vtable calls into method handle histograms. Use these histograms to do GDV for delegate calls and also support method-based GDV for vtable calls.
      
      For instrumentation we now support class probes at interface call sites, method probes at delegate call sites and both class probes and method probes at vtable call sites. For vtable calls, when turned on, instrumentation produces both histograms as PGO data so that the JIT can later make the choice about what is the best form of guard to use at that site.
      
      For guarding, there are some things to take into account. Delegate calls currently (practically) always point to precode, so this PR is just guarding on getFunctionFixedEntryPoint which returns the precode address, and this is generally quite cheap (same cost as class-based GDV). That's the case for delegates pointing to instance methods anyway, this PR does not support static methods yet -- those will be more expensive.
      
      For vtable calls the runtime will backpatch the slots when tiering, so the JIT guards the address retrieved from the vtable against an indirection of the slot, which is slightly more expensive than a class-based guard.
      
      Currently the instrumentation is enabled conditionally with COMPlus_JitDelegateProfiling=1 (for delegates) and COMPlus_JitVTableProfiling=1 (for vtable calls). Currently delegate profiling is turned on by default while vtable profiling is off by default.
      cae8546c
    • J
      Replace the remaining uses of Marshal.PtrToStructure in core networking (#70900) · 9dfdfbf1
      Jan Kotas 提交于
      * Rename ICMP interop to match Windows SDK names
      9dfdfbf1
    • M
      0666d9d6
    • A
      Remove #define Sleep (#70868) · 0d0fd755
      Aaron Robinson 提交于
      * Remove #define Sleep
      0d0fd755
    • C
      Fix bug in Tar preventing extraction of hardlinks or entries starting with `.\` (#70853) · 051b4828
      Carlos Sanchez 提交于
      * Add PlatformDetection.SupportsHardLinkCreation property.
      
      * Fix how paths are combined/joined and sanitized on extraction, to ensure paths with redundant segments get properly handled.
      
      * Add tests that verify archives with entries whose paths start with .\, including the root folder itself.
      
      * Re-enable the hardlink test, condition it to not run if platform does not support extraction of hardlinks.
      
      * Remove unnecessary test - This same code is already being tested by TarReader_ExtractToFile_Tests.ExtractEntriesWithSlashDotPrefix
      
      * Reuse test code that retrieves memory stream.
      
      * Bump test data package version
      
      * Add missing typeof(PlatformDetection) in ConditionalFact
      Co-authored-by: Ncarlossanlop <carlossanlop@users.noreply.github.com>
      051b4828
    • A
      [wasm] Add support for per-project customization of helix work items (#70461) · 2627ea38
      Ankit Jain 提交于
      * [wasm] Add support for per-project customization of helix work items
      
      Currently, for sending tests to helix:
      1. the project binaries are zipped, as part of the project build
      2. then separate helix targets files build that adds helix items for
         those zip files.
          - for wasm, we test with multiple 'scenarios' - like v8, browser, and
          nodejs.
          - so, 3 helix work items are submitted per zip file
      
      - If a test project needs to have any customizations, for example, for
        testing crypto with a managed implementation, and subtlecrypto, which
        would require:
        - passing different arguments to xharness, in case of managed, and
          subtlecrypto
        - and this should be done only for the browser case
        - Currently, this would need this would need to be done in
        `sendtohelix-wasm.targets` special casing for the test project, and
        scenario.
      
      - We add support for importing `$(ProjectName).helix.targets`, and
        calling a special target in that to add helix items, as needed.
      
      - This targets file can be set in the test project like:
      ```xml
      <HelixTargetsFile Condition="'$(TargetOS)' == 'Browser'">wasm.helix.targets</HelixTargetsFile>
      ```
        - it will get deployed next to the zip file, and picked up automatically
      
      ```xml
      <Project>
        <PropertyGroup>
          <_CryptoProjectName>System.Security.Cryptography.Tests</_CryptoProjectName>
          <System_Security_Cryptography_Tests_TargetName Condition="'$(Scenario))' == 'WasmTestOnBrowser'">System_Security_Cryptography_Tests_Targ
      et</System_Security_Cryptography_Tests_TargetName>
        </PropertyGroup>
      
        <Target Name="System_Security_Cryptography_Tests_Target">
          <ItemGroup>
            <HelixWorkItem Include="$(Scenario)-managed-$(_CryptoProjectName)">
              <PayloadArchive>$(TestArchiveTestsDir)$(_CryptoProjectName).zip</PayloadArchive>
              <Command>$(HelixCommand)</Command>
              <Timeout>$(_workItemTimeout)</Timeout>
            </HelixWorkItem>
      
            <HelixWorkItem Include="$(Scenario)-subtlecrypto-System.Security.Cryptography.Tests">
              <PayloadArchive>$(TestArchiveTestsDir)$(_CryptoProjectName).zip</PayloadArchive>
              <Command>$(HelixCommand)</Command>
              <Timeout>$(_workItemTimeout)</Timeout>
      
              <PreCommands Condition="'$(OS)' == 'Windows_NT'">set &quot;WasmXHarnessArgs=--web-server-use-cors&quot;</PreCommands>
              <PreCommands Condition="'$(OS)' != 'Windows_NT'">export &quot;WasmXHarnessArgs=--web-server-use-cors&quot;</PreCommands>
            </HelixWorkItem>
          </ItemGroup>
        </Target>
      ```
      
      - The targets file *must* have these:
          - a property named like `System_Security_Cryptography_Tests_TargetName`, for a
            test project named `System.Security.Cryptography.Tests`
          - if this property is not set, then the default behavior of adding
            work items will run
          - The target should add any items it needs to to `@(HelixWorkItem)`.
            - Examples of adding these can be seen in `sendtohelix*` project files
      
      - Remember that all these properties, and targets get imported into the
        msbuild *global* namespace, so make sure to use unique names to avoid
        conflicts with other test projects.
      
      Future work: this commit only enables it for wasm/library tests, but it should
      be easy to extract it out, but needs some testing.
      
      * [wasm] Helix: test with, and without subtle crypto
      
      * disable non-wasm builds
      
      * address review feedback
      
      * Address review feedback
      
      * Fix typo
      
      * Revert "disable non-wasm builds"
      
      This reverts commit 7ef99e81f82200189dd3f61eeaf00d6ca4ced6d4.
      
      * Update src/libraries/System.Security.Cryptography/tests/wasm.helix.targets
      Co-authored-by: NEric Erhardt <eric.erhardt@microsoft.com>
      
      * Address review feedback
      
      * remove debug spew
      
      * Change the way helix extension targets are discovered.
      
      The new approach:
      
      To run a custom project specific target for adding/editing @(HelixWorkItem):
      
      - In the project add:
          `<HelixTargetsFile Condition="'$(TargetOS)' == 'Browser'">wasm.helix.targets</HelixTargetsFile>`
      
          - This file gets copied next to the test archive as $(MSBuildProjectName).helix.targets
      
      - In this `wasm.helix.targets` file, add to $(HelixExtensionTargets) to run your custom target
      
      ```xml
        <PropertyGroup Condition="'$(IsRunningLibraryTests)' == 'true' and '$(Scenario)' == 'WasmTestOnBrowser'">
          <HelixExtensionTargets>$(HelixExtensionTargets);_AddHelixCrypoItems</HelixExtensionTargets>
      ```
      
      - The extension target will be called after the default items are added
        to `@(HelixWorkItem)`.
      - Useful properties to condition on: $(Scenario), $(IsRunningLibraryTests)
      - And add to, change, or remove from @(HelixWorkItem)
      
      Example:
      ```xml
        <Target Name="_AddHelixCrypoItems">
          <ItemGroup>
            <!-- remove the existing item -->
            <HelixWorkItem Remove="@(HelixWorkItem)" Condition="'%(OriginalFileName)' == '$(_CryptoProjectName)'" />
      
              <!-- add two new ones - managed, and subtylecrypto -->
            <HelixWorkItem Include="$(WorkItemPrefix)managed-$(_CryptoProjectName)">
              <PayloadArchive>$(TestArchiveTestsDir)$(_CryptoProjectName).zip</PayloadArchive>
              <Command>$(HelixCommand)</Command>
              <Timeout>$(_workItemTimeout)</Timeout>
              <OriginalFileName>$(_CryptoProjectName)</OriginalFileName>
            </HelixWorkItem>
      
            <HelixWorkItem Include="$(WorkItemPrefix)subtlecrypto-$(_CryptoProjectName)">
              <PayloadArchive>$(TestArchiveTestsDir)$(_CryptoProjectName).zip</PayloadArchive>
              <Command>$(HelixCommand)</Command>
              <Timeout>$(_workItemTimeout)</Timeout>
              <OriginalFileName>$(_CryptoProjectName)</OriginalFileName>
      
              <PreCommands Condition="'$(OS)' == 'Windows_NT'">set &quot;WasmXHarnessArgs=%WasmXHarnessArgs% --web-server-use-cop&quot;</PreCommands>
              <PreCommands Condition="'$(OS)' != 'Windows_NT'">export &quot;WasmXHarnessArgs=$WasmXHarnessArgs --web-server-use-cop&quot;</PreCommands>
            </HelixWorkItem>
      
            <_CryptoHelixItem Include="@(HelixWorkItem)"
                              Condition="$([System.String]::new('%(HelixWorkItem.Identity)').EndsWith('-$(_CryptoProjectName)'))" />
          </ItemGroup>
      
          <Error Text="Something went wrong. Expected to have only two work items for $(_CryptoProjectName). But got @(_CryptoHelixItem)"
                 Condition="@(_CryptoHelixItem->Count()) != 2" />
        </Target>
      ```
      
      * cleanup
      
      * Move WBT specific stuff into the target too. This will make it simpler to move it off into a targets file later
      
      * fix build
      
      * fix libtests
      
      * fix wbt
      
      * [wasm] Bump helix timeout to 90mins for debugger tests on windows
      Co-authored-by: NEric Erhardt <eric.erhardt@microsoft.com>
      2627ea38
    • E
      Add event to capture min/max threads (#70063) · 41d9c1cc
      Eduardo Velarde 提交于
      Event ThreadPoolMinMaxThreads added. 
      
      Parameters are:
                  ushort MinWorkerThreads
                  ushort MaxWorkerThreads
                  ushort MinIOCompletionThreads
                  ushort MaxIOCompletionThreads
                  ushort ClrInstanceID
      
      It is fired in the ThreadPool constructor and in the SetMinThreads/SetMaxThreads functions.
      41d9c1cc
    • K
  2. 17 6月, 2022 25 次提交