Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@
if (actual is not null && expected is not null && !actual.GetType().Equals(expected.GetType()))
{
Type expectedType = expected.GetType();
Type actualType = actual.GetType();

Check failure on line 259 in src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build MacOS Debug)

src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs#L259

src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs(259,1): error : [HangDump_TemplateFileName_CreateDump ("net10.0")] [net11.0] Assert.AreEqual failed. Expected:<7>. Actual:<0>. 'expected' expression: 'exitCode', 'actual' expression: 'testHostResult.ExitCode'. Expression 'AssertExitCodeIs' failed for member 'HangDump_TemplateFileName_CreateDump' at line 121 of file '/_/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HangDumpTests.cs'. Output of the test host is: Command: /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/bin/Release/net10.0/HangDump --hangdump --hangdump-timeout 8s --hangdump-filename {pname}_{pid}_{tfm}_{time}_hang.dmp --results-directory /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/e11d3b9f83f14f38914ebadf8fae5009/net10.0 ==================== ExitCode: 0 ==================== StandardOutput: Microsoft.Testing.Platform v2.3.0-ci (UTC 05/18/2026) [osx-x64 - net10.0] Hang dump timeout of '00:00:08' expired Dumping process 13096 - HangDump Creating dump file '/Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/e11d3b9f83f14f38914ebadf8fae5009/net10.0/HangDump_13096_net10.0_2026-05-18_11-03-00.2120420_hang.dmp' [createdump] Gathering state for process 13096 [createdump] Writing full dump to file /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/e11d3b9f83f14f38914ebadf8fae5009/net10.0/HangDump_13096_net10.0_2026-05-18_11-03-00.2120420_hang.dmp [createdump] Written 5645312312 bytes (1378250 pages) to core file [createdump] Target process is alive Test run summary: Passed! - /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/bin/Release/net10.0/HangDump.dll (net10.0|x64) total: 2 failed: 0 succeeded: 2 skipped: 0 duration: 2m 32s 810ms [createdump] Dump successfully written in 139717ms Out of process file artifacts produced: - /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/e11d3b9f83f14f38914ebadf8fae5009/net10.0/HangDump_13096_net10.0_2026-05-18_11-03-00.2120420_hang.dmp ==================== StandardError:

Check failure on line 259 in src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build MacOS Debug)

src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs#L259

src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs(259,1): error : [HangDump_TemplateFileNameWithSubdirectory_CreateDump ("net10.0")] [net11.0] Assert.AreEqual failed. Expected:<7>. Actual:<0>. 'expected' expression: 'exitCode', 'actual' expression: 'testHostResult.ExitCode'. Expression 'AssertExitCodeIs' failed for member 'HangDump_TemplateFileNameWithSubdirectory_CreateDump' at line 154 of file '/_/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HangDumpTests.cs'. Output of the test host is: Command: /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/bin/Release/net10.0/HangDump --hangdump --hangdump-timeout 8s --hangdump-filename {asm}/{pname}_{pid}_hang.dmp --results-directory /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/6503b3a5ec6f4bc995915467d880be9c/net10.0 ==================== ExitCode: 0 ==================== StandardOutput: Microsoft.Testing.Platform v2.3.0-ci (UTC 05/18/2026) [osx-x64 - net10.0] Hang dump timeout of '00:00:08' expired Dumping process 13097 - HangDump Creating dump file '/Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/6503b3a5ec6f4bc995915467d880be9c/net10.0/HangDump/HangDump_13097_hang.dmp' [createdump] Gathering state for process 13097 [createdump] Writing full dump to file /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/6503b3a5ec6f4bc995915467d880be9c/net10.0/HangDump/HangDump_13097_hang.dmp [createdump] Written 5644841272 bytes (1378135 pages) to core file [createdump] Target process is alive Test run summary: Passed! - /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/bin/Release/net10.0/HangDump.dll (net10.0|x64) total: 2 failed: 0 succeeded: 2 skipped: 0 duration: 2m 32s 515ms [createdump] Dump successfully written in 139853ms Out of process file artifacts produced: - /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/6503b3a5ec6f4bc995915467d880be9c/net10.0/HangDump/HangDump_13097_hang.dmp ==================== StandardError:

Check failure on line 259 in src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx

src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs#L259

src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs(259,1): error : [HangDump_TemplateFileName_CreateDump ("net10.0")] [net11.0] Assert.AreEqual failed. Expected:<7>. Actual:<0>. 'expected' expression: 'exitCode', 'actual' expression: 'testHostResult.ExitCode'. Expression 'AssertExitCodeIs' failed for member 'HangDump_TemplateFileName_CreateDump' at line 121 of file '/_/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HangDumpTests.cs'. Output of the test host is: Command: /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/bin/Release/net10.0/HangDump --hangdump --hangdump-timeout 8s --hangdump-filename {pname}_{pid}_{tfm}_{time}_hang.dmp --results-directory /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/e11d3b9f83f14f38914ebadf8fae5009/net10.0 ==================== ExitCode: 0 ==================== StandardOutput: Microsoft.Testing.Platform v2.3.0-ci (UTC 05/18/2026) [osx-x64 - net10.0] Hang dump timeout of '00:00:08' expired Dumping process 13096 - HangDump Creating dump file '/Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/e11d3b9f83f14f38914ebadf8fae5009/net10.0/HangDump_13096_net10.0_2026-05-18_11-03-00.2120420_hang.dmp' [createdump] Gathering state for process 13096 [createdump] Writing full dump to file /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/e11d3b9f83f14f38914ebadf8fae5009/net10.0/HangDump_13096_net10.0_2026-05-18_11-03-00.2120420_hang.dmp [createdump] Written 5645312312 bytes (1378250 pages) to core file [createdump] Target process is alive Test run summary: Passed! - /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/bin/Release/net10.0/HangDump.dll (net10.0|x64) total: 2 failed: 0 succeeded: 2 skipped: 0 duration: 2m 32s 810ms [createdump] Dump successfully written in 139717ms Out of process file artifacts produced: - /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/e11d3b9f83f14f38914ebadf8fae5009/net10.0/HangDump_13096_net10.0_2026-05-18_11-03-00.2120420_hang.dmp ==================== StandardError:

Check failure on line 259 in src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx

src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs#L259

src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs(259,1): error : [HangDump_TemplateFileNameWithSubdirectory_CreateDump ("net10.0")] [net11.0] Assert.AreEqual failed. Expected:<7>. Actual:<0>. 'expected' expression: 'exitCode', 'actual' expression: 'testHostResult.ExitCode'. Expression 'AssertExitCodeIs' failed for member 'HangDump_TemplateFileNameWithSubdirectory_CreateDump' at line 154 of file '/_/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HangDumpTests.cs'. Output of the test host is: Command: /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/bin/Release/net10.0/HangDump --hangdump --hangdump-timeout 8s --hangdump-filename {asm}/{pname}_{pid}_hang.dmp --results-directory /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/6503b3a5ec6f4bc995915467d880be9c/net10.0 ==================== ExitCode: 0 ==================== StandardOutput: Microsoft.Testing.Platform v2.3.0-ci (UTC 05/18/2026) [osx-x64 - net10.0] Hang dump timeout of '00:00:08' expired Dumping process 13097 - HangDump Creating dump file '/Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/6503b3a5ec6f4bc995915467d880be9c/net10.0/HangDump/HangDump_13097_hang.dmp' [createdump] Gathering state for process 13097 [createdump] Writing full dump to file /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/6503b3a5ec6f4bc995915467d880be9c/net10.0/HangDump/HangDump_13097_hang.dmp [createdump] Written 5644841272 bytes (1378135 pages) to core file [createdump] Target process is alive Test run summary: Passed! - /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/bin/Release/net10.0/HangDump.dll (net10.0|x64) total: 2 failed: 0 succeeded: 2 skipped: 0 duration: 2m 32s 515ms [createdump] Dump successfully written in 139853ms Out of process file artifacts produced: - /Users/runner/work/1/s/artifacts/tmp/Debug/testsuite/kQcyJ/AssetFixture/6503b3a5ec6f4bc995915467d880be9c/net10.0/HangDump/HangDump_13097_hang.dmp ==================== StandardError:
summary = FrameworkMessages.AreEqualDifferentTypesFailedSummary;
evidence = EvidenceBlock.Create()
.AddLine("expected:", expectedRendered)
Expand Down Expand Up @@ -293,7 +293,7 @@
structured.WithUserMessage(message);
structured.WithEvidence(evidence);
structured.WithExpectedAndActual(expectedRendered, actualRendered);
structured.WithCallSiteExpression(FormatBinaryCallSiteExpression("Assert.AreEqual", expectedExpression, "expected", actualExpression, "actual"));
structured.WithCallSiteExpression(FormatCallSiteExpression("Assert.AreEqual", expectedExpression, actualExpression, "<expected>", "<actual>"));

ReportAssertFailed(structured);
}
Expand Down Expand Up @@ -414,7 +414,7 @@
structured.WithUserMessage(message);
structured.WithEvidence(evidence);
structured.WithExpectedAndActual($"not {notExpectedRendered}", actualRendered);
structured.WithCallSiteExpression(FormatBinaryCallSiteExpression("Assert.AreNotEqual", notExpectedExpression, "notExpected", actualExpression, "actual"));
structured.WithCallSiteExpression(FormatCallSiteExpression("Assert.AreNotEqual", notExpectedExpression, actualExpression, "<notExpected>", "<actual>"));

ReportAssertFailed(structured);
}
Expand Down
20 changes: 0 additions & 20 deletions src/TestFramework/TestFramework/Assertions/Assert.cs
Original file line number Diff line number Diff line change
Expand Up @@ -314,26 +314,6 @@ internal static string ReplaceNulls(object? input)
? null
: $"{methodName}({expression})";

private static readonly char[] LineBreakChars = ['\n', '\r'];

/// <summary>
/// Formats a call-site expression like <c>Assert.MethodName(expression1, expression2)</c>.
/// When either expression is empty the call-site is omitted. When an expression contains
/// newlines (multiline constant) it is replaced with a <c>&lt;paramName&gt;</c> placeholder.
/// </summary>
private static string? FormatBinaryCallSiteExpression(string methodName, string expression1, string paramName1, string expression2, string paramName2)
{
if (string.IsNullOrWhiteSpace(expression1) || string.IsNullOrWhiteSpace(expression2))
{
return null;
}

string arg1 = expression1.IndexOfAny(LineBreakChars) >= 0 ? $"<{paramName1}>" : expression1;
string arg2 = expression2.IndexOfAny(LineBreakChars) >= 0 ? $"<{paramName2}>" : expression2;

return $"{methodName}({arg1}, {arg2})";
}

private static int CompareInternal(string? expected, string? actual, bool ignoreCase, CultureInfo culture)
#pragma warning disable CA1309 // Use ordinal string comparison
=> string.Compare(expected, actual, ignoreCase, culture);
Expand Down
Loading