Skip to content
Merged
Show file tree
Hide file tree
Changes from 29 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
e1a52d8
Add artifact merge engines and Kind metadata flow (RFC 018 phase 1)
Evangelink Jul 9, 2026
03364a8
Merge remote-tracking branch 'origin/main' into dev/amauryleve/miniat…
Evangelink Jul 13, 2026
3d61cd4
Address review: TRX merge fidelity + out-of-process Kind
Evangelink Jul 13, 2026
3c482cd
Merge remote-tracking branch 'origin/main' into dev/amauryleve/miniat…
Evangelink Jul 13, 2026
46448d7
Address review: harden TRX attachment relocation
Evangelink Jul 13, 2026
4ea04cc
Update .xlf files to be in sync with .resx
Evangelink Jul 14, 2026
a05a088
Merge remote-tracking branch 'origin/main' into dev/amauryleve/miniat…
Evangelink Jul 14, 2026
3a712c1
Address review: destination reparse hardening, Kind assertion, revert…
Evangelink Jul 14, 2026
a5dab5b
Address review: ancestor-symlink hardening + producer-to-wire Kind tests
Evangelink Jul 14, 2026
a468d2e
Address review: CTRF tool/env attribution + TRX cancellation & path-f…
Evangelink Jul 14, 2026
1c197f4
Address review: TRX nested-overlap relocation + CTRF full tool identity
Evangelink Jul 14, 2026
1400070
Merge branch 'main' into dev/amauryleve/miniature-broccoli
Evangelink Jul 14, 2026
0bf2a16
Merge branch 'main' into dev/amauryleve/miniature-broccoli
Copilot Jul 15, 2026
011ce7c
Merge branch 'main' into dev/amauryleve/miniature-broccoli
Evangelink Jul 15, 2026
579f8b2
Address review: CTRF test-level timing fallback + TRX nested staging …
Evangelink Jul 15, 2026
97dcbb0
Address review: never delete input trees during TRX attachment reloca…
Evangelink Jul 15, 2026
92aae3a
Fix IDE0008 CI break + address review: relocation confinement, stagin…
Evangelink Jul 15, 2026
109ab51
Make report merges deterministic and non-destructive (RFC 018 review)
Evangelink Jul 15, 2026
df5c7c6
Fix TRX per-test ResultFile relocation, naming, and IDE0008 (RFC 018 …
Evangelink Jul 15, 2026
c14a6f9
Fix IDE0007 in merge test (use var for apparent type)
Evangelink Jul 15, 2026
02c0bef
Harden report-merge filesystem handling (RFC 018 review)
Evangelink Jul 15, 2026
bac64fb
Copy only referenced attachments in TRX merge (RFC 018 review)
Evangelink Jul 15, 2026
2b7a860
Drop unrelocated references and detect symlinked-parent output aliase…
Evangelink Jul 15, 2026
31f43de
Fix merge semantics: outcome, definition dedup, environment, referenc…
Evangelink Jul 15, 2026
d582d47
Fix UriAttachment schema validity, dangling dest symlinks, netstandar…
Evangelink Jul 15, 2026
ecdc9f4
Harden path containment, hardlink copy, top-level bail, and env unani…
Evangelink Jul 15, 2026
e68ed42
Preserve rooted attachments (RFC 018), normalize separators, validate…
Evangelink Jul 15, 2026
6cdc1b1
Require CTRF reportFormat, carry run-level ResultFiles, preserve root…
Evangelink Jul 15, 2026
d1b8007
Merge run-level Output, reject empty input early, filesystem-aware al…
Evangelink Jul 16, 2026
f378b5d
Probe output-path case sensitivity at its own directory, not temp (re…
Evangelink Jul 16, 2026
f91fcb2
Extract shared merge file I/O + alias checks into MergeOutputFileHelp…
Evangelink Jul 16, 2026
bd927b5
Fix macOS symlink-alias canonicalization and address merge review com…
Evangelink Jul 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ public CtrfReportGenerator(IServiceProvider serviceProvider)

protected override string ArtifactDisplayName => ExtensionResources.CtrfReportArtifactDisplayName;

protected override string? ArtifactKind => "microsoft.testing.ctrf";

protected override string ArtifactDescription => ExtensionResources.CtrfReportArtifactDescription;

protected override string GetGenerationLogMessage(int testResultCount)
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
#nullable enable
virtual Microsoft.Testing.Extensions.ReportGeneratorBase<TGenerator, TCapturedTestResult>.ArtifactKind.get -> string?
Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger
static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.Merge(System.Collections.Generic.IReadOnlyList<string!>! inputReports) -> string!
static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.MergeToFileAsync(System.Collections.Generic.IReadOnlyList<string!>! inputPaths, string! outputPath, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string!
static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string!
static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func<string!, string!>! sanitizeLeafFileName) -> string!
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#nullable enable
const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Kind = 7 -> ushort
const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_PIPE_DIRECTORY = "TESTINGPLATFORM_PIPE_DIRECTORY" -> string!
const Microsoft.Testing.Platform.IPC.NamedPipeServer.MaxUnixDomainSocketPathLengthInBytes = 103 -> int
static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsureDirectoryIsWritable(string! directory) -> void
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ public HtmlReportGenerator(IServiceProvider serviceProvider)

protected override string ArtifactDisplayName => ExtensionResources.HtmlReportArtifactDisplayName;

protected override string? ArtifactKind => "microsoft.testing.html";

protected override string ArtifactDescription => ExtensionResources.HtmlReportArtifactDescription;

protected override string GetGenerationLogMessage(int testResultCount)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#nullable enable
virtual Microsoft.Testing.Extensions.ReportGeneratorBase<TGenerator, TCapturedTestResult>.ArtifactKind.get -> string?
static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string!
static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string!
static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func<string!, string!>! sanitizeLeafFileName) -> string!
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
#nullable enable
virtual Microsoft.Testing.Extensions.ReportGeneratorBase<TGenerator, TCapturedTestResult>.ArtifactKind.get -> string?
Microsoft.Testing.Extensions.JUnitReport.JUnitReportMerger
static Microsoft.Testing.Extensions.JUnitReport.JUnitReportMerger.Merge(System.Collections.Generic.IReadOnlyList<System.Xml.Linq.XDocument!>! inputReports, string! reportName) -> System.Xml.Linq.XDocument!
static Microsoft.Testing.Extensions.JUnitReport.JUnitReportMerger.MergeToFileAsync(System.Collections.Generic.IReadOnlyList<string!>! inputPaths, string! outputPath, string! reportName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string!
static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string!
static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func<string!, string!>! sanitizeLeafFileName) -> string!
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ public JUnitReportGenerator(IServiceProvider serviceProvider)

protected override string ArtifactDisplayName => ExtensionResources.JUnitReportArtifactDisplayName;

protected override string? ArtifactKind => "microsoft.testing.junit";

protected override string ArtifactDescription => ExtensionResources.JUnitReportArtifactDescription;

protected override string GetGenerationLogMessage(int testResultCount)
Expand Down
Loading
Loading