* Fix more null refs in Api Analyzers
* Make attributes used by analyzer public
* Compile analyzer tests against ref assemblies
* Turn on Nullable reference types and harden some null-checks
Fixes https://github.com/aspnet/AspNetCore/issues/8686
* CR feedback left over from #10227
* Begin adding E2E test case
* Add cookie auth and test login page
* Make E2E auth component work client-side too
* Restructure auth E2E tests around a router so there can easily be multiple such test components
* Add E2E test case for AuthorizeView
* Prepare for E2E test implementations
* Fix ToBaseRelativePath handling of hashes
... otherwise E2E test will fail, because we're using the hash to control server-or-client execution
* Decouple E2E execution mode from hosting mode
* Actual E2E tests for cascading authentication state
* Actual E2E tests for AuthorizeView (in "no authentication rule" mode)
* Fix inconsistent namespace
* CR: Manual ref assembly definitions for AuthorizeView/CascadingAuthenticationState
* Update versioning for local and PR builds to match Arcade versioning
* Mark CanCancelIAsyncEnumerableClientToServerUpload as flaky - cref aspnet/AspNetCore-Internal#2465
* Disable rollforward in project template tests (3.0.0-dev is older than 3.0.0-preview*). This prevents tests from rolling forward onto technically older bits
The Arcade SDK requires that the obj/ and bin/ folders be placed in the top-level artifacts/ folder of the repo. Although this PR does not complete our Arcade convergence, this is a step towards updating our repo to build with the Arcade SDK.
Changes:
* Set output path for build to artifacts/bin/$(ProjectName)/
* Set intermediate output path for build to artifacts/obj/$(ProjectName)/
* Cleanup .gitignore files (remove duplication between repo-root and tested gitignore files)
* Add code check which looks for project files that share the same name (could cause issues)
* Rename project files to have unique names (avoid race condition of build output)
* Update all locations which were hard-coded to expect bin/ and obj/ in the project directory
* Add overrides for tests which still assert test binaries exist in a given location relative to the source code
- Make sure we always await the last flush task before calling FlushAsync
again instead of preemptively calling FlushAsync and checking to see
if the ValueTask is incomplete before bothering to acquire the _flushLock
- This now acquires the _flushLock fore every call to Response.Body.Write
whereas this only happened for truly async writes before.
- I don't think this is a big concern since this should normally be uncontested,
and DefaultPipeWriter.FlushAsync/GetResult already acquire a lock.