forked from dotnet/runtime
-
Notifications
You must be signed in to change notification settings - Fork 8
Sync with upstream main branch #38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…otnet#64482) In my recent change I fixed C# test projects to stop using command-line arguments. This follow-up change complements it by applying the same transformation to IL projects. In most cases the arguments were ignored so the transformation was trivial; in the special case of twoEndFinallys.il the argument array is passed to the method TwoEndFinallys so I patched it to allocate a zero-sized string array instead (there are no tests passing actual command-line arguments to the test app). Thanks Tomas
…otnet#64285) - call cancel when disposing ReadableStream - add unit test for the scenario - enabled cancelation tests for browser - fixed few cancelation issues Co-authored-by: Larry Ewing <[email protected]>
…bad code (dotnet#64486) To get good behavior in typescript, your enums need to be 'const enum', otherwise it generates some really gross JS with runtime overhead.
* Fix the GCInfo for types containing ByRef fields. Update tests to use recursion and validate GCStress scenarios. * Update stack walking for ref field discovery. * Indicate the TypedReference is a value type during field initialization. - This was missed in the initial support for ref fields.
* Fold S.S.C.Csp into System.Security.Cryptography This change leaves the tests in System.Security.Cryptography.Csp.Tests.dll, because the crypto test infrastructure has not yet been upgraded to allow for two algorithm provider tests in the same assembly (e.g. not both Aes.Create() and AesCryptoServiceProvider can be tested) * Change CryptoConfig string lookups to typeof for CSP types * Fold S.S.C.Cng into S.S.Cryptography * Fold S.S.C.OpenSsl into S.S.Cryptography * Fold S.S.C.X509Certificates into S.S.Cryptography * Fix dependent projects * Fix ApiCompat errors * Self-feedback * Use typeof where now possible in CryptoConfig * Don't use CNG's PKCS8 export for default EC objects * RSA should probably function on Unix * Fix nullability state of ChainPal.BuildChain across OSes * Remove bad assert * Special case macOS ECC data keys in CopyWithPrivateKey * Undo some of the string resurrections * Add missing Obsolete attribute
Wrap the SendPingAsync function with LogExceptions in Http2Connection.cs to avoid any exception here being caught as an UnobservedTaskException. Fix dotnet#64450 Signed-off-by: Shubhanshu Saxena <[email protected]>
This is meant to address the flakiness where chain building can time out for very busy CI machines. The test fixture is already outerloop, so extending the timeout should not adversely affect CI inner loop performance.
* Add regression test for object[] -> Int32Enum[] array copy where each element in the source array is the appropriate type * Fix downcast check in slow array copy When we have to resort to checking element by element, compare the type of each actual element with the destination type. In particular, not the destinations underlying type when it's an enum - we don't want to allow unrelated enums using the same representation to copy over. Fixes dotnet#64387
dotnet#64347) Fixes dotnet#21678 Co-authored-by: Adam Sitnik <[email protected]>
Context: dotnet#64232 Add 2 simple WebAssembly templates, `wasmbrowser` and `wasmconsole`. The templates are packed into the nuget package, which is added to the `wasm-tools` workload manifest. When the workload is installed, the templates can be used with `dotnet new` command. Add build tests to exercise the use of the templates - create, build and publish browser and console projects. * [wasm] Initial templates implementation * Use GetProductVersions target To have package version with product version suffix, like `7.0.0-ci`. * Do not set WasmAppDir in templates * Add build tests for new templates * Add newlines * Apply suggestions from code review Co-authored-by: Marek Fišera <[email protected]> * Convert the console template to CommonJS/node Also * add README with hint how to run the app * use top level statement to be consistent with browser template * Add new section about the templates to the README * Fix formatting Co-authored-by: Marek Fišera <[email protected]>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…et#64521) * Delete code related to CompilationRelaxations.NoStringInterning The code that was dealing with this relaxation was deleted in dotnet#57693 last year (ceeload.cpp, line 4006). We still had code that was telling RyuJIT not to inline string literals across modules if `NoStringInterning` is active because it might be observable, but since fragile NGen got deleted, I don't believe it's actually observable anymore and we could have deleted this together with fragile NGen support. Closes dotnet#53726 - we no longer need to worry about loosening the restriction - we just drop it all.
…otnet#64503) .. unstable right now.
In looking through usage data, it's pretty common to call Enumerable.Min/Max with an array. At the cost of a type check when the source isn't an array, we can speed up the cases where it is, at a minimum by avoiding interface dispatch and in the best case by vectorizing.
* Remove some StringBuilderCache usage from Corelib * Address PR feedback
Turns out CoreCLR uses platformgroups a lot for managing extra pipelines, and ignores valid subsets for these pipelines. We should just... not try and get involved in platformgroups.
* Optimize path check to skip to if statement if result is false. If result is false, there is no reason to run the PathInternal.IsDirectorySeparator function, since no matter what it returns, the "result = result && ..." will always yeild false, since result is false already. So the entire if statement can be skipped, if result is false, since it cannot possible change result to a true. * Updated code to reduce code duplication
…urce file (it needs to be truncated) (dotnet#64537)
* Setup test pipeline for closest possible setup to what is currently working for android startup with the new adb method being used. * Fix android scenario problems. * Use latest xharness version for testing popen fix. * Wrong branch changed. * Final run setup for runtime part of the repo. * Use test branch for full run test and keep it until the test finishes. * Change perf pull branch back to main, hold until test run is complete. * Add in iOS runtime builds for sure, and change branch for testing. * Add in the file extraction of the built ios packs and changed workload typo to runtime to better match actual meaning. * Revert back to main branch for setup. * Git missed ios-arm runtime extraction, add that in.
* Use stable outputs in illink targets While building locally multiple times, I noticed that the incremental build of the illink-targets are now to aggressive and could cause the targets to either never run or too often. This could be the case when the linker doesn't trim anything and copies the inputs to the outputs directory with preserving the timestamps. In such cases the inputs would always be newer than the outputs and the step would alway run. Also the path that was used to construct the outputs was missing a trailing directory separator. Using a marker file instead to not be dependent on the freshness of the linker output.
Some libraries still had ProjectReferences to libraries which refs were added to the targeting pack with the last release. Therefore these references can just be normal "Reference" items instead of P2Ps.
This wasm debugger test has been causing frequent failures in the rolling build.
…otnet#64546)" (dotnet#64574) This reverts commit 09f681f. This isn't needed as the tests are being run only in `runtime-staging` now. And this commit itself doesn't build.
Adds a msbuild property `PositionIndependentExecutable` to the -pie flag. While good by default for security reasons they might make binary incompatible with certain tools.
* Update mac Helix queues * Adjust test to account for Mac RID changes * Disable DllImport probing test on Mac * Disable profiler.multiple on Mac
…net#64708) Previously I refactored these tests by moving the entrypoints from the shared body_xxx source files into the test-specific expl_* and seq_* source files but I didn't realize I'd also need to put them into new uniquely named classes as we clearly cannot distinguish 30 methods named AA.TestEntrypoint(). Thanks Tomas
…tnet#64709) This is an interesting special example of deduplication where each of the tests (Test1, Test2, Test4) runs alternatively in a single-assembly or multiple-assembly mode (compiled together with the dependent source files teststr.cs / testgenstr.cs vs. using them via dependent projects teststr.csproj / testgenstr.csproj). As the actual content of the test source code is the same in both cases and just Roslyn-compiles slightly differently based on the project structure, I have come to the conclusion that in this particular case the least amount of churn can be achieved via a preprocessor define that is used to variate the class name in the main test source files. The tests were originally building in three flavors - "in-assembly", "cross-assembly" and "cross-module". I have deleted the "cross-module" variants as I believe that they are identical to "cross-assembly". Thanks Tomas
* Use ordinal comparison for known header values * Match 'text/html; charset=UTF-8' again
In this particular class of tests deduplicating tests via namespace names is not useful as they use common modules expecting the namespaces to match. Thanks Tomas
* re-enable some tests * [wasm][debugger] Fix racy test - ExceptionTestAllWithReload This test is set up to pause on all exceptions. So, it has some code to hit `Debugger.resume` 100 times, hoping to skip all the non-user code exceptions. But this can sometimes not be enough, and you might have more exceptions which breaks rest of the test. Instead, we try to resume till we won't get paused for a period of 10secs. And after that, we can call the user code, and execute rest of the test. Fixes dotnet#62666 . * [wasm][debugger] Fix racy tests that use late loaded assemblies `DebuggerTests.MiscTests.DebugLazyLoadedAssemblyWithEmbeddedPdb` `DebuggerTests.BreakpointTests.BreakpointInAssemblyUsingTypeFromAnotherAssembly_BothDynamicallyLoaded` These tests load assemblies dynamically, and depend on breakpoints in those assemblies being resolved. But the tests don't wait for that to happen. So, they can some times fail when the managed method is invoked before the breakpoint being resolved. Fixes dotnet#62823 Fixes dotnet#62667
Disable intrinsics tests that throw NotSupportedPlatformException on the corresponding platforms: * Add JIT/HardwareIntrinsics/** to ExcludeList on Arm32 in src/tests/issues.targets * Add JIT/HardwareIntrinsics/General/Vector256/** to ExcludeList on Arm64 in src/tests/issues.targets * Add JIT/HardwareIntrinsics/X86/** to ExcludeList on Arm64 in src/tests/issues.targets * Add JIT/HardwareIntrinsics/General/Vector64/** to ExcludeList on X64 in src/tests/issues.targets * Add JIT/HardwareIntrinsics/Arm/** to ExcludeList on X64 in src/tests/issues.targets * Add JIT/HardwareIntrinsics/General/Vector64/** to ExcludeList on X86 in src/tests/issues.targets * Add JIT/HardwareIntrinsics/Arm/** to ExcludeList on X86 in src/tests/issues.targets
Extend ref counting done by local morph so that we can determine single-def single-use locals. Add a phase that runs just after local morph that will attempt to forward single-def single-use local defs to uses when they are in adjacent statements. Fix or work around issues uncovered elsewhere: * `gtFoldExprCompare` might fold "identical" volatile subtrees * `fgGetStubAddrArg` cannot handle complex trees * some simd/hw operations can lose struct handles * some calls cannot handle struct local args * morph expects args not to interfere * fix arm; don't forward sub no return calls * update debuginfo test (we may want to revisit this) * handle subbing past normalize on store assignment * clean up nullcheck of new helper Addresses dotnet#6973 and related issues. Still sorting through exactly which ones are fixed, so list below may need revising. Fixes dotnet#48605. Fixes dotnet#51599. Fixes dotnet#55472. Improves some but not all cases in dotnet#12280 and dotnet#62064. Does not fix dotnet#33002, dotnet#47082, or dotnet#63116; these require handling multiple uses or bypassing statements.
…se the r2rdump process to fail (dotnet#64772) - This fix ignores the problem, and will produce somewhat wrong results when looking at the PGO data of an R2R binary, but it will at least permit the R2R file to be looked at Fixes dotnet#64291
* fix some test for FreeBSD * remove changes in IPGlobalPropertiesTest * disable AddLongHeader_DoesNotThrow * update description for skip
Co-authored-by: Adam Sitnik <[email protected]>
* [wasm][aot] Disable failing tests `Microsoft.Extensions.HostFactoryResolver.Tests`: dotnet#64724 `Microsoft.Extensions.Logging.Tests`: dotnet#64725 * [wasm][aot] Disable `System.Text.Json.SourceGeneration.Roslyn3.11.Unit.Tests` .. on linux. Fixes dotnet#64762 . Real issue being tracked in dotnet#61339 * disable failing nodejs samples * [wasm] Disable more failing tests System.Linq.Tests: dotnet#64774 System.Text.Json.Tests: dotnet#64775 * Disable System.Text.RegularExpressions.Tests due to issue#64769
Don't even build them as part of the clr subset, only on demand.
…ods (dotnet#64566) The context is a MonoMethodRuntimeGenericContext when the method is a default interface method. Also re-enable broken DIM tests. Fixes dotnet/runtime dotnet#62334
…net#64758) * Fix outerloop AcceptAsync_WithTooSmallReceiveBuffer_Failure test * Remove [Outerloop] per PR feedback
* pass ExitStatus when calling quit_ * set noExitRuntime * fix double throw * enable 64727 tests
For LIR we verify that we can really consider locals to be used at their user by having a checker that looks for interfering stores to the same locals. However, in some cases we may have "interfering" GT_LCL_FLD/GT_STORE_LCL_FLD, in the sense that they work on the same local but on a disjoint range of bytes. Add support to validate this. This fixes dotnet#57919 which made the fuzzer jobs very noisy and made it easy to miss actual new examples (e.g. dotnet#63720 was just merged even though there were real examples found there). Fix dotnet#57919
…mpletion (dotnet#64627) Task's IAsyncResult.AsyncWaitHandle implementation lazily creates a ManualResetEventSlim, which is then set as part of the Task completing. That AsyncWaitHandle is exposed publicly out of the surface area. If code (arguably erroneously) Dispose's of that WaitHandle before the Task has completed, the task's completion routine will incur an ObjectDisposedException, which will propagate out and potentially disrupt caller logic or even crash the process if allowed to propagate on a thread without user code to catch it. This just adds a catch (ObjectDisposedException) block to eat such an exception in order to make the system more reliable in the face of such spooky action at a distance.
…otnet#64624) * Improve perf of Enumerable.Sum/Average/Max/Min for arrays and lists It's very common to use these terminal functions for quick stats on arrays and lists of values. Just the overhead of enumerating as an enumerable (involving multiple interface dispatch) per iteration is significant, and it's much faster to directly enumerate the contents of the array or the list. In some cases, we can further use vectorization to speed up the processing. This change: - Adds a helper that does a fast check to see if it can extract a span from an enumerable that's actually an array or a list. It could be augmented to detect other interesting types, but `T[]` and `List<T>` are the most relevant from the data I've seen, and we can fairly quickly do type checks to get the most benefit for a small amount of cost. - Uses that helper in the int/long/float/double/decimal overloads of Sum/Average/Min/Max to add a span-based path. - Vectorizes Sum for float and double - Vectorizes Average for int, float, and double (the latter two via use of Sum) * Address PR feedback
* make sure failed SSL does not imapct other sessions * move innerError * feedback from review * remove try * feedback from review
…4766) * [wasm] Remove WBT from extra-platforms, as it runs in runtime, and runtime-staging * [wasm] Run library tests on NodeJS for windows too .. in `runtime-extra-platforms`. * [wasm] runtime-extra-platforms: always run the helix step
UnityAlex
approved these changes
Feb 7, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an automatically generated pull request to merge changes from the upstream main branch.