{ "$comment": "Manifest of source files copied (verbatim or adapted) from other repositories. See eng/vendored-files.md.", "entries": [ { "id": "test-value-evidence", "local_path": ".agents/skills/test-value-evidence/SKILL.md", "notes": "Verbatim canonical skill from dotnet/skills, pinned independently of the curated plugin snapshots. TestFx-specific rules are in .github/skills/testfx-test-value-evidence/SKILL.md. Update ref and both baseline SHAs together when selecting another upstream revision; do not edit the imported core.", "sources": [ { "repo": "dotnet/skills", "ref": "ac0d7d74ffad59c08b5d6a134ed6af6b02172972", "path": "plugins/dotnet-test/skills/test-value-evidence/SKILL.md", "baseline_ref_sha": "ac0d7d74ffad59c08b5d6a134ed6af6b02172972", "baseline_blob_sha": "901ba4ab8098800b22b5b4b7138dc76037e2f235", "scope": "entire file, unchanged" } ] }, { "id": "polyfill-nullable-attributes", "local_path": "src/Polyfills/NullableAttribtues.cs", "notes": "Polyfill for downlevel TFMs; scope changed to internal.", "sources": [ { "repo": "dotnet/runtime", "ref": "main", "path": "src/libraries/System.Private.CoreLib/src/System/Diagnostics/CodeAnalysis/NullableAttributes.cs", "baseline_ref_sha": "906c53718074c669286fd5b0cd88bc7a56a0cd10", "baseline_blob_sha": "78908b119ae07e92f7e89fe507eb0fc69b21fa99", "scope": "entire file; attribute scope changed to internal" } ] }, { "id": "analyzers-symbol-visibility", "local_path": "src/Analyzers/MSTest.Analyzers/RoslynAnalyzerHelpers/SymbolVisibility.cs", "notes": "Verbatim copy with namespace adjustment. Previously sourced from dotnet/roslyn-analyzers, which was archived and moved into dotnet/sdk. The former MSTest.SourceGeneration copy was removed (#8586) in favor of a locally-authored SymbolAccessibilityHelper; this analyzers copy of the same upstream file remains the tracked vendored source.", "sources": [ { "repo": "dotnet/sdk", "ref": "main", "path": "src/Microsoft.CodeAnalysis.NetAnalyzers/src/Utilities/Compiler/Extensions/SymbolVisibility.cs", "baseline_ref_sha": "d5c887dad9f06cbc451869ed8ad63f8916528b73", "baseline_blob_sha": "f7dce8f0f785208e3b1f55555b997fdafac18ec4", "scope": "entire file" } ] }, { "id": "platform-roslyn-debug", "local_path": "src/Platform/Microsoft.Testing.Platform/Helpers/RoslynDebug.cs", "notes": "Adapted to internal class with [ExcludeFromCodeCoverage]. Previously sourced from dotnet/roslyn-analyzers, which was archived and moved into dotnet/sdk.", "sources": [ { "repo": "dotnet/sdk", "ref": "main", "path": "src/Microsoft.CodeAnalysis.NetAnalyzers/src/Utilities/Compiler/Debug.cs", "baseline_ref_sha": "d5c887dad9f06cbc451869ed8ad63f8916528b73", "baseline_blob_sha": "01b829261af9497a7557538a271b9e1c5b5e09ec", "scope": "entire file" } ] }, { "id": "platform-file-utilities-case-sensitivity", "local_path": "src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/FileUtilities.cs", "notes": "Originally copied lines 41-59 (GetIsFileSystemCaseSensitive) from the runtime probe. Upstream has since replaced the probe with an OS-based check (OperatingSystem.IsWindows/MacOS/IOS/TvOS); we intentionally keep the file-system probe locally because (a) the platform targets netstandard2.0 where those APIs are not first-class, and (b) the probe better reflects mount-level case sensitivity. Drift signal fires on the whole upstream file; reviewer should check whether any new change affects the historical copied region.", "sources": [ { "repo": "dotnet/runtime", "ref": "main", "path": "src/libraries/Common/src/System/IO/PathInternal.CaseSensitivity.cs", "baseline_ref_sha": "906c53718074c669286fd5b0cd88bc7a56a0cd10", "baseline_blob_sha": "0e1278fd1a2cab8dcbcf860f9297cf4eecca4600", "scope": "originally lines 41-59 (GetIsFileSystemCaseSensitive); upstream has since rewritten the helper -- local copy intentionally diverges" } ] }, { "id": "msbuild-dotnet-muxer-locator", "local_path": "src/Platform/Microsoft.Testing.Platform.MSBuild/Tasks/DotnetMuxerLocator.cs", "notes": "Adapted from vstest's DotnetHostHelper.", "sources": [ { "repo": "microsoft/vstest", "ref": "main", "path": "src/Microsoft.TestPlatform.CoreUtilities/Helpers/DotnetHostHelper.cs", "baseline_ref_sha": "d5a7e3b67a2ccb6dc5b3b81255f3e6571c318b78", "baseline_blob_sha": "d9bc7043f4612d95b7415f3512cbb2b188e825ec", "scope": "muxer location logic" } ] }, { "id": "msbuild-dotnet-muxer-locator-windows", "local_path": "src/Platform/Microsoft.Testing.Platform.MSBuild/Tasks/DotnetMuxerLocator.Windows.cs", "notes": "Adapted from vstest's DotnetHostHelper. Windows PE header parsing, split out of DotnetMuxerLocator.cs.", "sources": [ { "repo": "microsoft/vstest", "ref": "main", "path": "src/Microsoft.TestPlatform.CoreUtilities/Helpers/DotnetHostHelper.cs", "baseline_ref_sha": "d5a7e3b67a2ccb6dc5b3b81255f3e6571c318b78", "baseline_blob_sha": "d9bc7043f4612d95b7415f3512cbb2b188e825ec", "scope": "GetMuxerArchitectureByPEHeaderOnWin" } ] }, { "id": "msbuild-dotnet-muxer-locator-macos", "local_path": "src/Platform/Microsoft.Testing.Platform.MSBuild/Tasks/DotnetMuxerLocator.MacOs.cs", "notes": "Adapted from vstest's DotnetHostHelper. Mach-O header parsing, split out of DotnetMuxerLocator.cs.", "sources": [ { "repo": "microsoft/vstest", "ref": "main", "path": "src/Microsoft.TestPlatform.CoreUtilities/Helpers/DotnetHostHelper.cs", "baseline_ref_sha": "d5a7e3b67a2ccb6dc5b3b81255f3e6571c318b78", "baseline_blob_sha": "d9bc7043f4612d95b7415f3512cbb2b188e825ec", "scope": "GetMuxerArchitectureByMachoOnMac and Mach-O constants" } ] }, { "id": "platform-env-config-provider", "local_path": "src/Platform/Microsoft.Testing.Platform/Configurations/EnvironmentVariablesConfigurationProvider.cs", "notes": "Adapted from runtime's Microsoft.Extensions.Configuration.EnvironmentVariables.", "sources": [ { "repo": "dotnet/runtime", "ref": "main", "path": "src/libraries/Microsoft.Extensions.Configuration.EnvironmentVariables/src/EnvironmentVariablesConfigurationProvider.cs", "baseline_ref_sha": "c1793efdf8af240a8006b0fc6f05f580c81fccdb", "baseline_blob_sha": "0d321e49332c8f04a039b394c69d2b7389f07fad", "scope": "entire file with internal adaptations" } ] }, { "id": "platform-json-config-parser", "local_path": "src/Platform/Microsoft.Testing.Platform/Configurations/JsonConfigurationFileParser.cs", "notes": "Adapted from runtime's Microsoft.Extensions.Configuration.Json; additional _propertyToAllChildren dictionary for round-trip serialization.", "sources": [ { "repo": "dotnet/runtime", "ref": "main", "path": "src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs", "baseline_ref_sha": "c1793efdf8af240a8006b0fc6f05f580c81fccdb", "baseline_blob_sha": "28e68f1607b148d1169670bf0f7107460dc03b6c", "scope": "entire file with local additions" } ] }, { "id": "platform-response-file-helper", "local_path": "src/Platform/Microsoft.Testing.Platform/CommandLine/ResponseFileHelper.cs", "notes": "Core logic taken from command-line-api's CommandLineParser (formerly CliParser) and StringExtensions response-file parsing. Local copy intentionally omits recursive @file expansion.", "sources": [ { "repo": "dotnet/command-line-api", "ref": "main", "path": "src/System.CommandLine/Parsing/CommandLineParser.cs", "baseline_ref_sha": "fa1991f84bc8c384aa636a251398a40e56ee1702", "baseline_blob_sha": "ee60fedddabe429d172756fe1b908309164bd805", "scope": "SplitCommandLine implementation (around line 40); upstream file was renamed from CliParser.cs" }, { "repo": "dotnet/command-line-api", "ref": "main", "path": "src/System.CommandLine/Parsing/StringExtensions.cs", "baseline_ref_sha": "bc16495bebe4b70aa2a0f76167544597ddd8b330", "baseline_blob_sha": "f134a449869929238e44c9ad079dbd1532efbd8a", "scope": "ExpandResponseFile/SplitLine helpers (around line 316)" } ] }, { "id": "platform-paste-arguments", "local_path": "src/Platform/Microsoft.Testing.Platform/Helpers/PasteArguments.cs", "notes": "Verbatim port of runtime's PasteArguments. Used by TestHostControllersTestHost on non-net8 TFMs to escape ProcessStartInfo arguments.", "sources": [ { "repo": "dotnet/runtime", "ref": "main", "path": "src/libraries/System.Private.CoreLib/src/System/PasteArguments.cs", "baseline_ref_sha": "62dfdbff84a97796938836c60697287fc6161aa1", "baseline_blob_sha": "39008fc101067a42be33b747d3cee5f208a202d5", "scope": "entire file; namespace and accessibility adapted to internal" } ] }, { "id": "platform-task-extensions", "local_path": "src/Platform/Microsoft.Testing.Platform/Helpers/TaskExtensions.cs", "notes": "WaitAsync downlevel polyfill, modeled after the runtime's TaskExtensions shared helper.", "sources": [ { "repo": "dotnet/aspnetcore", "ref": "main", "path": "src/Shared/TaskExtensions.cs", "baseline_ref_sha": "b9015295c392a23e0bf1cc74cc06633fe75704a4", "baseline_blob_sha": "b06f6efe402a0844c8a258f5aad361f6a38383d3", "scope": "WaitAsync overloads for non-net5 TFMs" } ] }, { "id": "platform-ui-language-override", "local_path": "src/Platform/Microsoft.Testing.Platform/Helpers/UILanguageOverride.cs", "notes": "Adapted from the dotnet CLI's UILanguageOverride with small tweaks for testability (IEnvironment abstraction).", "sources": [ { "repo": "dotnet/sdk", "ref": "main", "path": "src/Cli/Microsoft.DotNet.Cli.Utils/UILanguageOverride.cs", "baseline_ref_sha": "1ab3ae8e0338cdd06b3974959c5802ccc5a85978", "baseline_blob_sha": "ea50251065dc0f5ea142812ef39ecfbe37779b4b", "scope": "entire file; environment variable name renamed to TESTINGPLATFORM_UI_LANGUAGE" } ] }, { "id": "platform-ci-environment-detector", "local_path": "src/Platform/Microsoft.Testing.Platform/Helpers/CIEnvironmentDetector.cs", "notes": "Adapted from dotnet CLI telemetry CI detection. Maintained per https://learn.microsoft.com/dotnet/core/tools/telemetry#continuous-integration-detection. This file is the single source of truth: it is linked into MSTest.TestFramework via src/TestFramework/TestFramework/TestFramework.csproj and toggled via the TESTFRAMEWORK_CI_DETECTOR define.", "sources": [ { "repo": "dotnet/sdk", "ref": "main", "path": "src/Cli/Microsoft.DotNet.Cli.Definitions/Telemetry/CIEnvironmentDetectorForTelemetry.cs", "baseline_ref_sha": "1ab3ae8e0338cdd06b3974959c5802ccc5a85978", "baseline_blob_sha": "e10e1fc2cd973c6123fd983b16a8f0c1e9191c31", "scope": "CI detection rules and environment variable lists" } ] }, { "id": "platform-llm-environment-detector", "local_path": "src/Platform/Microsoft.Testing.Platform/Helpers/LLMEnvironmentDetector.cs", "notes": "Adapted from dotnet CLI telemetry LLM/agent environment detection.", "sources": [ { "repo": "dotnet/sdk", "ref": "main", "path": "src/Cli/dotnet/Telemetry/LLMEnvironmentDetectorForTelemetry.cs", "baseline_ref_sha": "79e9664eb6918a0d6b78d1018e196a468901977f", "baseline_blob_sha": "d8b750e1f8eb0b004a4566f455ce7997f07bfa61", "scope": "LLM/agent detection rules" } ] }, { "id": "platform-roslyn-hashcode", "local_path": "src/Platform/Microsoft.Testing.Platform/Helpers/RoslynHashCode.cs", "notes": "Roslyn-style adaptation of runtime's HashCode (preserves the xxHash32 algorithm published by Yann Collet). Tracks the upstream runtime file for drift on the algorithm itself; see also dotnet/roslyn#50156 commentary.", "sources": [ { "repo": "dotnet/runtime", "ref": "main", "path": "src/libraries/System.Private.CoreLib/src/System/HashCode.cs", "baseline_ref_sha": "62dfdbff84a97796938836c60697287fc6161aa1", "baseline_blob_sha": "6a80fa07da246f095ee25407aaf6d5c6e8fa5fc5", "scope": "xxHash32 Combine/Add implementation" } ] }, { "id": "platform-terminal-native-methods", "local_path": "src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/NativeMethods.cs", "notes": "Only QueryIsScreenAndTryEnableAnsiColorCodes and its console-mode P/Invokes are copied from msbuild's Framework NativeMethods.", "sources": [ { "repo": "dotnet/msbuild", "ref": "main", "path": "src/Framework/NativeMethods.cs", "baseline_ref_sha": "fcb368d8894f6448382f20304c659f383d210f61", "baseline_blob_sha": "57b65e7302795a75fb72756f72353521f15b1d3b", "scope": "QueryIsScreenAndTryEnableAnsiColorCodes and supporting console-mode P/Invokes" } ] }, { "id": "platform-terminal-ansi-detector", "local_path": "src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/AnsiDetector.cs", "notes": "Ported from Spectre.Console's AnsiDetector (with additional regexes from supports-ansi).", "sources": [ { "repo": "spectreconsole/spectre.console", "ref": "main", "path": "src/Spectre.Console.Ansi/AnsiDetector.cs", "baseline_ref_sha": "bbf51e4c2841dae4d574193a7a5695499d453f60", "baseline_blob_sha": "a31831944cb05dac9b48942fe7cb14dac89444d8", "scope": "terminal regex list and ANSI capability detection logic" } ] }, { "id": "trx-xxhash128", "local_path": "src/Platform/Microsoft.Testing.Extensions.TrxReport/Hashing/XxHash128.cs", "notes": "Adapted from runtime's System.IO.Hashing XxHash128 (BSD-2-Clause xxHash algorithm by Yann Collet). Internal type in TestFx.Hashing with byte-array APIs; shared by TRX reporting and MSTest adapter identity hashing. Hash algorithm and big-endian output are unchanged.", "sources": [ { "repo": "dotnet/runtime", "ref": "main", "path": "src/libraries/System.IO.Hashing/src/System/IO/Hashing/XxHash128.cs", "baseline_ref_sha": "cd6580ff499dd9ae37656edcf2239bbab2362251", "baseline_blob_sha": "31c21b251118fb7cd0f103daa85e1daebde12eb6", "scope": "entire file; namespace adapted to TestFx.Hashing" } ] }, { "id": "trx-xxhash-shared", "local_path": "src/Platform/Microsoft.Testing.Extensions.TrxReport/Hashing/XxHashShared.cs", "notes": "Adapted from runtime's System.IO.Hashing XxHashShared (shared XXH3 implementation used by XxHash128). Uses inline-array state buffers on modern .NET and fixed buffers on legacy targets; byte-array APIs and compatibility fallbacks are retained.", "sources": [ { "repo": "dotnet/runtime", "ref": "main", "path": "src/libraries/System.IO.Hashing/src/System/IO/Hashing/XxHashShared.cs", "baseline_ref_sha": "cd6580ff499dd9ae37656edcf2239bbab2362251", "baseline_blob_sha": "d5671725df4c15a23853e9126361cbd9922b990c", "scope": "entire file" } ] }, { "id": "shared-equatable-array", "local_path": "src/Analyzers/Shared/EquatableArray.cs", "notes": "Value-equality wrapper over ImmutableArray for incremental source generator caching, ported from ComputeSharp. Shared across the MSTest source generators (#9118).", "sources": [ { "repo": "Sergio0694/ComputeSharp", "ref": "main", "path": "src/ComputeSharp.SourceGeneration/Helpers/EquatableArray{T}.cs", "baseline_ref_sha": "c3e9ad4faada0d67a122c0e458cf3978993cf6c5", "baseline_blob_sha": "b63b1c8773635ffc132b728d5711acc40aae97e3", "scope": "entire struct" } ] } ] }