Log all event log entries when assert fails (#8491)

This commit is contained in:
Pavel Krymets 2019-03-14 11:59:45 -07:00 committed by GitHub
parent c90ffb0033
commit a673be3b9a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 27 additions and 35 deletions

View File

@ -223,7 +223,7 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests
// Shutdown should be graceful here!
EventLogHelpers.VerifyEventLogEvent(deploymentResult,
EventLogHelpers.InProcessShutdown());
EventLogHelpers.InProcessShutdown(), Logger);
}
[ConditionalFact]

View File

@ -22,13 +22,13 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
public async Task CheckStartupEventLogMessage()
{
var deploymentParameters = _fixture.GetBaseDeploymentParameters();
var deploymentResult = await DeployAsync(deploymentParameters);
await deploymentResult.AssertStarts();
StopServer();
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.InProcessStarted(deploymentResult));
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.InProcessStarted(deploymentResult), Logger);
}
[ConditionalFact]
@ -40,7 +40,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
StopServer();
EventLogHelpers.VerifyEventLogEvent(deploymentResult, "Application '.+' has shutdown.");
EventLogHelpers.VerifyEventLogEvent(deploymentResult, "Application '.+' has shutdown.", Logger);
}
}
}

View File

@ -77,7 +77,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
StopServer();
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.InProcessThreadExitStdOut(deploymentResult, "12", "(.*)彡⾔(.*)"));
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.InProcessThreadExitStdOut(deploymentResult, "12", "(.*)彡⾔(.*)"), Logger);
}
}
}

View File

@ -34,7 +34,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
await AssertFailsToStart(deploymentResult);
var expectedString = new string('a', 30000);
Assert.Contains(TestSink.Writes, context => context.Message.Contains(expectedString));
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.InProcessThreadExitStdOut(deploymentResult, "12", expectedString));
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.InProcessThreadExitStdOut(deploymentResult, "12", expectedString), Logger);
}
[ConditionalTheory]
@ -56,7 +56,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
var expectedString = new string('a', 30000);
Assert.Contains(expectedString, contents);
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.InProcessThreadExitStdOut(deploymentResult, "12", expectedString));
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.InProcessThreadExitStdOut(deploymentResult, "12", expectedString), Logger);
}
[ConditionalFact]

View File

@ -62,7 +62,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
StopServer();
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.UnableToStart(deploymentResult, subError));
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.UnableToStart(deploymentResult, subError), Logger);
Assert.Contains("HTTP Error 500.0 - ANCM In-Process Handler Load Failure", await response.Content.ReadAsStringAsync());
}
@ -167,7 +167,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
StopServer();
EventLogHelpers.VerifyEventLogEvent(deploymentResult, "AspNetCore Module is disabled");
EventLogHelpers.VerifyEventLogEvent(deploymentResult, "AspNetCore Module is disabled", Logger);
}
}

View File

@ -78,7 +78,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
if (variant.HostingModel == HostingModel.InProcess)
{
// Error is getting logged twice, from shim and handler
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.CouldNotStartStdoutFileRedirection("Q:\\std", deploymentResult), allowMultiple: true);
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.CouldNotStartStdoutFileRedirection("Q:\\std", deploymentResult), Logger, allowMultiple: true);
}
}
@ -169,7 +169,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
deploymentParameters.HandlerSettings["debugLevel"] = "file,eventlog";
var deploymentResult = await StartAsync(deploymentParameters);
StopServer();
EventLogHelpers.VerifyEventLogEvent(deploymentResult, @"\[aspnetcorev2.dll\] Initializing logs for .*?Description: IIS ASP.NET Core Module V2");
EventLogHelpers.VerifyEventLogEvent(deploymentResult, @"\[aspnetcorev2.dll\] Initializing logs for .*?Description: IIS ASP.NET Core Module V2", Logger);
}
[ConditionalTheory]
@ -197,11 +197,11 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
if (variant.HostingModel == HostingModel.InProcess)
{
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.InProcessThreadExitStdOut(deploymentResult, "12", "(.*)彡⾔(.*)"));
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.InProcessThreadExitStdOut(deploymentResult, "12", "(.*)彡⾔(.*)"), Logger);
}
else
{
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.OutOfProcessFailedToStart(deploymentResult));
EventLogHelpers.VerifyEventLogEvent(deploymentResult, EventLogHelpers.OutOfProcessFailedToStart(deploymentResult), Logger);
}
}

View File

@ -51,7 +51,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
Assert.Equal(200, (int)result1.StatusCode);
Assert.Equal(500, (int)result2.StatusCode);
StopServer();
EventLogHelpers.VerifyEventLogEvent(result, EventLogHelpers.OnlyOneAppPerAppPool());
EventLogHelpers.VerifyEventLogEvent(result, EventLogHelpers.OnlyOneAppPerAppPool(), Logger);
}
[ConditionalTheory]
@ -72,7 +72,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
Assert.Equal(200, (int)result1.StatusCode);
Assert.Equal(500, (int)result2.StatusCode);
StopServer();
EventLogHelpers.VerifyEventLogEvent(result, "Mixed hosting model is not supported.");
EventLogHelpers.VerifyEventLogEvent(result, "Mixed hosting model is not supported.", Logger);
}
private void SetHostingModel(string directory, HostingModel model)

View File

@ -15,30 +15,22 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{
public class EventLogHelpers
{
public static void VerifyEventLogEvent(IISDeploymentResult deploymentResult, string expectedRegexMatchString, bool allowMultiple = false)
{
Assert.True(deploymentResult.HostProcess.HasExited);
var entries = GetEntries(deploymentResult);
AssertEntry(expectedRegexMatchString, entries, allowMultiple);
}
public static void VerifyEventLogEvent(IISDeploymentResult deploymentResult, string expectedRegexMatchString, ILogger logger)
public static void VerifyEventLogEvent(IISDeploymentResult deploymentResult, string expectedRegexMatchString, ILogger logger, bool allowMultiple = false)
{
Assert.True(deploymentResult.HostProcess.HasExited);
var entries = GetEntries(deploymentResult);
try
{
AssertEntry(expectedRegexMatchString, entries);
AssertEntry(expectedRegexMatchString, entries, allowMultiple);
}
catch (Exception ex)
catch (Exception)
{
foreach (var entry in entries)
{
logger.LogInformation(entry.Message);
logger.LogInformation("'{Message}', generated {Generated}, written {Written}", entry.Message, entry.TimeGenerated, entry.TimeWritten);
}
throw ex;
throw;
}
}

View File

@ -40,7 +40,7 @@ namespace IIS.FunctionalTests.Inprocess
StopServer();
EventLogHelpers.VerifyEventLogEvent(deploymentResult,
"The specified framework 'Microsoft.NETCore.App', version '2.9.9' was not found.");
"The specified framework 'Microsoft.NETCore.App', version '2.9.9' was not found.", Logger);
}
[ConditionalFact]
@ -63,7 +63,7 @@ namespace IIS.FunctionalTests.Inprocess
var contents = Helpers.ReadAllTextFromFile(Helpers.GetExpectedLogName(deploymentResult, _logFolderPath), Logger);
var expectedString = "The specified framework 'Microsoft.NETCore.App', version '2.9.9' was not found.";
EventLogHelpers.VerifyEventLogEvent(deploymentResult, expectedString);
EventLogHelpers.VerifyEventLogEvent(deploymentResult, expectedString, Logger);
Assert.Contains(expectedString, contents);
}
@ -89,7 +89,7 @@ namespace IIS.FunctionalTests.Inprocess
var fileInDirectory = Directory.GetFiles(_logFolderPath).Single();
var contents = Helpers.ReadAllTextFromFile(fileInDirectory, Logger);
EventLogHelpers.VerifyEventLogEvent(deploymentResult, "Invoked hostfxr");
EventLogHelpers.VerifyEventLogEvent(deploymentResult, "Invoked hostfxr", Logger);
Assert.Contains("Invoked hostfxr", contents);
}
@ -114,7 +114,7 @@ namespace IIS.FunctionalTests.Inprocess
StopServer();
EventLogHelpers.VerifyEventLogEvent(deploymentResult, "Invoked hostfxr");
EventLogHelpers.VerifyEventLogEvent(deploymentResult, "Invoked hostfxr", Logger);
}
[ConditionalTheory]
@ -143,7 +143,7 @@ namespace IIS.FunctionalTests.Inprocess
var fileInDirectory = Directory.GetFiles(_logFolderPath).First();
var contents = Helpers.ReadAllTextFromFile(fileInDirectory, Logger);
EventLogHelpers.VerifyEventLogEvent(deploymentResult, "Invoked hostfxr");
EventLogHelpers.VerifyEventLogEvent(deploymentResult, "Invoked hostfxr", Logger);
Assert.Contains("Invoked hostfxr", contents);
}
}

View File

@ -44,7 +44,7 @@ namespace IIS.FunctionalTests
await Helpers.Retry(async () => await File.ReadAllTextAsync(Path.Combine(result.ContentRoot, "Started.txt")), TimeoutExtensions.DefaultTimeoutValue);
StopServer();
EventLogHelpers.VerifyEventLogEvent(result, EventLogHelpers.Started(result));
EventLogHelpers.VerifyEventLogEvent(result, EventLogHelpers.Started(result), Logger);
}
}
@ -73,7 +73,7 @@ namespace IIS.FunctionalTests
await Helpers.Retry(async () => await File.ReadAllTextAsync(Path.Combine(result.ContentRoot, "Started.txt")), TimeoutExtensions.DefaultTimeoutValue);
StopServer();
EventLogHelpers.VerifyEventLogEvent(result, EventLogHelpers.Started(result));
EventLogHelpers.VerifyEventLogEvent(result, EventLogHelpers.Started(result), Logger);
}
}