diff --git a/PerfView.sln b/PerfView.sln index f53a28183..3da566c16 100644 --- a/PerfView.sln +++ b/PerfView.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.4.32821.20 +# Visual Studio Version 18 +VisualStudioVersion = 18.6.11620.235 main MinimumVisualStudioVersion = 15.0 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PerfView", "src\PerfView\PerfView.csproj", "{6BAC7496-6953-41B8-9042-AAE45405A095}" ProjectSection(ProjectDependencies) = postProject @@ -397,6 +397,18 @@ Global {F266BD46-34EE-4EEB-8B21-6059F4DFC51F}.Release|x64.Build.0 = Release|Any CPU {F266BD46-34EE-4EEB-8B21-6059F4DFC51F}.Release|x86.ActiveCfg = Release|Any CPU {F266BD46-34EE-4EEB-8B21-6059F4DFC51F}.Release|x86.Build.0 = Release|Any CPU + {2EC430A3-1B65-4628-B2F2-8DBEB4C03132}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2EC430A3-1B65-4628-B2F2-8DBEB4C03132}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2EC430A3-1B65-4628-B2F2-8DBEB4C03132}.Debug|x64.ActiveCfg = Debug|Any CPU + {2EC430A3-1B65-4628-B2F2-8DBEB4C03132}.Debug|x64.Build.0 = Debug|Any CPU + {2EC430A3-1B65-4628-B2F2-8DBEB4C03132}.Debug|x86.ActiveCfg = Debug|Any CPU + {2EC430A3-1B65-4628-B2F2-8DBEB4C03132}.Debug|x86.Build.0 = Debug|Any CPU + {2EC430A3-1B65-4628-B2F2-8DBEB4C03132}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2EC430A3-1B65-4628-B2F2-8DBEB4C03132}.Release|Any CPU.Build.0 = Release|Any CPU + {2EC430A3-1B65-4628-B2F2-8DBEB4C03132}.Release|x64.ActiveCfg = Release|Any CPU + {2EC430A3-1B65-4628-B2F2-8DBEB4C03132}.Release|x64.Build.0 = Release|Any CPU + {2EC430A3-1B65-4628-B2F2-8DBEB4C03132}.Release|x86.ActiveCfg = Release|Any CPU + {2EC430A3-1B65-4628-B2F2-8DBEB4C03132}.Release|x86.Build.0 = Release|Any CPU {DE35BED9-0E03-4DAC-A003-1ACBBF816973}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DE35BED9-0E03-4DAC-A003-1ACBBF816973}.Debug|Any CPU.Build.0 = Debug|Any CPU {DE35BED9-0E03-4DAC-A003-1ACBBF816973}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -437,8 +449,6 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {9F85A2A3-E0DF-4826-9BBA-4DFFA0F17150} EndGlobalSection diff --git a/src/TraceEvent/Computers/StartStopActivityComputer.cs b/src/TraceEvent/Computers/StartStopActivityComputer.cs index d68639176..3275a718e 100644 --- a/src/TraceEvent/Computers/StartStopActivityComputer.cs +++ b/src/TraceEvent/Computers/StartStopActivityComputer.cs @@ -497,7 +497,7 @@ public StartStopActivityComputer(TraceLogEventSource source, ActivityComputer ta // TODO FIX NOW, I have never run these! Get some data to test against. WCFParser.ClientOperationPrepared += delegate (Multidata22TemplateHATraceData data) { - string extraInformation = "/Action=" + data.ServiceAction + "/URL=" + data.Destination; + string extraInformation = "/Action=" + data.SoapAction + "/URL=" + data.Destination; OnStart(data, extraInformation, null, null, GetActiveStartStopActivityTable(data.ActivityID, data.ProcessID), "ClientOperation"); }; WCFParser.ServiceChannelCallStop += delegate (Multidata22TemplateHATraceData data) diff --git a/src/TraceEvent/EventPipe/EventPipeMetadata.cs b/src/TraceEvent/EventPipe/EventPipeMetadata.cs index 1064157e2..44bd63f61 100644 --- a/src/TraceEvent/EventPipe/EventPipeMetadata.cs +++ b/src/TraceEvent/EventPipe/EventPipeMetadata.cs @@ -1,5 +1,6 @@ using Microsoft.Diagnostics.Tracing.EventPipe; using Microsoft.Diagnostics.Tracing.Parsers; +using Microsoft.Diagnostics.Tracing.Parsers.ApplicationServer; using Microsoft.Diagnostics.Tracing.Parsers.Clr; using Microsoft.Diagnostics.Tracing.Session; using System; @@ -868,6 +869,10 @@ public static Guid GetProviderGuidFromProviderName(string name) { return FrameworkEventSourceTraceEventParser.ProviderGuid; } + else if (name == ApplicationServerTraceEventParser.ProviderName) + { + return ApplicationServerTraceEventParser.ProviderGuid; + } #if SUPPORT_V1_V2 else if (name == SampleProfilerTraceEventParser.ProviderName) { diff --git a/src/TraceEvent/Parsers/ApplicationServerTraceEventParser.cs b/src/TraceEvent/Parsers/ApplicationServerTraceEventParser.cs index 4f4f84635..5f89ca5c6 100644 --- a/src/TraceEvent/Parsers/ApplicationServerTraceEventParser.cs +++ b/src/TraceEvent/Parsers/ApplicationServerTraceEventParser.cs @@ -5970,7 +5970,7 @@ public event Action TrackingRecordDropped add { // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName - source.RegisterEventTemplate(new Multidata15TemplateATraceData(value, 0xFFFF, 2598, "TrackingRecord", TrackingRecordTaskGuid, 125, "Dropped", ProviderGuid, ProviderName)); + source.RegisterEventTemplate(new Multidata15TemplateATraceData(value, 39456, 2598, "TrackingRecord", TrackingRecordTaskGuid, 125, "Dropped", ProviderGuid, ProviderName)); } remove { @@ -5982,7 +5982,7 @@ public event Action TrackingRecordRaised add { // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName - source.RegisterEventTemplate(new ThreeStringsTemplateATraceData(value, 0xFFFF, 2598, "TrackingRecord", TrackingRecordTaskGuid, 126, "Raised", ProviderGuid, ProviderName)); + source.RegisterEventTemplate(new ThreeStringsTemplateATraceData(value, 39457, 2598, "TrackingRecord", TrackingRecordTaskGuid, 126, "Raised", ProviderGuid, ProviderName)); } remove { @@ -5994,7 +5994,7 @@ public event Action TrackingRecordTruncated add { // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName - source.RegisterEventTemplate(new Multidata15TemplateATraceData(value, 0xFFFF, 2598, "TrackingRecord", TrackingRecordTaskGuid, 127, "Truncated", ProviderGuid, ProviderName)); + source.RegisterEventTemplate(new Multidata15TemplateATraceData(value, 39458, 2598, "TrackingRecord", TrackingRecordTaskGuid, 127, "Truncated", ProviderGuid, ProviderName)); } remove { @@ -6006,7 +6006,7 @@ public event Action TrackingDataExtracted add { // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName - source.RegisterEventTemplate(new Multidata16TemplateATraceData(value, 0xFFFF, 2597, "TrackingProfile", TrackingProfileTaskGuid, 0, "Info", ProviderGuid, ProviderName)); + source.RegisterEventTemplate(new Multidata16TemplateATraceData(value, 39459, 2597, "TrackingProfile", TrackingProfileTaskGuid, 0, "Info", ProviderGuid, ProviderName)); } remove { @@ -6018,7 +6018,7 @@ public event Action TrackingValueNotSerializable add { // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName - source.RegisterEventTemplate(new Multidata18TemplateATraceData(value, 0xFFFF, 2597, "TrackingProfile", TrackingProfileTaskGuid, 0, "Info", ProviderGuid, ProviderName)); + source.RegisterEventTemplate(new Multidata18TemplateATraceData(value, 39460, 2597, "TrackingProfile", TrackingProfileTaskGuid, 0, "Info", ProviderGuid, ProviderName)); } remove { @@ -6032,7 +6032,7 @@ public event Action MaxInstancesExceeded add { // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName - source.RegisterEventTemplate(new Multidata84TemplateATraceData(value, 0xFFFF, 2594, "Throttles", ThrottlesTaskGuid, 0, "Info", ProviderGuid, ProviderName)); + source.RegisterEventTemplate(new Multidata84TemplateATraceData(value, 57398, 2594, "Throttles", ThrottlesTaskGuid, 0, "Info", ProviderGuid, ProviderName)); } remove { @@ -6045,7 +6045,7 @@ public event Action HttpHandlerPickedForUrl add { // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName - source.RegisterEventTemplate(new FourStringsTemplateATraceData(value, 0xFFFF, 2526, "CreateWorkflowServiceHost", CreateWorkflowServiceHostTaskGuid, 0, "Info", ProviderGuid, ProviderName)); + source.RegisterEventTemplate(new FourStringsTemplateATraceData(value, 62326, 2526, "CreateWorkflowServiceHost", CreateWorkflowServiceHostTaskGuid, 0, "Info", ProviderGuid, ProviderName)); } remove { @@ -6053,6 +6053,211 @@ public event Action HttpHandlerPickedForUrl } } + public event Action AppDomainUnload + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new Multidata0TemplateATraceData(value, 57393, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57393, ProviderGuid); + } + } + public event Action HandledException + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new ThreeStringsTemplateEATraceData(value, 57394, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57394, ProviderGuid); + } + } + public event Action ShipAssertExceptionMessage + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new TwoStringsTemplateATraceData(value, 57395, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57395, ProviderGuid); + } + } + public event Action ThrowingException + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new FourStringsTemplateEATraceData(value, 57396, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57396, ProviderGuid); + } + } + public event Action UnhandledException + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new ThreeStringsTemplateEATraceData(value, 57397, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57397, ProviderGuid); + } + } + public event Action TraceCodeEventLogCritical + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new TwoStringsTemplateTATraceData(value, 57399, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57399, ProviderGuid); + } + } + public event Action TraceCodeEventLogError + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new TwoStringsTemplateTATraceData(value, 57400, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57400, ProviderGuid); + } + } + public event Action TraceCodeEventLogInfo + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new TwoStringsTemplateTATraceData(value, 57401, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57401, ProviderGuid); + } + } + public event Action TraceCodeEventLogVerbose + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new TwoStringsTemplateTATraceData(value, 57402, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57402, ProviderGuid); + } + } + public event Action TraceCodeEventLogWarning + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new TwoStringsTemplateTATraceData(value, 57403, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57403, ProviderGuid); + } + } + public event Action HandledExceptionWarning + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new ThreeStringsTemplateEATraceData(value, 57404, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57404, ProviderGuid); + } + } + public event Action HandledExceptionError + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new ThreeStringsTemplateEATraceData(value, 57405, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57405, ProviderGuid); + } + } + public event Action HandledExceptionVerbose + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new ThreeStringsTemplateEATraceData(value, 57406, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57406, ProviderGuid); + } + } + public event Action ThrowingExceptionVerbose + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new FourStringsTemplateEATraceData(value, 57407, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57407, ProviderGuid); + } + } + public event Action EtwUnhandledException + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new ThreeStringsTemplateEATraceData(value, 57408, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57408, ProviderGuid); + } + } + public event Action ThrowingEtwExceptionVerbose + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new FourStringsTemplateEATraceData(value, 57409, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57409, ProviderGuid); + } + } + public event Action ThrowingEtwException + { + add + { + // action, eventid, taskid, taskName, taskGuid, opcode, opcodeName, providerGuid, providerName + source.RegisterEventTemplate(new FourStringsTemplateEATraceData(value, 57410, 0, null, Guid.Empty, 0, "Info", ProviderGuid, ProviderName)); + } + remove + { + source.UnregisterEventTemplate(value, 57410, ProviderGuid); + } + } + #region Event ID Definitions private const TraceEventID WorkflowInstanceRecordEventID = (TraceEventID)100; private const TraceEventID WorkflowInstanceUnhandledExceptionRecordEventID = (TraceEventID)101; @@ -6544,7 +6749,7 @@ protected internal override void EnumerateTemplates(Func SoapAction; public string ContractName { get { return GetUnicodeStringAt(SkipUnicodeString(0)); } } public string Destination { get { return GetUnicodeStringAt(SkipUnicodeString(SkipUnicodeString(0))); } } public string HostReference { get { return GetUnicodeStringAt(SkipUnicodeString(SkipUnicodeString(SkipUnicodeString(0)))); } } @@ -9229,7 +9453,7 @@ protected internal override void Validate() public override StringBuilder ToXml(StringBuilder sb) { Prefix(sb); - XmlAttrib(sb, "Action", Action); + XmlAttrib(sb, "Action", SoapAction); XmlAttrib(sb, "ContractName", ContractName); XmlAttrib(sb, "Destination", Destination); XmlAttrib(sb, "HostReference", HostReference); @@ -9256,7 +9480,7 @@ public override object PayloadValue(int index) switch (index) { case 0: - return Action; + return SoapAction; case 1: return ContractName; case 2: diff --git a/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk01.cs b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk01.cs new file mode 100644 index 000000000..785994231 --- /dev/null +++ b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk01.cs @@ -0,0 +1,1402 @@ +// Auto-generated test code for chunk 01 (events 100-214) +using Microsoft.Diagnostics.Tracing; +using Microsoft.Diagnostics.Tracing.Parsers; +using Microsoft.Diagnostics.Tracing.Parsers.ApplicationServer; +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using Xunit; +using TraceEventTests; + +namespace TraceEventTests.Parsers +{ + public partial class ApplicationServerTraceEventParserTests + { + // Number of events in chunk 01 + private const int Chunk01EventCount = 37; + + #region Template Field Definitions for Chunk 01 + + private static readonly TemplateField[] Multidata9TemplateHA_Fields = new TemplateField[] + { + new TemplateField("InstanceId", FieldType.Guid), + new TemplateField("RecordNumber", FieldType.Int64), + new TemplateField("ActivityDefinitionId", FieldType.UnicodeString), + new TemplateField("State", FieldType.UnicodeString), + new TemplateField("Annotations", FieldType.UnicodeString), + new TemplateField("ProfileName", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata10TemplateHA_Fields = new TemplateField[] + { + new TemplateField("InstanceId", FieldType.Guid), + new TemplateField("RecordNumber", FieldType.Int64), + new TemplateField("ActivityDefinitionId", FieldType.UnicodeString), + new TemplateField("SourceName", FieldType.UnicodeString), + new TemplateField("SourceId", FieldType.UnicodeString), + new TemplateField("SourceInstanceId", FieldType.UnicodeString), + new TemplateField("SourceTypeName", FieldType.UnicodeString), + new TemplateField("Exception", FieldType.UnicodeString), + new TemplateField("Annotations", FieldType.UnicodeString), + new TemplateField("ProfileName", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata8TemplateHA_Fields = new TemplateField[] + { + new TemplateField("InstanceId", FieldType.Guid), + new TemplateField("RecordNumber", FieldType.Int64), + new TemplateField("ActivityDefinitionId", FieldType.UnicodeString), + new TemplateField("Reason", FieldType.UnicodeString), + new TemplateField("Annotations", FieldType.UnicodeString), + new TemplateField("ProfileName", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata4TemplateHA_Fields= new TemplateField[] + { + new TemplateField("InstanceId", FieldType.Guid), + new TemplateField("RecordNumber", FieldType.Int64), + new TemplateField("State", FieldType.UnicodeString), + new TemplateField("Name", FieldType.UnicodeString), + new TemplateField("ActivityId", FieldType.UnicodeString), + new TemplateField("ActivityInstanceId", FieldType.UnicodeString), + new TemplateField("ActivityTypeName", FieldType.UnicodeString), + new TemplateField("Arguments", FieldType.UnicodeString), + new TemplateField("Variables", FieldType.UnicodeString), + new TemplateField("Annotations", FieldType.UnicodeString), + new TemplateField("ProfileName", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata3TemplateHA_Fields = new TemplateField[] + { + new TemplateField("InstanceId", FieldType.Guid), + new TemplateField("RecordNumber", FieldType.Int64), + new TemplateField("Name", FieldType.UnicodeString), + new TemplateField("ActivityId", FieldType.UnicodeString), + new TemplateField("ActivityInstanceId", FieldType.UnicodeString), + new TemplateField("ActivityTypeName", FieldType.UnicodeString), + new TemplateField("ChildActivityName", FieldType.UnicodeString), + new TemplateField("ChildActivityId", FieldType.UnicodeString), + new TemplateField("ChildActivityInstanceId", FieldType.UnicodeString), + new TemplateField("ChildActivityTypeName", FieldType.UnicodeString), + new TemplateField("Annotations", FieldType.UnicodeString), + new TemplateField("ProfileName", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata6TemplateHA_Fields = new TemplateField[] + { + new TemplateField("InstanceId", FieldType.Guid), + new TemplateField("RecordNumber", FieldType.Int64), + new TemplateField("FaultSourceActivityName", FieldType.UnicodeString), + new TemplateField("FaultSourceActivityId", FieldType.UnicodeString), + new TemplateField("FaultSourceActivityInstanceId", FieldType.UnicodeString), + new TemplateField("FaultSourceActivityTypeName", FieldType.UnicodeString), + new TemplateField("FaultHandlerActivityName", FieldType.UnicodeString), + new TemplateField("FaultHandlerActivityId", FieldType.UnicodeString), + new TemplateField("FaultHandlerActivityInstanceId", FieldType.UnicodeString), + new TemplateField("FaultHandlerActivityTypeName", FieldType.UnicodeString), + new TemplateField("Fault", FieldType.UnicodeString), + new TemplateField("IsFaultSource", FieldType.UInt8), + new TemplateField("Annotations", FieldType.UnicodeString), + new TemplateField("ProfileName", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata5TemplateHA_Fields = new TemplateField[] + { + new TemplateField("InstanceId", FieldType.Guid), + new TemplateField("RecordNumber", FieldType.Int64), + new TemplateField("Name", FieldType.UnicodeString), + new TemplateField("SubInstanceID", FieldType.Guid), + new TemplateField("OwnerActivityName", FieldType.UnicodeString), + new TemplateField("OwnerActivityId", FieldType.UnicodeString), + new TemplateField("OwnerActivityInstanceId", FieldType.UnicodeString), + new TemplateField("OwnerActivityTypeName", FieldType.UnicodeString), + new TemplateField("Annotations", FieldType.UnicodeString), + new TemplateField("ProfileName", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata7TemplateHA_Fields = new TemplateField[] + { + new TemplateField("InstanceId", FieldType.Guid), + new TemplateField("RecordNumber", FieldType.Int64), + new TemplateField("Name", FieldType.UnicodeString), + new TemplateField("ActivityName", FieldType.UnicodeString), + new TemplateField("ActivityId", FieldType.UnicodeString), + new TemplateField("ActivityInstanceId", FieldType.UnicodeString), + new TemplateField("ActivityTypeName", FieldType.UnicodeString), + new TemplateField("Data", FieldType.UnicodeString), + new TemplateField("Annotations", FieldType.UnicodeString), + new TemplateField("ProfileName", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata11TemplateHA_Fields = new TemplateField[] + { + new TemplateField("InstanceId", FieldType.Guid), + new TemplateField("RecordNumber", FieldType.Int64), + new TemplateField("ActivityDefinitionId", FieldType.UnicodeString), + new TemplateField("State", FieldType.UnicodeString), + new TemplateField("Annotations", FieldType.UnicodeString), + new TemplateField("ProfileName", FieldType.UnicodeString), + new TemplateField("WorkflowDefinitionIdentity", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata12TemplateHA_Fields = new TemplateField[] + { + new TemplateField("InstanceId", FieldType.Guid), + new TemplateField("RecordNumber", FieldType.Int64), + new TemplateField("ActivityDefinitionId", FieldType.UnicodeString), + new TemplateField("Reason", FieldType.UnicodeString), + new TemplateField("Annotations", FieldType.UnicodeString), + new TemplateField("ProfileName", FieldType.UnicodeString), + new TemplateField("WorkflowDefinitionIdentity", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata13TemplateHA_Fields = new TemplateField[] + { + new TemplateField("InstanceId", FieldType.Guid), + new TemplateField("RecordNumber", FieldType.Int64), + new TemplateField("ActivityDefinitionId", FieldType.UnicodeString), + new TemplateField("SourceName", FieldType.UnicodeString), + new TemplateField("SourceId", FieldType.UnicodeString), + new TemplateField("SourceInstanceId", FieldType.UnicodeString), + new TemplateField("SourceTypeName", FieldType.UnicodeString), + new TemplateField("Exception", FieldType.UnicodeString), + new TemplateField("Annotations", FieldType.UnicodeString), + new TemplateField("ProfileName", FieldType.UnicodeString), + new TemplateField("WorkflowDefinitionIdentity", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata14TemplateHA_Fields = new TemplateField[] + { + new TemplateField("InstanceId", FieldType.Guid), + new TemplateField("RecordNumber", FieldType.Int64), + new TemplateField("ActivityDefinitionId", FieldType.UnicodeString), + new TemplateField("State", FieldType.UnicodeString), + new TemplateField("OriginalDefinitionIdentity", FieldType.UnicodeString), + new TemplateField("UpdatedDefinitionIdentity", FieldType.UnicodeString), + new TemplateField("Annotations", FieldType.UnicodeString), + new TemplateField("ProfileName", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata1TemplateA_Fields = new TemplateField[] + { + new TemplateField("Size", FieldType.Int32), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata2TemplateA_Fields = new TemplateField[] + { + new TemplateField("PoolSize", FieldType.Int32), + new TemplateField("Delta", FieldType.Int32), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] OneStringsTemplateA_Fields = new TemplateField[] + { + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata23TemplateHA_Fields = new TemplateField[] + { + new TemplateField("TypeName", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata24TemplateHA_Fields = new TemplateField[] + { + new TemplateField("MethodName", FieldType.UnicodeString), + new TemplateField("CallerInfo", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata25TemplateHA_Fields = new TemplateField[] + { + new TemplateField("TypeName", FieldType.UnicodeString), + new TemplateField("Handled", FieldType.UInt8), + new TemplateField("ExceptionTypeName", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata26TemplateHA_Fields = new TemplateField[] + { + new TemplateField("TypeName", FieldType.UnicodeString), + new TemplateField("ExceptionTypeName", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata27TemplateHA_Fields = new TemplateField[] + { + new TemplateField("ThrottleName", FieldType.UnicodeString), + new TemplateField("Limit", FieldType.Int64), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata28TemplateHA_Fields = new TemplateField[] + { + new TemplateField("MethodName", FieldType.UnicodeString), + new TemplateField("Duration", FieldType.Int64), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata72TemplateHA_Fields = new TemplateField[] + { + new TemplateField("ServiceTypeName", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + #endregion + + /// + /// Writes metadata entries for chunk 01 events (100-214). + /// + private void WriteMetadata_Chunk01(EventPipeWriterV5 writer, ref int metadataId) + { + int __metadataId = metadataId; + writer.WriteMetadataBlock(w => + { + // WorkflowInstanceRecord (Multidata9TemplateHA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "WorkflowInstanceRecord", 100)); + // WorkflowInstanceUnhandledExceptionRecord (Multidata10TemplateHA, opcode=150) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "WorkflowInstanceUnhandledExceptionRecord", 101) { OpCode = 150 }); + // WorkflowInstanceAbortedRecord (Multidata8TemplateHA, opcode=144) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "WorkflowInstanceAbortedRecord", 102) { OpCode = 144 }); + // ActivityStateRecord (Multidata4TemplateHA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ActivityStateRecord", 103)); + // ActivityScheduledRecord (Multidata3TemplateHA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ActivityScheduledRecord", 104)); + // FaultPropagationRecord (Multidata6TemplateHA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "FaultPropagationRecord", 105)); + // CancelRequestedRecord (Multidata3TemplateHA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "CancelRequestedRecord", 106)); + // BookmarkResumptionRecord (Multidata5TemplateHA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "BookmarkResumptionRecord", 107)); + // CustomTrackingRecordInfo (Multidata7TemplateHA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "CustomTrackingRecordInfo", 108)); + // CustomTrackingRecordWarning (Multidata7TemplateHA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "CustomTrackingRecordWarning", 110)); + // CustomTrackingRecordError (Multidata7TemplateHA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "CustomTrackingRecordError", 111)); + // WorkflowInstanceSuspendedRecord (Multidata8TemplateHA, opcode=146) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "WorkflowInstanceSuspendedRecord", 112) { OpCode = 146 }); + // WorkflowInstanceTerminatedRecord (Multidata8TemplateHA, opcode=148) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "WorkflowInstanceTerminatedRecord", 113) { OpCode = 148 }); + // WorkflowInstanceRecordWithId (Multidata11TemplateHA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "WorkflowInstanceRecordWithId", 114)); + // WorkflowInstanceAbortedRecordWithId (Multidata12TemplateHA, opcode=145) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "WorkflowInstanceAbortedRecordWithId", 115) { OpCode = 145 }); + // WorkflowInstanceSuspendedRecordWithId (Multidata12TemplateHA, opcode=147) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "WorkflowInstanceSuspendedRecordWithId", 116) { OpCode = 147 }); + // WorkflowInstanceTerminatedRecordWithId (Multidata12TemplateHA, opcode=149) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "WorkflowInstanceTerminatedRecordWithId", 117) { OpCode = 149 }); + // WorkflowInstanceUnhandledExceptionRecordWithId (Multidata13TemplateHA, opcode=151) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "WorkflowInstanceUnhandledExceptionRecordWithId", 118) { OpCode = 151 }); + // WorkflowInstanceUpdatedRecord (Multidata14TemplateHA, opcode=152) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "WorkflowInstanceUpdatedRecord", 119) { OpCode = 152 }); + // BufferPoolAllocation (Multidata1TemplateA, opcode=12) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "BufferPoolAllocation", 131) { OpCode = 12 }); + // BufferPoolChangeQuota (Multidata2TemplateA, opcode=13) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "BufferPoolChangeQuota", 132) { OpCode = 13 }); + // ActionItemScheduled (OneStringsTemplateA, opcode=1) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ActionItemScheduled", 133) { OpCode = 1 }); + // ActionItemCallbackInvoked (OneStringsTemplateA, opcode=2) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ActionItemCallbackInvoked", 134) { OpCode = 2 }); + // ClientMessageInspectorAfterReceiveInvoked (Multidata23TemplateHA, opcode=16) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ClientMessageInspectorAfterReceiveInvoked", 201) { OpCode = 16 }); + // ClientMessageInspectorBeforeSendInvoked (Multidata23TemplateHA, opcode=17) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ClientMessageInspectorBeforeSendInvoked", 202) { OpCode = 17 }); + // ClientParameterInspectorAfterCallInvoked (Multidata23TemplateHA, opcode=19) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ClientParameterInspectorAfterCallInvoked", 203) { OpCode = 19 }); + // ClientParameterInspectorBeforeCallInvoked (Multidata23TemplateHA, opcode=18) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ClientParameterInspectorBeforeCallInvoked", 204) { OpCode = 18 }); + // OperationInvoked (Multidata24TemplateHA, opcode=53) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "OperationInvoked", 205) { OpCode = 53 }); + // ErrorHandlerInvoked (Multidata25TemplateHA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ErrorHandlerInvoked", 206)); + // FaultProviderInvoked (Multidata26TemplateHA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "FaultProviderInvoked", 207)); + // MessageInspectorAfterReceiveInvoked (Multidata23TemplateHA, opcode=51) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "MessageInspectorAfterReceiveInvoked", 208) { OpCode = 51 }); + // MessageInspectorBeforeSendInvoked (Multidata23TemplateHA, opcode=52) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "MessageInspectorBeforeSendInvoked", 209) { OpCode = 52 }); + // MessageThrottleExceeded (Multidata27TemplateHA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "MessageThrottleExceeded", 210)); + // ParameterInspectorAfterCallInvoked (Multidata23TemplateHA, opcode=56) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ParameterInspectorAfterCallInvoked", 211) { OpCode = 56 }); + // ParameterInspectorBeforeCallInvoked (Multidata23TemplateHA, opcode=55) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ParameterInspectorBeforeCallInvoked", 212) { OpCode = 55 }); + // ServiceHostStarted (Multidata72TemplateHA, opcode=1) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ServiceHostStarted", 213) { OpCode = 1 }); + // OperationCompleted (Multidata28TemplateHA, opcode=54) + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "OperationCompleted", 214) { OpCode = 54 }); + }); + + metadataId = __metadataId; + } + + /// + /// Writes event payloads for chunk 01 events (100-214). + /// + private void WriteEvents_Chunk01(EventPipeWriterV5 writer, ref int metadataId, ref int sequenceNumber) + { + int __metadataId = metadataId; + int __sequenceNumber = sequenceNumber; + writer.WriteEventBlock(w => + { + // WorkflowInstanceRecord (Multidata9TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(100, Multidata9TemplateHA_Fields)); + // WorkflowInstanceUnhandledExceptionRecord (Multidata10TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(101, Multidata10TemplateHA_Fields)); + // WorkflowInstanceAbortedRecord (Multidata8TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(102, Multidata8TemplateHA_Fields)); + // ActivityStateRecord (Multidata4TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(103, Multidata4TemplateHA_Fields)); + // ActivityScheduledRecord (Multidata3TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(104, Multidata3TemplateHA_Fields)); + // FaultPropagationRecord (Multidata6TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(105, Multidata6TemplateHA_Fields)); + // CancelRequestedRecord (Multidata3TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(106, Multidata3TemplateHA_Fields)); + // BookmarkResumptionRecord (Multidata5TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(107, Multidata5TemplateHA_Fields)); + // CustomTrackingRecordInfo (Multidata7TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(108, Multidata7TemplateHA_Fields)); + // CustomTrackingRecordWarning (Multidata7TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(110, Multidata7TemplateHA_Fields)); + // CustomTrackingRecordError (Multidata7TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(111, Multidata7TemplateHA_Fields)); + // WorkflowInstanceSuspendedRecord (Multidata8TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(112, Multidata8TemplateHA_Fields)); + // WorkflowInstanceTerminatedRecord (Multidata8TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(113, Multidata8TemplateHA_Fields)); + // WorkflowInstanceRecordWithId (Multidata11TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(114, Multidata11TemplateHA_Fields)); + // WorkflowInstanceAbortedRecordWithId (Multidata12TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(115, Multidata12TemplateHA_Fields)); + // WorkflowInstanceSuspendedRecordWithId (Multidata12TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(116, Multidata12TemplateHA_Fields)); + // WorkflowInstanceTerminatedRecordWithId (Multidata12TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(117, Multidata12TemplateHA_Fields)); + // WorkflowInstanceUnhandledExceptionRecordWithId (Multidata13TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(118, Multidata13TemplateHA_Fields)); + // WorkflowInstanceUpdatedRecord (Multidata14TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(119, Multidata14TemplateHA_Fields)); + // BufferPoolAllocation (Multidata1TemplateA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(131, Multidata1TemplateA_Fields)); + // BufferPoolChangeQuota (Multidata2TemplateA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(132, Multidata2TemplateA_Fields)); + // ActionItemScheduled (OneStringsTemplateA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(133, OneStringsTemplateA_Fields)); + // ActionItemCallbackInvoked (OneStringsTemplateA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(134, OneStringsTemplateA_Fields)); + // ClientMessageInspectorAfterReceiveInvoked (Multidata23TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(201, Multidata23TemplateHA_Fields)); + // ClientMessageInspectorBeforeSendInvoked (Multidata23TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(202, Multidata23TemplateHA_Fields)); + // ClientParameterInspectorAfterCallInvoked (Multidata23TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(203, Multidata23TemplateHA_Fields)); + // ClientParameterInspectorBeforeCallInvoked (Multidata23TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(204, Multidata23TemplateHA_Fields)); + // OperationInvoked (Multidata24TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(205, Multidata24TemplateHA_Fields)); + // ErrorHandlerInvoked (Multidata25TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(206, Multidata25TemplateHA_Fields)); + // FaultProviderInvoked (Multidata26TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(207, Multidata26TemplateHA_Fields)); + // MessageInspectorAfterReceiveInvoked (Multidata23TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(208, Multidata23TemplateHA_Fields)); + // MessageInspectorBeforeSendInvoked (Multidata23TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(209, Multidata23TemplateHA_Fields)); + // MessageThrottleExceeded (Multidata27TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(210, Multidata27TemplateHA_Fields)); + // ParameterInspectorAfterCallInvoked (Multidata23TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(211, Multidata23TemplateHA_Fields)); + // ParameterInspectorBeforeCallInvoked (Multidata23TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(212, Multidata23TemplateHA_Fields)); + // ServiceHostStarted (Multidata72TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(213, Multidata72TemplateHA_Fields)); + // OperationCompleted (Multidata28TemplateHA) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(214, Multidata28TemplateHA_Fields)); + }); + + metadataId = __metadataId; + sequenceNumber = __sequenceNumber; + } + + /// + /// Subscribes to chunk 01 events and records payload values. + /// + private void Subscribe_Chunk01(ApplicationServerTraceEventParser parser, Dictionary> firedEvents) + { + // WorkflowInstanceRecord -> Multidata9TemplateHATraceData + parser.WorkflowInstanceRecord += delegate(Multidata9TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["ActivityDefinitionId"] = data.ActivityDefinitionId; + fields["State"] = data.State; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowInstanceRecord"] = fields; + }; + + // WorkflowInstanceUnhandledExceptionRecord -> Multidata10TemplateHATraceData + parser.WorkflowInstanceUnhandledExceptionRecord += delegate(Multidata10TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["ActivityDefinitionId"] = data.ActivityDefinitionId; + fields["SourceName"] = data.SourceName; + fields["SourceId"] = data.SourceId; + fields["SourceInstanceId"] = data.SourceInstanceId; + fields["SourceTypeName"] = data.SourceTypeName; + fields["Exception"] = data.Exception; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowInstanceUnhandledExceptionRecord"] = fields; + }; + + // WorkflowInstanceAbortedRecord -> Multidata8TemplateHATraceData + parser.WorkflowInstanceAbortedRecord += delegate(Multidata8TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["ActivityDefinitionId"] = data.ActivityDefinitionId; + fields["Reason"] = data.Reason; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowInstanceAbortedRecord"] = fields; + }; + + // ActivityStateRecord -> Multidata4TemplateHATraceData + parser.ActivityStateRecord += delegate(Multidata4TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["State"] = data.State; + fields["Name"] = data.Name; + fields["ActivityId"] = data.ActivityId; + fields["ActivityInstanceId"] = data.ActivityInstanceId; + fields["ActivityTypeName"] = data.ActivityTypeName; + fields["Arguments"] = data.Arguments; + fields["Variables"] = data.Variables; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["ActivityStateRecord"] = fields; + }; + + // ActivityScheduledRecord -> Multidata3TemplateHATraceData + parser.ActivityScheduledRecord += delegate(Multidata3TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["Name"] = data.Name; + fields["ActivityId"] = data.ActivityId; + fields["ActivityInstanceId"] = data.ActivityInstanceId; + fields["ActivityTypeName"] = data.ActivityTypeName; + fields["ChildActivityName"] = data.ChildActivityName; + fields["ChildActivityId"] = data.ChildActivityId; + fields["ChildActivityInstanceId"] = data.ChildActivityInstanceId; + fields["ChildActivityTypeName"] = data.ChildActivityTypeName; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["ActivityScheduledRecord"] = fields; + }; + + // FaultPropagationRecord -> Multidata6TemplateHATraceData + parser.FaultPropagationRecord += delegate(Multidata6TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["FaultSourceActivityName"] = data.FaultSourceActivityName; + fields["FaultSourceActivityId"] = data.FaultSourceActivityId; + fields["FaultSourceActivityInstanceId"] = data.FaultSourceActivityInstanceId; + fields["FaultSourceActivityTypeName"] = data.FaultSourceActivityTypeName; + fields["FaultHandlerActivityName"] = data.FaultHandlerActivityName; + fields["FaultHandlerActivityId"] = data.FaultHandlerActivityId; + fields["FaultHandlerActivityInstanceId"] = data.FaultHandlerActivityInstanceId; + fields["FaultHandlerActivityTypeName"] = data.FaultHandlerActivityTypeName; + fields["Fault"] = data.Fault; + fields["IsFaultSource"] = data.IsFaultSource; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["FaultPropagationRecord"] = fields; + }; + + // CancelRequestedRecord -> Multidata3TemplateHATraceData + parser.CancelRequestedRecord += delegate(Multidata3TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["Name"] = data.Name; + fields["ActivityId"] = data.ActivityId; + fields["ActivityInstanceId"] = data.ActivityInstanceId; + fields["ActivityTypeName"] = data.ActivityTypeName; + fields["ChildActivityName"] = data.ChildActivityName; + fields["ChildActivityId"] = data.ChildActivityId; + fields["ChildActivityInstanceId"] = data.ChildActivityInstanceId; + fields["ChildActivityTypeName"] = data.ChildActivityTypeName; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["CancelRequestedRecord"] = fields; + }; + + // BookmarkResumptionRecord -> Multidata5TemplateHATraceData + parser.BookmarkResumptionRecord += delegate(Multidata5TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["Name"] = data.Name; + fields["SubInstanceID"] = data.SubInstanceID; + fields["OwnerActivityName"] = data.OwnerActivityName; + fields["OwnerActivityId"] = data.OwnerActivityId; + fields["OwnerActivityInstanceId"] = data.OwnerActivityInstanceId; + fields["OwnerActivityTypeName"] = data.OwnerActivityTypeName; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["BookmarkResumptionRecord"] = fields; + }; + + // CustomTrackingRecordInfo -> Multidata7TemplateHATraceData + parser.CustomTrackingRecordInfo += delegate(Multidata7TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["Name"] = data.Name; + fields["ActivityName"] = data.ActivityName; + fields["ActivityId"] = data.ActivityId; + fields["ActivityInstanceId"] = data.ActivityInstanceId; + fields["ActivityTypeName"] = data.ActivityTypeName; + fields["Data"] = data.Data; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["CustomTrackingRecordInfo"] = fields; + }; + + // CustomTrackingRecordWarning -> Multidata7TemplateHATraceData + parser.CustomTrackingRecordWarning += delegate(Multidata7TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["Name"] = data.Name; + fields["ActivityName"] = data.ActivityName; + fields["ActivityId"] = data.ActivityId; + fields["ActivityInstanceId"] = data.ActivityInstanceId; + fields["ActivityTypeName"] = data.ActivityTypeName; + fields["Data"] = data.Data; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["CustomTrackingRecordWarning"] = fields; + }; + + // CustomTrackingRecordError -> Multidata7TemplateHATraceData + parser.CustomTrackingRecordError += delegate(Multidata7TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["Name"] = data.Name; + fields["ActivityName"] = data.ActivityName; + fields["ActivityId"] = data.ActivityId; + fields["ActivityInstanceId"] = data.ActivityInstanceId; + fields["ActivityTypeName"] = data.ActivityTypeName; + fields["Data"] = data.Data; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["CustomTrackingRecordError"] = fields; + }; + + // WorkflowInstanceSuspendedRecord -> Multidata8TemplateHATraceData + parser.WorkflowInstanceSuspendedRecord += delegate(Multidata8TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["ActivityDefinitionId"] = data.ActivityDefinitionId; + fields["Reason"] = data.Reason; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowInstanceSuspendedRecord"] = fields; + }; + + // WorkflowInstanceTerminatedRecord -> Multidata8TemplateHATraceData + parser.WorkflowInstanceTerminatedRecord += delegate(Multidata8TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["ActivityDefinitionId"] = data.ActivityDefinitionId; + fields["Reason"] = data.Reason; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowInstanceTerminatedRecord"] = fields; + }; + + // WorkflowInstanceRecordWithId -> Multidata11TemplateHATraceData + parser.WorkflowInstanceRecordWithId += delegate(Multidata11TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["ActivityDefinitionId"] = data.ActivityDefinitionId; + fields["State"] = data.State; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["WorkflowDefinitionIdentity"] = data.WorkflowDefinitionIdentity; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowInstanceRecordWithId"] = fields; + }; + + // WorkflowInstanceAbortedRecordWithId -> Multidata12TemplateHATraceData + parser.WorkflowInstanceAbortedRecordWithId += delegate(Multidata12TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["ActivityDefinitionId"] = data.ActivityDefinitionId; + fields["Reason"] = data.Reason; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["WorkflowDefinitionIdentity"] = data.WorkflowDefinitionIdentity; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowInstanceAbortedRecordWithId"] = fields; + }; + + // WorkflowInstanceSuspendedRecordWithId -> Multidata12TemplateHATraceData + parser.WorkflowInstanceSuspendedRecordWithId += delegate(Multidata12TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["ActivityDefinitionId"] = data.ActivityDefinitionId; + fields["Reason"] = data.Reason; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["WorkflowDefinitionIdentity"] = data.WorkflowDefinitionIdentity; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowInstanceSuspendedRecordWithId"] = fields; + }; + + // WorkflowInstanceTerminatedRecordWithId -> Multidata12TemplateHATraceData + parser.WorkflowInstanceTerminatedRecordWithId += delegate(Multidata12TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["ActivityDefinitionId"] = data.ActivityDefinitionId; + fields["Reason"] = data.Reason; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["WorkflowDefinitionIdentity"] = data.WorkflowDefinitionIdentity; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowInstanceTerminatedRecordWithId"] = fields; + }; + + // WorkflowInstanceUnhandledExceptionRecordWithId -> Multidata13TemplateHATraceData + parser.WorkflowInstanceUnhandledExceptionRecordWithId += delegate(Multidata13TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["ActivityDefinitionId"] = data.ActivityDefinitionId; + fields["SourceName"] = data.SourceName; + fields["SourceId"] = data.SourceId; + fields["SourceInstanceId"] = data.SourceInstanceId; + fields["SourceTypeName"] = data.SourceTypeName; + fields["Exception"] = data.Exception; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["WorkflowDefinitionIdentity"] = data.WorkflowDefinitionIdentity; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowInstanceUnhandledExceptionRecordWithId"] = fields; + }; + + // WorkflowInstanceUpdatedRecord -> Multidata14TemplateHATraceData + parser.WorkflowInstanceUpdatedRecord += delegate(Multidata14TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceId"] = data.InstanceId; + fields["RecordNumber"] = data.RecordNumber; + fields["ActivityDefinitionId"] = data.ActivityDefinitionId; + fields["State"] = data.State; + fields["OriginalDefinitionIdentity"] = data.OriginalDefinitionIdentity; + fields["UpdatedDefinitionIdentity"] = data.UpdatedDefinitionIdentity; + fields["Annotations"] = data.Annotations; + fields["ProfileName"] = data.ProfileName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowInstanceUpdatedRecord"] = fields; + }; + + // BufferPoolAllocation -> Multidata1TemplateATraceData + parser.BufferPoolAllocation += delegate(Multidata1TemplateATraceData data) + { + var fields = new Dictionary(); + fields["Size"] = data.Size; + fields["AppDomain"] = data.AppDomain; + firedEvents["BufferPoolAllocation"] = fields; + }; + + // BufferPoolChangeQuota -> Multidata2TemplateATraceData + parser.BufferPoolChangeQuota += delegate(Multidata2TemplateATraceData data) + { + var fields = new Dictionary(); + fields["PoolSize"] = data.PoolSize; + fields["Delta"] = data.Delta; + fields["AppDomain"] = data.AppDomain; + firedEvents["BufferPoolChangeQuota"] = fields; + }; + + // ActionItemScheduled -> OneStringsTemplateATraceData + parser.ActionItemScheduled += delegate(OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["ActionItemScheduled"] = fields; + }; + + // ActionItemCallbackInvoked -> OneStringsTemplateATraceData + parser.ActionItemCallbackInvoked += delegate(OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["ActionItemCallbackInvoked"] = fields; + }; + + // ClientMessageInspectorAfterReceiveInvoked -> Multidata23TemplateHATraceData + parser.ClientMessageInspectorAfterReceiveInvoked += delegate(Multidata23TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["TypeName"] = data.TypeName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["ClientMessageInspectorAfterReceiveInvoked"] = fields; + }; + + // ClientMessageInspectorBeforeSendInvoked -> Multidata23TemplateHATraceData + parser.ClientMessageInspectorBeforeSendInvoked += delegate(Multidata23TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["TypeName"] = data.TypeName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["ClientMessageInspectorBeforeSendInvoked"] = fields; + }; + + // ClientParameterInspectorAfterCallInvoked -> Multidata23TemplateHATraceData + parser.ClientParameterInspectorAfterCallInvoked += delegate(Multidata23TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["TypeName"] = data.TypeName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["ClientParameterInspectorAfterCallInvoked"] = fields; + }; + + // ClientParameterInspectorBeforeCallInvoked -> Multidata23TemplateHATraceData + parser.ClientParameterInspectorBeforeCallInvoked += delegate(Multidata23TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["TypeName"] = data.TypeName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["ClientParameterInspectorBeforeCallInvoked"] = fields; + }; + + // OperationInvoked -> Multidata24TemplateHATraceData + parser.OperationInvoked += delegate(Multidata24TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["MethodName"] = data.MethodName; + fields["CallerInfo"] = data.CallerInfo; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["OperationInvoked"] = fields; + }; + + // ErrorHandlerInvoked -> Multidata25TemplateHATraceData + parser.ErrorHandlerInvoked += delegate(Multidata25TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["TypeName"] = data.TypeName; + fields["Handled"] = data.Handled; + fields["ExceptionTypeName"] = data.ExceptionTypeName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["ErrorHandlerInvoked"] = fields; + }; + + // FaultProviderInvoked -> Multidata26TemplateHATraceData + parser.FaultProviderInvoked += delegate(Multidata26TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["TypeName"] = data.TypeName; + fields["ExceptionTypeName"] = data.ExceptionTypeName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["FaultProviderInvoked"] = fields; + }; + + // MessageInspectorAfterReceiveInvoked -> Multidata23TemplateHATraceData + parser.MessageInspectorAfterReceiveInvoked += delegate(Multidata23TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["TypeName"] = data.TypeName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["MessageInspectorAfterReceiveInvoked"] = fields; + }; + + // MessageInspectorBeforeSendInvoked -> Multidata23TemplateHATraceData + parser.MessageInspectorBeforeSendInvoked += delegate(Multidata23TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["TypeName"] = data.TypeName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["MessageInspectorBeforeSendInvoked"] = fields; + }; + + // MessageThrottleExceeded -> Multidata27TemplateHATraceData + parser.MessageThrottleExceeded += delegate(Multidata27TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["ThrottleName"] = data.ThrottleName; + fields["Limit"] = data.Limit; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["MessageThrottleExceeded"] = fields; + }; + + // ParameterInspectorAfterCallInvoked -> Multidata23TemplateHATraceData + parser.ParameterInspectorAfterCallInvoked += delegate(Multidata23TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["TypeName"] = data.TypeName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["ParameterInspectorAfterCallInvoked"] = fields; + }; + + // ParameterInspectorBeforeCallInvoked -> Multidata23TemplateHATraceData + parser.ParameterInspectorBeforeCallInvoked += delegate(Multidata23TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["TypeName"] = data.TypeName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["ParameterInspectorBeforeCallInvoked"] = fields; + }; + + // ServiceHostStarted -> Multidata72TemplateHATraceData + parser.ServiceHostStarted += delegate(Multidata72TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["ServiceTypeName"] = data.ServiceTypeName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["ServiceHostStarted"] = fields; + }; + + // OperationCompleted -> Multidata28TemplateHATraceData + parser.OperationCompleted += delegate(Multidata28TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["MethodName"] = data.MethodName; + fields["Duration"] = data.Duration; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["OperationCompleted"] = fields; + }; + } + + /// + /// Validates chunk 01 event payload values. + /// + private void Validate_Chunk01(Dictionary> firedEvents) + { + // WorkflowInstanceRecord (Multidata9TemplateHA) + Assert.True(firedEvents.ContainsKey("WorkflowInstanceRecord"), "Event WorkflowInstanceRecord did not fire"); + var eWorkflowInstanceRecord = firedEvents["WorkflowInstanceRecord"]; + Assert.Equal(TestGuid(100, 0), (Guid)eWorkflowInstanceRecord["InstanceId"]); + Assert.Equal(TestInt64(100, 1), (long)eWorkflowInstanceRecord["RecordNumber"]); + // Field index 2 is EventTime (skipped by parser) + Assert.Equal(TestString(100, "ActivityDefinitionId"), (string)eWorkflowInstanceRecord["ActivityDefinitionId"]); + Assert.Equal(TestString(100, "State"), (string)eWorkflowInstanceRecord["State"]); + Assert.Equal(TestString(100, "Annotations"), (string)eWorkflowInstanceRecord["Annotations"]); + Assert.Equal(TestString(100, "ProfileName"), (string)eWorkflowInstanceRecord["ProfileName"]); + Assert.Equal(TestString(100, "HostReference"), (string)eWorkflowInstanceRecord["HostReference"]); + Assert.Equal(TestString(100, "AppDomain"), (string)eWorkflowInstanceRecord["AppDomain"]); + + // WorkflowInstanceUnhandledExceptionRecord (Multidata10TemplateHA) + Assert.True(firedEvents.ContainsKey("WorkflowInstanceUnhandledExceptionRecord"), "Event WorkflowInstanceUnhandledExceptionRecord did not fire"); + var eWorkflowInstanceUnhandledExceptionRecord = firedEvents["WorkflowInstanceUnhandledExceptionRecord"]; + Assert.Equal(TestGuid(101, 0), (Guid)eWorkflowInstanceUnhandledExceptionRecord["InstanceId"]); + Assert.Equal(TestInt64(101, 1), (long)eWorkflowInstanceUnhandledExceptionRecord["RecordNumber"]); + Assert.Equal(TestString(101, "ActivityDefinitionId"), (string)eWorkflowInstanceUnhandledExceptionRecord["ActivityDefinitionId"]); + Assert.Equal(TestString(101, "SourceName"), (string)eWorkflowInstanceUnhandledExceptionRecord["SourceName"]); + Assert.Equal(TestString(101, "SourceId"), (string)eWorkflowInstanceUnhandledExceptionRecord["SourceId"]); + Assert.Equal(TestString(101, "SourceInstanceId"), (string)eWorkflowInstanceUnhandledExceptionRecord["SourceInstanceId"]); + Assert.Equal(TestString(101, "SourceTypeName"), (string)eWorkflowInstanceUnhandledExceptionRecord["SourceTypeName"]); + Assert.Equal(TestString(101, "Exception"), (string)eWorkflowInstanceUnhandledExceptionRecord["Exception"]); + Assert.Equal(TestString(101, "Annotations"), (string)eWorkflowInstanceUnhandledExceptionRecord["Annotations"]); + Assert.Equal(TestString(101, "ProfileName"), (string)eWorkflowInstanceUnhandledExceptionRecord["ProfileName"]); + Assert.Equal(TestString(101, "HostReference"), (string)eWorkflowInstanceUnhandledExceptionRecord["HostReference"]); + Assert.Equal(TestString(101, "AppDomain"), (string)eWorkflowInstanceUnhandledExceptionRecord["AppDomain"]); + + // WorkflowInstanceAbortedRecord (Multidata8TemplateHA) + Assert.True(firedEvents.ContainsKey("WorkflowInstanceAbortedRecord"), "Event WorkflowInstanceAbortedRecord did not fire"); + var eWorkflowInstanceAbortedRecord = firedEvents["WorkflowInstanceAbortedRecord"]; + Assert.Equal(TestGuid(102, 0), (Guid)eWorkflowInstanceAbortedRecord["InstanceId"]); + Assert.Equal(TestInt64(102, 1), (long)eWorkflowInstanceAbortedRecord["RecordNumber"]); + Assert.Equal(TestString(102, "ActivityDefinitionId"), (string)eWorkflowInstanceAbortedRecord["ActivityDefinitionId"]); + Assert.Equal(TestString(102, "Reason"), (string)eWorkflowInstanceAbortedRecord["Reason"]); + Assert.Equal(TestString(102, "Annotations"), (string)eWorkflowInstanceAbortedRecord["Annotations"]); + Assert.Equal(TestString(102, "ProfileName"), (string)eWorkflowInstanceAbortedRecord["ProfileName"]); + Assert.Equal(TestString(102, "HostReference"), (string)eWorkflowInstanceAbortedRecord["HostReference"]); + Assert.Equal(TestString(102, "AppDomain"), (string)eWorkflowInstanceAbortedRecord["AppDomain"]); + + // ActivityStateRecord (Multidata4TemplateHA) + Assert.True(firedEvents.ContainsKey("ActivityStateRecord"), "Event ActivityStateRecord did not fire"); + var eActivityStateRecord = firedEvents["ActivityStateRecord"]; + Assert.Equal(TestGuid(103, 0), (Guid)eActivityStateRecord["InstanceId"]); + Assert.Equal(TestInt64(103, 1), (long)eActivityStateRecord["RecordNumber"]); + Assert.Equal(TestString(103, "State"), (string)eActivityStateRecord["State"]); + Assert.Equal(TestString(103, "Name"), (string)eActivityStateRecord["Name"]); + Assert.Equal(TestString(103, "ActivityId"), (string)eActivityStateRecord["ActivityId"]); + Assert.Equal(TestString(103, "ActivityInstanceId"), (string)eActivityStateRecord["ActivityInstanceId"]); + Assert.Equal(TestString(103, "ActivityTypeName"), (string)eActivityStateRecord["ActivityTypeName"]); + Assert.Equal(TestString(103, "Arguments"), (string)eActivityStateRecord["Arguments"]); + Assert.Equal(TestString(103, "Variables"), (string)eActivityStateRecord["Variables"]); + Assert.Equal(TestString(103, "Annotations"), (string)eActivityStateRecord["Annotations"]); + Assert.Equal(TestString(103, "ProfileName"), (string)eActivityStateRecord["ProfileName"]); + Assert.Equal(TestString(103, "HostReference"), (string)eActivityStateRecord["HostReference"]); + Assert.Equal(TestString(103, "AppDomain"), (string)eActivityStateRecord["AppDomain"]); + + // ActivityScheduledRecord (Multidata3TemplateHA) + Assert.True(firedEvents.ContainsKey("ActivityScheduledRecord"), "Event ActivityScheduledRecord did not fire"); + var eActivityScheduledRecord = firedEvents["ActivityScheduledRecord"]; + Assert.Equal(TestGuid(104, 0), (Guid)eActivityScheduledRecord["InstanceId"]); + Assert.Equal(TestInt64(104, 1), (long)eActivityScheduledRecord["RecordNumber"]); + Assert.Equal(TestString(104, "Name"), (string)eActivityScheduledRecord["Name"]); + Assert.Equal(TestString(104, "ActivityId"), (string)eActivityScheduledRecord["ActivityId"]); + Assert.Equal(TestString(104, "ActivityInstanceId"), (string)eActivityScheduledRecord["ActivityInstanceId"]); + Assert.Equal(TestString(104, "ActivityTypeName"), (string)eActivityScheduledRecord["ActivityTypeName"]); + Assert.Equal(TestString(104, "ChildActivityName"), (string)eActivityScheduledRecord["ChildActivityName"]); + Assert.Equal(TestString(104, "ChildActivityId"), (string)eActivityScheduledRecord["ChildActivityId"]); + Assert.Equal(TestString(104, "ChildActivityInstanceId"), (string)eActivityScheduledRecord["ChildActivityInstanceId"]); + Assert.Equal(TestString(104, "ChildActivityTypeName"), (string)eActivityScheduledRecord["ChildActivityTypeName"]); + Assert.Equal(TestString(104, "Annotations"), (string)eActivityScheduledRecord["Annotations"]); + Assert.Equal(TestString(104, "ProfileName"), (string)eActivityScheduledRecord["ProfileName"]); + Assert.Equal(TestString(104, "HostReference"), (string)eActivityScheduledRecord["HostReference"]); + Assert.Equal(TestString(104, "AppDomain"), (string)eActivityScheduledRecord["AppDomain"]); + + // FaultPropagationRecord (Multidata6TemplateHA) + Assert.True(firedEvents.ContainsKey("FaultPropagationRecord"), "Event FaultPropagationRecord did not fire"); + var eFaultPropagationRecord = firedEvents["FaultPropagationRecord"]; + Assert.Equal(TestGuid(105, 0), (Guid)eFaultPropagationRecord["InstanceId"]); + Assert.Equal(TestInt64(105, 1), (long)eFaultPropagationRecord["RecordNumber"]); + Assert.Equal(TestString(105, "FaultSourceActivityName"), (string)eFaultPropagationRecord["FaultSourceActivityName"]); + Assert.Equal(TestString(105, "FaultSourceActivityId"), (string)eFaultPropagationRecord["FaultSourceActivityId"]); + Assert.Equal(TestString(105, "FaultSourceActivityInstanceId"), (string)eFaultPropagationRecord["FaultSourceActivityInstanceId"]); + Assert.Equal(TestString(105, "FaultSourceActivityTypeName"), (string)eFaultPropagationRecord["FaultSourceActivityTypeName"]); + Assert.Equal(TestString(105, "FaultHandlerActivityName"), (string)eFaultPropagationRecord["FaultHandlerActivityName"]); + Assert.Equal(TestString(105, "FaultHandlerActivityId"), (string)eFaultPropagationRecord["FaultHandlerActivityId"]); + Assert.Equal(TestString(105, "FaultHandlerActivityInstanceId"), (string)eFaultPropagationRecord["FaultHandlerActivityInstanceId"]); + Assert.Equal(TestString(105, "FaultHandlerActivityTypeName"), (string)eFaultPropagationRecord["FaultHandlerActivityTypeName"]); + Assert.Equal(TestString(105, "Fault"), (string)eFaultPropagationRecord["Fault"]); + Assert.Equal((int)TestByte(105, 11), (int)eFaultPropagationRecord["IsFaultSource"]); + Assert.Equal(TestString(105, "Annotations"), (string)eFaultPropagationRecord["Annotations"]); + Assert.Equal(TestString(105, "ProfileName"), (string)eFaultPropagationRecord["ProfileName"]); + Assert.Equal(TestString(105, "HostReference"), (string)eFaultPropagationRecord["HostReference"]); + Assert.Equal(TestString(105, "AppDomain"), (string)eFaultPropagationRecord["AppDomain"]); + + // CancelRequestedRecord (Multidata3TemplateHA) + Assert.True(firedEvents.ContainsKey("CancelRequestedRecord"), "Event CancelRequestedRecord did not fire"); + var eCancelRequestedRecord = firedEvents["CancelRequestedRecord"]; + Assert.Equal(TestGuid(106, 0), (Guid)eCancelRequestedRecord["InstanceId"]); + Assert.Equal(TestInt64(106, 1), (long)eCancelRequestedRecord["RecordNumber"]); + Assert.Equal(TestString(106, "Name"), (string)eCancelRequestedRecord["Name"]); + Assert.Equal(TestString(106, "ActivityId"), (string)eCancelRequestedRecord["ActivityId"]); + Assert.Equal(TestString(106, "ActivityInstanceId"), (string)eCancelRequestedRecord["ActivityInstanceId"]); + Assert.Equal(TestString(106, "ActivityTypeName"), (string)eCancelRequestedRecord["ActivityTypeName"]); + Assert.Equal(TestString(106, "ChildActivityName"), (string)eCancelRequestedRecord["ChildActivityName"]); + Assert.Equal(TestString(106, "ChildActivityId"), (string)eCancelRequestedRecord["ChildActivityId"]); + Assert.Equal(TestString(106, "ChildActivityInstanceId"), (string)eCancelRequestedRecord["ChildActivityInstanceId"]); + Assert.Equal(TestString(106, "ChildActivityTypeName"), (string)eCancelRequestedRecord["ChildActivityTypeName"]); + Assert.Equal(TestString(106, "Annotations"), (string)eCancelRequestedRecord["Annotations"]); + Assert.Equal(TestString(106, "ProfileName"), (string)eCancelRequestedRecord["ProfileName"]); + Assert.Equal(TestString(106, "HostReference"), (string)eCancelRequestedRecord["HostReference"]); + Assert.Equal(TestString(106, "AppDomain"), (string)eCancelRequestedRecord["AppDomain"]); + + // BookmarkResumptionRecord (Multidata5TemplateHA) + Assert.True(firedEvents.ContainsKey("BookmarkResumptionRecord"), "Event BookmarkResumptionRecord did not fire"); + var eBookmarkResumptionRecord = firedEvents["BookmarkResumptionRecord"]; + Assert.Equal(TestGuid(107, 0), (Guid)eBookmarkResumptionRecord["InstanceId"]); + Assert.Equal(TestInt64(107, 1), (long)eBookmarkResumptionRecord["RecordNumber"]); + Assert.Equal(TestString(107, "Name"), (string)eBookmarkResumptionRecord["Name"]); + Assert.Equal(TestGuid(107, 3), (Guid)eBookmarkResumptionRecord["SubInstanceID"]); + Assert.Equal(TestString(107, "OwnerActivityName"), (string)eBookmarkResumptionRecord["OwnerActivityName"]); + Assert.Equal(TestString(107, "OwnerActivityId"), (string)eBookmarkResumptionRecord["OwnerActivityId"]); + Assert.Equal(TestString(107, "OwnerActivityInstanceId"), (string)eBookmarkResumptionRecord["OwnerActivityInstanceId"]); + Assert.Equal(TestString(107, "OwnerActivityTypeName"), (string)eBookmarkResumptionRecord["OwnerActivityTypeName"]); + Assert.Equal(TestString(107, "Annotations"), (string)eBookmarkResumptionRecord["Annotations"]); + Assert.Equal(TestString(107, "ProfileName"), (string)eBookmarkResumptionRecord["ProfileName"]); + Assert.Equal(TestString(107, "HostReference"), (string)eBookmarkResumptionRecord["HostReference"]); + Assert.Equal(TestString(107, "AppDomain"), (string)eBookmarkResumptionRecord["AppDomain"]); + + // CustomTrackingRecordInfo (Multidata7TemplateHA) + Assert.True(firedEvents.ContainsKey("CustomTrackingRecordInfo"), "Event CustomTrackingRecordInfo did not fire"); + var eCustomTrackingRecordInfo = firedEvents["CustomTrackingRecordInfo"]; + Assert.Equal(TestGuid(108, 0), (Guid)eCustomTrackingRecordInfo["InstanceId"]); + Assert.Equal(TestInt64(108, 1), (long)eCustomTrackingRecordInfo["RecordNumber"]); + Assert.Equal(TestString(108, "Name"), (string)eCustomTrackingRecordInfo["Name"]); + Assert.Equal(TestString(108, "ActivityName"), (string)eCustomTrackingRecordInfo["ActivityName"]); + Assert.Equal(TestString(108, "ActivityId"), (string)eCustomTrackingRecordInfo["ActivityId"]); + Assert.Equal(TestString(108, "ActivityInstanceId"), (string)eCustomTrackingRecordInfo["ActivityInstanceId"]); + Assert.Equal(TestString(108, "ActivityTypeName"), (string)eCustomTrackingRecordInfo["ActivityTypeName"]); + Assert.Equal(TestString(108, "Data"), (string)eCustomTrackingRecordInfo["Data"]); + Assert.Equal(TestString(108, "Annotations"), (string)eCustomTrackingRecordInfo["Annotations"]); + Assert.Equal(TestString(108, "ProfileName"), (string)eCustomTrackingRecordInfo["ProfileName"]); + Assert.Equal(TestString(108, "HostReference"), (string)eCustomTrackingRecordInfo["HostReference"]); + Assert.Equal(TestString(108, "AppDomain"), (string)eCustomTrackingRecordInfo["AppDomain"]); + + // CustomTrackingRecordWarning (Multidata7TemplateHA) + Assert.True(firedEvents.ContainsKey("CustomTrackingRecordWarning"), "Event CustomTrackingRecordWarning did not fire"); + var eCustomTrackingRecordWarning = firedEvents["CustomTrackingRecordWarning"]; + Assert.Equal(TestGuid(110, 0), (Guid)eCustomTrackingRecordWarning["InstanceId"]); + Assert.Equal(TestInt64(110, 1), (long)eCustomTrackingRecordWarning["RecordNumber"]); + Assert.Equal(TestString(110, "Name"), (string)eCustomTrackingRecordWarning["Name"]); + Assert.Equal(TestString(110, "ActivityName"), (string)eCustomTrackingRecordWarning["ActivityName"]); + Assert.Equal(TestString(110, "ActivityId"), (string)eCustomTrackingRecordWarning["ActivityId"]); + Assert.Equal(TestString(110, "ActivityInstanceId"), (string)eCustomTrackingRecordWarning["ActivityInstanceId"]); + Assert.Equal(TestString(110, "ActivityTypeName"), (string)eCustomTrackingRecordWarning["ActivityTypeName"]); + Assert.Equal(TestString(110, "Data"), (string)eCustomTrackingRecordWarning["Data"]); + Assert.Equal(TestString(110, "Annotations"), (string)eCustomTrackingRecordWarning["Annotations"]); + Assert.Equal(TestString(110, "ProfileName"), (string)eCustomTrackingRecordWarning["ProfileName"]); + Assert.Equal(TestString(110, "HostReference"), (string)eCustomTrackingRecordWarning["HostReference"]); + Assert.Equal(TestString(110, "AppDomain"), (string)eCustomTrackingRecordWarning["AppDomain"]); + + // CustomTrackingRecordError (Multidata7TemplateHA) + Assert.True(firedEvents.ContainsKey("CustomTrackingRecordError"), "Event CustomTrackingRecordError did not fire"); + var eCustomTrackingRecordError = firedEvents["CustomTrackingRecordError"]; + Assert.Equal(TestGuid(111, 0), (Guid)eCustomTrackingRecordError["InstanceId"]); + Assert.Equal(TestInt64(111, 1), (long)eCustomTrackingRecordError["RecordNumber"]); + Assert.Equal(TestString(111, "Name"), (string)eCustomTrackingRecordError["Name"]); + Assert.Equal(TestString(111, "ActivityName"), (string)eCustomTrackingRecordError["ActivityName"]); + Assert.Equal(TestString(111, "ActivityId"), (string)eCustomTrackingRecordError["ActivityId"]); + Assert.Equal(TestString(111, "ActivityInstanceId"), (string)eCustomTrackingRecordError["ActivityInstanceId"]); + Assert.Equal(TestString(111, "ActivityTypeName"), (string)eCustomTrackingRecordError["ActivityTypeName"]); + Assert.Equal(TestString(111, "Data"), (string)eCustomTrackingRecordError["Data"]); + Assert.Equal(TestString(111, "Annotations"), (string)eCustomTrackingRecordError["Annotations"]); + Assert.Equal(TestString(111, "ProfileName"), (string)eCustomTrackingRecordError["ProfileName"]); + Assert.Equal(TestString(111, "HostReference"), (string)eCustomTrackingRecordError["HostReference"]); + Assert.Equal(TestString(111, "AppDomain"), (string)eCustomTrackingRecordError["AppDomain"]); + + // WorkflowInstanceSuspendedRecord (Multidata8TemplateHA) + Assert.True(firedEvents.ContainsKey("WorkflowInstanceSuspendedRecord"), "Event WorkflowInstanceSuspendedRecord did not fire"); + var eWorkflowInstanceSuspendedRecord = firedEvents["WorkflowInstanceSuspendedRecord"]; + Assert.Equal(TestGuid(112, 0), (Guid)eWorkflowInstanceSuspendedRecord["InstanceId"]); + Assert.Equal(TestInt64(112, 1), (long)eWorkflowInstanceSuspendedRecord["RecordNumber"]); + Assert.Equal(TestString(112, "ActivityDefinitionId"), (string)eWorkflowInstanceSuspendedRecord["ActivityDefinitionId"]); + Assert.Equal(TestString(112, "Reason"), (string)eWorkflowInstanceSuspendedRecord["Reason"]); + Assert.Equal(TestString(112, "Annotations"), (string)eWorkflowInstanceSuspendedRecord["Annotations"]); + Assert.Equal(TestString(112, "ProfileName"), (string)eWorkflowInstanceSuspendedRecord["ProfileName"]); + Assert.Equal(TestString(112, "HostReference"), (string)eWorkflowInstanceSuspendedRecord["HostReference"]); + Assert.Equal(TestString(112, "AppDomain"), (string)eWorkflowInstanceSuspendedRecord["AppDomain"]); + + // WorkflowInstanceTerminatedRecord (Multidata8TemplateHA) + Assert.True(firedEvents.ContainsKey("WorkflowInstanceTerminatedRecord"), "Event WorkflowInstanceTerminatedRecord did not fire"); + var eWorkflowInstanceTerminatedRecord = firedEvents["WorkflowInstanceTerminatedRecord"]; + Assert.Equal(TestGuid(113, 0), (Guid)eWorkflowInstanceTerminatedRecord["InstanceId"]); + Assert.Equal(TestInt64(113, 1), (long)eWorkflowInstanceTerminatedRecord["RecordNumber"]); + Assert.Equal(TestString(113, "ActivityDefinitionId"), (string)eWorkflowInstanceTerminatedRecord["ActivityDefinitionId"]); + Assert.Equal(TestString(113, "Reason"), (string)eWorkflowInstanceTerminatedRecord["Reason"]); + Assert.Equal(TestString(113, "Annotations"), (string)eWorkflowInstanceTerminatedRecord["Annotations"]); + Assert.Equal(TestString(113, "ProfileName"), (string)eWorkflowInstanceTerminatedRecord["ProfileName"]); + Assert.Equal(TestString(113, "HostReference"), (string)eWorkflowInstanceTerminatedRecord["HostReference"]); + Assert.Equal(TestString(113, "AppDomain"), (string)eWorkflowInstanceTerminatedRecord["AppDomain"]); + + // WorkflowInstanceRecordWithId (Multidata11TemplateHA) + Assert.True(firedEvents.ContainsKey("WorkflowInstanceRecordWithId"), "Event WorkflowInstanceRecordWithId did not fire"); + var eWorkflowInstanceRecordWithId = firedEvents["WorkflowInstanceRecordWithId"]; + Assert.Equal(TestGuid(114, 0), (Guid)eWorkflowInstanceRecordWithId["InstanceId"]); + Assert.Equal(TestInt64(114, 1), (long)eWorkflowInstanceRecordWithId["RecordNumber"]); + Assert.Equal(TestString(114, "ActivityDefinitionId"), (string)eWorkflowInstanceRecordWithId["ActivityDefinitionId"]); + Assert.Equal(TestString(114, "State"), (string)eWorkflowInstanceRecordWithId["State"]); + Assert.Equal(TestString(114, "Annotations"), (string)eWorkflowInstanceRecordWithId["Annotations"]); + Assert.Equal(TestString(114, "ProfileName"), (string)eWorkflowInstanceRecordWithId["ProfileName"]); + Assert.Equal(TestString(114, "WorkflowDefinitionIdentity"), (string)eWorkflowInstanceRecordWithId["WorkflowDefinitionIdentity"]); + Assert.Equal(TestString(114, "HostReference"), (string)eWorkflowInstanceRecordWithId["HostReference"]); + Assert.Equal(TestString(114, "AppDomain"), (string)eWorkflowInstanceRecordWithId["AppDomain"]); + + // WorkflowInstanceAbortedRecordWithId (Multidata12TemplateHA) + Assert.True(firedEvents.ContainsKey("WorkflowInstanceAbortedRecordWithId"), "Event WorkflowInstanceAbortedRecordWithId did not fire"); + var eWorkflowInstanceAbortedRecordWithId = firedEvents["WorkflowInstanceAbortedRecordWithId"]; + Assert.Equal(TestGuid(115, 0), (Guid)eWorkflowInstanceAbortedRecordWithId["InstanceId"]); + Assert.Equal(TestInt64(115, 1), (long)eWorkflowInstanceAbortedRecordWithId["RecordNumber"]); + Assert.Equal(TestString(115, "ActivityDefinitionId"), (string)eWorkflowInstanceAbortedRecordWithId["ActivityDefinitionId"]); + Assert.Equal(TestString(115, "Reason"), (string)eWorkflowInstanceAbortedRecordWithId["Reason"]); + Assert.Equal(TestString(115, "Annotations"), (string)eWorkflowInstanceAbortedRecordWithId["Annotations"]); + Assert.Equal(TestString(115, "ProfileName"), (string)eWorkflowInstanceAbortedRecordWithId["ProfileName"]); + Assert.Equal(TestString(115, "WorkflowDefinitionIdentity"), (string)eWorkflowInstanceAbortedRecordWithId["WorkflowDefinitionIdentity"]); + Assert.Equal(TestString(115, "HostReference"), (string)eWorkflowInstanceAbortedRecordWithId["HostReference"]); + Assert.Equal(TestString(115, "AppDomain"), (string)eWorkflowInstanceAbortedRecordWithId["AppDomain"]); + + // WorkflowInstanceSuspendedRecordWithId (Multidata12TemplateHA) + Assert.True(firedEvents.ContainsKey("WorkflowInstanceSuspendedRecordWithId"), "Event WorkflowInstanceSuspendedRecordWithId did not fire"); + var eWorkflowInstanceSuspendedRecordWithId = firedEvents["WorkflowInstanceSuspendedRecordWithId"]; + Assert.Equal(TestGuid(116, 0), (Guid)eWorkflowInstanceSuspendedRecordWithId["InstanceId"]); + Assert.Equal(TestInt64(116, 1), (long)eWorkflowInstanceSuspendedRecordWithId["RecordNumber"]); + Assert.Equal(TestString(116, "ActivityDefinitionId"), (string)eWorkflowInstanceSuspendedRecordWithId["ActivityDefinitionId"]); + Assert.Equal(TestString(116, "Reason"), (string)eWorkflowInstanceSuspendedRecordWithId["Reason"]); + Assert.Equal(TestString(116, "Annotations"), (string)eWorkflowInstanceSuspendedRecordWithId["Annotations"]); + Assert.Equal(TestString(116, "ProfileName"), (string)eWorkflowInstanceSuspendedRecordWithId["ProfileName"]); + Assert.Equal(TestString(116, "WorkflowDefinitionIdentity"), (string)eWorkflowInstanceSuspendedRecordWithId["WorkflowDefinitionIdentity"]); + Assert.Equal(TestString(116, "HostReference"), (string)eWorkflowInstanceSuspendedRecordWithId["HostReference"]); + Assert.Equal(TestString(116, "AppDomain"), (string)eWorkflowInstanceSuspendedRecordWithId["AppDomain"]); + + // WorkflowInstanceTerminatedRecordWithId (Multidata12TemplateHA) + Assert.True(firedEvents.ContainsKey("WorkflowInstanceTerminatedRecordWithId"), "Event WorkflowInstanceTerminatedRecordWithId did not fire"); + var eWorkflowInstanceTerminatedRecordWithId = firedEvents["WorkflowInstanceTerminatedRecordWithId"]; + Assert.Equal(TestGuid(117, 0), (Guid)eWorkflowInstanceTerminatedRecordWithId["InstanceId"]); + Assert.Equal(TestInt64(117, 1), (long)eWorkflowInstanceTerminatedRecordWithId["RecordNumber"]); + Assert.Equal(TestString(117, "ActivityDefinitionId"), (string)eWorkflowInstanceTerminatedRecordWithId["ActivityDefinitionId"]); + Assert.Equal(TestString(117, "Reason"), (string)eWorkflowInstanceTerminatedRecordWithId["Reason"]); + Assert.Equal(TestString(117, "Annotations"), (string)eWorkflowInstanceTerminatedRecordWithId["Annotations"]); + Assert.Equal(TestString(117, "ProfileName"), (string)eWorkflowInstanceTerminatedRecordWithId["ProfileName"]); + Assert.Equal(TestString(117, "WorkflowDefinitionIdentity"), (string)eWorkflowInstanceTerminatedRecordWithId["WorkflowDefinitionIdentity"]); + Assert.Equal(TestString(117, "HostReference"), (string)eWorkflowInstanceTerminatedRecordWithId["HostReference"]); + Assert.Equal(TestString(117, "AppDomain"), (string)eWorkflowInstanceTerminatedRecordWithId["AppDomain"]); + + // WorkflowInstanceUnhandledExceptionRecordWithId (Multidata13TemplateHA) + Assert.True(firedEvents.ContainsKey("WorkflowInstanceUnhandledExceptionRecordWithId"), "Event WorkflowInstanceUnhandledExceptionRecordWithId did not fire"); + var eWorkflowInstanceUnhandledExceptionRecordWithId = firedEvents["WorkflowInstanceUnhandledExceptionRecordWithId"]; + Assert.Equal(TestGuid(118, 0), (Guid)eWorkflowInstanceUnhandledExceptionRecordWithId["InstanceId"]); + Assert.Equal(TestInt64(118, 1), (long)eWorkflowInstanceUnhandledExceptionRecordWithId["RecordNumber"]); + Assert.Equal(TestString(118, "ActivityDefinitionId"), (string)eWorkflowInstanceUnhandledExceptionRecordWithId["ActivityDefinitionId"]); + Assert.Equal(TestString(118, "SourceName"), (string)eWorkflowInstanceUnhandledExceptionRecordWithId["SourceName"]); + Assert.Equal(TestString(118, "SourceId"), (string)eWorkflowInstanceUnhandledExceptionRecordWithId["SourceId"]); + Assert.Equal(TestString(118, "SourceInstanceId"), (string)eWorkflowInstanceUnhandledExceptionRecordWithId["SourceInstanceId"]); + Assert.Equal(TestString(118, "SourceTypeName"), (string)eWorkflowInstanceUnhandledExceptionRecordWithId["SourceTypeName"]); + Assert.Equal(TestString(118, "Exception"), (string)eWorkflowInstanceUnhandledExceptionRecordWithId["Exception"]); + Assert.Equal(TestString(118, "Annotations"), (string)eWorkflowInstanceUnhandledExceptionRecordWithId["Annotations"]); + Assert.Equal(TestString(118, "ProfileName"), (string)eWorkflowInstanceUnhandledExceptionRecordWithId["ProfileName"]); + Assert.Equal(TestString(118, "WorkflowDefinitionIdentity"), (string)eWorkflowInstanceUnhandledExceptionRecordWithId["WorkflowDefinitionIdentity"]); + Assert.Equal(TestString(118, "HostReference"), (string)eWorkflowInstanceUnhandledExceptionRecordWithId["HostReference"]); + Assert.Equal(TestString(118, "AppDomain"), (string)eWorkflowInstanceUnhandledExceptionRecordWithId["AppDomain"]); + + // WorkflowInstanceUpdatedRecord (Multidata14TemplateHA) + Assert.True(firedEvents.ContainsKey("WorkflowInstanceUpdatedRecord"), "Event WorkflowInstanceUpdatedRecord did not fire"); + var eWorkflowInstanceUpdatedRecord = firedEvents["WorkflowInstanceUpdatedRecord"]; + Assert.Equal(TestGuid(119, 0), (Guid)eWorkflowInstanceUpdatedRecord["InstanceId"]); + Assert.Equal(TestInt64(119, 1), (long)eWorkflowInstanceUpdatedRecord["RecordNumber"]); + Assert.Equal(TestString(119, "ActivityDefinitionId"), (string)eWorkflowInstanceUpdatedRecord["ActivityDefinitionId"]); + Assert.Equal(TestString(119, "State"), (string)eWorkflowInstanceUpdatedRecord["State"]); + Assert.Equal(TestString(119, "OriginalDefinitionIdentity"), (string)eWorkflowInstanceUpdatedRecord["OriginalDefinitionIdentity"]); + Assert.Equal(TestString(119, "UpdatedDefinitionIdentity"), (string)eWorkflowInstanceUpdatedRecord["UpdatedDefinitionIdentity"]); + Assert.Equal(TestString(119, "Annotations"), (string)eWorkflowInstanceUpdatedRecord["Annotations"]); + Assert.Equal(TestString(119, "ProfileName"), (string)eWorkflowInstanceUpdatedRecord["ProfileName"]); + Assert.Equal(TestString(119, "HostReference"), (string)eWorkflowInstanceUpdatedRecord["HostReference"]); + Assert.Equal(TestString(119, "AppDomain"), (string)eWorkflowInstanceUpdatedRecord["AppDomain"]); + + // BufferPoolAllocation (Multidata1TemplateA) + Assert.True(firedEvents.ContainsKey("BufferPoolAllocation"), "Event BufferPoolAllocation did not fire"); + var eBufferPoolAllocation = firedEvents["BufferPoolAllocation"]; + Assert.Equal(TestInt32(131, 0), (int)eBufferPoolAllocation["Size"]); + Assert.Equal(TestString(131, "AppDomain"), (string)eBufferPoolAllocation["AppDomain"]); + + // BufferPoolChangeQuota (Multidata2TemplateA) + Assert.True(firedEvents.ContainsKey("BufferPoolChangeQuota"), "Event BufferPoolChangeQuota did not fire"); + var eBufferPoolChangeQuota = firedEvents["BufferPoolChangeQuota"]; + Assert.Equal(TestInt32(132, 0), (int)eBufferPoolChangeQuota["PoolSize"]); + Assert.Equal(TestInt32(132, 1), (int)eBufferPoolChangeQuota["Delta"]); + Assert.Equal(TestString(132, "AppDomain"), (string)eBufferPoolChangeQuota["AppDomain"]); + + // ActionItemScheduled (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ActionItemScheduled"), "Event ActionItemScheduled did not fire"); + var eActionItemScheduled = firedEvents["ActionItemScheduled"]; + Assert.Equal(TestString(133, "AppDomain"), (string)eActionItemScheduled["AppDomain"]); + + // ActionItemCallbackInvoked (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ActionItemCallbackInvoked"), "Event ActionItemCallbackInvoked did not fire"); + var eActionItemCallbackInvoked = firedEvents["ActionItemCallbackInvoked"]; + Assert.Equal(TestString(134, "AppDomain"), (string)eActionItemCallbackInvoked["AppDomain"]); + + // ClientMessageInspectorAfterReceiveInvoked (Multidata23TemplateHA) + Assert.True(firedEvents.ContainsKey("ClientMessageInspectorAfterReceiveInvoked"), "Event ClientMessageInspectorAfterReceiveInvoked did not fire"); + var eClientMessageInspectorAfterReceiveInvoked = firedEvents["ClientMessageInspectorAfterReceiveInvoked"]; + Assert.Equal(TestString(201, "TypeName"), (string)eClientMessageInspectorAfterReceiveInvoked["TypeName"]); + Assert.Equal(TestString(201, "HostReference"), (string)eClientMessageInspectorAfterReceiveInvoked["HostReference"]); + Assert.Equal(TestString(201, "AppDomain"), (string)eClientMessageInspectorAfterReceiveInvoked["AppDomain"]); + + // ClientMessageInspectorBeforeSendInvoked (Multidata23TemplateHA) + Assert.True(firedEvents.ContainsKey("ClientMessageInspectorBeforeSendInvoked"), "Event ClientMessageInspectorBeforeSendInvoked did not fire"); + var eClientMessageInspectorBeforeSendInvoked = firedEvents["ClientMessageInspectorBeforeSendInvoked"]; + Assert.Equal(TestString(202, "TypeName"), (string)eClientMessageInspectorBeforeSendInvoked["TypeName"]); + Assert.Equal(TestString(202, "HostReference"), (string)eClientMessageInspectorBeforeSendInvoked["HostReference"]); + Assert.Equal(TestString(202, "AppDomain"), (string)eClientMessageInspectorBeforeSendInvoked["AppDomain"]); + + // ClientParameterInspectorAfterCallInvoked (Multidata23TemplateHA) + Assert.True(firedEvents.ContainsKey("ClientParameterInspectorAfterCallInvoked"), "Event ClientParameterInspectorAfterCallInvoked did not fire"); + var eClientParameterInspectorAfterCallInvoked = firedEvents["ClientParameterInspectorAfterCallInvoked"]; + Assert.Equal(TestString(203, "TypeName"), (string)eClientParameterInspectorAfterCallInvoked["TypeName"]); + Assert.Equal(TestString(203, "HostReference"), (string)eClientParameterInspectorAfterCallInvoked["HostReference"]); + Assert.Equal(TestString(203, "AppDomain"), (string)eClientParameterInspectorAfterCallInvoked["AppDomain"]); + + // ClientParameterInspectorBeforeCallInvoked (Multidata23TemplateHA) + Assert.True(firedEvents.ContainsKey("ClientParameterInspectorBeforeCallInvoked"), "Event ClientParameterInspectorBeforeCallInvoked did not fire"); + var eClientParameterInspectorBeforeCallInvoked = firedEvents["ClientParameterInspectorBeforeCallInvoked"]; + Assert.Equal(TestString(204, "TypeName"), (string)eClientParameterInspectorBeforeCallInvoked["TypeName"]); + Assert.Equal(TestString(204, "HostReference"), (string)eClientParameterInspectorBeforeCallInvoked["HostReference"]); + Assert.Equal(TestString(204, "AppDomain"), (string)eClientParameterInspectorBeforeCallInvoked["AppDomain"]); + + // OperationInvoked (Multidata24TemplateHA) + Assert.True(firedEvents.ContainsKey("OperationInvoked"), "Event OperationInvoked did not fire"); + var eOperationInvoked = firedEvents["OperationInvoked"]; + Assert.Equal(TestString(205, "MethodName"), (string)eOperationInvoked["MethodName"]); + Assert.Equal(TestString(205, "CallerInfo"), (string)eOperationInvoked["CallerInfo"]); + Assert.Equal(TestString(205, "HostReference"), (string)eOperationInvoked["HostReference"]); + Assert.Equal(TestString(205, "AppDomain"), (string)eOperationInvoked["AppDomain"]); + + // ErrorHandlerInvoked (Multidata25TemplateHA) + Assert.True(firedEvents.ContainsKey("ErrorHandlerInvoked"), "Event ErrorHandlerInvoked did not fire"); + var eErrorHandlerInvoked = firedEvents["ErrorHandlerInvoked"]; + Assert.Equal(TestString(206, "TypeName"), (string)eErrorHandlerInvoked["TypeName"]); + Assert.Equal((int)TestByte(206, 1), (int)eErrorHandlerInvoked["Handled"]); + Assert.Equal(TestString(206, "ExceptionTypeName"), (string)eErrorHandlerInvoked["ExceptionTypeName"]); + Assert.Equal(TestString(206, "HostReference"), (string)eErrorHandlerInvoked["HostReference"]); + Assert.Equal(TestString(206, "AppDomain"), (string)eErrorHandlerInvoked["AppDomain"]); + + // FaultProviderInvoked (Multidata26TemplateHA) + Assert.True(firedEvents.ContainsKey("FaultProviderInvoked"), "Event FaultProviderInvoked did not fire"); + var eFaultProviderInvoked = firedEvents["FaultProviderInvoked"]; + Assert.Equal(TestString(207, "TypeName"), (string)eFaultProviderInvoked["TypeName"]); + Assert.Equal(TestString(207, "ExceptionTypeName"), (string)eFaultProviderInvoked["ExceptionTypeName"]); + Assert.Equal(TestString(207, "HostReference"), (string)eFaultProviderInvoked["HostReference"]); + Assert.Equal(TestString(207, "AppDomain"), (string)eFaultProviderInvoked["AppDomain"]); + + // MessageInspectorAfterReceiveInvoked (Multidata23TemplateHA) + Assert.True(firedEvents.ContainsKey("MessageInspectorAfterReceiveInvoked"), "Event MessageInspectorAfterReceiveInvoked did not fire"); + var eMessageInspectorAfterReceiveInvoked = firedEvents["MessageInspectorAfterReceiveInvoked"]; + Assert.Equal(TestString(208, "TypeName"), (string)eMessageInspectorAfterReceiveInvoked["TypeName"]); + Assert.Equal(TestString(208, "HostReference"), (string)eMessageInspectorAfterReceiveInvoked["HostReference"]); + Assert.Equal(TestString(208, "AppDomain"), (string)eMessageInspectorAfterReceiveInvoked["AppDomain"]); + + // MessageInspectorBeforeSendInvoked (Multidata23TemplateHA) + Assert.True(firedEvents.ContainsKey("MessageInspectorBeforeSendInvoked"), "Event MessageInspectorBeforeSendInvoked did not fire"); + var eMessageInspectorBeforeSendInvoked = firedEvents["MessageInspectorBeforeSendInvoked"]; + Assert.Equal(TestString(209, "TypeName"), (string)eMessageInspectorBeforeSendInvoked["TypeName"]); + Assert.Equal(TestString(209, "HostReference"), (string)eMessageInspectorBeforeSendInvoked["HostReference"]); + Assert.Equal(TestString(209, "AppDomain"), (string)eMessageInspectorBeforeSendInvoked["AppDomain"]); + + // MessageThrottleExceeded (Multidata27TemplateHA) + Assert.True(firedEvents.ContainsKey("MessageThrottleExceeded"), "Event MessageThrottleExceeded did not fire"); + var eMessageThrottleExceeded = firedEvents["MessageThrottleExceeded"]; + Assert.Equal(TestString(210, "ThrottleName"), (string)eMessageThrottleExceeded["ThrottleName"]); + Assert.Equal(TestInt64(210, 1), (long)eMessageThrottleExceeded["Limit"]); + Assert.Equal(TestString(210, "HostReference"), (string)eMessageThrottleExceeded["HostReference"]); + Assert.Equal(TestString(210, "AppDomain"), (string)eMessageThrottleExceeded["AppDomain"]); + + // ParameterInspectorAfterCallInvoked (Multidata23TemplateHA) + Assert.True(firedEvents.ContainsKey("ParameterInspectorAfterCallInvoked"), "Event ParameterInspectorAfterCallInvoked did not fire"); + var eParameterInspectorAfterCallInvoked = firedEvents["ParameterInspectorAfterCallInvoked"]; + Assert.Equal(TestString(211, "TypeName"), (string)eParameterInspectorAfterCallInvoked["TypeName"]); + Assert.Equal(TestString(211, "HostReference"), (string)eParameterInspectorAfterCallInvoked["HostReference"]); + Assert.Equal(TestString(211, "AppDomain"), (string)eParameterInspectorAfterCallInvoked["AppDomain"]); + + // ParameterInspectorBeforeCallInvoked (Multidata23TemplateHA) + Assert.True(firedEvents.ContainsKey("ParameterInspectorBeforeCallInvoked"), "Event ParameterInspectorBeforeCallInvoked did not fire"); + var eParameterInspectorBeforeCallInvoked = firedEvents["ParameterInspectorBeforeCallInvoked"]; + Assert.Equal(TestString(212, "TypeName"), (string)eParameterInspectorBeforeCallInvoked["TypeName"]); + Assert.Equal(TestString(212, "HostReference"), (string)eParameterInspectorBeforeCallInvoked["HostReference"]); + Assert.Equal(TestString(212, "AppDomain"), (string)eParameterInspectorBeforeCallInvoked["AppDomain"]); + + // ServiceHostStarted (Multidata72TemplateHA) + Assert.True(firedEvents.ContainsKey("ServiceHostStarted"), "Event ServiceHostStarted did not fire"); + var eServiceHostStarted = firedEvents["ServiceHostStarted"]; + Assert.Equal(TestString(213, "ServiceTypeName"), (string)eServiceHostStarted["ServiceTypeName"]); + Assert.Equal(TestString(213, "HostReference"), (string)eServiceHostStarted["HostReference"]); + Assert.Equal(TestString(213, "AppDomain"), (string)eServiceHostStarted["AppDomain"]); + + // OperationCompleted (Multidata28TemplateHA) + Assert.True(firedEvents.ContainsKey("OperationCompleted"), "Event OperationCompleted did not fire"); + var eOperationCompleted = firedEvents["OperationCompleted"]; + Assert.Equal(TestString(214, "MethodName"), (string)eOperationCompleted["MethodName"]); + Assert.Equal(TestInt64(214, 1), (long)eOperationCompleted["Duration"]); + Assert.Equal(TestString(214, "HostReference"), (string)eOperationCompleted["HostReference"]); + Assert.Equal(TestString(214, "AppDomain"), (string)eOperationCompleted["AppDomain"]); + } + } +} diff --git a/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk02.cs b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk02.cs new file mode 100644 index 000000000..f620f47c8 --- /dev/null +++ b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk02.cs @@ -0,0 +1,781 @@ +using Microsoft.Diagnostics.Tracing; +using Microsoft.Diagnostics.Tracing.Parsers; +using Microsoft.Diagnostics.Tracing.Parsers.ApplicationServer; +using System; +using System.Collections.Generic; +using System.IO; +using Xunit; + +namespace TraceEventTests.Parsers +{ + public partial class ApplicationServerTraceEventParserTests + { + // Template field arrays for Chunk02 + + private static readonly TemplateField[] s_multidata22TemplateHAFields = new TemplateField[] + { + new TemplateField("Action", FieldType.UnicodeString), + new TemplateField("ContractName", FieldType.UnicodeString), + new TemplateField("Destination", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata27TemplateHAFields = new TemplateField[] + { + new TemplateField("ThrottleName", FieldType.UnicodeString), + new TemplateField("Limit", FieldType.Int64), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata28TemplateHAFields = new TemplateField[] + { + new TemplateField("MethodName", FieldType.UnicodeString), + new TemplateField("Duration", FieldType.Int64), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata29TemplateHAFields = new TemplateField[] + { + new TemplateField("ListenAddress", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata30TemplateHAFields = new TemplateField[] + { + new TemplateField("DestinationAddress", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata31TemplateHAFields = new TemplateField[] + { + new TemplateField("ExceptionToString", FieldType.UnicodeString), + new TemplateField("ExceptionTypeName", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata32TemplateHAFields = new TemplateField[] + { + new TemplateField("CorrelationId", FieldType.Guid), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata69TemplateAFields = new TemplateField[] + { + new TemplateField("AppDomainFriendlyName", FieldType.UnicodeString), + new TemplateField("VirtualPath", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata73TemplateAFields = new TemplateField[] + { + new TemplateField("ClosedCount", FieldType.Int32), + new TemplateField("TotalCount", FieldType.Int32), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata74TemplateAFields = new TemplateField[] + { + new TemplateField("RelativeAddress", FieldType.UnicodeString), + new TemplateField("NormalizedAddress", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata86TemplateHAFields = new TemplateField[] + { + new TemplateField("InstanceKey", FieldType.Guid), + new TemplateField("Values", FieldType.UnicodeString), + new TemplateField("ParentScope", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_oneStringsTemplateAFields = new TemplateField[] + { + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_transferEmittedTemplateFields = new TemplateField[] + { + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_twoStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_twoStringsTemplateTAFields = new TemplateField[] + { + new TemplateField("ExtendedData", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_userEventsTemplateFields = new TemplateField[] + { + new TemplateField("Name", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("Payload", FieldType.UnicodeString), + }; + + private void WriteMetadata_Chunk02(EventPipeWriterV5 writer, ref int metadataId) + { + int __metadataId = metadataId; + writer.WriteMetadataBlock(w => + { + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "MessageReceivedByTransport", 215) { OpCode = 2 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "MessageSentByTransport", 216) { OpCode = 2 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ClientOperationPrepared", 217) { OpCode = 20 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ServiceChannelCallStop", 218) { OpCode = 2 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ServiceException", 219) { OpCode = 0 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "MessageSentToTransport", 220) { OpCode = 0 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "MessageReceivedFromTransport", 221) { OpCode = 0 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "OperationFailed", 222) { OpCode = 0 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "OperationFaulted", 223) { OpCode = 0 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "MessageThrottleAtSeventyPercent", 224) { OpCode = 0 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "TraceCorrelationKeys", 225) { OpCode = 0 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "IdleServicesClosed", 226) { OpCode = 0 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "UserDefinedErrorOccurred", 301) { OpCode = 0 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "UserDefinedWarningOccurred", 302) { OpCode = 0 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "UserDefinedInformationEventOccured", 303) { OpCode = 0 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "StopSignpostEvent", 401) { OpCode = 2 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "StartSignpostEvent", 402) { OpCode = 1 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "SuspendSignpostEvent", 403) { OpCode = 8 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ResumeSignpostEvent", 404) { OpCode = 7 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "StartSignpostEvent1", 440) { OpCode = 1 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "StopSignpostEvent1", 441) { OpCode = 2 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "MessageLogInfo", 451) { OpCode = 0 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "MessageLogWarning", 452) { OpCode = 0 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "TransferEmitted", 499) { OpCode = 0 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "CompilationStart", 501) { OpCode = 1 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "CompilationStop", 502) { OpCode = 2 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ServiceHostFactoryCreationStart", 503) { OpCode = 1 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ServiceHostFactoryCreationStop", 504) { OpCode = 2 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "CreateServiceHostStart", 505) { OpCode = 1 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "CreateServiceHostStop", 506) { OpCode = 2 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "HostedTransportConfigurationManagerConfigInitStart", 507) { OpCode = 1 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "HostedTransportConfigurationManagerConfigInitStop", 508) { OpCode = 2 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ServiceHostOpenStart", 509) { OpCode = 1 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "ServiceHostOpenStop", 510) { OpCode = 2 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "WebHostRequestStart", 513) { OpCode = 1 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "WebHostRequestStop", 514) { OpCode = 2 }); + w.WriteMetadataEventBlobV5OrLess(new EventMetadata(__metadataId++, ProviderName, "CBAEntryRead", 601) { OpCode = 0 }); + }); + + metadataId = __metadataId; + } + + private void WriteEvents_Chunk02(EventPipeWriterV5 writer, ref int metadataId, ref int sequenceNumber) + { + int __metadataId = metadataId; + int __sequenceNumber = sequenceNumber; + writer.WriteEventBlock(w => + { + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(215, s_multidata29TemplateHAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(216, s_multidata30TemplateHAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(217, s_multidata22TemplateHAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(218, s_multidata22TemplateHAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(219, s_multidata31TemplateHAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(220, s_multidata32TemplateHAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(221, s_multidata32TemplateHAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(222, s_multidata28TemplateHAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(223, s_multidata28TemplateHAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(224, s_multidata27TemplateHAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(225, s_multidata86TemplateHAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(226, s_multidata73TemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(301, s_userEventsTemplateFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(302, s_userEventsTemplateFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(303, s_userEventsTemplateFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(401, s_twoStringsTemplateTAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(402, s_twoStringsTemplateTAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(403, s_twoStringsTemplateTAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(404, s_twoStringsTemplateTAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(440, s_twoStringsTemplateTAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(441, s_twoStringsTemplateTAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(451, s_twoStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(452, s_twoStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(499, s_transferEmittedTemplateFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(501, s_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(502, s_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(503, s_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(504, s_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(505, s_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(506, s_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(507, s_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(508, s_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(509, s_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(510, s_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(513, s_multidata69TemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(514, s_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(601, s_multidata74TemplateAFields)); + }); + + metadataId = __metadataId; + sequenceNumber = __sequenceNumber; + } + + private void Subscribe_Chunk02(ApplicationServerTraceEventParser parser, Dictionary> firedEvents) + { + parser.MessageReceivedByTransport += delegate(Multidata29TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["ListenAddress"] = data.ListenAddress; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["MessageReceivedByTransport"] = fields; + }; + + parser.MessageSentByTransport += delegate(Multidata30TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["DestinationAddress"] = data.DestinationAddress; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["MessageSentByTransport"] = fields; + }; + + parser.ClientOperationPrepared += delegate(Multidata22TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["SoapAction"] = data.SoapAction; + fields["ContractName"] = data.ContractName; + fields["Destination"] = data.Destination; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["ClientOperationPrepared"] = fields; + }; + + parser.ServiceChannelCallStop += delegate(Multidata22TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["SoapAction"] = data.SoapAction; + fields["ContractName"] = data.ContractName; + fields["Destination"] = data.Destination; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["ServiceChannelCallStop"] = fields; + }; + + parser.ServiceException += delegate(Multidata31TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["ExceptionToString"] = data.ExceptionToString; + fields["ExceptionTypeName"] = data.ExceptionTypeName; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["ServiceException"] = fields; + }; + + parser.MessageSentToTransport += delegate(Multidata32TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["CorrelationId"] = data.CorrelationId; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["MessageSentToTransport"] = fields; + }; + + parser.MessageReceivedFromTransport += delegate(Multidata32TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["CorrelationId"] = data.CorrelationId; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["MessageReceivedFromTransport"] = fields; + }; + + parser.OperationFailed += delegate(Multidata28TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["MethodName"] = data.MethodName; + fields["Duration"] = data.Duration; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["OperationFailed"] = fields; + }; + + parser.OperationFaulted += delegate(Multidata28TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["MethodName"] = data.MethodName; + fields["Duration"] = data.Duration; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["OperationFaulted"] = fields; + }; + + parser.MessageThrottleAtSeventyPercent += delegate(Multidata27TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["ThrottleName"] = data.ThrottleName; + fields["Limit"] = data.Limit; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["MessageThrottleAtSeventyPercent"] = fields; + }; + + parser.TraceCorrelationKeys += delegate(Multidata86TemplateHATraceData data) + { + var fields = new Dictionary(); + fields["InstanceKey"] = data.InstanceKey; + fields["Values"] = data.Values; + fields["ParentScope"] = data.ParentScope; + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["TraceCorrelationKeys"] = fields; + }; + + parser.IdleServicesClosed += delegate(Multidata73TemplateATraceData data) + { + var fields = new Dictionary(); + fields["ClosedCount"] = data.ClosedCount; + fields["TotalCount"] = data.TotalCount; + fields["AppDomain"] = data.AppDomain; + firedEvents["IdleServicesClosed"] = fields; + }; + + parser.UserDefinedErrorOccurred += delegate(UserEventsTemplateTraceData data) + { + var fields = new Dictionary(); + fields["Name"] = data.Name; + fields["HostReference"] = data.HostReference; + fields["Payload"] = data.Payload; + firedEvents["UserDefinedErrorOccurred"] = fields; + }; + + parser.UserDefinedWarningOccurred += delegate(UserEventsTemplateTraceData data) + { + var fields = new Dictionary(); + fields["Name"] = data.Name; + fields["HostReference"] = data.HostReference; + fields["Payload"] = data.Payload; + firedEvents["UserDefinedWarningOccurred"] = fields; + }; + + parser.UserDefinedInformationEventOccured += delegate(UserEventsTemplateTraceData data) + { + var fields = new Dictionary(); + fields["Name"] = data.Name; + fields["HostReference"] = data.HostReference; + fields["Payload"] = data.Payload; + firedEvents["UserDefinedInformationEventOccured"] = fields; + }; + + parser.StopSignpostEvent += delegate(TwoStringsTemplateTATraceData data) + { + var fields = new Dictionary(); + fields["ExtendedData"] = data.ExtendedData; + fields["AppDomain"] = data.AppDomain; + firedEvents["StopSignpostEvent"] = fields; + }; + + parser.StartSignpostEvent += delegate(TwoStringsTemplateTATraceData data) + { + var fields = new Dictionary(); + fields["ExtendedData"] = data.ExtendedData; + fields["AppDomain"] = data.AppDomain; + firedEvents["StartSignpostEvent"] = fields; + }; + + parser.SuspendSignpostEvent += delegate(TwoStringsTemplateTATraceData data) + { + var fields = new Dictionary(); + fields["ExtendedData"] = data.ExtendedData; + fields["AppDomain"] = data.AppDomain; + firedEvents["SuspendSignpostEvent"] = fields; + }; + + parser.ResumeSignpostEvent += delegate(TwoStringsTemplateTATraceData data) + { + var fields = new Dictionary(); + fields["ExtendedData"] = data.ExtendedData; + fields["AppDomain"] = data.AppDomain; + firedEvents["ResumeSignpostEvent"] = fields; + }; + + parser.StartSignpostEvent1 += delegate(TwoStringsTemplateTATraceData data) + { + var fields = new Dictionary(); + fields["ExtendedData"] = data.ExtendedData; + fields["AppDomain"] = data.AppDomain; + firedEvents["StartSignpostEvent1"] = fields; + }; + + parser.StopSignpostEvent1 += delegate(TwoStringsTemplateTATraceData data) + { + var fields = new Dictionary(); + fields["ExtendedData"] = data.ExtendedData; + fields["AppDomain"] = data.AppDomain; + firedEvents["StopSignpostEvent1"] = fields; + }; + + parser.MessageLogInfo += delegate(TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["MessageLogInfo"] = fields; + }; + + parser.MessageLogWarning += delegate(TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["MessageLogWarning"] = fields; + }; + + parser.TransferEmitted += delegate(TransferEmittedTemplateTraceData data) + { + var fields = new Dictionary(); + fields["HostReference"] = data.HostReference; + fields["AppDomain"] = data.AppDomain; + firedEvents["TransferEmitted"] = fields; + }; + + parser.CompilationStart += delegate(OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["CompilationStart"] = fields; + }; + + parser.CompilationStop += delegate(OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["CompilationStop"] = fields; + }; + + parser.ServiceHostFactoryCreationStart += delegate(OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["ServiceHostFactoryCreationStart"] = fields; + }; + + parser.ServiceHostFactoryCreationStop += delegate(OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["ServiceHostFactoryCreationStop"] = fields; + }; + + parser.CreateServiceHostStart += delegate(OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["CreateServiceHostStart"] = fields; + }; + + parser.CreateServiceHostStop += delegate(OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["CreateServiceHostStop"] = fields; + }; + + parser.HostedTransportConfigurationManagerConfigInitStart += delegate(OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["HostedTransportConfigurationManagerConfigInitStart"] = fields; + }; + + parser.HostedTransportConfigurationManagerConfigInitStop += delegate(OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["HostedTransportConfigurationManagerConfigInitStop"] = fields; + }; + + parser.ServiceHostOpenStart += delegate(OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["ServiceHostOpenStart"] = fields; + }; + + parser.ServiceHostOpenStop += delegate(OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["ServiceHostOpenStop"] = fields; + }; + + parser.WebHostRequestStart += delegate(Multidata69TemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomainFriendlyName"] = data.AppDomainFriendlyName; + fields["VirtualPath"] = data.VirtualPath; + fields["AppDomain"] = data.AppDomain; + firedEvents["WebHostRequestStart"] = fields; + }; + + parser.WebHostRequestStop += delegate(OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["WebHostRequestStop"] = fields; + }; + + parser.CBAEntryRead += delegate(Multidata74TemplateATraceData data) + { + var fields = new Dictionary(); + fields["RelativeAddress"] = data.RelativeAddress; + fields["NormalizedAddress"] = data.NormalizedAddress; + fields["AppDomain"] = data.AppDomain; + firedEvents["CBAEntryRead"] = fields; + }; + } + + private void Validate_Chunk02(Dictionary> firedEvents) + { + // MessageReceivedByTransport (Multidata29TemplateHA) + Assert.True(firedEvents.ContainsKey("MessageReceivedByTransport"), "Event MessageReceivedByTransport did not fire"); + var eMessageReceivedByTransport = firedEvents["MessageReceivedByTransport"]; + Assert.Equal(TestString(215, "ListenAddress"), (string)eMessageReceivedByTransport["ListenAddress"]); + Assert.Equal(TestString(215, "HostReference"), (string)eMessageReceivedByTransport["HostReference"]); + Assert.Equal(TestString(215, "AppDomain"), (string)eMessageReceivedByTransport["AppDomain"]); + + // MessageSentByTransport (Multidata30TemplateHA) + Assert.True(firedEvents.ContainsKey("MessageSentByTransport"), "Event MessageSentByTransport did not fire"); + var eMessageSentByTransport = firedEvents["MessageSentByTransport"]; + Assert.Equal(TestString(216, "DestinationAddress"), (string)eMessageSentByTransport["DestinationAddress"]); + Assert.Equal(TestString(216, "HostReference"), (string)eMessageSentByTransport["HostReference"]); + Assert.Equal(TestString(216, "AppDomain"), (string)eMessageSentByTransport["AppDomain"]); + + // ClientOperationPrepared (Multidata22TemplateHA) + Assert.True(firedEvents.ContainsKey("ClientOperationPrepared"), "Event ClientOperationPrepared did not fire"); + var eClientOperationPrepared = firedEvents["ClientOperationPrepared"]; + Assert.Equal(TestString(217, "Action"), (string)eClientOperationPrepared["SoapAction"]); + Assert.Equal(TestString(217, "ContractName"), (string)eClientOperationPrepared["ContractName"]); + Assert.Equal(TestString(217, "Destination"), (string)eClientOperationPrepared["Destination"]); + Assert.Equal(TestString(217, "HostReference"), (string)eClientOperationPrepared["HostReference"]); + Assert.Equal(TestString(217, "AppDomain"), (string)eClientOperationPrepared["AppDomain"]); + + // ServiceChannelCallStop (Multidata22TemplateHA) + Assert.True(firedEvents.ContainsKey("ServiceChannelCallStop"), "Event ServiceChannelCallStop did not fire"); + var eServiceChannelCallStop = firedEvents["ServiceChannelCallStop"]; + Assert.Equal(TestString(218, "Action"), (string)eServiceChannelCallStop["SoapAction"]); + Assert.Equal(TestString(218, "ContractName"), (string)eServiceChannelCallStop["ContractName"]); + Assert.Equal(TestString(218, "Destination"), (string)eServiceChannelCallStop["Destination"]); + Assert.Equal(TestString(218, "HostReference"), (string)eServiceChannelCallStop["HostReference"]); + Assert.Equal(TestString(218, "AppDomain"), (string)eServiceChannelCallStop["AppDomain"]); + + // ServiceException (Multidata31TemplateHA) + Assert.True(firedEvents.ContainsKey("ServiceException"), "Event ServiceException did not fire"); + var eServiceException = firedEvents["ServiceException"]; + Assert.Equal(TestString(219, "ExceptionToString"), (string)eServiceException["ExceptionToString"]); + Assert.Equal(TestString(219, "ExceptionTypeName"), (string)eServiceException["ExceptionTypeName"]); + Assert.Equal(TestString(219, "HostReference"), (string)eServiceException["HostReference"]); + Assert.Equal(TestString(219, "AppDomain"), (string)eServiceException["AppDomain"]); + + // MessageSentToTransport (Multidata32TemplateHA) + Assert.True(firedEvents.ContainsKey("MessageSentToTransport"), "Event MessageSentToTransport did not fire"); + var eMessageSentToTransport = firedEvents["MessageSentToTransport"]; + Assert.Equal(TestGuid(220, 0), (Guid)eMessageSentToTransport["CorrelationId"]); + Assert.Equal(TestString(220, "HostReference"), (string)eMessageSentToTransport["HostReference"]); + Assert.Equal(TestString(220, "AppDomain"), (string)eMessageSentToTransport["AppDomain"]); + + // MessageReceivedFromTransport (Multidata32TemplateHA) + Assert.True(firedEvents.ContainsKey("MessageReceivedFromTransport"), "Event MessageReceivedFromTransport did not fire"); + var eMessageReceivedFromTransport = firedEvents["MessageReceivedFromTransport"]; + Assert.Equal(TestGuid(221, 0), (Guid)eMessageReceivedFromTransport["CorrelationId"]); + Assert.Equal(TestString(221, "HostReference"), (string)eMessageReceivedFromTransport["HostReference"]); + Assert.Equal(TestString(221, "AppDomain"), (string)eMessageReceivedFromTransport["AppDomain"]); + + // OperationFailed (Multidata28TemplateHA) + Assert.True(firedEvents.ContainsKey("OperationFailed"), "Event OperationFailed did not fire"); + var eOperationFailed = firedEvents["OperationFailed"]; + Assert.Equal(TestString(222, "MethodName"), (string)eOperationFailed["MethodName"]); + Assert.Equal(TestInt64(222, 1), (long)eOperationFailed["Duration"]); + Assert.Equal(TestString(222, "HostReference"), (string)eOperationFailed["HostReference"]); + Assert.Equal(TestString(222, "AppDomain"), (string)eOperationFailed["AppDomain"]); + + // OperationFaulted (Multidata28TemplateHA) + Assert.True(firedEvents.ContainsKey("OperationFaulted"), "Event OperationFaulted did not fire"); + var eOperationFaulted = firedEvents["OperationFaulted"]; + Assert.Equal(TestString(223, "MethodName"), (string)eOperationFaulted["MethodName"]); + Assert.Equal(TestInt64(223, 1), (long)eOperationFaulted["Duration"]); + Assert.Equal(TestString(223, "HostReference"), (string)eOperationFaulted["HostReference"]); + Assert.Equal(TestString(223, "AppDomain"), (string)eOperationFaulted["AppDomain"]); + + // MessageThrottleAtSeventyPercent (Multidata27TemplateHA) + Assert.True(firedEvents.ContainsKey("MessageThrottleAtSeventyPercent"), "Event MessageThrottleAtSeventyPercent did not fire"); + var eMessageThrottleAtSeventyPercent = firedEvents["MessageThrottleAtSeventyPercent"]; + Assert.Equal(TestString(224, "ThrottleName"), (string)eMessageThrottleAtSeventyPercent["ThrottleName"]); + Assert.Equal(TestInt64(224, 1), (long)eMessageThrottleAtSeventyPercent["Limit"]); + Assert.Equal(TestString(224, "HostReference"), (string)eMessageThrottleAtSeventyPercent["HostReference"]); + Assert.Equal(TestString(224, "AppDomain"), (string)eMessageThrottleAtSeventyPercent["AppDomain"]); + + // TraceCorrelationKeys (Multidata86TemplateHA) + Assert.True(firedEvents.ContainsKey("TraceCorrelationKeys"), "Event TraceCorrelationKeys did not fire"); + var eTraceCorrelationKeys = firedEvents["TraceCorrelationKeys"]; + Assert.Equal(TestGuid(225, 0), (Guid)eTraceCorrelationKeys["InstanceKey"]); + Assert.Equal(TestString(225, "Values"), (string)eTraceCorrelationKeys["Values"]); + Assert.Equal(TestString(225, "ParentScope"), (string)eTraceCorrelationKeys["ParentScope"]); + Assert.Equal(TestString(225, "HostReference"), (string)eTraceCorrelationKeys["HostReference"]); + Assert.Equal(TestString(225, "AppDomain"), (string)eTraceCorrelationKeys["AppDomain"]); + + // IdleServicesClosed (Multidata73TemplateA) + Assert.True(firedEvents.ContainsKey("IdleServicesClosed"), "Event IdleServicesClosed did not fire"); + var eIdleServicesClosed = firedEvents["IdleServicesClosed"]; + Assert.Equal(TestInt32(226, 0), (int)eIdleServicesClosed["ClosedCount"]); + Assert.Equal(TestInt32(226, 1), (int)eIdleServicesClosed["TotalCount"]); + Assert.Equal(TestString(226, "AppDomain"), (string)eIdleServicesClosed["AppDomain"]); + + // UserDefinedErrorOccurred (UserEventsTemplate) + Assert.True(firedEvents.ContainsKey("UserDefinedErrorOccurred"), "Event UserDefinedErrorOccurred did not fire"); + var eUserDefinedErrorOccurred = firedEvents["UserDefinedErrorOccurred"]; + Assert.Equal(TestString(301, "Name"), (string)eUserDefinedErrorOccurred["Name"]); + Assert.Equal(TestString(301, "HostReference"), (string)eUserDefinedErrorOccurred["HostReference"]); + Assert.Equal(TestString(301, "Payload"), (string)eUserDefinedErrorOccurred["Payload"]); + + // UserDefinedWarningOccurred (UserEventsTemplate) + Assert.True(firedEvents.ContainsKey("UserDefinedWarningOccurred"), "Event UserDefinedWarningOccurred did not fire"); + var eUserDefinedWarningOccurred = firedEvents["UserDefinedWarningOccurred"]; + Assert.Equal(TestString(302, "Name"), (string)eUserDefinedWarningOccurred["Name"]); + Assert.Equal(TestString(302, "HostReference"), (string)eUserDefinedWarningOccurred["HostReference"]); + Assert.Equal(TestString(302, "Payload"), (string)eUserDefinedWarningOccurred["Payload"]); + + // UserDefinedInformationEventOccured (UserEventsTemplate) + Assert.True(firedEvents.ContainsKey("UserDefinedInformationEventOccured"), "Event UserDefinedInformationEventOccured did not fire"); + var eUserDefinedInformationEventOccured = firedEvents["UserDefinedInformationEventOccured"]; + Assert.Equal(TestString(303, "Name"), (string)eUserDefinedInformationEventOccured["Name"]); + Assert.Equal(TestString(303, "HostReference"), (string)eUserDefinedInformationEventOccured["HostReference"]); + Assert.Equal(TestString(303, "Payload"), (string)eUserDefinedInformationEventOccured["Payload"]); + + // StopSignpostEvent (TwoStringsTemplateTA) + Assert.True(firedEvents.ContainsKey("StopSignpostEvent"), "Event StopSignpostEvent did not fire"); + var eStopSignpostEvent = firedEvents["StopSignpostEvent"]; + Assert.Equal(TestString(401, "ExtendedData"), (string)eStopSignpostEvent["ExtendedData"]); + Assert.Equal(TestString(401, "AppDomain"), (string)eStopSignpostEvent["AppDomain"]); + + // StartSignpostEvent (TwoStringsTemplateTA) + Assert.True(firedEvents.ContainsKey("StartSignpostEvent"), "Event StartSignpostEvent did not fire"); + var eStartSignpostEvent = firedEvents["StartSignpostEvent"]; + Assert.Equal(TestString(402, "ExtendedData"), (string)eStartSignpostEvent["ExtendedData"]); + Assert.Equal(TestString(402, "AppDomain"), (string)eStartSignpostEvent["AppDomain"]); + + // SuspendSignpostEvent (TwoStringsTemplateTA) + Assert.True(firedEvents.ContainsKey("SuspendSignpostEvent"), "Event SuspendSignpostEvent did not fire"); + var eSuspendSignpostEvent = firedEvents["SuspendSignpostEvent"]; + Assert.Equal(TestString(403, "ExtendedData"), (string)eSuspendSignpostEvent["ExtendedData"]); + Assert.Equal(TestString(403, "AppDomain"), (string)eSuspendSignpostEvent["AppDomain"]); + + // ResumeSignpostEvent (TwoStringsTemplateTA) + Assert.True(firedEvents.ContainsKey("ResumeSignpostEvent"), "Event ResumeSignpostEvent did not fire"); + var eResumeSignpostEvent = firedEvents["ResumeSignpostEvent"]; + Assert.Equal(TestString(404, "ExtendedData"), (string)eResumeSignpostEvent["ExtendedData"]); + Assert.Equal(TestString(404, "AppDomain"), (string)eResumeSignpostEvent["AppDomain"]); + + // StartSignpostEvent1 (TwoStringsTemplateTA) + Assert.True(firedEvents.ContainsKey("StartSignpostEvent1"), "Event StartSignpostEvent1 did not fire"); + var eStartSignpostEvent1 = firedEvents["StartSignpostEvent1"]; + Assert.Equal(TestString(440, "ExtendedData"), (string)eStartSignpostEvent1["ExtendedData"]); + Assert.Equal(TestString(440, "AppDomain"), (string)eStartSignpostEvent1["AppDomain"]); + + // StopSignpostEvent1 (TwoStringsTemplateTA) + Assert.True(firedEvents.ContainsKey("StopSignpostEvent1"), "Event StopSignpostEvent1 did not fire"); + var eStopSignpostEvent1 = firedEvents["StopSignpostEvent1"]; + Assert.Equal(TestString(441, "ExtendedData"), (string)eStopSignpostEvent1["ExtendedData"]); + Assert.Equal(TestString(441, "AppDomain"), (string)eStopSignpostEvent1["AppDomain"]); + + // MessageLogInfo (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("MessageLogInfo"), "Event MessageLogInfo did not fire"); + var eMessageLogInfo = firedEvents["MessageLogInfo"]; + Assert.Equal(TestString(451, "data1"), (string)eMessageLogInfo["data1"]); + Assert.Equal(TestString(451, "AppDomain"), (string)eMessageLogInfo["AppDomain"]); + + // MessageLogWarning (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("MessageLogWarning"), "Event MessageLogWarning did not fire"); + var eMessageLogWarning = firedEvents["MessageLogWarning"]; + Assert.Equal(TestString(452, "data1"), (string)eMessageLogWarning["data1"]); + Assert.Equal(TestString(452, "AppDomain"), (string)eMessageLogWarning["AppDomain"]); + + // TransferEmitted (TransferEmittedTemplate) + Assert.True(firedEvents.ContainsKey("TransferEmitted"), "Event TransferEmitted did not fire"); + var eTransferEmitted = firedEvents["TransferEmitted"]; + Assert.Equal(TestString(499, "HostReference"), (string)eTransferEmitted["HostReference"]); + Assert.Equal(TestString(499, "AppDomain"), (string)eTransferEmitted["AppDomain"]); + + // CompilationStart (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("CompilationStart"), "Event CompilationStart did not fire"); + var eCompilationStart = firedEvents["CompilationStart"]; + Assert.Equal(TestString(501, "AppDomain"), (string)eCompilationStart["AppDomain"]); + + // CompilationStop (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("CompilationStop"), "Event CompilationStop did not fire"); + var eCompilationStop = firedEvents["CompilationStop"]; + Assert.Equal(TestString(502, "AppDomain"), (string)eCompilationStop["AppDomain"]); + + // ServiceHostFactoryCreationStart (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ServiceHostFactoryCreationStart"), "Event ServiceHostFactoryCreationStart did not fire"); + var eServiceHostFactoryCreationStart = firedEvents["ServiceHostFactoryCreationStart"]; + Assert.Equal(TestString(503, "AppDomain"), (string)eServiceHostFactoryCreationStart["AppDomain"]); + + // ServiceHostFactoryCreationStop (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ServiceHostFactoryCreationStop"), "Event ServiceHostFactoryCreationStop did not fire"); + var eServiceHostFactoryCreationStop = firedEvents["ServiceHostFactoryCreationStop"]; + Assert.Equal(TestString(504, "AppDomain"), (string)eServiceHostFactoryCreationStop["AppDomain"]); + + // CreateServiceHostStart (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("CreateServiceHostStart"), "Event CreateServiceHostStart did not fire"); + var eCreateServiceHostStart = firedEvents["CreateServiceHostStart"]; + Assert.Equal(TestString(505, "AppDomain"), (string)eCreateServiceHostStart["AppDomain"]); + + // CreateServiceHostStop (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("CreateServiceHostStop"), "Event CreateServiceHostStop did not fire"); + var eCreateServiceHostStop = firedEvents["CreateServiceHostStop"]; + Assert.Equal(TestString(506, "AppDomain"), (string)eCreateServiceHostStop["AppDomain"]); + + // HostedTransportConfigurationManagerConfigInitStart (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("HostedTransportConfigurationManagerConfigInitStart"), "Event HostedTransportConfigurationManagerConfigInitStart did not fire"); + var eHostedTransportConfigurationManagerConfigInitStart = firedEvents["HostedTransportConfigurationManagerConfigInitStart"]; + Assert.Equal(TestString(507, "AppDomain"), (string)eHostedTransportConfigurationManagerConfigInitStart["AppDomain"]); + + // HostedTransportConfigurationManagerConfigInitStop (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("HostedTransportConfigurationManagerConfigInitStop"), "Event HostedTransportConfigurationManagerConfigInitStop did not fire"); + var eHostedTransportConfigurationManagerConfigInitStop = firedEvents["HostedTransportConfigurationManagerConfigInitStop"]; + Assert.Equal(TestString(508, "AppDomain"), (string)eHostedTransportConfigurationManagerConfigInitStop["AppDomain"]); + + // ServiceHostOpenStart (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ServiceHostOpenStart"), "Event ServiceHostOpenStart did not fire"); + var eServiceHostOpenStart = firedEvents["ServiceHostOpenStart"]; + Assert.Equal(TestString(509, "AppDomain"), (string)eServiceHostOpenStart["AppDomain"]); + + // ServiceHostOpenStop (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ServiceHostOpenStop"), "Event ServiceHostOpenStop did not fire"); + var eServiceHostOpenStop = firedEvents["ServiceHostOpenStop"]; + Assert.Equal(TestString(510, "AppDomain"), (string)eServiceHostOpenStop["AppDomain"]); + + // WebHostRequestStart (Multidata69TemplateA) + Assert.True(firedEvents.ContainsKey("WebHostRequestStart"), "Event WebHostRequestStart did not fire"); + var eWebHostRequestStart = firedEvents["WebHostRequestStart"]; + Assert.Equal(TestString(513, "AppDomainFriendlyName"), (string)eWebHostRequestStart["AppDomainFriendlyName"]); + Assert.Equal(TestString(513, "VirtualPath"), (string)eWebHostRequestStart["VirtualPath"]); + Assert.Equal(TestString(513, "AppDomain"), (string)eWebHostRequestStart["AppDomain"]); + + // WebHostRequestStop (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("WebHostRequestStop"), "Event WebHostRequestStop did not fire"); + var eWebHostRequestStop = firedEvents["WebHostRequestStop"]; + Assert.Equal(TestString(514, "AppDomain"), (string)eWebHostRequestStop["AppDomain"]); + + // CBAEntryRead (Multidata74TemplateA) + Assert.True(firedEvents.ContainsKey("CBAEntryRead"), "Event CBAEntryRead did not fire"); + var eCBAEntryRead = firedEvents["CBAEntryRead"]; + Assert.Equal(TestString(601, "RelativeAddress"), (string)eCBAEntryRead["RelativeAddress"]); + Assert.Equal(TestString(601, "NormalizedAddress"), (string)eCBAEntryRead["NormalizedAddress"]); + Assert.Equal(TestString(601, "AppDomain"), (string)eCBAEntryRead["AppDomain"]); + } + } +} diff --git a/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk03.cs b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk03.cs new file mode 100644 index 000000000..9a0eb4399 --- /dev/null +++ b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk03.cs @@ -0,0 +1,1051 @@ +using Microsoft.Diagnostics.Tracing; +using Microsoft.Diagnostics.Tracing.Parsers; +using Microsoft.Diagnostics.Tracing.Parsers.ApplicationServer; +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using Xunit; +using TraceEventTests; + +namespace TraceEventTests.Parsers +{ + public partial class ApplicationServerTraceEventParserTests + { + #region Chunk03 Template Fields + + private static readonly TemplateField[] s_chunk03_OneStringsTemplateAFields = new TemplateField[] + { + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk03_TwoStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk03_TwoStringsTemplateVAFields = new TemplateField[] + { + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk03_ThreeStringsTemplateEAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("SerializedException", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk03_FourStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("data3", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk03_FiveStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("data3", FieldType.UnicodeString), + new TemplateField("data4", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk03_SixStringsTemplateEAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("data3", FieldType.UnicodeString), + new TemplateField("data4", FieldType.UnicodeString), + new TemplateField("SerializedException", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk03_SevenStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("data3", FieldType.UnicodeString), + new TemplateField("data4", FieldType.UnicodeString), + new TemplateField("data5", FieldType.UnicodeString), + new TemplateField("data6", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk03_Multidata70TemplateAFields = new TemplateField[] + { + new TemplateField("IncomingAddress", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk03_Multidata71TemplateAFields = new TemplateField[] + { + new TemplateField("AspNetRoutePrefix", FieldType.UnicodeString), + new TemplateField("ServiceType", FieldType.UnicodeString), + new TemplateField("ServiceHostFactoryType", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk03_Multidata75TemplateAFields = new TemplateField[] + { + new TemplateField("Data", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + #endregion + + #region Chunk03 WriteMetadata + + private void WriteMetadata_Chunk03(EventPipeWriterV5 writer, ref int metadataId) + { + int __metadataId = metadataId; + int id = __metadataId; + writer.WriteMetadataBlock(w => + { + // CBAMatchFound (Multidata70TemplateA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "CBAMatchFound", 602); + pw.WriteV5MetadataParameterList(); + }); + + // AspNetRoutingService (Multidata70TemplateA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "AspNetRoutingService", 603); + pw.WriteV5MetadataParameterList(); + }); + + // AspNetRoute (Multidata71TemplateA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "AspNetRoute", 604); + pw.WriteV5MetadataParameterList(); + }); + + // IncrementBusyCount (Multidata75TemplateA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "IncrementBusyCount", 605); + pw.WriteV5MetadataParameterList(); + }); + + // DecrementBusyCount (Multidata75TemplateA, opcode=2) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "DecrementBusyCount", 606); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(2); + }); + + // ServiceChannelOpenStart (OneStringsTemplateA, opcode=1) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "ServiceChannelOpenStart", 701); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(1); + }); + + // ServiceChannelOpenStop (OneStringsTemplateA, opcode=2) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "ServiceChannelOpenStop", 702); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(2); + }); + + // ServiceChannelCallStart (OneStringsTemplateA, opcode=1) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "ServiceChannelCallStart", 703); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(1); + }); + + // ServiceChannelBeginCallStart (OneStringsTemplateA, opcode=1) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "ServiceChannelBeginCallStart", 704); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(1); + }); + + // HttpSendMessageStart (OneStringsTemplateA, opcode=1) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "HttpSendMessageStart", 706); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(1); + }); + + // HttpSendStop (OneStringsTemplateA, opcode=2) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "HttpSendStop", 707); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(2); + }); + + // HttpMessageReceiveStart (OneStringsTemplateA, opcode=1) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "HttpMessageReceiveStart", 708); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(1); + }); + + // DispatchMessageStart (TwoStringsTemplateVA, opcode=49) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "DispatchMessageStart", 709); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(49); + }); + + // HttpContextBeforeProcessAuthentication (OneStringsTemplateA, opcode=128) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "HttpContextBeforeProcessAuthentication", 710); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(128); + }); + + // DispatchMessageBeforeAuthorization (OneStringsTemplateA, opcode=48) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "DispatchMessageBeforeAuthorization", 711); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(48); + }); + + // DispatchMessageStop (OneStringsTemplateA, opcode=50) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "DispatchMessageStop", 712); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(50); + }); + + // ClientChannelOpenStart (OneStringsTemplateA, opcode=14) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "ClientChannelOpenStart", 715); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(14); + }); + + // ClientChannelOpenStop (OneStringsTemplateA, opcode=15) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "ClientChannelOpenStop", 716); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(15); + }); + + // HttpSendStreamedMessageStart (OneStringsTemplateA, opcode=1) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "HttpSendStreamedMessageStart", 717); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(1); + }); + + // WorkflowApplicationCompleted (TwoStringsTemplateA, opcode=134) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "WorkflowApplicationCompleted", 1001); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(134); + }); + + // WorkflowApplicationTerminated (ThreeStringsTemplateEA, opcode=140) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "WorkflowApplicationTerminated", 1002); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(140); + }); + + // WorkflowInstanceCanceled (TwoStringsTemplateA, opcode=137) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "WorkflowInstanceCanceled", 1003); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(137); + }); + + // WorkflowInstanceAborted (ThreeStringsTemplateEA, opcode=136) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "WorkflowInstanceAborted", 1004); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(136); + }); + + // WorkflowApplicationIdled (TwoStringsTemplateA, opcode=135) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "WorkflowApplicationIdled", 1005); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(135); + }); + + // WorkflowApplicationUnhandledException (SixStringsTemplateEA, opcode=141) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "WorkflowApplicationUnhandledException", 1006); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(141); + }); + + // WorkflowApplicationPersisted (TwoStringsTemplateA, opcode=139) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "WorkflowApplicationPersisted", 1007); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(139); + }); + + // WorkflowApplicationUnloaded (TwoStringsTemplateA, opcode=142) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "WorkflowApplicationUnloaded", 1008); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(142); + }); + + // ActivityScheduled (SevenStringsTemplateA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "ActivityScheduled", 1009); + pw.WriteV5MetadataParameterList(); + }); + + // ActivityCompleted (FiveStringsTemplateA, opcode=0) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "ActivityCompleted", 1010); + pw.WriteV5MetadataParameterList(); + }); + + // ScheduleExecuteActivityWorkItem (FourStringsTemplateA, opcode=110) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "ScheduleExecuteActivityWorkItem", 1011); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(110); + }); + + // StartExecuteActivityWorkItem (FourStringsTemplateA, opcode=120) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "StartExecuteActivityWorkItem", 1012); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(120); + }); + + // CompleteExecuteActivityWorkItem (FourStringsTemplateA, opcode=24) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "CompleteExecuteActivityWorkItem", 1013); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(24); + }); + + // ScheduleCompletionWorkItem (SevenStringsTemplateA, opcode=109) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "ScheduleCompletionWorkItem", 1014); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(109); + }); + + // StartCompletionWorkItem (SevenStringsTemplateA, opcode=119) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "StartCompletionWorkItem", 1015); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(119); + }); + + // CompleteCompletionWorkItem (SevenStringsTemplateA, opcode=23) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "CompleteCompletionWorkItem", 1016); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(23); + }); + + // ScheduleCancelActivityWorkItem (FourStringsTemplateA, opcode=108) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "ScheduleCancelActivityWorkItem", 1017); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(108); + }); + + // StartCancelActivityWorkItem (FourStringsTemplateA, opcode=118) + w.WriteMetadataEventBlobV5OrLess(pw => + { + pw.WriteV5InitialMetadataBlob(id++, ProviderName, "StartCancelActivityWorkItem", 1018); + pw.WriteV5MetadataParameterList(); + pw.WriteV5OpcodeMetadataTag(118); + }); + }); + __metadataId = id; + + metadataId = __metadataId; + } + + #endregion + + #region Chunk03 WriteEvents + + private void WriteEvents_Chunk03(EventPipeWriterV5 writer, ref int metadataId, ref int sequenceNumber) + { + int __metadataId = metadataId; + int __sequenceNumber = sequenceNumber; + int id = __metadataId; + int seq = __sequenceNumber; + writer.WriteEventBlock(w => + { + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(602, s_chunk03_Multidata70TemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(603, s_chunk03_Multidata70TemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(604, s_chunk03_Multidata71TemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(605, s_chunk03_Multidata75TemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(606, s_chunk03_Multidata75TemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(701, s_chunk03_OneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(702, s_chunk03_OneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(703, s_chunk03_OneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(704, s_chunk03_OneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(706, s_chunk03_OneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(707, s_chunk03_OneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(708, s_chunk03_OneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(709, s_chunk03_TwoStringsTemplateVAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(710, s_chunk03_OneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(711, s_chunk03_OneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(712, s_chunk03_OneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(715, s_chunk03_OneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(716, s_chunk03_OneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(717, s_chunk03_OneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1001, s_chunk03_TwoStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1002, s_chunk03_ThreeStringsTemplateEAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1003, s_chunk03_TwoStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1004, s_chunk03_ThreeStringsTemplateEAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1005, s_chunk03_TwoStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1006, s_chunk03_SixStringsTemplateEAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1007, s_chunk03_TwoStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1008, s_chunk03_TwoStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1009, s_chunk03_SevenStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1010, s_chunk03_FiveStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1011, s_chunk03_FourStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1012, s_chunk03_FourStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1013, s_chunk03_FourStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1014, s_chunk03_SevenStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1015, s_chunk03_SevenStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1016, s_chunk03_SevenStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1017, s_chunk03_FourStringsTemplateAFields)); + w.WriteEventBlobV4Or5(id++, 999, seq++, BuildPayload(1018, s_chunk03_FourStringsTemplateAFields)); + }); + __metadataId = id; + __sequenceNumber = seq; + + metadataId = __metadataId; + sequenceNumber = __sequenceNumber; + } + + #endregion + + #region Chunk03 Subscribe + + private void Subscribe_Chunk03(ApplicationServerTraceEventParser parser, Dictionary> firedEvents) + { + // CBAMatchFound (Multidata70TemplateA) + parser.CBAMatchFound += e => + { + var fields = new Dictionary(); + fields["IncomingAddress"] = e.IncomingAddress; + fields["AppDomain"] = e.AppDomain; + firedEvents["CBAMatchFound"] = fields; + }; + + // AspNetRoutingService (Multidata70TemplateA) + parser.AspNetRoutingService += e => + { + var fields = new Dictionary(); + fields["IncomingAddress"] = e.IncomingAddress; + fields["AppDomain"] = e.AppDomain; + firedEvents["AspNetRoutingService"] = fields; + }; + + // AspNetRoute (Multidata71TemplateA) + parser.AspNetRoute += e => + { + var fields = new Dictionary(); + fields["AspNetRoutePrefix"] = e.AspNetRoutePrefix; + fields["ServiceType"] = e.ServiceType; + fields["ServiceHostFactoryType"] = e.ServiceHostFactoryType; + fields["AppDomain"] = e.AppDomain; + firedEvents["AspNetRoute"] = fields; + }; + + // IncrementBusyCount (Multidata75TemplateA) + parser.IncrementBusyCount += e => + { + var fields = new Dictionary(); + fields["Data"] = e.Data; + fields["AppDomain"] = e.AppDomain; + firedEvents["IncrementBusyCount"] = fields; + }; + + // DecrementBusyCount (Multidata75TemplateA) + parser.DecrementBusyCount += e => + { + var fields = new Dictionary(); + fields["Data"] = e.Data; + fields["AppDomain"] = e.AppDomain; + firedEvents["DecrementBusyCount"] = fields; + }; + + // ServiceChannelOpenStart (OneStringsTemplateA) + parser.ServiceChannelOpenStart += e => + { + var fields = new Dictionary(); + fields["AppDomain"] = e.AppDomain; + firedEvents["ServiceChannelOpenStart"] = fields; + }; + + // ServiceChannelOpenStop (OneStringsTemplateA) + parser.ServiceChannelOpenStop += e => + { + var fields = new Dictionary(); + fields["AppDomain"] = e.AppDomain; + firedEvents["ServiceChannelOpenStop"] = fields; + }; + + // ServiceChannelCallStart (OneStringsTemplateA) + parser.ServiceChannelCallStart += e => + { + var fields = new Dictionary(); + fields["AppDomain"] = e.AppDomain; + firedEvents["ServiceChannelCallStart"] = fields; + }; + + // ServiceChannelBeginCallStart (OneStringsTemplateA) + parser.ServiceChannelBeginCallStart += e => + { + var fields = new Dictionary(); + fields["AppDomain"] = e.AppDomain; + firedEvents["ServiceChannelBeginCallStart"] = fields; + }; + + // HttpSendMessageStart (OneStringsTemplateA) + parser.HttpSendMessageStart += e => + { + var fields = new Dictionary(); + fields["AppDomain"] = e.AppDomain; + firedEvents["HttpSendMessageStart"] = fields; + }; + + // HttpSendStop (OneStringsTemplateA) + parser.HttpSendStop += e => + { + var fields = new Dictionary(); + fields["AppDomain"] = e.AppDomain; + firedEvents["HttpSendStop"] = fields; + }; + + // HttpMessageReceiveStart (OneStringsTemplateA) + parser.HttpMessageReceiveStart += e => + { + var fields = new Dictionary(); + fields["AppDomain"] = e.AppDomain; + firedEvents["HttpMessageReceiveStart"] = fields; + }; + + // DispatchMessageStart (TwoStringsTemplateVA) + parser.DispatchMessageStart += e => + { + var fields = new Dictionary(); + fields["HostReference"] = e.HostReference; + fields["AppDomain"] = e.AppDomain; + firedEvents["DispatchMessageStart"] = fields; + }; + + // HttpContextBeforeProcessAuthentication (OneStringsTemplateA) + parser.HttpContextBeforeProcessAuthentication += e => + { + var fields = new Dictionary(); + fields["AppDomain"] = e.AppDomain; + firedEvents["HttpContextBeforeProcessAuthentication"] = fields; + }; + + // DispatchMessageBeforeAuthorization (OneStringsTemplateA) + parser.DispatchMessageBeforeAuthorization += e => + { + var fields = new Dictionary(); + fields["AppDomain"] = e.AppDomain; + firedEvents["DispatchMessageBeforeAuthorization"] = fields; + }; + + // DispatchMessageStop (OneStringsTemplateA) + parser.DispatchMessageStop += e => + { + var fields = new Dictionary(); + fields["AppDomain"] = e.AppDomain; + firedEvents["DispatchMessageStop"] = fields; + }; + + // ClientChannelOpenStart (OneStringsTemplateA) + parser.ClientChannelOpenStart += e => + { + var fields = new Dictionary(); + fields["AppDomain"] = e.AppDomain; + firedEvents["ClientChannelOpenStart"] = fields; + }; + + // ClientChannelOpenStop (OneStringsTemplateA) + parser.ClientChannelOpenStop += e => + { + var fields = new Dictionary(); + fields["AppDomain"] = e.AppDomain; + firedEvents["ClientChannelOpenStop"] = fields; + }; + + // HttpSendStreamedMessageStart (OneStringsTemplateA) + parser.HttpSendStreamedMessageStart += e => + { + var fields = new Dictionary(); + fields["AppDomain"] = e.AppDomain; + firedEvents["HttpSendStreamedMessageStart"] = fields; + }; + + // WorkflowApplicationCompleted (TwoStringsTemplateA) + parser.WorkflowApplicationCompleted += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["AppDomain"] = e.AppDomain; + firedEvents["WorkflowApplicationCompleted"] = fields; + }; + + // WorkflowApplicationTerminated (ThreeStringsTemplateEA) + parser.WorkflowApplicationTerminated += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["SerializedException"] = e.SerializedException; + fields["AppDomain"] = e.AppDomain; + firedEvents["WorkflowApplicationTerminated"] = fields; + }; + + // WorkflowInstanceCanceled (TwoStringsTemplateA) + parser.WorkflowInstanceCanceled += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["AppDomain"] = e.AppDomain; + firedEvents["WorkflowInstanceCanceled"] = fields; + }; + + // WorkflowInstanceAborted (ThreeStringsTemplateEA) + parser.WorkflowInstanceAborted += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["SerializedException"] = e.SerializedException; + fields["AppDomain"] = e.AppDomain; + firedEvents["WorkflowInstanceAborted"] = fields; + }; + + // WorkflowApplicationIdled (TwoStringsTemplateA) + parser.WorkflowApplicationIdled += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["AppDomain"] = e.AppDomain; + firedEvents["WorkflowApplicationIdled"] = fields; + }; + + // WorkflowApplicationUnhandledException (SixStringsTemplateEA) + parser.WorkflowApplicationUnhandledException += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["data2"] = e.data2; + fields["data3"] = e.data3; + fields["data4"] = e.data4; + fields["SerializedException"] = e.SerializedException; + fields["AppDomain"] = e.AppDomain; + firedEvents["WorkflowApplicationUnhandledException"] = fields; + }; + + // WorkflowApplicationPersisted (TwoStringsTemplateA) + parser.WorkflowApplicationPersisted += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["AppDomain"] = e.AppDomain; + firedEvents["WorkflowApplicationPersisted"] = fields; + }; + + // WorkflowApplicationUnloaded (TwoStringsTemplateA) + parser.WorkflowApplicationUnloaded += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["AppDomain"] = e.AppDomain; + firedEvents["WorkflowApplicationUnloaded"] = fields; + }; + + // ActivityScheduled (SevenStringsTemplateA) + parser.ActivityScheduled += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["data2"] = e.data2; + fields["data3"] = e.data3; + fields["data4"] = e.data4; + fields["data5"] = e.data5; + fields["data6"] = e.data6; + fields["AppDomain"] = e.AppDomain; + firedEvents["ActivityScheduled"] = fields; + }; + + // ActivityCompleted (FiveStringsTemplateA) + parser.ActivityCompleted += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["data2"] = e.data2; + fields["data3"] = e.data3; + fields["data4"] = e.data4; + fields["AppDomain"] = e.AppDomain; + firedEvents["ActivityCompleted"] = fields; + }; + + // ScheduleExecuteActivityWorkItem (FourStringsTemplateA) + parser.ScheduleExecuteActivityWorkItem += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["data2"] = e.data2; + fields["data3"] = e.data3; + fields["AppDomain"] = e.AppDomain; + firedEvents["ScheduleExecuteActivityWorkItem"] = fields; + }; + + // StartExecuteActivityWorkItem (FourStringsTemplateA) + parser.StartExecuteActivityWorkItem += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["data2"] = e.data2; + fields["data3"] = e.data3; + fields["AppDomain"] = e.AppDomain; + firedEvents["StartExecuteActivityWorkItem"] = fields; + }; + + // CompleteExecuteActivityWorkItem (FourStringsTemplateA) + parser.CompleteExecuteActivityWorkItem += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["data2"] = e.data2; + fields["data3"] = e.data3; + fields["AppDomain"] = e.AppDomain; + firedEvents["CompleteExecuteActivityWorkItem"] = fields; + }; + + // ScheduleCompletionWorkItem (SevenStringsTemplateA) + parser.ScheduleCompletionWorkItem += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["data2"] = e.data2; + fields["data3"] = e.data3; + fields["data4"] = e.data4; + fields["data5"] = e.data5; + fields["data6"] = e.data6; + fields["AppDomain"] = e.AppDomain; + firedEvents["ScheduleCompletionWorkItem"] = fields; + }; + + // StartCompletionWorkItem (SevenStringsTemplateA) + parser.StartCompletionWorkItem += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["data2"] = e.data2; + fields["data3"] = e.data3; + fields["data4"] = e.data4; + fields["data5"] = e.data5; + fields["data6"] = e.data6; + fields["AppDomain"] = e.AppDomain; + firedEvents["StartCompletionWorkItem"] = fields; + }; + + // CompleteCompletionWorkItem (SevenStringsTemplateA) + parser.CompleteCompletionWorkItem += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["data2"] = e.data2; + fields["data3"] = e.data3; + fields["data4"] = e.data4; + fields["data5"] = e.data5; + fields["data6"] = e.data6; + fields["AppDomain"] = e.AppDomain; + firedEvents["CompleteCompletionWorkItem"] = fields; + }; + + // ScheduleCancelActivityWorkItem (FourStringsTemplateA) + parser.ScheduleCancelActivityWorkItem += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["data2"] = e.data2; + fields["data3"] = e.data3; + fields["AppDomain"] = e.AppDomain; + firedEvents["ScheduleCancelActivityWorkItem"] = fields; + }; + + // StartCancelActivityWorkItem (FourStringsTemplateA) + parser.StartCancelActivityWorkItem += e => + { + var fields = new Dictionary(); + fields["data1"] = e.data1; + fields["data2"] = e.data2; + fields["data3"] = e.data3; + fields["AppDomain"] = e.AppDomain; + firedEvents["StartCancelActivityWorkItem"] = fields; + }; + } + + #endregion + + #region Chunk03 Validate + + private void Validate_Chunk03(Dictionary> firedEvents) + { + // CBAMatchFound (Multidata70TemplateA) + Assert.True(firedEvents.ContainsKey("CBAMatchFound"), "Event CBAMatchFound did not fire."); + Assert.Equal(TestString(602, "IncomingAddress"), firedEvents["CBAMatchFound"]["IncomingAddress"]); + Assert.Equal(TestString(602, "AppDomain"), firedEvents["CBAMatchFound"]["AppDomain"]); + + // AspNetRoutingService (Multidata70TemplateA) + Assert.True(firedEvents.ContainsKey("AspNetRoutingService"), "Event AspNetRoutingService did not fire."); + Assert.Equal(TestString(603, "IncomingAddress"), firedEvents["AspNetRoutingService"]["IncomingAddress"]); + Assert.Equal(TestString(603, "AppDomain"), firedEvents["AspNetRoutingService"]["AppDomain"]); + + // AspNetRoute (Multidata71TemplateA) + Assert.True(firedEvents.ContainsKey("AspNetRoute"), "Event AspNetRoute did not fire."); + Assert.Equal(TestString(604, "AspNetRoutePrefix"), firedEvents["AspNetRoute"]["AspNetRoutePrefix"]); + Assert.Equal(TestString(604, "ServiceType"), firedEvents["AspNetRoute"]["ServiceType"]); + Assert.Equal(TestString(604, "ServiceHostFactoryType"), firedEvents["AspNetRoute"]["ServiceHostFactoryType"]); + Assert.Equal(TestString(604, "AppDomain"), firedEvents["AspNetRoute"]["AppDomain"]); + + // IncrementBusyCount (Multidata75TemplateA) + Assert.True(firedEvents.ContainsKey("IncrementBusyCount"), "Event IncrementBusyCount did not fire."); + Assert.Equal(TestString(605, "Data"), firedEvents["IncrementBusyCount"]["Data"]); + Assert.Equal(TestString(605, "AppDomain"), firedEvents["IncrementBusyCount"]["AppDomain"]); + + // DecrementBusyCount (Multidata75TemplateA) + Assert.True(firedEvents.ContainsKey("DecrementBusyCount"), "Event DecrementBusyCount did not fire."); + Assert.Equal(TestString(606, "Data"), firedEvents["DecrementBusyCount"]["Data"]); + Assert.Equal(TestString(606, "AppDomain"), firedEvents["DecrementBusyCount"]["AppDomain"]); + + // ServiceChannelOpenStart (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ServiceChannelOpenStart"), "Event ServiceChannelOpenStart did not fire."); + Assert.Equal(TestString(701, "AppDomain"), firedEvents["ServiceChannelOpenStart"]["AppDomain"]); + + // ServiceChannelOpenStop (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ServiceChannelOpenStop"), "Event ServiceChannelOpenStop did not fire."); + Assert.Equal(TestString(702, "AppDomain"), firedEvents["ServiceChannelOpenStop"]["AppDomain"]); + + // ServiceChannelCallStart (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ServiceChannelCallStart"), "Event ServiceChannelCallStart did not fire."); + Assert.Equal(TestString(703, "AppDomain"), firedEvents["ServiceChannelCallStart"]["AppDomain"]); + + // ServiceChannelBeginCallStart (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ServiceChannelBeginCallStart"), "Event ServiceChannelBeginCallStart did not fire."); + Assert.Equal(TestString(704, "AppDomain"), firedEvents["ServiceChannelBeginCallStart"]["AppDomain"]); + + // HttpSendMessageStart (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("HttpSendMessageStart"), "Event HttpSendMessageStart did not fire."); + Assert.Equal(TestString(706, "AppDomain"), firedEvents["HttpSendMessageStart"]["AppDomain"]); + + // HttpSendStop (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("HttpSendStop"), "Event HttpSendStop did not fire."); + Assert.Equal(TestString(707, "AppDomain"), firedEvents["HttpSendStop"]["AppDomain"]); + + // HttpMessageReceiveStart (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("HttpMessageReceiveStart"), "Event HttpMessageReceiveStart did not fire."); + Assert.Equal(TestString(708, "AppDomain"), firedEvents["HttpMessageReceiveStart"]["AppDomain"]); + + // DispatchMessageStart (TwoStringsTemplateVA) + Assert.True(firedEvents.ContainsKey("DispatchMessageStart"), "Event DispatchMessageStart did not fire."); + Assert.Equal(TestString(709, "HostReference"), firedEvents["DispatchMessageStart"]["HostReference"]); + Assert.Equal(TestString(709, "AppDomain"), firedEvents["DispatchMessageStart"]["AppDomain"]); + + // HttpContextBeforeProcessAuthentication (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("HttpContextBeforeProcessAuthentication"), "Event HttpContextBeforeProcessAuthentication did not fire."); + Assert.Equal(TestString(710, "AppDomain"), firedEvents["HttpContextBeforeProcessAuthentication"]["AppDomain"]); + + // DispatchMessageBeforeAuthorization (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("DispatchMessageBeforeAuthorization"), "Event DispatchMessageBeforeAuthorization did not fire."); + Assert.Equal(TestString(711, "AppDomain"), firedEvents["DispatchMessageBeforeAuthorization"]["AppDomain"]); + + // DispatchMessageStop (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("DispatchMessageStop"), "Event DispatchMessageStop did not fire."); + Assert.Equal(TestString(712, "AppDomain"), firedEvents["DispatchMessageStop"]["AppDomain"]); + + // ClientChannelOpenStart (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ClientChannelOpenStart"), "Event ClientChannelOpenStart did not fire."); + Assert.Equal(TestString(715, "AppDomain"), firedEvents["ClientChannelOpenStart"]["AppDomain"]); + + // ClientChannelOpenStop (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ClientChannelOpenStop"), "Event ClientChannelOpenStop did not fire."); + Assert.Equal(TestString(716, "AppDomain"), firedEvents["ClientChannelOpenStop"]["AppDomain"]); + + // HttpSendStreamedMessageStart (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("HttpSendStreamedMessageStart"), "Event HttpSendStreamedMessageStart did not fire."); + Assert.Equal(TestString(717, "AppDomain"), firedEvents["HttpSendStreamedMessageStart"]["AppDomain"]); + + // WorkflowApplicationCompleted (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("WorkflowApplicationCompleted"), "Event WorkflowApplicationCompleted did not fire."); + Assert.Equal(TestString(1001, "data1"), firedEvents["WorkflowApplicationCompleted"]["data1"]); + Assert.Equal(TestString(1001, "AppDomain"), firedEvents["WorkflowApplicationCompleted"]["AppDomain"]); + + // WorkflowApplicationTerminated (ThreeStringsTemplateEA) + Assert.True(firedEvents.ContainsKey("WorkflowApplicationTerminated"), "Event WorkflowApplicationTerminated did not fire."); + Assert.Equal(TestString(1002, "data1"), firedEvents["WorkflowApplicationTerminated"]["data1"]); + Assert.Equal(TestString(1002, "SerializedException"), firedEvents["WorkflowApplicationTerminated"]["SerializedException"]); + Assert.Equal(TestString(1002, "AppDomain"), firedEvents["WorkflowApplicationTerminated"]["AppDomain"]); + + // WorkflowInstanceCanceled (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("WorkflowInstanceCanceled"), "Event WorkflowInstanceCanceled did not fire."); + Assert.Equal(TestString(1003, "data1"), firedEvents["WorkflowInstanceCanceled"]["data1"]); + Assert.Equal(TestString(1003, "AppDomain"), firedEvents["WorkflowInstanceCanceled"]["AppDomain"]); + + // WorkflowInstanceAborted (ThreeStringsTemplateEA) + Assert.True(firedEvents.ContainsKey("WorkflowInstanceAborted"), "Event WorkflowInstanceAborted did not fire."); + Assert.Equal(TestString(1004, "data1"), firedEvents["WorkflowInstanceAborted"]["data1"]); + Assert.Equal(TestString(1004, "SerializedException"), firedEvents["WorkflowInstanceAborted"]["SerializedException"]); + Assert.Equal(TestString(1004, "AppDomain"), firedEvents["WorkflowInstanceAborted"]["AppDomain"]); + + // WorkflowApplicationIdled (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("WorkflowApplicationIdled"), "Event WorkflowApplicationIdled did not fire."); + Assert.Equal(TestString(1005, "data1"), firedEvents["WorkflowApplicationIdled"]["data1"]); + Assert.Equal(TestString(1005, "AppDomain"), firedEvents["WorkflowApplicationIdled"]["AppDomain"]); + + // WorkflowApplicationUnhandledException (SixStringsTemplateEA) + Assert.True(firedEvents.ContainsKey("WorkflowApplicationUnhandledException"), "Event WorkflowApplicationUnhandledException did not fire."); + Assert.Equal(TestString(1006, "data1"), firedEvents["WorkflowApplicationUnhandledException"]["data1"]); + Assert.Equal(TestString(1006, "data2"), firedEvents["WorkflowApplicationUnhandledException"]["data2"]); + Assert.Equal(TestString(1006, "data3"), firedEvents["WorkflowApplicationUnhandledException"]["data3"]); + Assert.Equal(TestString(1006, "data4"), firedEvents["WorkflowApplicationUnhandledException"]["data4"]); + Assert.Equal(TestString(1006, "SerializedException"), firedEvents["WorkflowApplicationUnhandledException"]["SerializedException"]); + Assert.Equal(TestString(1006, "AppDomain"), firedEvents["WorkflowApplicationUnhandledException"]["AppDomain"]); + + // WorkflowApplicationPersisted (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("WorkflowApplicationPersisted"), "Event WorkflowApplicationPersisted did not fire."); + Assert.Equal(TestString(1007, "data1"), firedEvents["WorkflowApplicationPersisted"]["data1"]); + Assert.Equal(TestString(1007, "AppDomain"), firedEvents["WorkflowApplicationPersisted"]["AppDomain"]); + + // WorkflowApplicationUnloaded (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("WorkflowApplicationUnloaded"), "Event WorkflowApplicationUnloaded did not fire."); + Assert.Equal(TestString(1008, "data1"), firedEvents["WorkflowApplicationUnloaded"]["data1"]); + Assert.Equal(TestString(1008, "AppDomain"), firedEvents["WorkflowApplicationUnloaded"]["AppDomain"]); + + // ActivityScheduled (SevenStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ActivityScheduled"), "Event ActivityScheduled did not fire."); + Assert.Equal(TestString(1009, "data1"), firedEvents["ActivityScheduled"]["data1"]); + Assert.Equal(TestString(1009, "data2"), firedEvents["ActivityScheduled"]["data2"]); + Assert.Equal(TestString(1009, "data3"), firedEvents["ActivityScheduled"]["data3"]); + Assert.Equal(TestString(1009, "data4"), firedEvents["ActivityScheduled"]["data4"]); + Assert.Equal(TestString(1009, "data5"), firedEvents["ActivityScheduled"]["data5"]); + Assert.Equal(TestString(1009, "data6"), firedEvents["ActivityScheduled"]["data6"]); + Assert.Equal(TestString(1009, "AppDomain"), firedEvents["ActivityScheduled"]["AppDomain"]); + + // ActivityCompleted (FiveStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ActivityCompleted"), "Event ActivityCompleted did not fire."); + Assert.Equal(TestString(1010, "data1"), firedEvents["ActivityCompleted"]["data1"]); + Assert.Equal(TestString(1010, "data2"), firedEvents["ActivityCompleted"]["data2"]); + Assert.Equal(TestString(1010, "data3"), firedEvents["ActivityCompleted"]["data3"]); + Assert.Equal(TestString(1010, "data4"), firedEvents["ActivityCompleted"]["data4"]); + Assert.Equal(TestString(1010, "AppDomain"), firedEvents["ActivityCompleted"]["AppDomain"]); + + // ScheduleExecuteActivityWorkItem (FourStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ScheduleExecuteActivityWorkItem"), "Event ScheduleExecuteActivityWorkItem did not fire."); + Assert.Equal(TestString(1011, "data1"), firedEvents["ScheduleExecuteActivityWorkItem"]["data1"]); + Assert.Equal(TestString(1011, "data2"), firedEvents["ScheduleExecuteActivityWorkItem"]["data2"]); + Assert.Equal(TestString(1011, "data3"), firedEvents["ScheduleExecuteActivityWorkItem"]["data3"]); + Assert.Equal(TestString(1011, "AppDomain"), firedEvents["ScheduleExecuteActivityWorkItem"]["AppDomain"]); + + // StartExecuteActivityWorkItem (FourStringsTemplateA) + Assert.True(firedEvents.ContainsKey("StartExecuteActivityWorkItem"), "Event StartExecuteActivityWorkItem did not fire."); + Assert.Equal(TestString(1012, "data1"), firedEvents["StartExecuteActivityWorkItem"]["data1"]); + Assert.Equal(TestString(1012, "data2"), firedEvents["StartExecuteActivityWorkItem"]["data2"]); + Assert.Equal(TestString(1012, "data3"), firedEvents["StartExecuteActivityWorkItem"]["data3"]); + Assert.Equal(TestString(1012, "AppDomain"), firedEvents["StartExecuteActivityWorkItem"]["AppDomain"]); + + // CompleteExecuteActivityWorkItem (FourStringsTemplateA) + Assert.True(firedEvents.ContainsKey("CompleteExecuteActivityWorkItem"), "Event CompleteExecuteActivityWorkItem did not fire."); + Assert.Equal(TestString(1013, "data1"), firedEvents["CompleteExecuteActivityWorkItem"]["data1"]); + Assert.Equal(TestString(1013, "data2"), firedEvents["CompleteExecuteActivityWorkItem"]["data2"]); + Assert.Equal(TestString(1013, "data3"), firedEvents["CompleteExecuteActivityWorkItem"]["data3"]); + Assert.Equal(TestString(1013, "AppDomain"), firedEvents["CompleteExecuteActivityWorkItem"]["AppDomain"]); + + // ScheduleCompletionWorkItem (SevenStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ScheduleCompletionWorkItem"), "Event ScheduleCompletionWorkItem did not fire."); + Assert.Equal(TestString(1014, "data1"), firedEvents["ScheduleCompletionWorkItem"]["data1"]); + Assert.Equal(TestString(1014, "data2"), firedEvents["ScheduleCompletionWorkItem"]["data2"]); + Assert.Equal(TestString(1014, "data3"), firedEvents["ScheduleCompletionWorkItem"]["data3"]); + Assert.Equal(TestString(1014, "data4"), firedEvents["ScheduleCompletionWorkItem"]["data4"]); + Assert.Equal(TestString(1014, "data5"), firedEvents["ScheduleCompletionWorkItem"]["data5"]); + Assert.Equal(TestString(1014, "data6"), firedEvents["ScheduleCompletionWorkItem"]["data6"]); + Assert.Equal(TestString(1014, "AppDomain"), firedEvents["ScheduleCompletionWorkItem"]["AppDomain"]); + + // StartCompletionWorkItem (SevenStringsTemplateA) + Assert.True(firedEvents.ContainsKey("StartCompletionWorkItem"), "Event StartCompletionWorkItem did not fire."); + Assert.Equal(TestString(1015, "data1"), firedEvents["StartCompletionWorkItem"]["data1"]); + Assert.Equal(TestString(1015, "data2"), firedEvents["StartCompletionWorkItem"]["data2"]); + Assert.Equal(TestString(1015, "data3"), firedEvents["StartCompletionWorkItem"]["data3"]); + Assert.Equal(TestString(1015, "data4"), firedEvents["StartCompletionWorkItem"]["data4"]); + Assert.Equal(TestString(1015, "data5"), firedEvents["StartCompletionWorkItem"]["data5"]); + Assert.Equal(TestString(1015, "data6"), firedEvents["StartCompletionWorkItem"]["data6"]); + Assert.Equal(TestString(1015, "AppDomain"), firedEvents["StartCompletionWorkItem"]["AppDomain"]); + + // CompleteCompletionWorkItem (SevenStringsTemplateA) + Assert.True(firedEvents.ContainsKey("CompleteCompletionWorkItem"), "Event CompleteCompletionWorkItem did not fire."); + Assert.Equal(TestString(1016, "data1"), firedEvents["CompleteCompletionWorkItem"]["data1"]); + Assert.Equal(TestString(1016, "data2"), firedEvents["CompleteCompletionWorkItem"]["data2"]); + Assert.Equal(TestString(1016, "data3"), firedEvents["CompleteCompletionWorkItem"]["data3"]); + Assert.Equal(TestString(1016, "data4"), firedEvents["CompleteCompletionWorkItem"]["data4"]); + Assert.Equal(TestString(1016, "data5"), firedEvents["CompleteCompletionWorkItem"]["data5"]); + Assert.Equal(TestString(1016, "data6"), firedEvents["CompleteCompletionWorkItem"]["data6"]); + Assert.Equal(TestString(1016, "AppDomain"), firedEvents["CompleteCompletionWorkItem"]["AppDomain"]); + + // ScheduleCancelActivityWorkItem (FourStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ScheduleCancelActivityWorkItem"), "Event ScheduleCancelActivityWorkItem did not fire."); + Assert.Equal(TestString(1017, "data1"), firedEvents["ScheduleCancelActivityWorkItem"]["data1"]); + Assert.Equal(TestString(1017, "data2"), firedEvents["ScheduleCancelActivityWorkItem"]["data2"]); + Assert.Equal(TestString(1017, "data3"), firedEvents["ScheduleCancelActivityWorkItem"]["data3"]); + Assert.Equal(TestString(1017, "AppDomain"), firedEvents["ScheduleCancelActivityWorkItem"]["AppDomain"]); + + // StartCancelActivityWorkItem (FourStringsTemplateA) + Assert.True(firedEvents.ContainsKey("StartCancelActivityWorkItem"), "Event StartCancelActivityWorkItem did not fire."); + Assert.Equal(TestString(1018, "data1"), firedEvents["StartCancelActivityWorkItem"]["data1"]); + Assert.Equal(TestString(1018, "data2"), firedEvents["StartCancelActivityWorkItem"]["data2"]); + Assert.Equal(TestString(1018, "data3"), firedEvents["StartCancelActivityWorkItem"]["data3"]); + Assert.Equal(TestString(1018, "AppDomain"), firedEvents["StartCancelActivityWorkItem"]["AppDomain"]); + } + + #endregion + } +} diff --git a/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk04.cs b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk04.cs new file mode 100644 index 000000000..00e434f27 --- /dev/null +++ b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk04.cs @@ -0,0 +1,839 @@ +using Microsoft.Diagnostics.Tracing; +using Microsoft.Diagnostics.Tracing.Parsers; +using Microsoft.Diagnostics.Tracing.Parsers.ApplicationServer; +using System; +using System.Collections.Generic; +using Xunit; + +namespace TraceEventTests.Parsers +{ + public partial class ApplicationServerTraceEventParserTests + { + #region Chunk04 Template Fields + + private static readonly TemplateField[] EightStringsTemplateEAFields_Chunk04 = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("data3", FieldType.UnicodeString), + new TemplateField("data4", FieldType.UnicodeString), + new TemplateField("data5", FieldType.UnicodeString), + new TemplateField("data6", FieldType.UnicodeString), + new TemplateField("SerializedException", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] FourStringsTemplateAFields_Chunk04 = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("data3", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata17TemplateAFields_Chunk04 = new TemplateField[] + { + new TemplateField("Id", FieldType.Guid), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] OneStringsTemplateAFields_Chunk04 = new TemplateField[] + { + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] SevenStringsTemplateAFields_Chunk04 = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("data3", FieldType.UnicodeString), + new TemplateField("data4", FieldType.UnicodeString), + new TemplateField("data5", FieldType.UnicodeString), + new TemplateField("data6", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] SixStringsTemplateAFields_Chunk04 = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("data3", FieldType.UnicodeString), + new TemplateField("data4", FieldType.UnicodeString), + new TemplateField("data5", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] ThreeStringsTemplateAFields_Chunk04 = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] TwoStringsTemplateAFields_Chunk04 = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + #endregion + + #region Chunk04 WriteMetadata + + private void WriteMetadata_Chunk04(EventPipeWriterV5 writer, ref int metadataId) + { + writer.WriteMetadataBlock( + new EventMetadata(metadataId++, ProviderName, "CompleteCancelActivityWorkItem", 1019), + new EventMetadata(metadataId++, ProviderName, "CreateBookmark", 1020), + new EventMetadata(metadataId++, ProviderName, "ScheduleBookmarkWorkItem", 1021), + new EventMetadata(metadataId++, ProviderName, "StartBookmarkWorkItem", 1022), + new EventMetadata(metadataId++, ProviderName, "CompleteBookmarkWorkItem", 1023), + new EventMetadata(metadataId++, ProviderName, "CreateBookmarkScope", 1024), + new EventMetadata(metadataId++, ProviderName, "BookmarkScopeInitialized", 1025), + new EventMetadata(metadataId++, ProviderName, "ScheduleTransactionContextWorkItem", 1026), + new EventMetadata(metadataId++, ProviderName, "StartTransactionContextWorkItem", 1027), + new EventMetadata(metadataId++, ProviderName, "CompleteTransactionContextWorkItem", 1028), + new EventMetadata(metadataId++, ProviderName, "ScheduleFaultWorkItem", 1029), + new EventMetadata(metadataId++, ProviderName, "StartFaultWorkItem", 1030), + new EventMetadata(metadataId++, ProviderName, "CompleteFaultWorkItem", 1031), + new EventMetadata(metadataId++, ProviderName, "ScheduleRuntimeWorkItem", 1032), + new EventMetadata(metadataId++, ProviderName, "StartRuntimeWorkItem", 1033), + new EventMetadata(metadataId++, ProviderName, "CompleteRuntimeWorkItem", 1034), + new EventMetadata(metadataId++, ProviderName, "RuntimeTransactionSet", 1035), + new EventMetadata(metadataId++, ProviderName, "RuntimeTransactionCompletionRequested", 1036), + new EventMetadata(metadataId++, ProviderName, "RuntimeTransactionComplete", 1037), + new EventMetadata(metadataId++, ProviderName, "EnterNoPersistBlock", 1038), + new EventMetadata(metadataId++, ProviderName, "ExitNoPersistBlock", 1039), + new EventMetadata(metadataId++, ProviderName, "InArgumentBound", 1040), + new EventMetadata(metadataId++, ProviderName, "WorkflowApplicationPersistableIdle", 1041), + new EventMetadata(metadataId++, ProviderName, "WorkflowActivityStart", 1101), + new EventMetadata(metadataId++, ProviderName, "WorkflowActivityStop", 1102), + new EventMetadata(metadataId++, ProviderName, "WorkflowActivitySuspend", 1103), + new EventMetadata(metadataId++, ProviderName, "WorkflowActivityResume", 1104), + new EventMetadata(metadataId++, ProviderName, "InvokeMethodIsStatic", 1124), + new EventMetadata(metadataId++, ProviderName, "InvokeMethodIsNotStatic", 1125), + new EventMetadata(metadataId++, ProviderName, "InvokedMethodThrewException", 1126), + new EventMetadata(metadataId++, ProviderName, "InvokeMethodUseAsyncPattern", 1131), + new EventMetadata(metadataId++, ProviderName, "InvokeMethodDoesNotUseAsyncPattern", 1132), + new EventMetadata(metadataId++, ProviderName, "FlowchartStart", 1140), + new EventMetadata(metadataId++, ProviderName, "FlowchartEmpty", 1141), + new EventMetadata(metadataId++, ProviderName, "FlowchartNextNull", 1143), + new EventMetadata(metadataId++, ProviderName, "FlowchartSwitchCase", 1146), + new EventMetadata(metadataId++, ProviderName, "FlowchartSwitchDefault", 1147) + ); + } + + #endregion + + #region Chunk04 WriteEvents + + private void WriteEvents_Chunk04(EventPipeWriterV5 writer, ref int metadataId, ref int sequenceNumber) + { + int __metadataId = metadataId; + int __sequenceNumber = sequenceNumber; + writer.WriteEventBlock(w => + { + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1019, FourStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1020, SixStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1021, SixStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1022, SixStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1023, SixStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1024, TwoStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1025, ThreeStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1026, FourStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1027, FourStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1028, FourStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1029, EightStringsTemplateEAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1030, EightStringsTemplateEAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1031, EightStringsTemplateEAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1032, FourStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1033, FourStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1034, FourStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1035, SevenStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1036, FourStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1037, TwoStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1038, OneStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1039, OneStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1040, SixStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1041, ThreeStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1101, Multidata17TemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1102, Multidata17TemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1103, Multidata17TemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1104, Multidata17TemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1124, TwoStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1125, TwoStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1126, ThreeStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1131, FourStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1132, TwoStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1140, TwoStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1141, TwoStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1143, TwoStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1146, ThreeStringsTemplateAFields_Chunk04)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(1147, TwoStringsTemplateAFields_Chunk04)); + }); + + metadataId = __metadataId; + sequenceNumber = __sequenceNumber; + } + + #endregion + + #region Chunk04 Subscribe + + private void Subscribe_Chunk04(ApplicationServerTraceEventParser parser, Dictionary> firedEvents) + { + // 1019 CompleteCancelActivityWorkItem (FourStringsTemplateATraceData) + parser.CompleteCancelActivityWorkItem += delegate (FourStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["AppDomain"] = data.AppDomain; + firedEvents["CompleteCancelActivityWorkItem"] = fields; + }; + + // 1020 CreateBookmark (SixStringsTemplateATraceData) + parser.CreateBookmark += delegate (SixStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["data4"] = data.data4; + fields["data5"] = data.data5; + fields["AppDomain"] = data.AppDomain; + firedEvents["CreateBookmark"] = fields; + }; + + // 1021 ScheduleBookmarkWorkItem (SixStringsTemplateATraceData) + parser.ScheduleBookmarkWorkItem += delegate (SixStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["data4"] = data.data4; + fields["data5"] = data.data5; + fields["AppDomain"] = data.AppDomain; + firedEvents["ScheduleBookmarkWorkItem"] = fields; + }; + + // 1022 StartBookmarkWorkItem (SixStringsTemplateATraceData) + parser.StartBookmarkWorkItem += delegate (SixStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["data4"] = data.data4; + fields["data5"] = data.data5; + fields["AppDomain"] = data.AppDomain; + firedEvents["StartBookmarkWorkItem"] = fields; + }; + + // 1023 CompleteBookmarkWorkItem (SixStringsTemplateATraceData) + parser.CompleteBookmarkWorkItem += delegate (SixStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["data4"] = data.data4; + fields["data5"] = data.data5; + fields["AppDomain"] = data.AppDomain; + firedEvents["CompleteBookmarkWorkItem"] = fields; + }; + + // 1024 CreateBookmarkScope (TwoStringsTemplateATraceData) + parser.CreateBookmarkScope += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["CreateBookmarkScope"] = fields; + }; + + // 1025 BookmarkScopeInitialized (ThreeStringsTemplateATraceData) + parser.BookmarkScopeInitialized += delegate (ThreeStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["AppDomain"] = data.AppDomain; + firedEvents["BookmarkScopeInitialized"] = fields; + }; + + // 1026 ScheduleTransactionContextWorkItem (FourStringsTemplateATraceData) + parser.ScheduleTransactionContextWorkItem += delegate (FourStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["AppDomain"] = data.AppDomain; + firedEvents["ScheduleTransactionContextWorkItem"] = fields; + }; + + // 1027 StartTransactionContextWorkItem (FourStringsTemplateATraceData) + parser.StartTransactionContextWorkItem += delegate (FourStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["AppDomain"] = data.AppDomain; + firedEvents["StartTransactionContextWorkItem"] = fields; + }; + + // 1028 CompleteTransactionContextWorkItem (FourStringsTemplateATraceData) + parser.CompleteTransactionContextWorkItem += delegate (FourStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["AppDomain"] = data.AppDomain; + firedEvents["CompleteTransactionContextWorkItem"] = fields; + }; + + // 1029 ScheduleFaultWorkItem (EightStringsTemplateEATraceData) + parser.ScheduleFaultWorkItem += delegate (EightStringsTemplateEATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["data4"] = data.data4; + fields["data5"] = data.data5; + fields["data6"] = data.data6; + fields["SerializedException"] = data.SerializedException; + fields["AppDomain"] = data.AppDomain; + firedEvents["ScheduleFaultWorkItem"] = fields; + }; + + // 1030 StartFaultWorkItem (EightStringsTemplateEATraceData) + parser.StartFaultWorkItem += delegate (EightStringsTemplateEATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["data4"] = data.data4; + fields["data5"] = data.data5; + fields["data6"] = data.data6; + fields["SerializedException"] = data.SerializedException; + fields["AppDomain"] = data.AppDomain; + firedEvents["StartFaultWorkItem"] = fields; + }; + + // 1031 CompleteFaultWorkItem (EightStringsTemplateEATraceData) + parser.CompleteFaultWorkItem += delegate (EightStringsTemplateEATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["data4"] = data.data4; + fields["data5"] = data.data5; + fields["data6"] = data.data6; + fields["SerializedException"] = data.SerializedException; + fields["AppDomain"] = data.AppDomain; + firedEvents["CompleteFaultWorkItem"] = fields; + }; + + // 1032 ScheduleRuntimeWorkItem (FourStringsTemplateATraceData) + parser.ScheduleRuntimeWorkItem += delegate (FourStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["AppDomain"] = data.AppDomain; + firedEvents["ScheduleRuntimeWorkItem"] = fields; + }; + + // 1033 StartRuntimeWorkItem (FourStringsTemplateATraceData) + parser.StartRuntimeWorkItem += delegate (FourStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["AppDomain"] = data.AppDomain; + firedEvents["StartRuntimeWorkItem"] = fields; + }; + + // 1034 CompleteRuntimeWorkItem (FourStringsTemplateATraceData) + parser.CompleteRuntimeWorkItem += delegate (FourStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["AppDomain"] = data.AppDomain; + firedEvents["CompleteRuntimeWorkItem"] = fields; + }; + + // 1035 RuntimeTransactionSet (SevenStringsTemplateATraceData) + parser.RuntimeTransactionSet += delegate (SevenStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["data4"] = data.data4; + fields["data5"] = data.data5; + fields["data6"] = data.data6; + fields["AppDomain"] = data.AppDomain; + firedEvents["RuntimeTransactionSet"] = fields; + }; + + // 1036 RuntimeTransactionCompletionRequested (FourStringsTemplateATraceData) + parser.RuntimeTransactionCompletionRequested += delegate (FourStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["AppDomain"] = data.AppDomain; + firedEvents["RuntimeTransactionCompletionRequested"] = fields; + }; + + // 1037 RuntimeTransactionComplete (TwoStringsTemplateATraceData) + parser.RuntimeTransactionComplete += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["RuntimeTransactionComplete"] = fields; + }; + + // 1038 EnterNoPersistBlock (OneStringsTemplateATraceData) + parser.EnterNoPersistBlock += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["EnterNoPersistBlock"] = fields; + }; + + // 1039 ExitNoPersistBlock (OneStringsTemplateATraceData) + parser.ExitNoPersistBlock += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["ExitNoPersistBlock"] = fields; + }; + + // 1040 InArgumentBound (SixStringsTemplateATraceData) + parser.InArgumentBound += delegate (SixStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["data4"] = data.data4; + fields["data5"] = data.data5; + fields["AppDomain"] = data.AppDomain; + firedEvents["InArgumentBound"] = fields; + }; + + // 1041 WorkflowApplicationPersistableIdle (ThreeStringsTemplateATraceData) + parser.WorkflowApplicationPersistableIdle += delegate (ThreeStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowApplicationPersistableIdle"] = fields; + }; + + // 1101 WorkflowActivityStart (Multidata17TemplateATraceData) + parser.WorkflowActivityStart += delegate (Multidata17TemplateATraceData data) + { + var fields = new Dictionary(); + fields["Id"] = data.Id; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowActivityStart"] = fields; + }; + + // 1102 WorkflowActivityStop (Multidata17TemplateATraceData) + parser.WorkflowActivityStop += delegate (Multidata17TemplateATraceData data) + { + var fields = new Dictionary(); + fields["Id"] = data.Id; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowActivityStop"] = fields; + }; + + // 1103 WorkflowActivitySuspend (Multidata17TemplateATraceData) + parser.WorkflowActivitySuspend += delegate (Multidata17TemplateATraceData data) + { + var fields = new Dictionary(); + fields["Id"] = data.Id; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowActivitySuspend"] = fields; + }; + + // 1104 WorkflowActivityResume (Multidata17TemplateATraceData) + parser.WorkflowActivityResume += delegate (Multidata17TemplateATraceData data) + { + var fields = new Dictionary(); + fields["Id"] = data.Id; + fields["AppDomain"] = data.AppDomain; + firedEvents["WorkflowActivityResume"] = fields; + }; + + // 1124 InvokeMethodIsStatic (TwoStringsTemplateATraceData) + parser.InvokeMethodIsStatic += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["InvokeMethodIsStatic"] = fields; + }; + + // 1125 InvokeMethodIsNotStatic (TwoStringsTemplateATraceData) + parser.InvokeMethodIsNotStatic += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["InvokeMethodIsNotStatic"] = fields; + }; + + // 1126 InvokedMethodThrewException (ThreeStringsTemplateATraceData) + parser.InvokedMethodThrewException += delegate (ThreeStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["AppDomain"] = data.AppDomain; + firedEvents["InvokedMethodThrewException"] = fields; + }; + + // 1131 InvokeMethodUseAsyncPattern (FourStringsTemplateATraceData) + parser.InvokeMethodUseAsyncPattern += delegate (FourStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["data3"] = data.data3; + fields["AppDomain"] = data.AppDomain; + firedEvents["InvokeMethodUseAsyncPattern"] = fields; + }; + + // 1132 InvokeMethodDoesNotUseAsyncPattern (TwoStringsTemplateATraceData) + parser.InvokeMethodDoesNotUseAsyncPattern += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["InvokeMethodDoesNotUseAsyncPattern"] = fields; + }; + + // 1140 FlowchartStart (TwoStringsTemplateATraceData) + parser.FlowchartStart += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["FlowchartStart"] = fields; + }; + + // 1141 FlowchartEmpty (TwoStringsTemplateATraceData) + parser.FlowchartEmpty += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["FlowchartEmpty"] = fields; + }; + + // 1143 FlowchartNextNull (TwoStringsTemplateATraceData) + parser.FlowchartNextNull += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["FlowchartNextNull"] = fields; + }; + + // 1146 FlowchartSwitchCase (ThreeStringsTemplateATraceData) + parser.FlowchartSwitchCase += delegate (ThreeStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["AppDomain"] = data.AppDomain; + firedEvents["FlowchartSwitchCase"] = fields; + }; + + // 1147 FlowchartSwitchDefault (TwoStringsTemplateATraceData) + parser.FlowchartSwitchDefault += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["FlowchartSwitchDefault"] = fields; + }; + } + + #endregion + + #region Chunk04 Validate + + private void Validate_Chunk04(Dictionary> firedEvents) + { + // 1019 CompleteCancelActivityWorkItem (FourStringsTemplateA) + Assert.True(firedEvents.ContainsKey("CompleteCancelActivityWorkItem"), "Event 1019 CompleteCancelActivityWorkItem did not fire"); + Assert.Equal(TestString(1019, "data1"), firedEvents["CompleteCancelActivityWorkItem"]["data1"]); + Assert.Equal(TestString(1019, "data2"), firedEvents["CompleteCancelActivityWorkItem"]["data2"]); + Assert.Equal(TestString(1019, "data3"), firedEvents["CompleteCancelActivityWorkItem"]["data3"]); + Assert.Equal(TestString(1019, "AppDomain"), firedEvents["CompleteCancelActivityWorkItem"]["AppDomain"]); + + // 1020 CreateBookmark (SixStringsTemplateA) + Assert.True(firedEvents.ContainsKey("CreateBookmark"), "Event 1020 CreateBookmark did not fire"); + Assert.Equal(TestString(1020, "data1"), firedEvents["CreateBookmark"]["data1"]); + Assert.Equal(TestString(1020, "data2"), firedEvents["CreateBookmark"]["data2"]); + Assert.Equal(TestString(1020, "data3"), firedEvents["CreateBookmark"]["data3"]); + Assert.Equal(TestString(1020, "data4"), firedEvents["CreateBookmark"]["data4"]); + Assert.Equal(TestString(1020, "data5"), firedEvents["CreateBookmark"]["data5"]); + Assert.Equal(TestString(1020, "AppDomain"), firedEvents["CreateBookmark"]["AppDomain"]); + + // 1021 ScheduleBookmarkWorkItem (SixStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ScheduleBookmarkWorkItem"), "Event 1021 ScheduleBookmarkWorkItem did not fire"); + Assert.Equal(TestString(1021, "data1"), firedEvents["ScheduleBookmarkWorkItem"]["data1"]); + Assert.Equal(TestString(1021, "data2"), firedEvents["ScheduleBookmarkWorkItem"]["data2"]); + Assert.Equal(TestString(1021, "data3"), firedEvents["ScheduleBookmarkWorkItem"]["data3"]); + Assert.Equal(TestString(1021, "data4"), firedEvents["ScheduleBookmarkWorkItem"]["data4"]); + Assert.Equal(TestString(1021, "data5"), firedEvents["ScheduleBookmarkWorkItem"]["data5"]); + Assert.Equal(TestString(1021, "AppDomain"), firedEvents["ScheduleBookmarkWorkItem"]["AppDomain"]); + + // 1022 StartBookmarkWorkItem (SixStringsTemplateA) + Assert.True(firedEvents.ContainsKey("StartBookmarkWorkItem"), "Event 1022 StartBookmarkWorkItem did not fire"); + Assert.Equal(TestString(1022, "data1"), firedEvents["StartBookmarkWorkItem"]["data1"]); + Assert.Equal(TestString(1022, "data2"), firedEvents["StartBookmarkWorkItem"]["data2"]); + Assert.Equal(TestString(1022, "data3"), firedEvents["StartBookmarkWorkItem"]["data3"]); + Assert.Equal(TestString(1022, "data4"), firedEvents["StartBookmarkWorkItem"]["data4"]); + Assert.Equal(TestString(1022, "data5"), firedEvents["StartBookmarkWorkItem"]["data5"]); + Assert.Equal(TestString(1022, "AppDomain"), firedEvents["StartBookmarkWorkItem"]["AppDomain"]); + + // 1023 CompleteBookmarkWorkItem (SixStringsTemplateA) + Assert.True(firedEvents.ContainsKey("CompleteBookmarkWorkItem"), "Event 1023 CompleteBookmarkWorkItem did not fire"); + Assert.Equal(TestString(1023, "data1"), firedEvents["CompleteBookmarkWorkItem"]["data1"]); + Assert.Equal(TestString(1023, "data2"), firedEvents["CompleteBookmarkWorkItem"]["data2"]); + Assert.Equal(TestString(1023, "data3"), firedEvents["CompleteBookmarkWorkItem"]["data3"]); + Assert.Equal(TestString(1023, "data4"), firedEvents["CompleteBookmarkWorkItem"]["data4"]); + Assert.Equal(TestString(1023, "data5"), firedEvents["CompleteBookmarkWorkItem"]["data5"]); + Assert.Equal(TestString(1023, "AppDomain"), firedEvents["CompleteBookmarkWorkItem"]["AppDomain"]); + + // 1024 CreateBookmarkScope (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("CreateBookmarkScope"), "Event 1024 CreateBookmarkScope did not fire"); + Assert.Equal(TestString(1024, "data1"), firedEvents["CreateBookmarkScope"]["data1"]); + Assert.Equal(TestString(1024, "AppDomain"), firedEvents["CreateBookmarkScope"]["AppDomain"]); + + // 1025 BookmarkScopeInitialized (ThreeStringsTemplateA) + Assert.True(firedEvents.ContainsKey("BookmarkScopeInitialized"), "Event 1025 BookmarkScopeInitialized did not fire"); + Assert.Equal(TestString(1025, "data1"), firedEvents["BookmarkScopeInitialized"]["data1"]); + Assert.Equal(TestString(1025, "data2"), firedEvents["BookmarkScopeInitialized"]["data2"]); + Assert.Equal(TestString(1025, "AppDomain"), firedEvents["BookmarkScopeInitialized"]["AppDomain"]); + + // 1026 ScheduleTransactionContextWorkItem (FourStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ScheduleTransactionContextWorkItem"), "Event 1026 ScheduleTransactionContextWorkItem did not fire"); + Assert.Equal(TestString(1026, "data1"), firedEvents["ScheduleTransactionContextWorkItem"]["data1"]); + Assert.Equal(TestString(1026, "data2"), firedEvents["ScheduleTransactionContextWorkItem"]["data2"]); + Assert.Equal(TestString(1026, "data3"), firedEvents["ScheduleTransactionContextWorkItem"]["data3"]); + Assert.Equal(TestString(1026, "AppDomain"), firedEvents["ScheduleTransactionContextWorkItem"]["AppDomain"]); + + // 1027 StartTransactionContextWorkItem (FourStringsTemplateA) + Assert.True(firedEvents.ContainsKey("StartTransactionContextWorkItem"), "Event 1027 StartTransactionContextWorkItem did not fire"); + Assert.Equal(TestString(1027, "data1"), firedEvents["StartTransactionContextWorkItem"]["data1"]); + Assert.Equal(TestString(1027, "data2"), firedEvents["StartTransactionContextWorkItem"]["data2"]); + Assert.Equal(TestString(1027, "data3"), firedEvents["StartTransactionContextWorkItem"]["data3"]); + Assert.Equal(TestString(1027, "AppDomain"), firedEvents["StartTransactionContextWorkItem"]["AppDomain"]); + + // 1028 CompleteTransactionContextWorkItem (FourStringsTemplateA) + Assert.True(firedEvents.ContainsKey("CompleteTransactionContextWorkItem"), "Event 1028 CompleteTransactionContextWorkItem did not fire"); + Assert.Equal(TestString(1028, "data1"), firedEvents["CompleteTransactionContextWorkItem"]["data1"]); + Assert.Equal(TestString(1028, "data2"), firedEvents["CompleteTransactionContextWorkItem"]["data2"]); + Assert.Equal(TestString(1028, "data3"), firedEvents["CompleteTransactionContextWorkItem"]["data3"]); + Assert.Equal(TestString(1028, "AppDomain"), firedEvents["CompleteTransactionContextWorkItem"]["AppDomain"]); + + // 1029 ScheduleFaultWorkItem (EightStringsTemplateEA) + Assert.True(firedEvents.ContainsKey("ScheduleFaultWorkItem"), "Event 1029 ScheduleFaultWorkItem did not fire"); + Assert.Equal(TestString(1029, "data1"), firedEvents["ScheduleFaultWorkItem"]["data1"]); + Assert.Equal(TestString(1029, "data2"), firedEvents["ScheduleFaultWorkItem"]["data2"]); + Assert.Equal(TestString(1029, "data3"), firedEvents["ScheduleFaultWorkItem"]["data3"]); + Assert.Equal(TestString(1029, "data4"), firedEvents["ScheduleFaultWorkItem"]["data4"]); + Assert.Equal(TestString(1029, "data5"), firedEvents["ScheduleFaultWorkItem"]["data5"]); + Assert.Equal(TestString(1029, "data6"), firedEvents["ScheduleFaultWorkItem"]["data6"]); + Assert.Equal(TestString(1029, "SerializedException"), firedEvents["ScheduleFaultWorkItem"]["SerializedException"]); + Assert.Equal(TestString(1029, "AppDomain"), firedEvents["ScheduleFaultWorkItem"]["AppDomain"]); + + // 1030 StartFaultWorkItem (EightStringsTemplateEA) + Assert.True(firedEvents.ContainsKey("StartFaultWorkItem"), "Event 1030 StartFaultWorkItem did not fire"); + Assert.Equal(TestString(1030, "data1"), firedEvents["StartFaultWorkItem"]["data1"]); + Assert.Equal(TestString(1030, "data2"), firedEvents["StartFaultWorkItem"]["data2"]); + Assert.Equal(TestString(1030, "data3"), firedEvents["StartFaultWorkItem"]["data3"]); + Assert.Equal(TestString(1030, "data4"), firedEvents["StartFaultWorkItem"]["data4"]); + Assert.Equal(TestString(1030, "data5"), firedEvents["StartFaultWorkItem"]["data5"]); + Assert.Equal(TestString(1030, "data6"), firedEvents["StartFaultWorkItem"]["data6"]); + Assert.Equal(TestString(1030, "SerializedException"), firedEvents["StartFaultWorkItem"]["SerializedException"]); + Assert.Equal(TestString(1030, "AppDomain"), firedEvents["StartFaultWorkItem"]["AppDomain"]); + + // 1031 CompleteFaultWorkItem (EightStringsTemplateEA) + Assert.True(firedEvents.ContainsKey("CompleteFaultWorkItem"), "Event 1031 CompleteFaultWorkItem did not fire"); + Assert.Equal(TestString(1031, "data1"), firedEvents["CompleteFaultWorkItem"]["data1"]); + Assert.Equal(TestString(1031, "data2"), firedEvents["CompleteFaultWorkItem"]["data2"]); + Assert.Equal(TestString(1031, "data3"), firedEvents["CompleteFaultWorkItem"]["data3"]); + Assert.Equal(TestString(1031, "data4"), firedEvents["CompleteFaultWorkItem"]["data4"]); + Assert.Equal(TestString(1031, "data5"), firedEvents["CompleteFaultWorkItem"]["data5"]); + Assert.Equal(TestString(1031, "data6"), firedEvents["CompleteFaultWorkItem"]["data6"]); + Assert.Equal(TestString(1031, "SerializedException"), firedEvents["CompleteFaultWorkItem"]["SerializedException"]); + Assert.Equal(TestString(1031, "AppDomain"), firedEvents["CompleteFaultWorkItem"]["AppDomain"]); + + // 1032 ScheduleRuntimeWorkItem (FourStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ScheduleRuntimeWorkItem"), "Event 1032 ScheduleRuntimeWorkItem did not fire"); + Assert.Equal(TestString(1032, "data1"), firedEvents["ScheduleRuntimeWorkItem"]["data1"]); + Assert.Equal(TestString(1032, "data2"), firedEvents["ScheduleRuntimeWorkItem"]["data2"]); + Assert.Equal(TestString(1032, "data3"), firedEvents["ScheduleRuntimeWorkItem"]["data3"]); + Assert.Equal(TestString(1032, "AppDomain"), firedEvents["ScheduleRuntimeWorkItem"]["AppDomain"]); + + // 1033 StartRuntimeWorkItem (FourStringsTemplateA) + Assert.True(firedEvents.ContainsKey("StartRuntimeWorkItem"), "Event 1033 StartRuntimeWorkItem did not fire"); + Assert.Equal(TestString(1033, "data1"), firedEvents["StartRuntimeWorkItem"]["data1"]); + Assert.Equal(TestString(1033, "data2"), firedEvents["StartRuntimeWorkItem"]["data2"]); + Assert.Equal(TestString(1033, "data3"), firedEvents["StartRuntimeWorkItem"]["data3"]); + Assert.Equal(TestString(1033, "AppDomain"), firedEvents["StartRuntimeWorkItem"]["AppDomain"]); + + // 1034 CompleteRuntimeWorkItem (FourStringsTemplateA) + Assert.True(firedEvents.ContainsKey("CompleteRuntimeWorkItem"), "Event 1034 CompleteRuntimeWorkItem did not fire"); + Assert.Equal(TestString(1034, "data1"), firedEvents["CompleteRuntimeWorkItem"]["data1"]); + Assert.Equal(TestString(1034, "data2"), firedEvents["CompleteRuntimeWorkItem"]["data2"]); + Assert.Equal(TestString(1034, "data3"), firedEvents["CompleteRuntimeWorkItem"]["data3"]); + Assert.Equal(TestString(1034, "AppDomain"), firedEvents["CompleteRuntimeWorkItem"]["AppDomain"]); + + // 1035 RuntimeTransactionSet (SevenStringsTemplateA) + Assert.True(firedEvents.ContainsKey("RuntimeTransactionSet"), "Event 1035 RuntimeTransactionSet did not fire"); + Assert.Equal(TestString(1035, "data1"), firedEvents["RuntimeTransactionSet"]["data1"]); + Assert.Equal(TestString(1035, "data2"), firedEvents["RuntimeTransactionSet"]["data2"]); + Assert.Equal(TestString(1035, "data3"), firedEvents["RuntimeTransactionSet"]["data3"]); + Assert.Equal(TestString(1035, "data4"), firedEvents["RuntimeTransactionSet"]["data4"]); + Assert.Equal(TestString(1035, "data5"), firedEvents["RuntimeTransactionSet"]["data5"]); + Assert.Equal(TestString(1035, "data6"), firedEvents["RuntimeTransactionSet"]["data6"]); + Assert.Equal(TestString(1035, "AppDomain"), firedEvents["RuntimeTransactionSet"]["AppDomain"]); + + // 1036 RuntimeTransactionCompletionRequested (FourStringsTemplateA) + Assert.True(firedEvents.ContainsKey("RuntimeTransactionCompletionRequested"), "Event 1036 RuntimeTransactionCompletionRequested did not fire"); + Assert.Equal(TestString(1036, "data1"), firedEvents["RuntimeTransactionCompletionRequested"]["data1"]); + Assert.Equal(TestString(1036, "data2"), firedEvents["RuntimeTransactionCompletionRequested"]["data2"]); + Assert.Equal(TestString(1036, "data3"), firedEvents["RuntimeTransactionCompletionRequested"]["data3"]); + Assert.Equal(TestString(1036, "AppDomain"), firedEvents["RuntimeTransactionCompletionRequested"]["AppDomain"]); + + // 1037 RuntimeTransactionComplete (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("RuntimeTransactionComplete"), "Event 1037 RuntimeTransactionComplete did not fire"); + Assert.Equal(TestString(1037, "data1"), firedEvents["RuntimeTransactionComplete"]["data1"]); + Assert.Equal(TestString(1037, "AppDomain"), firedEvents["RuntimeTransactionComplete"]["AppDomain"]); + + // 1038 EnterNoPersistBlock (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("EnterNoPersistBlock"), "Event 1038 EnterNoPersistBlock did not fire"); + Assert.Equal(TestString(1038, "AppDomain"), firedEvents["EnterNoPersistBlock"]["AppDomain"]); + + // 1039 ExitNoPersistBlock (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("ExitNoPersistBlock"), "Event 1039 ExitNoPersistBlock did not fire"); + Assert.Equal(TestString(1039, "AppDomain"), firedEvents["ExitNoPersistBlock"]["AppDomain"]); + + // 1040 InArgumentBound (SixStringsTemplateA) + Assert.True(firedEvents.ContainsKey("InArgumentBound"), "Event 1040 InArgumentBound did not fire"); + Assert.Equal(TestString(1040, "data1"), firedEvents["InArgumentBound"]["data1"]); + Assert.Equal(TestString(1040, "data2"), firedEvents["InArgumentBound"]["data2"]); + Assert.Equal(TestString(1040, "data3"), firedEvents["InArgumentBound"]["data3"]); + Assert.Equal(TestString(1040, "data4"), firedEvents["InArgumentBound"]["data4"]); + Assert.Equal(TestString(1040, "data5"), firedEvents["InArgumentBound"]["data5"]); + Assert.Equal(TestString(1040, "AppDomain"), firedEvents["InArgumentBound"]["AppDomain"]); + + // 1041 WorkflowApplicationPersistableIdle (ThreeStringsTemplateA) + Assert.True(firedEvents.ContainsKey("WorkflowApplicationPersistableIdle"), "Event 1041 WorkflowApplicationPersistableIdle did not fire"); + Assert.Equal(TestString(1041, "data1"), firedEvents["WorkflowApplicationPersistableIdle"]["data1"]); + Assert.Equal(TestString(1041, "data2"), firedEvents["WorkflowApplicationPersistableIdle"]["data2"]); + Assert.Equal(TestString(1041, "AppDomain"), firedEvents["WorkflowApplicationPersistableIdle"]["AppDomain"]); + + // 1101 WorkflowActivityStart (Multidata17TemplateA) + Assert.True(firedEvents.ContainsKey("WorkflowActivityStart"), "Event 1101 WorkflowActivityStart did not fire"); + Assert.Equal(TestGuid(1101, 0), firedEvents["WorkflowActivityStart"]["Id"]); + Assert.Equal(TestString(1101, "AppDomain"), firedEvents["WorkflowActivityStart"]["AppDomain"]); + + // 1102 WorkflowActivityStop (Multidata17TemplateA) + Assert.True(firedEvents.ContainsKey("WorkflowActivityStop"), "Event 1102 WorkflowActivityStop did not fire"); + Assert.Equal(TestGuid(1102, 0), firedEvents["WorkflowActivityStop"]["Id"]); + Assert.Equal(TestString(1102, "AppDomain"), firedEvents["WorkflowActivityStop"]["AppDomain"]); + + // 1103 WorkflowActivitySuspend (Multidata17TemplateA) + Assert.True(firedEvents.ContainsKey("WorkflowActivitySuspend"), "Event 1103 WorkflowActivitySuspend did not fire"); + Assert.Equal(TestGuid(1103, 0), firedEvents["WorkflowActivitySuspend"]["Id"]); + Assert.Equal(TestString(1103, "AppDomain"), firedEvents["WorkflowActivitySuspend"]["AppDomain"]); + + // 1104 WorkflowActivityResume (Multidata17TemplateA) + Assert.True(firedEvents.ContainsKey("WorkflowActivityResume"), "Event 1104 WorkflowActivityResume did not fire"); + Assert.Equal(TestGuid(1104, 0), firedEvents["WorkflowActivityResume"]["Id"]); + Assert.Equal(TestString(1104, "AppDomain"), firedEvents["WorkflowActivityResume"]["AppDomain"]); + + // 1124 InvokeMethodIsStatic (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("InvokeMethodIsStatic"), "Event 1124 InvokeMethodIsStatic did not fire"); + Assert.Equal(TestString(1124, "data1"), firedEvents["InvokeMethodIsStatic"]["data1"]); + Assert.Equal(TestString(1124, "AppDomain"), firedEvents["InvokeMethodIsStatic"]["AppDomain"]); + + // 1125 InvokeMethodIsNotStatic (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("InvokeMethodIsNotStatic"), "Event 1125 InvokeMethodIsNotStatic did not fire"); + Assert.Equal(TestString(1125, "data1"), firedEvents["InvokeMethodIsNotStatic"]["data1"]); + Assert.Equal(TestString(1125, "AppDomain"), firedEvents["InvokeMethodIsNotStatic"]["AppDomain"]); + + // 1126 InvokedMethodThrewException (ThreeStringsTemplateA) + Assert.True(firedEvents.ContainsKey("InvokedMethodThrewException"), "Event 1126 InvokedMethodThrewException did not fire"); + Assert.Equal(TestString(1126, "data1"), firedEvents["InvokedMethodThrewException"]["data1"]); + Assert.Equal(TestString(1126, "data2"), firedEvents["InvokedMethodThrewException"]["data2"]); + Assert.Equal(TestString(1126, "AppDomain"), firedEvents["InvokedMethodThrewException"]["AppDomain"]); + + // 1131 InvokeMethodUseAsyncPattern (FourStringsTemplateA) + Assert.True(firedEvents.ContainsKey("InvokeMethodUseAsyncPattern"), "Event 1131 InvokeMethodUseAsyncPattern did not fire"); + Assert.Equal(TestString(1131, "data1"), firedEvents["InvokeMethodUseAsyncPattern"]["data1"]); + Assert.Equal(TestString(1131, "data2"), firedEvents["InvokeMethodUseAsyncPattern"]["data2"]); + Assert.Equal(TestString(1131, "data3"), firedEvents["InvokeMethodUseAsyncPattern"]["data3"]); + Assert.Equal(TestString(1131, "AppDomain"), firedEvents["InvokeMethodUseAsyncPattern"]["AppDomain"]); + + // 1132 InvokeMethodDoesNotUseAsyncPattern (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("InvokeMethodDoesNotUseAsyncPattern"), "Event 1132 InvokeMethodDoesNotUseAsyncPattern did not fire"); + Assert.Equal(TestString(1132, "data1"), firedEvents["InvokeMethodDoesNotUseAsyncPattern"]["data1"]); + Assert.Equal(TestString(1132, "AppDomain"), firedEvents["InvokeMethodDoesNotUseAsyncPattern"]["AppDomain"]); + + // 1140 FlowchartStart (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("FlowchartStart"), "Event 1140 FlowchartStart did not fire"); + Assert.Equal(TestString(1140, "data1"), firedEvents["FlowchartStart"]["data1"]); + Assert.Equal(TestString(1140, "AppDomain"), firedEvents["FlowchartStart"]["AppDomain"]); + + // 1141 FlowchartEmpty (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("FlowchartEmpty"), "Event 1141 FlowchartEmpty did not fire"); + Assert.Equal(TestString(1141, "data1"), firedEvents["FlowchartEmpty"]["data1"]); + Assert.Equal(TestString(1141, "AppDomain"), firedEvents["FlowchartEmpty"]["AppDomain"]); + + // 1143 FlowchartNextNull (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("FlowchartNextNull"), "Event 1143 FlowchartNextNull did not fire"); + Assert.Equal(TestString(1143, "data1"), firedEvents["FlowchartNextNull"]["data1"]); + Assert.Equal(TestString(1143, "AppDomain"), firedEvents["FlowchartNextNull"]["AppDomain"]); + + // 1146 FlowchartSwitchCase (ThreeStringsTemplateA) + Assert.True(firedEvents.ContainsKey("FlowchartSwitchCase"), "Event 1146 FlowchartSwitchCase did not fire"); + Assert.Equal(TestString(1146, "data1"), firedEvents["FlowchartSwitchCase"]["data1"]); + Assert.Equal(TestString(1146, "data2"), firedEvents["FlowchartSwitchCase"]["data2"]); + Assert.Equal(TestString(1146, "AppDomain"), firedEvents["FlowchartSwitchCase"]["AppDomain"]); + + // 1147 FlowchartSwitchDefault (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("FlowchartSwitchDefault"), "Event 1147 FlowchartSwitchDefault did not fire"); + Assert.Equal(TestString(1147, "data1"), firedEvents["FlowchartSwitchDefault"]["data1"]); + Assert.Equal(TestString(1147, "AppDomain"), firedEvents["FlowchartSwitchDefault"]["AppDomain"]); + } + + #endregion + } +} diff --git a/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk05.cs b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk05.cs new file mode 100644 index 000000000..32355d051 --- /dev/null +++ b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk05.cs @@ -0,0 +1,685 @@ +using Microsoft.Diagnostics.Tracing; +using Microsoft.Diagnostics.Tracing.Parsers; +using Microsoft.Diagnostics.Tracing.Parsers.ApplicationServer; +using System; +using System.Collections.Generic; +using System.IO; +using Xunit; + +namespace TraceEventTests.Parsers +{ + public partial class ApplicationServerTraceEventParserTests + { + // Template field definitions for Chunk 05 + + private static readonly TemplateField[] OneStringsTemplateAFields = new TemplateField[] + { + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] TwoStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] ThreeStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata56TemplateAFields = new TemplateField[] + { + new TemplateField("msg", FieldType.UnicodeString), + new TemplateField("key", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata57TemplateAFields = new TemplateField[] + { + new TemplateField("msg", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata58TemplateAFields = new TemplateField[] + { + new TemplateField("cur", FieldType.Int32), + new TemplateField("max", FieldType.Int32), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata59TemplateAFields = new TemplateField[] + { + new TemplateField("itemTypeName", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + /// + /// Writes metadata entries for all Chunk 05 events into the synthetic trace. + /// + private void WriteMetadata_Chunk05(EventPipeWriterV5 writer, ref int metadataId) + { + // FlowchartSwitchCaseNotFound (TwoStringsTemplateA, opcode 63) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "FlowchartSwitchCaseNotFound", 1148) { OpCode = 63 }); + // CompensationState (ThreeStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "CompensationState", 1150)); + // SwitchCaseNotFound (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SwitchCaseNotFound", 1223)); + // ChannelInitializationTimeout (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ChannelInitializationTimeout", 1400)); + // CloseTimeout (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "CloseTimeout", 1401)); + // IdleTimeout (Multidata56TemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "IdleTimeout", 1402)); + // LeaseTimeout (Multidata56TemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "LeaseTimeout", 1403)); + // OpenTimeout (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "OpenTimeout", 1405)); + // ReceiveTimeout (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ReceiveTimeout", 1406)); + // SendTimeout (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SendTimeout", 1407)); + // InactivityTimeout (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "InactivityTimeout", 1409)); + // MaxReceivedMessageSizeExceeded (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "MaxReceivedMessageSizeExceeded", 1416)); + // MaxSentMessageSizeExceeded (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "MaxSentMessageSizeExceeded", 1417)); + // MaxOutboundConnectionsPerEndpointExceeded (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "MaxOutboundConnectionsPerEndpointExceeded", 1418)); + // MaxPendingConnectionsExceeded (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "MaxPendingConnectionsExceeded", 1419)); + // ReaderQuotaExceeded (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ReaderQuotaExceeded", 1420)); + // NegotiateTokenAuthenticatorStateCacheExceeded (Multidata57TemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "NegotiateTokenAuthenticatorStateCacheExceeded", 1422)); + // NegotiateTokenAuthenticatorStateCacheRatio (Multidata58TemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "NegotiateTokenAuthenticatorStateCacheRatio", 1423)); + // SecuritySessionRatio (Multidata58TemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SecuritySessionRatio", 1424)); + // PendingConnectionsRatio (Multidata58TemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "PendingConnectionsRatio", 1430)); + // ConcurrentCallsRatio (Multidata58TemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ConcurrentCallsRatio", 1431)); + // ConcurrentSessionsRatio (Multidata58TemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ConcurrentSessionsRatio", 1432)); + // OutboundConnectionsPerEndpointRatio (Multidata58TemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "OutboundConnectionsPerEndpointRatio", 1433)); + // PendingMessagesPerChannelRatio (Multidata58TemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "PendingMessagesPerChannelRatio", 1436)); + // ConcurrentInstancesRatio (Multidata58TemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ConcurrentInstancesRatio", 1438)); + // PendingAcceptsAtZero (OneStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "PendingAcceptsAtZero", 1439)); + // MaxSessionSizeReached (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "MaxSessionSizeReached", 1441)); + // ReceiveRetryCountReached (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ReceiveRetryCountReached", 1442)); + // MaxRetryCyclesExceededMsmq (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "MaxRetryCyclesExceededMsmq", 1443)); + // ReadPoolMiss (Multidata59TemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ReadPoolMiss", 1445)); + // WritePoolMiss (Multidata59TemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WritePoolMiss", 1446)); + // WfMessageReceived (OneStringsTemplateA, opcode 10) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WfMessageReceived", 1449) { OpCode = 10 }); + // WfMessageSent (OneStringsTemplateA, opcode 9) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WfMessageSent", 1450) { OpCode = 9 }); + // MaxRetryCyclesExceeded (TwoStringsTemplateA, opcode 0) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "MaxRetryCyclesExceeded", 1451)); + // ExecuteWorkItemStart (OneStringsTemplateA, opcode 1) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ExecuteWorkItemStart", 2021) { OpCode = 1 }); + // ExecuteWorkItemStop (OneStringsTemplateA, opcode 2) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ExecuteWorkItemStop", 2022) { OpCode = 2 }); + // SendMessageChannelCacheMiss (OneStringsTemplateA, opcode 76) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SendMessageChannelCacheMiss", 2023) { OpCode = 76 }); + } + + /// + /// Writes event payloads for all Chunk 05 events into the synthetic trace. + /// + private void WriteEvents_Chunk05(EventPipeWriterV5 writer, ref int metadataId, ref int sequenceNumber) + { + int __metadataId = metadataId; + int __sequenceNumber = sequenceNumber; + int baseMetadataId = __metadataId; + + // Each event uses the __metadataId assigned during WriteMetadata_Chunk05. + // The order here must match the metadata order exactly. + int id = baseMetadataId; + + writer.WriteEventBlock(w => + { + // FlowchartSwitchCaseNotFound (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1148, TwoStringsTemplateAFields)); + // CompensationState (ThreeStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1150, ThreeStringsTemplateAFields)); + // SwitchCaseNotFound (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1223, TwoStringsTemplateAFields)); + // ChannelInitializationTimeout (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1400, TwoStringsTemplateAFields)); + // CloseTimeout (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1401, TwoStringsTemplateAFields)); + // IdleTimeout (Multidata56TemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1402, Multidata56TemplateAFields)); + // LeaseTimeout (Multidata56TemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1403, Multidata56TemplateAFields)); + // OpenTimeout (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1405, TwoStringsTemplateAFields)); + // ReceiveTimeout (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1406, TwoStringsTemplateAFields)); + // SendTimeout (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1407, TwoStringsTemplateAFields)); + // InactivityTimeout (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1409, TwoStringsTemplateAFields)); + // MaxReceivedMessageSizeExceeded (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1416, TwoStringsTemplateAFields)); + // MaxSentMessageSizeExceeded (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1417, TwoStringsTemplateAFields)); + // MaxOutboundConnectionsPerEndpointExceeded (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1418, TwoStringsTemplateAFields)); + // MaxPendingConnectionsExceeded (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1419, TwoStringsTemplateAFields)); + // ReaderQuotaExceeded (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1420, TwoStringsTemplateAFields)); + // NegotiateTokenAuthenticatorStateCacheExceeded (Multidata57TemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1422, Multidata57TemplateAFields)); + // NegotiateTokenAuthenticatorStateCacheRatio (Multidata58TemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1423, Multidata58TemplateAFields)); + // SecuritySessionRatio (Multidata58TemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1424, Multidata58TemplateAFields)); + // PendingConnectionsRatio (Multidata58TemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1430, Multidata58TemplateAFields)); + // ConcurrentCallsRatio (Multidata58TemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1431, Multidata58TemplateAFields)); + // ConcurrentSessionsRatio (Multidata58TemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1432, Multidata58TemplateAFields)); + // OutboundConnectionsPerEndpointRatio (Multidata58TemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1433, Multidata58TemplateAFields)); + // PendingMessagesPerChannelRatio (Multidata58TemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1436, Multidata58TemplateAFields)); + // ConcurrentInstancesRatio (Multidata58TemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1438, Multidata58TemplateAFields)); + // PendingAcceptsAtZero (OneStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1439, OneStringsTemplateAFields)); + // MaxSessionSizeReached (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1441, TwoStringsTemplateAFields)); + // ReceiveRetryCountReached (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1442, TwoStringsTemplateAFields)); + // MaxRetryCyclesExceededMsmq (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1443, TwoStringsTemplateAFields)); + // ReadPoolMiss (Multidata59TemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1445, Multidata59TemplateAFields)); + // WritePoolMiss (Multidata59TemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1446, Multidata59TemplateAFields)); + // WfMessageReceived (OneStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1449, OneStringsTemplateAFields)); + // WfMessageSent (OneStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1450, OneStringsTemplateAFields)); + // MaxRetryCyclesExceeded (TwoStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(1451, TwoStringsTemplateAFields)); + // ExecuteWorkItemStart (OneStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(2021, OneStringsTemplateAFields)); + // ExecuteWorkItemStop (OneStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(2022, OneStringsTemplateAFields)); + // SendMessageChannelCacheMiss (OneStringsTemplateA) + w.WriteEventBlobV4Or5(id++, 999, __sequenceNumber++, BuildPayload(2023, OneStringsTemplateAFields)); + }); + + __metadataId = id; + metadataId = __metadataId; + sequenceNumber = __sequenceNumber; + } + + /// + /// Subscribes to all Chunk 05 events, recording payload field values for validation. + /// + private void Subscribe_Chunk05(ApplicationServerTraceEventParser parser, Dictionary> firedEvents) + { + // FlowchartSwitchCaseNotFound (TwoStringsTemplateA) + parser.FlowchartSwitchCaseNotFound += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["FlowchartSwitchCaseNotFound"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // CompensationState (ThreeStringsTemplateA) + parser.CompensationState += delegate (ThreeStringsTemplateATraceData data) + { + firedEvents["CompensationState"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // SwitchCaseNotFound (TwoStringsTemplateA) + parser.SwitchCaseNotFound += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["SwitchCaseNotFound"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // ChannelInitializationTimeout (TwoStringsTemplateA) + parser.ChannelInitializationTimeout += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["ChannelInitializationTimeout"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // CloseTimeout (TwoStringsTemplateA) + parser.CloseTimeout += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["CloseTimeout"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // IdleTimeout (Multidata56TemplateA) + parser.IdleTimeout += delegate (Multidata56TemplateATraceData data) + { + firedEvents["IdleTimeout"] = new Dictionary + { + { "msg", data.msg }, + { "key", data.key }, + { "AppDomain", data.AppDomain }, + }; + }; + + // LeaseTimeout (Multidata56TemplateA) + parser.LeaseTimeout += delegate (Multidata56TemplateATraceData data) + { + firedEvents["LeaseTimeout"] = new Dictionary + { + { "msg", data.msg }, + { "key", data.key }, + { "AppDomain", data.AppDomain }, + }; + }; + + // OpenTimeout (TwoStringsTemplateA) + parser.OpenTimeout += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["OpenTimeout"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // ReceiveTimeout (TwoStringsTemplateA) + parser.ReceiveTimeout += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["ReceiveTimeout"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // SendTimeout (TwoStringsTemplateA) + parser.SendTimeout += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["SendTimeout"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // InactivityTimeout (TwoStringsTemplateA) + parser.InactivityTimeout += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["InactivityTimeout"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // MaxReceivedMessageSizeExceeded (TwoStringsTemplateA) + parser.MaxReceivedMessageSizeExceeded += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["MaxReceivedMessageSizeExceeded"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // MaxSentMessageSizeExceeded (TwoStringsTemplateA) + parser.MaxSentMessageSizeExceeded += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["MaxSentMessageSizeExceeded"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // MaxOutboundConnectionsPerEndpointExceeded (TwoStringsTemplateA) + parser.MaxOutboundConnectionsPerEndpointExceeded += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["MaxOutboundConnectionsPerEndpointExceeded"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // MaxPendingConnectionsExceeded (TwoStringsTemplateA) + parser.MaxPendingConnectionsExceeded += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["MaxPendingConnectionsExceeded"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // ReaderQuotaExceeded (TwoStringsTemplateA) + parser.ReaderQuotaExceeded += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["ReaderQuotaExceeded"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // NegotiateTokenAuthenticatorStateCacheExceeded (Multidata57TemplateA) + parser.NegotiateTokenAuthenticatorStateCacheExceeded += delegate (Multidata57TemplateATraceData data) + { + firedEvents["NegotiateTokenAuthenticatorStateCacheExceeded"] = new Dictionary + { + { "msg", data.msg }, + { "AppDomain", data.AppDomain }, + }; + }; + + // NegotiateTokenAuthenticatorStateCacheRatio (Multidata58TemplateA) + parser.NegotiateTokenAuthenticatorStateCacheRatio += delegate (Multidata58TemplateATraceData data) + { + firedEvents["NegotiateTokenAuthenticatorStateCacheRatio"] = new Dictionary + { + { "cur", data.cur }, + { "max", data.max }, + { "AppDomain", data.AppDomain }, + }; + }; + + // SecuritySessionRatio (Multidata58TemplateA) + parser.SecuritySessionRatio += delegate (Multidata58TemplateATraceData data) + { + firedEvents["SecuritySessionRatio"] = new Dictionary + { + { "cur", data.cur }, + { "max", data.max }, + { "AppDomain", data.AppDomain }, + }; + }; + + // PendingConnectionsRatio (Multidata58TemplateA) + parser.PendingConnectionsRatio += delegate (Multidata58TemplateATraceData data) + { + firedEvents["PendingConnectionsRatio"] = new Dictionary + { + { "cur", data.cur }, + { "max", data.max }, + { "AppDomain", data.AppDomain }, + }; + }; + + // ConcurrentCallsRatio (Multidata58TemplateA) + parser.ConcurrentCallsRatio += delegate (Multidata58TemplateATraceData data) + { + firedEvents["ConcurrentCallsRatio"] = new Dictionary + { + { "cur", data.cur }, + { "max", data.max }, + { "AppDomain", data.AppDomain }, + }; + }; + + // ConcurrentSessionsRatio (Multidata58TemplateA) + parser.ConcurrentSessionsRatio += delegate (Multidata58TemplateATraceData data) + { + firedEvents["ConcurrentSessionsRatio"] = new Dictionary + { + { "cur", data.cur }, + { "max", data.max }, + { "AppDomain", data.AppDomain }, + }; + }; + + // OutboundConnectionsPerEndpointRatio (Multidata58TemplateA) + parser.OutboundConnectionsPerEndpointRatio += delegate (Multidata58TemplateATraceData data) + { + firedEvents["OutboundConnectionsPerEndpointRatio"] = new Dictionary + { + { "cur", data.cur }, + { "max", data.max }, + { "AppDomain", data.AppDomain }, + }; + }; + + // PendingMessagesPerChannelRatio (Multidata58TemplateA) + parser.PendingMessagesPerChannelRatio += delegate (Multidata58TemplateATraceData data) + { + firedEvents["PendingMessagesPerChannelRatio"] = new Dictionary + { + { "cur", data.cur }, + { "max", data.max }, + { "AppDomain", data.AppDomain }, + }; + }; + + // ConcurrentInstancesRatio (Multidata58TemplateA) + parser.ConcurrentInstancesRatio += delegate (Multidata58TemplateATraceData data) + { + firedEvents["ConcurrentInstancesRatio"] = new Dictionary + { + { "cur", data.cur }, + { "max", data.max }, + { "AppDomain", data.AppDomain }, + }; + }; + + // PendingAcceptsAtZero (OneStringsTemplateA) + parser.PendingAcceptsAtZero += delegate (OneStringsTemplateATraceData data) + { + firedEvents["PendingAcceptsAtZero"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + // MaxSessionSizeReached (TwoStringsTemplateA) + parser.MaxSessionSizeReached += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["MaxSessionSizeReached"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // ReceiveRetryCountReached (TwoStringsTemplateA) + parser.ReceiveRetryCountReached += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["ReceiveRetryCountReached"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // MaxRetryCyclesExceededMsmq (TwoStringsTemplateA) + parser.MaxRetryCyclesExceededMsmq += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["MaxRetryCyclesExceededMsmq"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // ReadPoolMiss (Multidata59TemplateA) + parser.ReadPoolMiss += delegate (Multidata59TemplateATraceData data) + { + firedEvents["ReadPoolMiss"] = new Dictionary + { + { "itemTypeName", data.itemTypeName }, + { "AppDomain", data.AppDomain }, + }; + }; + + // WritePoolMiss (Multidata59TemplateA) + parser.WritePoolMiss += delegate (Multidata59TemplateATraceData data) + { + firedEvents["WritePoolMiss"] = new Dictionary + { + { "itemTypeName", data.itemTypeName }, + { "AppDomain", data.AppDomain }, + }; + }; + + // WfMessageReceived (OneStringsTemplateA) + parser.WfMessageReceived += delegate (OneStringsTemplateATraceData data) + { + firedEvents["WfMessageReceived"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + // WfMessageSent (OneStringsTemplateA) + parser.WfMessageSent += delegate (OneStringsTemplateATraceData data) + { + firedEvents["WfMessageSent"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + // MaxRetryCyclesExceeded (TwoStringsTemplateA) + parser.MaxRetryCyclesExceeded += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["MaxRetryCyclesExceeded"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // ExecuteWorkItemStart (OneStringsTemplateA) + parser.ExecuteWorkItemStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["ExecuteWorkItemStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + // ExecuteWorkItemStop (OneStringsTemplateA) + parser.ExecuteWorkItemStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["ExecuteWorkItemStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + // SendMessageChannelCacheMiss (OneStringsTemplateA) + parser.SendMessageChannelCacheMiss += delegate (OneStringsTemplateATraceData data) + { + firedEvents["SendMessageChannelCacheMiss"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + } + + /// + /// Validates that all Chunk 05 events fired with correct payload values. + /// + private void Validate_Chunk05(Dictionary> firedEvents) + { + // Helper: validate TwoStringsTemplateA events + (int id, string name)[] twoStringsEvents = new[] { (1148, "FlowchartSwitchCaseNotFound"), (1223, "SwitchCaseNotFound"), (1400, "ChannelInitializationTimeout"), (1401, "CloseTimeout"), (1405, "OpenTimeout"), (1406, "ReceiveTimeout"), (1407, "SendTimeout"), (1409, "InactivityTimeout"), (1416, "MaxReceivedMessageSizeExceeded"), (1417, "MaxSentMessageSizeExceeded"), (1418, "MaxOutboundConnectionsPerEndpointExceeded"), (1419, "MaxPendingConnectionsExceeded"), (1420, "ReaderQuotaExceeded"), (1441, "MaxSessionSizeReached"), (1442, "ReceiveRetryCountReached"), (1443, "MaxRetryCyclesExceededMsmq"), (1451, "MaxRetryCyclesExceeded") }; + foreach (var (eventId, eventName) in twoStringsEvents) + { + Assert.True(firedEvents.ContainsKey(eventName), $"Event {eventName} did not fire."); + var fields = firedEvents[eventName]; + Assert.Equal(TestString(eventId, "data1"), (string)fields["data1"]); + Assert.Equal(TestString(eventId, "AppDomain"), (string)fields["AppDomain"]); + } + + // CompensationState (ThreeStringsTemplateA) + Assert.True(firedEvents.ContainsKey("CompensationState"), "Event CompensationState did not fire."); + Assert.Equal(TestString(1150, "data1"), (string)firedEvents["CompensationState"]["data1"]); + Assert.Equal(TestString(1150, "data2"), (string)firedEvents["CompensationState"]["data2"]); + Assert.Equal(TestString(1150, "AppDomain"), (string)firedEvents["CompensationState"]["AppDomain"]); + + // Multidata56TemplateA events: 1402, 1403 + (int id, string name)[] multidata56Events = new[] { (1402, "IdleTimeout"), (1403, "LeaseTimeout") }; + foreach (var (eventId, eventName) in multidata56Events) + { + Assert.True(firedEvents.ContainsKey(eventName), $"Event {eventName} did not fire."); + var fields = firedEvents[eventName]; + Assert.Equal(TestString(eventId, "msg"), (string)fields["msg"]); + Assert.Equal(TestString(eventId, "key"), (string)fields["key"]); + Assert.Equal(TestString(eventId, "AppDomain"), (string)fields["AppDomain"]); + } + + // NegotiateTokenAuthenticatorStateCacheExceeded (Multidata57TemplateA) + Assert.True(firedEvents.ContainsKey("NegotiateTokenAuthenticatorStateCacheExceeded"), "Event NegotiateTokenAuthenticatorStateCacheExceeded did not fire."); + Assert.Equal(TestString(1422, "msg"), (string)firedEvents["NegotiateTokenAuthenticatorStateCacheExceeded"]["msg"]); + Assert.Equal(TestString(1422, "AppDomain"), (string)firedEvents["NegotiateTokenAuthenticatorStateCacheExceeded"]["AppDomain"]); + + // Multidata58TemplateA events: 1423, 1424, 1430, 1431, 1432, 1433, 1436, 1438 + (int id, string name)[] multidata58Events = new[] { (1423, "NegotiateTokenAuthenticatorStateCacheRatio"), (1424, "SecuritySessionRatio"), (1430, "PendingConnectionsRatio"), (1431, "ConcurrentCallsRatio"), (1432, "ConcurrentSessionsRatio"), (1433, "OutboundConnectionsPerEndpointRatio"), (1436, "PendingMessagesPerChannelRatio"), (1438, "ConcurrentInstancesRatio") }; + foreach (var (eventId, eventName) in multidata58Events) + { + Assert.True(firedEvents.ContainsKey(eventName), $"Event {eventName} did not fire."); + var fields = firedEvents[eventName]; + Assert.Equal(TestInt32(eventId, 0), (int)fields["cur"]); + Assert.Equal(TestInt32(eventId, 1), (int)fields["max"]); + Assert.Equal(TestString(eventId, "AppDomain"), (string)fields["AppDomain"]); + } + + // Multidata59TemplateA events: 1445, 1446 + (int id, string name)[] multidata59Events = new[] { (1445, "ReadPoolMiss"), (1446, "WritePoolMiss") }; + foreach (var (eventId, eventName) in multidata59Events) + { + Assert.True(firedEvents.ContainsKey(eventName), $"Event {eventName} did not fire."); + var fields = firedEvents[eventName]; + Assert.Equal(TestString(eventId, "itemTypeName"), (string)fields["itemTypeName"]); + Assert.Equal(TestString(eventId, "AppDomain"), (string)fields["AppDomain"]); + } + + // OneStringsTemplateA events: 1439, 1449, 1450, 2021, 2022, 2023 + (int id, string name)[] oneStringEvents = new[] { (1439, "PendingAcceptsAtZero"), (1449, "WfMessageReceived"), (1450, "WfMessageSent"), (2021, "ExecuteWorkItemStart"), (2022, "ExecuteWorkItemStop"), (2023, "SendMessageChannelCacheMiss") }; + foreach (var (eventId, eventName) in oneStringEvents) + { + Assert.True(firedEvents.ContainsKey(eventName), $"Event {eventName} did not fire."); + var fields = firedEvents[eventName]; + Assert.Equal(TestString(eventId, "AppDomain"), (string)fields["AppDomain"]); + } + } + } +} diff --git a/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk06.cs b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk06.cs new file mode 100644 index 000000000..ebc22b3a6 --- /dev/null +++ b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk06.cs @@ -0,0 +1,972 @@ +using Microsoft.Diagnostics.Tracing; +using Microsoft.Diagnostics.Tracing.Parsers; +using Microsoft.Diagnostics.Tracing.Parsers.ApplicationServer; +using System; +using System.Collections.Generic; +using Xunit; + +namespace TraceEventTests.Parsers +{ + public partial class ApplicationServerTraceEventParserTests + { + // ===================================================================== + // Template field definitions for Chunk 06 + // ===================================================================== + + private static readonly TemplateField[] Multidata19TemplateAFields = new TemplateField[] + { + new TemplateField("id", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata20TemplateAFields = new TemplateField[] + { + new TemplateField("expr", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata21TemplateAFields = new TemplateField[] + { + new TemplateField("activityName", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata33TemplateAFields = new TemplateField[] + { + new TemplateField("TypeName", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata34TemplateAFields = new TemplateField[] + { + new TemplateField("TypeName", FieldType.UnicodeString), + new TemplateField("ExceptionToString", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata35TemplateSAFields = new TemplateField[] + { + new TemplateField("Count", FieldType.Int32), + new TemplateField("MaxNum", FieldType.Int32), + new TemplateField("EventSource", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata36TemplateSAFields = new TemplateField[] + { + new TemplateField("Count", FieldType.Int32), + new TemplateField("EventSource", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata37TemplateSAFields = new TemplateField[] + { + new TemplateField("TypeName", FieldType.UnicodeString), + new TemplateField("Uri", FieldType.UnicodeString), + new TemplateField("EventSource", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata38TemplateHAFields = new TemplateField[] + { + new TemplateField("OperationName", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata39TemplateSAFields = new TemplateField[] + { + new TemplateField("Size", FieldType.Int32), + new TemplateField("EventSource", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata40TemplateAFields = new TemplateField[] + { + new TemplateField("RemoteAddress", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata41TemplateAFields = new TemplateField[] + { + new TemplateField("ListenerHashCode", FieldType.Int32), + new TemplateField("SocketHashCode", FieldType.Int32), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata42TemplateAFields = new TemplateField[] + { + new TemplateField("PoolKey", FieldType.UnicodeString), + new TemplateField("busy", FieldType.Int32), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Chunk06_OneStringsTemplateAFields = new TemplateField[] + { + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Chunk06_ThreeStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Chunk06_TwoStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] TwoStringsTemplateSAFields = new TemplateField[] + { + new TemplateField("EventSource", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + // ===================================================================== + // WriteMetadata_Chunk06 — writes metadata entries for each unique + // (eventId, eventName, template) tuple in this chunk. + // ===================================================================== + private void WriteMetadata_Chunk06(EventPipeWriterV5 writer, ref int metadataId) + { + // EVENT:2024|InternalCacheMetadataStart|Multidata19TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "InternalCacheMetadataStart", 2024, + new MetadataParameter("id", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:2025|InternalCacheMetadataStop|Multidata19TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "InternalCacheMetadataStop", 2025, + new MetadataParameter("id", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:2026|CompileVbExpressionStart|Multidata20TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "CompileVbExpressionStart", 2026, + new MetadataParameter("expr", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:2027|CacheRootMetadataStart|Multidata21TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "CacheRootMetadataStart", 2027, + new MetadataParameter("activityName", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:2028|CacheRootMetadataStop|Multidata21TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "CacheRootMetadataStop", 2028, + new MetadataParameter("activityName", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:2029|CompileVbExpressionStop|OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "CompileVbExpressionStop", 2029, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:2576|TryCatchExceptionFromTry|ThreeStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TryCatchExceptionFromTry", 2576, + new MetadataParameter("data1", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("data2", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:2577|TryCatchExceptionDuringCancelation|TwoStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TryCatchExceptionDuringCancelation", 2577, + new MetadataParameter("data1", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:2578|TryCatchExceptionFromCatchOrFinally|TwoStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TryCatchExceptionFromCatchOrFinally", 2578, + new MetadataParameter("data1", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3300|ReceiveContextCompleteFailed|Multidata33TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ReceiveContextCompleteFailed", 3300, + new MetadataParameter("TypeName", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3301|ReceiveContextAbandonFailed|Multidata33TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ReceiveContextAbandonFailed", 3301, + new MetadataParameter("TypeName", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3302|ReceiveContextFaulted|TwoStringsTemplateSA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ReceiveContextFaulted", 3302, + new MetadataParameter("EventSource", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3303|ReceiveContextAbandonWithException|Multidata34TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ReceiveContextAbandonWithException", 3303, + new MetadataParameter("TypeName", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("ExceptionToString", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3305|ClientBaseCachedChannelFactoryCount|Multidata35TemplateSA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ClientBaseCachedChannelFactoryCount", 3305, + new MetadataParameter("Count", MetadataTypeCode.Int32), + new MetadataParameter("MaxNum", MetadataTypeCode.Int32), + new MetadataParameter("EventSource", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3306|ClientBaseChannelFactoryAgedOutofCache|Multidata36TemplateSA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ClientBaseChannelFactoryAgedOutofCache", 3306, + new MetadataParameter("Count", MetadataTypeCode.Int32), + new MetadataParameter("EventSource", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3307|ClientBaseChannelFactoryCacheHit|TwoStringsTemplateSA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ClientBaseChannelFactoryCacheHit", 3307, + new MetadataParameter("EventSource", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3308|ClientBaseUsingLocalChannelFactory|TwoStringsTemplateSA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ClientBaseUsingLocalChannelFactory", 3308, + new MetadataParameter("EventSource", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3309|QueryCompositionExecuted|Multidata37TemplateSA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "QueryCompositionExecuted", 3309, + new MetadataParameter("TypeName", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("Uri", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("EventSource", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3310|DispatchFailed|Multidata38TemplateHA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "DispatchFailed", 3310, + new MetadataParameter("OperationName", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("HostReference", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3311|DispatchSuccessful|Multidata38TemplateHA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "DispatchSuccessful", 3311, + new MetadataParameter("OperationName", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("HostReference", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3312|MessageReadByEncoder|Multidata39TemplateSA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "MessageReadByEncoder", 3312, + new MetadataParameter("Size", MetadataTypeCode.Int32), + new MetadataParameter("EventSource", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3313|MessageWrittenByEncoder|Multidata39TemplateSA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "MessageWrittenByEncoder", 3313, + new MetadataParameter("Size", MetadataTypeCode.Int32), + new MetadataParameter("EventSource", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3314|SessionIdleTimeout|Multidata40TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SessionIdleTimeout", 3314, + new MetadataParameter("RemoteAddress", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3319|SocketAcceptEnqueued|OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SocketAcceptEnqueued", 3319, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3320|SocketAccepted|Multidata41TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SocketAccepted", 3320, + new MetadataParameter("ListenerHashCode", MetadataTypeCode.Int32), + new MetadataParameter("SocketHashCode", MetadataTypeCode.Int32), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3321|ConnectionPoolMiss|Multidata42TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ConnectionPoolMiss", 3321, + new MetadataParameter("PoolKey", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("busy", MetadataTypeCode.Int32), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3322|DispatchFormatterDeserializeRequestStart|OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "DispatchFormatterDeserializeRequestStart", 3322, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3323|DispatchFormatterDeserializeRequestStop|OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "DispatchFormatterDeserializeRequestStop", 3323, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3324|DispatchFormatterSerializeReplyStart|OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "DispatchFormatterSerializeReplyStart", 3324, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3325|DispatchFormatterSerializeReplyStop|OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "DispatchFormatterSerializeReplyStop", 3325, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3326|ClientFormatterSerializeRequestStart|OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ClientFormatterSerializeRequestStart", 3326, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3327|ClientFormatterSerializeRequestStop|OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ClientFormatterSerializeRequestStop", 3327, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3328|ClientFormatterDeserializeReplyStart|OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ClientFormatterDeserializeReplyStart", 3328, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3329|ClientFormatterDeserializeReplyStop|OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ClientFormatterDeserializeReplyStop", 3329, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3330|SecurityNegotiationStart|OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SecurityNegotiationStart", 3330, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3331|SecurityNegotiationStop|OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SecurityNegotiationStop", 3331, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // EVENT:3332|SecurityTokenProviderOpened|OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SecurityTokenProviderOpened", 3332, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + } + + // ===================================================================== + // WriteEvents_Chunk06 — writes one event payload per event in this chunk. + // ===================================================================== + private void WriteEvents_Chunk06(EventPipeWriterV5 writer, ref int metadataId, ref int sequenceNumber) + { + int __metadataId = metadataId; + int __sequenceNumber = sequenceNumber; + // EVENT:2024|InternalCacheMetadataStart|Multidata19TemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(2024, Multidata19TemplateAFields))); + + // EVENT:2025|InternalCacheMetadataStop|Multidata19TemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(2025, Multidata19TemplateAFields))); + + // EVENT:2026|CompileVbExpressionStart|Multidata20TemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(2026, Multidata20TemplateAFields))); + + // EVENT:2027|CacheRootMetadataStart|Multidata21TemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(2027, Multidata21TemplateAFields))); + + // EVENT:2028|CacheRootMetadataStop|Multidata21TemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(2028, Multidata21TemplateAFields))); + + // EVENT:2029|CompileVbExpressionStop|OneStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(2029, Chunk06_OneStringsTemplateAFields))); + + // EVENT:2576|TryCatchExceptionFromTry|ThreeStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(2576, Chunk06_ThreeStringsTemplateAFields))); + + // EVENT:2577|TryCatchExceptionDuringCancelation|TwoStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(2577, Chunk06_TwoStringsTemplateAFields))); + + // EVENT:2578|TryCatchExceptionFromCatchOrFinally|TwoStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(2578, Chunk06_TwoStringsTemplateAFields))); + + // EVENT:3300|ReceiveContextCompleteFailed|Multidata33TemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3300, Multidata33TemplateAFields))); + + // EVENT:3301|ReceiveContextAbandonFailed|Multidata33TemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3301, Multidata33TemplateAFields))); + + // EVENT:3302|ReceiveContextFaulted|TwoStringsTemplateSA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3302, TwoStringsTemplateSAFields))); + + // EVENT:3303|ReceiveContextAbandonWithException|Multidata34TemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3303, Multidata34TemplateAFields))); + + // EVENT:3305|ClientBaseCachedChannelFactoryCount|Multidata35TemplateSA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3305, Multidata35TemplateSAFields))); + + // EVENT:3306|ClientBaseChannelFactoryAgedOutofCache|Multidata36TemplateSA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3306, Multidata36TemplateSAFields))); + + // EVENT:3307|ClientBaseChannelFactoryCacheHit|TwoStringsTemplateSA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3307, TwoStringsTemplateSAFields))); + + // EVENT:3308|ClientBaseUsingLocalChannelFactory|TwoStringsTemplateSA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3308, TwoStringsTemplateSAFields))); + + // EVENT:3309|QueryCompositionExecuted|Multidata37TemplateSA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3309, Multidata37TemplateSAFields))); + + // EVENT:3310|DispatchFailed|Multidata38TemplateHA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3310, Multidata38TemplateHAFields))); + + // EVENT:3311|DispatchSuccessful|Multidata38TemplateHA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3311, Multidata38TemplateHAFields))); + + // EVENT:3312|MessageReadByEncoder|Multidata39TemplateSA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3312, Multidata39TemplateSAFields))); + + // EVENT:3313|MessageWrittenByEncoder|Multidata39TemplateSA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3313, Multidata39TemplateSAFields))); + + // EVENT:3314|SessionIdleTimeout|Multidata40TemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3314, Multidata40TemplateAFields))); + + // EVENT:3319|SocketAcceptEnqueued|OneStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3319, Chunk06_OneStringsTemplateAFields))); + + // EVENT:3320|SocketAccepted|Multidata41TemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3320, Multidata41TemplateAFields))); + + // EVENT:3321|ConnectionPoolMiss|Multidata42TemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3321, Multidata42TemplateAFields))); + + // EVENT:3322|DispatchFormatterDeserializeRequestStart|OneStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3322, Chunk06_OneStringsTemplateAFields))); + + // EVENT:3323|DispatchFormatterDeserializeRequestStop|OneStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3323, Chunk06_OneStringsTemplateAFields))); + + // EVENT:3324|DispatchFormatterSerializeReplyStart|OneStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3324, Chunk06_OneStringsTemplateAFields))); + + // EVENT:3325|DispatchFormatterSerializeReplyStop|OneStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3325, Chunk06_OneStringsTemplateAFields))); + + // EVENT:3326|ClientFormatterSerializeRequestStart|OneStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3326, Chunk06_OneStringsTemplateAFields))); + + // EVENT:3327|ClientFormatterSerializeRequestStop|OneStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3327, Chunk06_OneStringsTemplateAFields))); + + // EVENT:3328|ClientFormatterDeserializeReplyStart|OneStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3328, Chunk06_OneStringsTemplateAFields))); + + // EVENT:3329|ClientFormatterDeserializeReplyStop|OneStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3329, Chunk06_OneStringsTemplateAFields))); + + // EVENT:3330|SecurityNegotiationStart|OneStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3330, Chunk06_OneStringsTemplateAFields))); + + // EVENT:3331|SecurityNegotiationStop|OneStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3331, Chunk06_OneStringsTemplateAFields))); + + // EVENT:3332|SecurityTokenProviderOpened|OneStringsTemplateA + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3332, Chunk06_OneStringsTemplateAFields))); + + metadataId = __metadataId; + sequenceNumber = __sequenceNumber; + } + + // ===================================================================== + // Subscribe_Chunk06 — subscribes to all 38 events in this chunk. + // ===================================================================== + private void Subscribe_Chunk06(ApplicationServerTraceEventParser parser, Dictionary> firedEvents) + { + parser.InternalCacheMetadataStart += delegate (Multidata19TemplateATraceData data) + { + firedEvents["InternalCacheMetadataStart"] = new Dictionary + { + { "id", data.id }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.InternalCacheMetadataStop += delegate (Multidata19TemplateATraceData data) + { + firedEvents["InternalCacheMetadataStop"] = new Dictionary + { + { "id", data.id }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.CompileVbExpressionStart += delegate (Multidata20TemplateATraceData data) + { + firedEvents["CompileVbExpressionStart"] = new Dictionary + { + { "expr", data.expr }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.CacheRootMetadataStart += delegate (Multidata21TemplateATraceData data) + { + firedEvents["CacheRootMetadataStart"] = new Dictionary + { + { "activityName", data.activityName }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.CacheRootMetadataStop += delegate (Multidata21TemplateATraceData data) + { + firedEvents["CacheRootMetadataStop"] = new Dictionary + { + { "activityName", data.activityName }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.CompileVbExpressionStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["CompileVbExpressionStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.TryCatchExceptionFromTry += delegate (ThreeStringsTemplateATraceData data) + { + firedEvents["TryCatchExceptionFromTry"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.TryCatchExceptionDuringCancelation += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["TryCatchExceptionDuringCancelation"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.TryCatchExceptionFromCatchOrFinally += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["TryCatchExceptionFromCatchOrFinally"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.ReceiveContextCompleteFailed += delegate (Multidata33TemplateATraceData data) + { + firedEvents["ReceiveContextCompleteFailed"] = new Dictionary + { + { "TypeName", data.TypeName }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.ReceiveContextAbandonFailed += delegate (Multidata33TemplateATraceData data) + { + firedEvents["ReceiveContextAbandonFailed"] = new Dictionary + { + { "TypeName", data.TypeName }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.ReceiveContextFaulted += delegate (TwoStringsTemplateSATraceData data) + { + firedEvents["ReceiveContextFaulted"] = new Dictionary + { + { "EventSource", data.EventSource }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.ReceiveContextAbandonWithException += delegate (Multidata34TemplateATraceData data) + { + firedEvents["ReceiveContextAbandonWithException"] = new Dictionary + { + { "TypeName", data.TypeName }, + { "ExceptionToString", data.ExceptionToString }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.ClientBaseCachedChannelFactoryCount += delegate (Multidata35TemplateSATraceData data) + { + firedEvents["ClientBaseCachedChannelFactoryCount"] = new Dictionary + { + { "Count", data.Count }, + { "MaxNum", data.MaxNum }, + { "EventSource", data.EventSource }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.ClientBaseChannelFactoryAgedOutofCache += delegate (Multidata36TemplateSATraceData data) + { + firedEvents["ClientBaseChannelFactoryAgedOutofCache"] = new Dictionary + { + { "Count", data.Count }, + { "EventSource", data.EventSource }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.ClientBaseChannelFactoryCacheHit += delegate (TwoStringsTemplateSATraceData data) + { + firedEvents["ClientBaseChannelFactoryCacheHit"] = new Dictionary + { + { "EventSource", data.EventSource }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.ClientBaseUsingLocalChannelFactory += delegate (TwoStringsTemplateSATraceData data) + { + firedEvents["ClientBaseUsingLocalChannelFactory"] = new Dictionary + { + { "EventSource", data.EventSource }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.QueryCompositionExecuted += delegate (Multidata37TemplateSATraceData data) + { + firedEvents["QueryCompositionExecuted"] = new Dictionary + { + { "TypeName", data.TypeName }, + { "Uri", data.Uri }, + { "EventSource", data.EventSource }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DispatchFailed += delegate (Multidata38TemplateHATraceData data) + { + firedEvents["DispatchFailed"] = new Dictionary + { + { "OperationName", data.OperationName }, + { "HostReference", data.HostReference }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DispatchSuccessful += delegate (Multidata38TemplateHATraceData data) + { + firedEvents["DispatchSuccessful"] = new Dictionary + { + { "OperationName", data.OperationName }, + { "HostReference", data.HostReference }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.MessageReadByEncoder += delegate (Multidata39TemplateSATraceData data) + { + firedEvents["MessageReadByEncoder"] = new Dictionary + { + { "Size", data.Size }, + { "EventSource", data.EventSource }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.MessageWrittenByEncoder += delegate (Multidata39TemplateSATraceData data) + { + firedEvents["MessageWrittenByEncoder"] = new Dictionary + { + { "Size", data.Size }, + { "EventSource", data.EventSource }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.SessionIdleTimeout += delegate (Multidata40TemplateATraceData data) + { + firedEvents["SessionIdleTimeout"] = new Dictionary + { + { "RemoteAddress", data.RemoteAddress }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.SocketAcceptEnqueued += delegate (OneStringsTemplateATraceData data) + { + firedEvents["SocketAcceptEnqueued"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.SocketAccepted += delegate (Multidata41TemplateATraceData data) + { + firedEvents["SocketAccepted"] = new Dictionary + { + { "ListenerHashCode", data.ListenerHashCode }, + { "SocketHashCode", data.SocketHashCode }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.ConnectionPoolMiss += delegate (Multidata42TemplateATraceData data) + { + firedEvents["ConnectionPoolMiss"] = new Dictionary + { + { "PoolKey", data.PoolKey }, + { "busy", data.busy }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DispatchFormatterDeserializeRequestStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["DispatchFormatterDeserializeRequestStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DispatchFormatterDeserializeRequestStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["DispatchFormatterDeserializeRequestStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DispatchFormatterSerializeReplyStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["DispatchFormatterSerializeReplyStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DispatchFormatterSerializeReplyStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["DispatchFormatterSerializeReplyStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.ClientFormatterSerializeRequestStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["ClientFormatterSerializeRequestStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.ClientFormatterSerializeRequestStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["ClientFormatterSerializeRequestStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.ClientFormatterDeserializeReplyStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["ClientFormatterDeserializeReplyStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.ClientFormatterDeserializeReplyStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["ClientFormatterDeserializeReplyStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.SecurityNegotiationStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["SecurityNegotiationStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.SecurityNegotiationStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["SecurityNegotiationStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.SecurityTokenProviderOpened += delegate (OneStringsTemplateATraceData data) + { + firedEvents["SecurityTokenProviderOpened"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + } + + // ===================================================================== + // Validate_Chunk06 — asserts all 38 events fired with correct payloads. + // ===================================================================== + private void Validate_Chunk06(Dictionary> firedEvents) + { + // EVENT:2024|InternalCacheMetadataStart|Multidata19TemplateA + Assert.True(firedEvents.ContainsKey("InternalCacheMetadataStart"), "Event InternalCacheMetadataStart did not fire."); + Assert.Equal(TestString(2024, "id"), firedEvents["InternalCacheMetadataStart"]["id"]); + Assert.Equal(TestString(2024, "AppDomain"), firedEvents["InternalCacheMetadataStart"]["AppDomain"]); + + // EVENT:2025|InternalCacheMetadataStop|Multidata19TemplateA + Assert.True(firedEvents.ContainsKey("InternalCacheMetadataStop"), "Event InternalCacheMetadataStop did not fire."); + Assert.Equal(TestString(2025, "id"), firedEvents["InternalCacheMetadataStop"]["id"]); + Assert.Equal(TestString(2025, "AppDomain"), firedEvents["InternalCacheMetadataStop"]["AppDomain"]); + + // EVENT:2026|CompileVbExpressionStart|Multidata20TemplateA + Assert.True(firedEvents.ContainsKey("CompileVbExpressionStart"), "Event CompileVbExpressionStart did not fire."); + Assert.Equal(TestString(2026, "expr"), firedEvents["CompileVbExpressionStart"]["expr"]); + Assert.Equal(TestString(2026, "AppDomain"), firedEvents["CompileVbExpressionStart"]["AppDomain"]); + + // EVENT:2027|CacheRootMetadataStart|Multidata21TemplateA + Assert.True(firedEvents.ContainsKey("CacheRootMetadataStart"), "Event CacheRootMetadataStart did not fire."); + Assert.Equal(TestString(2027, "activityName"), firedEvents["CacheRootMetadataStart"]["activityName"]); + Assert.Equal(TestString(2027, "AppDomain"), firedEvents["CacheRootMetadataStart"]["AppDomain"]); + + // EVENT:2028|CacheRootMetadataStop|Multidata21TemplateA + Assert.True(firedEvents.ContainsKey("CacheRootMetadataStop"), "Event CacheRootMetadataStop did not fire."); + Assert.Equal(TestString(2028, "activityName"), firedEvents["CacheRootMetadataStop"]["activityName"]); + Assert.Equal(TestString(2028, "AppDomain"), firedEvents["CacheRootMetadataStop"]["AppDomain"]); + + // EVENT:2029|CompileVbExpressionStop|OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("CompileVbExpressionStop"), "Event CompileVbExpressionStop did not fire."); + Assert.Equal(TestString(2029, "AppDomain"), firedEvents["CompileVbExpressionStop"]["AppDomain"]); + + // EVENT:2576|TryCatchExceptionFromTry|ThreeStringsTemplateA + Assert.True(firedEvents.ContainsKey("TryCatchExceptionFromTry"), "Event TryCatchExceptionFromTry did not fire."); + Assert.Equal(TestString(2576, "data1"), firedEvents["TryCatchExceptionFromTry"]["data1"]); + Assert.Equal(TestString(2576, "data2"), firedEvents["TryCatchExceptionFromTry"]["data2"]); + Assert.Equal(TestString(2576, "AppDomain"), firedEvents["TryCatchExceptionFromTry"]["AppDomain"]); + + // EVENT:2577|TryCatchExceptionDuringCancelation|TwoStringsTemplateA + Assert.True(firedEvents.ContainsKey("TryCatchExceptionDuringCancelation"), "Event TryCatchExceptionDuringCancelation did not fire."); + Assert.Equal(TestString(2577, "data1"), firedEvents["TryCatchExceptionDuringCancelation"]["data1"]); + Assert.Equal(TestString(2577, "AppDomain"), firedEvents["TryCatchExceptionDuringCancelation"]["AppDomain"]); + + // EVENT:2578|TryCatchExceptionFromCatchOrFinally|TwoStringsTemplateA + Assert.True(firedEvents.ContainsKey("TryCatchExceptionFromCatchOrFinally"), "Event TryCatchExceptionFromCatchOrFinally did not fire."); + Assert.Equal(TestString(2578, "data1"), firedEvents["TryCatchExceptionFromCatchOrFinally"]["data1"]); + Assert.Equal(TestString(2578, "AppDomain"), firedEvents["TryCatchExceptionFromCatchOrFinally"]["AppDomain"]); + + // EVENT:3300|ReceiveContextCompleteFailed|Multidata33TemplateA + Assert.True(firedEvents.ContainsKey("ReceiveContextCompleteFailed"), "Event ReceiveContextCompleteFailed did not fire."); + Assert.Equal(TestString(3300, "TypeName"), firedEvents["ReceiveContextCompleteFailed"]["TypeName"]); + Assert.Equal(TestString(3300, "AppDomain"), firedEvents["ReceiveContextCompleteFailed"]["AppDomain"]); + + // EVENT:3301|ReceiveContextAbandonFailed|Multidata33TemplateA + Assert.True(firedEvents.ContainsKey("ReceiveContextAbandonFailed"), "Event ReceiveContextAbandonFailed did not fire."); + Assert.Equal(TestString(3301, "TypeName"), firedEvents["ReceiveContextAbandonFailed"]["TypeName"]); + Assert.Equal(TestString(3301, "AppDomain"), firedEvents["ReceiveContextAbandonFailed"]["AppDomain"]); + + // EVENT:3302|ReceiveContextFaulted|TwoStringsTemplateSA + Assert.True(firedEvents.ContainsKey("ReceiveContextFaulted"), "Event ReceiveContextFaulted did not fire."); + Assert.Equal(TestString(3302, "EventSource"), firedEvents["ReceiveContextFaulted"]["EventSource"]); + Assert.Equal(TestString(3302, "AppDomain"), firedEvents["ReceiveContextFaulted"]["AppDomain"]); + + // EVENT:3303|ReceiveContextAbandonWithException|Multidata34TemplateA + Assert.True(firedEvents.ContainsKey("ReceiveContextAbandonWithException"), "Event ReceiveContextAbandonWithException did not fire."); + Assert.Equal(TestString(3303, "TypeName"), firedEvents["ReceiveContextAbandonWithException"]["TypeName"]); + Assert.Equal(TestString(3303, "ExceptionToString"), firedEvents["ReceiveContextAbandonWithException"]["ExceptionToString"]); + Assert.Equal(TestString(3303, "AppDomain"), firedEvents["ReceiveContextAbandonWithException"]["AppDomain"]); + + // EVENT:3305|ClientBaseCachedChannelFactoryCount|Multidata35TemplateSA + Assert.True(firedEvents.ContainsKey("ClientBaseCachedChannelFactoryCount"), "Event ClientBaseCachedChannelFactoryCount did not fire."); + Assert.Equal(TestInt32(3305, 0), firedEvents["ClientBaseCachedChannelFactoryCount"]["Count"]); + Assert.Equal(TestInt32(3305, 1), firedEvents["ClientBaseCachedChannelFactoryCount"]["MaxNum"]); + Assert.Equal(TestString(3305, "EventSource"), firedEvents["ClientBaseCachedChannelFactoryCount"]["EventSource"]); + Assert.Equal(TestString(3305, "AppDomain"), firedEvents["ClientBaseCachedChannelFactoryCount"]["AppDomain"]); + + // EVENT:3306|ClientBaseChannelFactoryAgedOutofCache|Multidata36TemplateSA + Assert.True(firedEvents.ContainsKey("ClientBaseChannelFactoryAgedOutofCache"), "Event ClientBaseChannelFactoryAgedOutofCache did not fire."); + Assert.Equal(TestInt32(3306, 0), firedEvents["ClientBaseChannelFactoryAgedOutofCache"]["Count"]); + Assert.Equal(TestString(3306, "EventSource"), firedEvents["ClientBaseChannelFactoryAgedOutofCache"]["EventSource"]); + Assert.Equal(TestString(3306, "AppDomain"), firedEvents["ClientBaseChannelFactoryAgedOutofCache"]["AppDomain"]); + + // EVENT:3307|ClientBaseChannelFactoryCacheHit|TwoStringsTemplateSA + Assert.True(firedEvents.ContainsKey("ClientBaseChannelFactoryCacheHit"), "Event ClientBaseChannelFactoryCacheHit did not fire."); + Assert.Equal(TestString(3307, "EventSource"), firedEvents["ClientBaseChannelFactoryCacheHit"]["EventSource"]); + Assert.Equal(TestString(3307, "AppDomain"), firedEvents["ClientBaseChannelFactoryCacheHit"]["AppDomain"]); + + // EVENT:3308|ClientBaseUsingLocalChannelFactory|TwoStringsTemplateSA + Assert.True(firedEvents.ContainsKey("ClientBaseUsingLocalChannelFactory"), "Event ClientBaseUsingLocalChannelFactory did not fire."); + Assert.Equal(TestString(3308, "EventSource"), firedEvents["ClientBaseUsingLocalChannelFactory"]["EventSource"]); + Assert.Equal(TestString(3308, "AppDomain"), firedEvents["ClientBaseUsingLocalChannelFactory"]["AppDomain"]); + + // EVENT:3309|QueryCompositionExecuted|Multidata37TemplateSA + Assert.True(firedEvents.ContainsKey("QueryCompositionExecuted"), "Event QueryCompositionExecuted did not fire."); + Assert.Equal(TestString(3309, "TypeName"), firedEvents["QueryCompositionExecuted"]["TypeName"]); + Assert.Equal(TestString(3309, "Uri"), firedEvents["QueryCompositionExecuted"]["Uri"]); + Assert.Equal(TestString(3309, "EventSource"), firedEvents["QueryCompositionExecuted"]["EventSource"]); + Assert.Equal(TestString(3309, "AppDomain"), firedEvents["QueryCompositionExecuted"]["AppDomain"]); + + // EVENT:3310|DispatchFailed|Multidata38TemplateHA + Assert.True(firedEvents.ContainsKey("DispatchFailed"), "Event DispatchFailed did not fire."); + Assert.Equal(TestString(3310, "OperationName"), firedEvents["DispatchFailed"]["OperationName"]); + Assert.Equal(TestString(3310, "HostReference"), firedEvents["DispatchFailed"]["HostReference"]); + Assert.Equal(TestString(3310, "AppDomain"), firedEvents["DispatchFailed"]["AppDomain"]); + + // EVENT:3311|DispatchSuccessful|Multidata38TemplateHA + Assert.True(firedEvents.ContainsKey("DispatchSuccessful"), "Event DispatchSuccessful did not fire."); + Assert.Equal(TestString(3311, "OperationName"), firedEvents["DispatchSuccessful"]["OperationName"]); + Assert.Equal(TestString(3311, "HostReference"), firedEvents["DispatchSuccessful"]["HostReference"]); + Assert.Equal(TestString(3311, "AppDomain"), firedEvents["DispatchSuccessful"]["AppDomain"]); + + // EVENT:3312|MessageReadByEncoder|Multidata39TemplateSA + Assert.True(firedEvents.ContainsKey("MessageReadByEncoder"), "Event MessageReadByEncoder did not fire."); + Assert.Equal(TestInt32(3312, 0), firedEvents["MessageReadByEncoder"]["Size"]); + Assert.Equal(TestString(3312, "EventSource"), firedEvents["MessageReadByEncoder"]["EventSource"]); + Assert.Equal(TestString(3312, "AppDomain"), firedEvents["MessageReadByEncoder"]["AppDomain"]); + + // EVENT:3313|MessageWrittenByEncoder|Multidata39TemplateSA + Assert.True(firedEvents.ContainsKey("MessageWrittenByEncoder"), "Event MessageWrittenByEncoder did not fire."); + Assert.Equal(TestInt32(3313, 0), firedEvents["MessageWrittenByEncoder"]["Size"]); + Assert.Equal(TestString(3313, "EventSource"), firedEvents["MessageWrittenByEncoder"]["EventSource"]); + Assert.Equal(TestString(3313, "AppDomain"), firedEvents["MessageWrittenByEncoder"]["AppDomain"]); + + // EVENT:3314|SessionIdleTimeout|Multidata40TemplateA + Assert.True(firedEvents.ContainsKey("SessionIdleTimeout"), "Event SessionIdleTimeout did not fire."); + Assert.Equal(TestString(3314, "RemoteAddress"), firedEvents["SessionIdleTimeout"]["RemoteAddress"]); + Assert.Equal(TestString(3314, "AppDomain"), firedEvents["SessionIdleTimeout"]["AppDomain"]); + + // EVENT:3319|SocketAcceptEnqueued|OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("SocketAcceptEnqueued"), "Event SocketAcceptEnqueued did not fire."); + Assert.Equal(TestString(3319, "AppDomain"), firedEvents["SocketAcceptEnqueued"]["AppDomain"]); + + // EVENT:3320|SocketAccepted|Multidata41TemplateA + Assert.True(firedEvents.ContainsKey("SocketAccepted"), "Event SocketAccepted did not fire."); + Assert.Equal(TestInt32(3320, 0), firedEvents["SocketAccepted"]["ListenerHashCode"]); + Assert.Equal(TestInt32(3320, 1), firedEvents["SocketAccepted"]["SocketHashCode"]); + Assert.Equal(TestString(3320, "AppDomain"), firedEvents["SocketAccepted"]["AppDomain"]); + + // EVENT:3321|ConnectionPoolMiss|Multidata42TemplateA + Assert.True(firedEvents.ContainsKey("ConnectionPoolMiss"), "Event ConnectionPoolMiss did not fire."); + Assert.Equal(TestString(3321, "PoolKey"), firedEvents["ConnectionPoolMiss"]["PoolKey"]); + Assert.Equal(TestInt32(3321, 1), firedEvents["ConnectionPoolMiss"]["busy"]); + Assert.Equal(TestString(3321, "AppDomain"), firedEvents["ConnectionPoolMiss"]["AppDomain"]); + + // EVENT:3322|DispatchFormatterDeserializeRequestStart|OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("DispatchFormatterDeserializeRequestStart"), "Event DispatchFormatterDeserializeRequestStart did not fire."); + Assert.Equal(TestString(3322, "AppDomain"), firedEvents["DispatchFormatterDeserializeRequestStart"]["AppDomain"]); + + // EVENT:3323|DispatchFormatterDeserializeRequestStop|OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("DispatchFormatterDeserializeRequestStop"), "Event DispatchFormatterDeserializeRequestStop did not fire."); + Assert.Equal(TestString(3323, "AppDomain"), firedEvents["DispatchFormatterDeserializeRequestStop"]["AppDomain"]); + + // EVENT:3324|DispatchFormatterSerializeReplyStart|OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("DispatchFormatterSerializeReplyStart"), "Event DispatchFormatterSerializeReplyStart did not fire."); + Assert.Equal(TestString(3324, "AppDomain"), firedEvents["DispatchFormatterSerializeReplyStart"]["AppDomain"]); + + // EVENT:3325|DispatchFormatterSerializeReplyStop|OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("DispatchFormatterSerializeReplyStop"), "Event DispatchFormatterSerializeReplyStop did not fire."); + Assert.Equal(TestString(3325, "AppDomain"), firedEvents["DispatchFormatterSerializeReplyStop"]["AppDomain"]); + + // EVENT:3326|ClientFormatterSerializeRequestStart|OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("ClientFormatterSerializeRequestStart"), "Event ClientFormatterSerializeRequestStart did not fire."); + Assert.Equal(TestString(3326, "AppDomain"), firedEvents["ClientFormatterSerializeRequestStart"]["AppDomain"]); + + // EVENT:3327|ClientFormatterSerializeRequestStop|OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("ClientFormatterSerializeRequestStop"), "Event ClientFormatterSerializeRequestStop did not fire."); + Assert.Equal(TestString(3327, "AppDomain"), firedEvents["ClientFormatterSerializeRequestStop"]["AppDomain"]); + + // EVENT:3328|ClientFormatterDeserializeReplyStart|OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("ClientFormatterDeserializeReplyStart"), "Event ClientFormatterDeserializeReplyStart did not fire."); + Assert.Equal(TestString(3328, "AppDomain"), firedEvents["ClientFormatterDeserializeReplyStart"]["AppDomain"]); + + // EVENT:3329|ClientFormatterDeserializeReplyStop|OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("ClientFormatterDeserializeReplyStop"), "Event ClientFormatterDeserializeReplyStop did not fire."); + Assert.Equal(TestString(3329, "AppDomain"), firedEvents["ClientFormatterDeserializeReplyStop"]["AppDomain"]); + + // EVENT:3330|SecurityNegotiationStart|OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("SecurityNegotiationStart"), "Event SecurityNegotiationStart did not fire."); + Assert.Equal(TestString(3330, "AppDomain"), firedEvents["SecurityNegotiationStart"]["AppDomain"]); + + // EVENT:3331|SecurityNegotiationStop|OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("SecurityNegotiationStop"), "Event SecurityNegotiationStop did not fire."); + Assert.Equal(TestString(3331, "AppDomain"), firedEvents["SecurityNegotiationStop"]["AppDomain"]); + + // EVENT:3332|SecurityTokenProviderOpened|OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("SecurityTokenProviderOpened"), "Event SecurityTokenProviderOpened did not fire."); + Assert.Equal(TestString(3332, "AppDomain"), firedEvents["SecurityTokenProviderOpened"]["AppDomain"]); + } + } +} diff --git a/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk07.cs b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk07.cs new file mode 100644 index 000000000..b4b31d5aa --- /dev/null +++ b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk07.cs @@ -0,0 +1,677 @@ +using Microsoft.Diagnostics.Tracing; +using Microsoft.Diagnostics.Tracing.Parsers; +using Microsoft.Diagnostics.Tracing.Parsers.ApplicationServer; +using System; +using System.Collections.Generic; +using System.IO; +using Xunit; + +namespace TraceEventTests.Parsers +{ + public partial class ApplicationServerTraceEventParserTests + { + // Template field definitions for Chunk 07 + + private static readonly TemplateField[] Multidata43TemplateAFields = new TemplateField[] + { + new TemplateField("ChannelId", FieldType.Int32), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata44TemplateAFields = new TemplateField[] + { + new TemplateField("uri", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata45TemplateAFields = new TemplateField[] + { + new TemplateField("Key", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata46TemplateAFields = new TemplateField[] + { + new TemplateField("Via", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata47TemplateAFields = new TemplateField[] + { + new TemplateField("FaultString", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata48TemplateAFields = new TemplateField[] + { + new TemplateField("Uri", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata49TemplateAFields = new TemplateField[] + { + new TemplateField("SocketId", FieldType.Int32), + new TemplateField("Uri", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata50TemplateAFields = new TemplateField[] + { + new TemplateField("Status", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Chunk07_OneStringsTemplateAFields = new TemplateField[] + { + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Chunk07_TwoStringsTemplateSAFields = new TemplateField[] + { + new TemplateField("EventSource", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + /// + /// Writes metadata entries for chunk 07 events (IDs 3333–3370). + /// Each event gets a unique metadataId. The opcode is written when non-zero. + /// + private void WriteMetadata_Chunk07(EventPipeWriterV5 writer, ref int metadataId) + { + // 3333 OutgoingMessageSecured – OneStringsTemplateA, opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "OutgoingMessageSecured", 3333) { OpCode = 2 }); + // 3334 IncomingMessageVerified – OneStringsTemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "IncomingMessageVerified", 3334)); + // 3335 GetServiceInstanceStart – OneStringsTemplateA, opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "GetServiceInstanceStart", 3335) { OpCode = 1 }); + // 3336 GetServiceInstanceStop – OneStringsTemplateA, opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "GetServiceInstanceStop", 3336) { OpCode = 2 }); + // 3337 ChannelReceiveStart – Multidata43TemplateA, opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ChannelReceiveStart", 3337) { OpCode = 1 }); + // 3338 ChannelReceiveStop – Multidata43TemplateA, opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ChannelReceiveStop", 3338) { OpCode = 2 }); + // 3339 ChannelFactoryCreated – TwoStringsTemplateSA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ChannelFactoryCreated", 3339)); + // 3340 PipeConnectionAcceptStart – Multidata44TemplateA, opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "PipeConnectionAcceptStart", 3340) { OpCode = 1 }); + // 3341 PipeConnectionAcceptStop – OneStringsTemplateA, opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "PipeConnectionAcceptStop", 3341) { OpCode = 2 }); + // 3342 EstablishConnectionStart – Multidata45TemplateA, opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "EstablishConnectionStart", 3342) { OpCode = 1 }); + // 3343 EstablishConnectionStop – OneStringsTemplateA, opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "EstablishConnectionStop", 3343) { OpCode = 2 }); + // 3345 SessionPreambleUnderstood – Multidata46TemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SessionPreambleUnderstood", 3345)); + // 3346 ConnectionReaderSendFault – Multidata47TemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ConnectionReaderSendFault", 3346)); + // 3347 SocketAcceptClosed – OneStringsTemplateA, opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SocketAcceptClosed", 3347) { OpCode = 2 }); + // 3348 ServiceHostFaulted – TwoStringsTemplateSA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ServiceHostFaulted", 3348)); + // 3349 ListenerOpenStart – Multidata48TemplateA, opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ListenerOpenStart", 3349) { OpCode = 1 }); + // 3350 ListenerOpenStop – OneStringsTemplateA, opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ListenerOpenStop", 3350) { OpCode = 2 }); + // 3351 ServerMaxPooledConnectionsQuotaReached – OneStringsTemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ServerMaxPooledConnectionsQuotaReached", 3351)); + // 3352 TcpConnectionTimedOut – Multidata49TemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TcpConnectionTimedOut", 3352)); + // 3353 TcpConnectionResetError – Multidata49TemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TcpConnectionResetError", 3353)); + // 3354 ServiceSecurityNegotiationCompleted – OneStringsTemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ServiceSecurityNegotiationCompleted", 3354)); + // 3355 SecurityNegotiationProcessingFailure – OneStringsTemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SecurityNegotiationProcessingFailure", 3355)); + // 3356 SecurityIdentityVerificationSuccess – OneStringsTemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SecurityIdentityVerificationSuccess", 3356)); + // 3357 SecurityIdentityVerificationFailure – OneStringsTemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SecurityIdentityVerificationFailure", 3357)); + // 3358 PortSharingDuplicatedSocket – Multidata48TemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "PortSharingDuplicatedSocket", 3358)); + // 3359 SecurityImpersonationSuccess – OneStringsTemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SecurityImpersonationSuccess", 3359)); + // 3360 SecurityImpersonationFailure – OneStringsTemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SecurityImpersonationFailure", 3360)); + // 3361 HttpChannelRequestAborted – OneStringsTemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HttpChannelRequestAborted", 3361)); + // 3362 HttpChannelResponseAborted – OneStringsTemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HttpChannelResponseAborted", 3362)); + // 3363 HttpAuthFailed – OneStringsTemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HttpAuthFailed", 3363)); + // 3364 SharedListenerProxyRegisterStart – Multidata48TemplateA, opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SharedListenerProxyRegisterStart", 3364) { OpCode = 1 }); + // 3365 SharedListenerProxyRegisterStop – OneStringsTemplateA, opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SharedListenerProxyRegisterStop", 3365) { OpCode = 2 }); + // 3366 SharedListenerProxyRegisterFailed – Multidata50TemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SharedListenerProxyRegisterFailed", 3366)); + // 3367 ConnectionPoolPreambleFailed – OneStringsTemplateA, opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ConnectionPoolPreambleFailed", 3367)); + // 3368 SslOnInitiateUpgrade – OneStringsTemplateA, opcode=115 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SslOnInitiateUpgrade", 3368) { OpCode = 115 }); + // 3369 SslOnAcceptUpgrade – OneStringsTemplateA, opcode=114 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SslOnAcceptUpgrade", 3369) { OpCode = 114 }); + // 3370 BinaryMessageEncodingStart – OneStringsTemplateA, opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "BinaryMessageEncodingStart", 3370) { OpCode = 1 }); + } + + /// + /// Writes event payloads for chunk 07 events (IDs 3333–3370). + /// Each event blob references its metadataId (matching the order in WriteMetadata_Chunk07). + /// + private void WriteEvents_Chunk07(EventPipeWriterV5 writer, ref int metadataId, ref int sequenceNumber) + { + int __metadataId = metadataId; + int __sequenceNumber = sequenceNumber; + // Helper: maps event ID -> (__metadataId, template fields) + var events = new (int eventId, TemplateField[] fields)[] + { + (3333, Chunk07_OneStringsTemplateAFields), + (3334, Chunk07_OneStringsTemplateAFields), + (3335, Chunk07_OneStringsTemplateAFields), + (3336, Chunk07_OneStringsTemplateAFields), + (3337, Multidata43TemplateAFields), + (3338, Multidata43TemplateAFields), + (3339, Chunk07_TwoStringsTemplateSAFields), + (3340, Multidata44TemplateAFields), + (3341, Chunk07_OneStringsTemplateAFields), + (3342, Multidata45TemplateAFields), + (3343, Chunk07_OneStringsTemplateAFields), + (3345, Multidata46TemplateAFields), + (3346, Multidata47TemplateAFields), + (3347, Chunk07_OneStringsTemplateAFields), + (3348, Chunk07_TwoStringsTemplateSAFields), + (3349, Multidata48TemplateAFields), + (3350, Chunk07_OneStringsTemplateAFields), + (3351, Chunk07_OneStringsTemplateAFields), + (3352, Multidata49TemplateAFields), + (3353, Multidata49TemplateAFields), + (3354, Chunk07_OneStringsTemplateAFields), + (3355, Chunk07_OneStringsTemplateAFields), + (3356, Chunk07_OneStringsTemplateAFields), + (3357, Chunk07_OneStringsTemplateAFields), + (3358, Multidata48TemplateAFields), + (3359, Chunk07_OneStringsTemplateAFields), + (3360, Chunk07_OneStringsTemplateAFields), + (3361, Chunk07_OneStringsTemplateAFields), + (3362, Chunk07_OneStringsTemplateAFields), + (3363, Chunk07_OneStringsTemplateAFields), + (3364, Multidata48TemplateAFields), + (3365, Chunk07_OneStringsTemplateAFields), + (3366, Multidata50TemplateAFields), + (3367, Chunk07_OneStringsTemplateAFields), + (3368, Chunk07_OneStringsTemplateAFields), + (3369, Chunk07_OneStringsTemplateAFields), + (3370, Chunk07_OneStringsTemplateAFields), + }; + + int currentMetadataId = __metadataId; + writer.WriteEventBlock(w => + { + int mid = currentMetadataId; + int seq = __sequenceNumber; + foreach (var (eventId, fields) in events) + { + byte[] payload = BuildPayload(eventId, fields); + w.WriteEventBlobV4Or5(mid++, 999, seq++, payload); + } + __sequenceNumber = seq; + }); + __metadataId = currentMetadataId + events.Length; + + metadataId = __metadataId; + sequenceNumber = __sequenceNumber; + } + + /// + /// Subscribes to all chunk 07 events on the parser, recording payload values into firedEvents. + /// + private void Subscribe_Chunk07(ApplicationServerTraceEventParser parser, Dictionary> firedEvents) + { + parser.OutgoingMessageSecured += d => + { + firedEvents["OutgoingMessageSecured"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.IncomingMessageVerified += d => + { + firedEvents["IncomingMessageVerified"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.GetServiceInstanceStart += d => + { + firedEvents["GetServiceInstanceStart"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.GetServiceInstanceStop += d => + { + firedEvents["GetServiceInstanceStop"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.ChannelReceiveStart += d => + { + firedEvents["ChannelReceiveStart"] = new Dictionary + { + { "ChannelId", d.ChannelId }, + { "AppDomain", d.AppDomain }, + }; + }; + parser.ChannelReceiveStop += d => + { + firedEvents["ChannelReceiveStop"] = new Dictionary + { + { "ChannelId", d.ChannelId }, + { "AppDomain", d.AppDomain }, + }; + }; + parser.ChannelFactoryCreated += d => + { + firedEvents["ChannelFactoryCreated"] = new Dictionary + { + { "EventSource", d.EventSource }, + { "AppDomain", d.AppDomain }, + }; + }; + parser.PipeConnectionAcceptStart += d => + { + firedEvents["PipeConnectionAcceptStart"] = new Dictionary + { + { "uri", d.uri }, + { "AppDomain", d.AppDomain }, + }; + }; + parser.PipeConnectionAcceptStop += d => + { + firedEvents["PipeConnectionAcceptStop"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.EstablishConnectionStart += d => + { + firedEvents["EstablishConnectionStart"] = new Dictionary + { + { "Key", d.Key }, + { "AppDomain", d.AppDomain }, + }; + }; + parser.EstablishConnectionStop += d => + { + firedEvents["EstablishConnectionStop"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.SessionPreambleUnderstood += d => + { + firedEvents["SessionPreambleUnderstood"] = new Dictionary + { + { "Via", d.Via }, + { "AppDomain", d.AppDomain }, + }; + }; + parser.ConnectionReaderSendFault += d => + { + firedEvents["ConnectionReaderSendFault"] = new Dictionary + { + { "FaultString", d.FaultString }, + { "AppDomain", d.AppDomain }, + }; + }; + parser.SocketAcceptClosed += d => + { + firedEvents["SocketAcceptClosed"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.ServiceHostFaulted += d => + { + firedEvents["ServiceHostFaulted"] = new Dictionary + { + { "EventSource", d.EventSource }, + { "AppDomain", d.AppDomain }, + }; + }; + parser.ListenerOpenStart += d => + { + firedEvents["ListenerOpenStart"] = new Dictionary + { + { "Uri", d.Uri }, + { "AppDomain", d.AppDomain }, + }; + }; + parser.ListenerOpenStop += d => + { + firedEvents["ListenerOpenStop"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.ServerMaxPooledConnectionsQuotaReached += d => + { + firedEvents["ServerMaxPooledConnectionsQuotaReached"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.TcpConnectionTimedOut += d => + { + firedEvents["TcpConnectionTimedOut"] = new Dictionary + { + { "SocketId", d.SocketId }, + { "Uri", d.Uri }, + { "AppDomain", d.AppDomain }, + }; + }; + parser.TcpConnectionResetError += d => + { + firedEvents["TcpConnectionResetError"] = new Dictionary + { + { "SocketId", d.SocketId }, + { "Uri", d.Uri }, + { "AppDomain", d.AppDomain }, + }; + }; + parser.ServiceSecurityNegotiationCompleted += d => + { + firedEvents["ServiceSecurityNegotiationCompleted"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.SecurityNegotiationProcessingFailure += d => + { + firedEvents["SecurityNegotiationProcessingFailure"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.SecurityIdentityVerificationSuccess += d => + { + firedEvents["SecurityIdentityVerificationSuccess"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.SecurityIdentityVerificationFailure += d => + { + firedEvents["SecurityIdentityVerificationFailure"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.PortSharingDuplicatedSocket += d => + { + firedEvents["PortSharingDuplicatedSocket"] = new Dictionary + { + { "Uri", d.Uri }, + { "AppDomain", d.AppDomain }, + }; + }; + parser.SecurityImpersonationSuccess += d => + { + firedEvents["SecurityImpersonationSuccess"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.SecurityImpersonationFailure += d => + { + firedEvents["SecurityImpersonationFailure"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.HttpChannelRequestAborted += d => + { + firedEvents["HttpChannelRequestAborted"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.HttpChannelResponseAborted += d => + { + firedEvents["HttpChannelResponseAborted"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.HttpAuthFailed += d => + { + firedEvents["HttpAuthFailed"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.SharedListenerProxyRegisterStart += d => + { + firedEvents["SharedListenerProxyRegisterStart"] = new Dictionary + { + { "Uri", d.Uri }, + { "AppDomain", d.AppDomain }, + }; + }; + parser.SharedListenerProxyRegisterStop += d => + { + firedEvents["SharedListenerProxyRegisterStop"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.SharedListenerProxyRegisterFailed += d => + { + firedEvents["SharedListenerProxyRegisterFailed"] = new Dictionary + { + { "Status", d.Status }, + { "AppDomain", d.AppDomain }, + }; + }; + parser.ConnectionPoolPreambleFailed += d => + { + firedEvents["ConnectionPoolPreambleFailed"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.SslOnInitiateUpgrade += d => + { + firedEvents["SslOnInitiateUpgrade"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.SslOnAcceptUpgrade += d => + { + firedEvents["SslOnAcceptUpgrade"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + parser.BinaryMessageEncodingStart += d => + { + firedEvents["BinaryMessageEncodingStart"] = new Dictionary + { + { "AppDomain", d.AppDomain }, + }; + }; + } + + /// + /// Validates all chunk 07 events fired with correct payload values. + /// + private void Validate_Chunk07(Dictionary> firedEvents) + { + // 3333 OutgoingMessageSecured – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("OutgoingMessageSecured"), "Event OutgoingMessageSecured did not fire."); + Assert.Equal(TestString(3333, "AppDomain"), firedEvents["OutgoingMessageSecured"]["AppDomain"]); + + // 3334 IncomingMessageVerified – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("IncomingMessageVerified"), "Event IncomingMessageVerified did not fire."); + Assert.Equal(TestString(3334, "AppDomain"), firedEvents["IncomingMessageVerified"]["AppDomain"]); + + // 3335 GetServiceInstanceStart – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("GetServiceInstanceStart"), "Event GetServiceInstanceStart did not fire."); + Assert.Equal(TestString(3335, "AppDomain"), firedEvents["GetServiceInstanceStart"]["AppDomain"]); + + // 3336 GetServiceInstanceStop – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("GetServiceInstanceStop"), "Event GetServiceInstanceStop did not fire."); + Assert.Equal(TestString(3336, "AppDomain"), firedEvents["GetServiceInstanceStop"]["AppDomain"]); + + // 3337 ChannelReceiveStart – Multidata43TemplateA + Assert.True(firedEvents.ContainsKey("ChannelReceiveStart"), "Event ChannelReceiveStart did not fire."); + Assert.Equal(TestInt32(3337, 0), firedEvents["ChannelReceiveStart"]["ChannelId"]); + Assert.Equal(TestString(3337, "AppDomain"), firedEvents["ChannelReceiveStart"]["AppDomain"]); + + // 3338 ChannelReceiveStop – Multidata43TemplateA + Assert.True(firedEvents.ContainsKey("ChannelReceiveStop"), "Event ChannelReceiveStop did not fire."); + Assert.Equal(TestInt32(3338, 0), firedEvents["ChannelReceiveStop"]["ChannelId"]); + Assert.Equal(TestString(3338, "AppDomain"), firedEvents["ChannelReceiveStop"]["AppDomain"]); + + // 3339 ChannelFactoryCreated – TwoStringsTemplateSA + Assert.True(firedEvents.ContainsKey("ChannelFactoryCreated"), "Event ChannelFactoryCreated did not fire."); + Assert.Equal(TestString(3339, "EventSource"), firedEvents["ChannelFactoryCreated"]["EventSource"]); + Assert.Equal(TestString(3339, "AppDomain"), firedEvents["ChannelFactoryCreated"]["AppDomain"]); + + // 3340 PipeConnectionAcceptStart – Multidata44TemplateA + Assert.True(firedEvents.ContainsKey("PipeConnectionAcceptStart"), "Event PipeConnectionAcceptStart did not fire."); + Assert.Equal(TestString(3340, "uri"), firedEvents["PipeConnectionAcceptStart"]["uri"]); + Assert.Equal(TestString(3340, "AppDomain"), firedEvents["PipeConnectionAcceptStart"]["AppDomain"]); + + // 3341 PipeConnectionAcceptStop – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("PipeConnectionAcceptStop"), "Event PipeConnectionAcceptStop did not fire."); + Assert.Equal(TestString(3341, "AppDomain"), firedEvents["PipeConnectionAcceptStop"]["AppDomain"]); + + // 3342 EstablishConnectionStart – Multidata45TemplateA + Assert.True(firedEvents.ContainsKey("EstablishConnectionStart"), "Event EstablishConnectionStart did not fire."); + Assert.Equal(TestString(3342, "Key"), firedEvents["EstablishConnectionStart"]["Key"]); + Assert.Equal(TestString(3342, "AppDomain"), firedEvents["EstablishConnectionStart"]["AppDomain"]); + + // 3343 EstablishConnectionStop – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("EstablishConnectionStop"), "Event EstablishConnectionStop did not fire."); + Assert.Equal(TestString(3343, "AppDomain"), firedEvents["EstablishConnectionStop"]["AppDomain"]); + + // 3345 SessionPreambleUnderstood – Multidata46TemplateA + Assert.True(firedEvents.ContainsKey("SessionPreambleUnderstood"), "Event SessionPreambleUnderstood did not fire."); + Assert.Equal(TestString(3345, "Via"), firedEvents["SessionPreambleUnderstood"]["Via"]); + Assert.Equal(TestString(3345, "AppDomain"), firedEvents["SessionPreambleUnderstood"]["AppDomain"]); + + // 3346 ConnectionReaderSendFault – Multidata47TemplateA + Assert.True(firedEvents.ContainsKey("ConnectionReaderSendFault"), "Event ConnectionReaderSendFault did not fire."); + Assert.Equal(TestString(3346, "FaultString"), firedEvents["ConnectionReaderSendFault"]["FaultString"]); + Assert.Equal(TestString(3346, "AppDomain"), firedEvents["ConnectionReaderSendFault"]["AppDomain"]); + + // 3347 SocketAcceptClosed – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("SocketAcceptClosed"), "Event SocketAcceptClosed did not fire."); + Assert.Equal(TestString(3347, "AppDomain"), firedEvents["SocketAcceptClosed"]["AppDomain"]); + + // 3348 ServiceHostFaulted – TwoStringsTemplateSA + Assert.True(firedEvents.ContainsKey("ServiceHostFaulted"), "Event ServiceHostFaulted did not fire."); + Assert.Equal(TestString(3348, "EventSource"), firedEvents["ServiceHostFaulted"]["EventSource"]); + Assert.Equal(TestString(3348, "AppDomain"), firedEvents["ServiceHostFaulted"]["AppDomain"]); + + // 3349 ListenerOpenStart – Multidata48TemplateA + Assert.True(firedEvents.ContainsKey("ListenerOpenStart"), "Event ListenerOpenStart did not fire."); + Assert.Equal(TestString(3349, "Uri"), firedEvents["ListenerOpenStart"]["Uri"]); + Assert.Equal(TestString(3349, "AppDomain"), firedEvents["ListenerOpenStart"]["AppDomain"]); + + // 3350 ListenerOpenStop – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("ListenerOpenStop"), "Event ListenerOpenStop did not fire."); + Assert.Equal(TestString(3350, "AppDomain"), firedEvents["ListenerOpenStop"]["AppDomain"]); + + // 3351 ServerMaxPooledConnectionsQuotaReached – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("ServerMaxPooledConnectionsQuotaReached"), "Event ServerMaxPooledConnectionsQuotaReached did not fire."); + Assert.Equal(TestString(3351, "AppDomain"), firedEvents["ServerMaxPooledConnectionsQuotaReached"]["AppDomain"]); + + // 3352 TcpConnectionTimedOut – Multidata49TemplateA + Assert.True(firedEvents.ContainsKey("TcpConnectionTimedOut"), "Event TcpConnectionTimedOut did not fire."); + Assert.Equal(TestInt32(3352, 0), firedEvents["TcpConnectionTimedOut"]["SocketId"]); + Assert.Equal(TestString(3352, "Uri"), firedEvents["TcpConnectionTimedOut"]["Uri"]); + Assert.Equal(TestString(3352, "AppDomain"), firedEvents["TcpConnectionTimedOut"]["AppDomain"]); + + // 3353 TcpConnectionResetError – Multidata49TemplateA + Assert.True(firedEvents.ContainsKey("TcpConnectionResetError"), "Event TcpConnectionResetError did not fire."); + Assert.Equal(TestInt32(3353, 0), firedEvents["TcpConnectionResetError"]["SocketId"]); + Assert.Equal(TestString(3353, "Uri"), firedEvents["TcpConnectionResetError"]["Uri"]); + Assert.Equal(TestString(3353, "AppDomain"), firedEvents["TcpConnectionResetError"]["AppDomain"]); + + // 3354 ServiceSecurityNegotiationCompleted – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("ServiceSecurityNegotiationCompleted"), "Event ServiceSecurityNegotiationCompleted did not fire."); + Assert.Equal(TestString(3354, "AppDomain"), firedEvents["ServiceSecurityNegotiationCompleted"]["AppDomain"]); + + // 3355 SecurityNegotiationProcessingFailure – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("SecurityNegotiationProcessingFailure"), "Event SecurityNegotiationProcessingFailure did not fire."); + Assert.Equal(TestString(3355, "AppDomain"), firedEvents["SecurityNegotiationProcessingFailure"]["AppDomain"]); + + // 3356 SecurityIdentityVerificationSuccess – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("SecurityIdentityVerificationSuccess"), "Event SecurityIdentityVerificationSuccess did not fire."); + Assert.Equal(TestString(3356, "AppDomain"), firedEvents["SecurityIdentityVerificationSuccess"]["AppDomain"]); + + // 3357 SecurityIdentityVerificationFailure – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("SecurityIdentityVerificationFailure"), "Event SecurityIdentityVerificationFailure did not fire."); + Assert.Equal(TestString(3357, "AppDomain"), firedEvents["SecurityIdentityVerificationFailure"]["AppDomain"]); + + // 3358 PortSharingDuplicatedSocket – Multidata48TemplateA + Assert.True(firedEvents.ContainsKey("PortSharingDuplicatedSocket"), "Event PortSharingDuplicatedSocket did not fire."); + Assert.Equal(TestString(3358, "Uri"), firedEvents["PortSharingDuplicatedSocket"]["Uri"]); + Assert.Equal(TestString(3358, "AppDomain"), firedEvents["PortSharingDuplicatedSocket"]["AppDomain"]); + + // 3359 SecurityImpersonationSuccess – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("SecurityImpersonationSuccess"), "Event SecurityImpersonationSuccess did not fire."); + Assert.Equal(TestString(3359, "AppDomain"), firedEvents["SecurityImpersonationSuccess"]["AppDomain"]); + + // 3360 SecurityImpersonationFailure – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("SecurityImpersonationFailure"), "Event SecurityImpersonationFailure did not fire."); + Assert.Equal(TestString(3360, "AppDomain"), firedEvents["SecurityImpersonationFailure"]["AppDomain"]); + + // 3361 HttpChannelRequestAborted – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("HttpChannelRequestAborted"), "Event HttpChannelRequestAborted did not fire."); + Assert.Equal(TestString(3361, "AppDomain"), firedEvents["HttpChannelRequestAborted"]["AppDomain"]); + + // 3362 HttpChannelResponseAborted – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("HttpChannelResponseAborted"), "Event HttpChannelResponseAborted did not fire."); + Assert.Equal(TestString(3362, "AppDomain"), firedEvents["HttpChannelResponseAborted"]["AppDomain"]); + + // 3363 HttpAuthFailed – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("HttpAuthFailed"), "Event HttpAuthFailed did not fire."); + Assert.Equal(TestString(3363, "AppDomain"), firedEvents["HttpAuthFailed"]["AppDomain"]); + + // 3364 SharedListenerProxyRegisterStart – Multidata48TemplateA + Assert.True(firedEvents.ContainsKey("SharedListenerProxyRegisterStart"), "Event SharedListenerProxyRegisterStart did not fire."); + Assert.Equal(TestString(3364, "Uri"), firedEvents["SharedListenerProxyRegisterStart"]["Uri"]); + Assert.Equal(TestString(3364, "AppDomain"), firedEvents["SharedListenerProxyRegisterStart"]["AppDomain"]); + + // 3365 SharedListenerProxyRegisterStop – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("SharedListenerProxyRegisterStop"), "Event SharedListenerProxyRegisterStop did not fire."); + Assert.Equal(TestString(3365, "AppDomain"), firedEvents["SharedListenerProxyRegisterStop"]["AppDomain"]); + + // 3366 SharedListenerProxyRegisterFailed – Multidata50TemplateA + Assert.True(firedEvents.ContainsKey("SharedListenerProxyRegisterFailed"), "Event SharedListenerProxyRegisterFailed did not fire."); + Assert.Equal(TestString(3366, "Status"), firedEvents["SharedListenerProxyRegisterFailed"]["Status"]); + Assert.Equal(TestString(3366, "AppDomain"), firedEvents["SharedListenerProxyRegisterFailed"]["AppDomain"]); + + // 3367 ConnectionPoolPreambleFailed – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("ConnectionPoolPreambleFailed"), "Event ConnectionPoolPreambleFailed did not fire."); + Assert.Equal(TestString(3367, "AppDomain"), firedEvents["ConnectionPoolPreambleFailed"]["AppDomain"]); + + // 3368 SslOnInitiateUpgrade – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("SslOnInitiateUpgrade"), "Event SslOnInitiateUpgrade did not fire."); + Assert.Equal(TestString(3368, "AppDomain"), firedEvents["SslOnInitiateUpgrade"]["AppDomain"]); + + // 3369 SslOnAcceptUpgrade – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("SslOnAcceptUpgrade"), "Event SslOnAcceptUpgrade did not fire."); + Assert.Equal(TestString(3369, "AppDomain"), firedEvents["SslOnAcceptUpgrade"]["AppDomain"]); + + // 3370 BinaryMessageEncodingStart – OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("BinaryMessageEncodingStart"), "Event BinaryMessageEncodingStart did not fire."); + Assert.Equal(TestString(3370, "AppDomain"), firedEvents["BinaryMessageEncodingStart"]["AppDomain"]); + } + } +} diff --git a/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk08.cs b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk08.cs new file mode 100644 index 000000000..dca0e9b3e --- /dev/null +++ b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk08.cs @@ -0,0 +1,691 @@ +using Microsoft.Diagnostics.Tracing; +using Microsoft.Diagnostics.Tracing.Parsers; +using Microsoft.Diagnostics.Tracing.Parsers.ApplicationServer; +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using Xunit; + +namespace TraceEventTests.Parsers +{ + public partial class ApplicationServerTraceEventParserTests + { + // Template: OneStringsTemplateA — AppDomain:string + private static readonly TemplateField[] Chunk08_OneStringsTemplateAFields = new TemplateField[] + { + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + // Template: Multidata51TemplateA — SocketId:int32, Size:int32, Endpoint:string, AppDomain:string + private static readonly TemplateField[] Multidata51TemplateAFields = new TemplateField[] + { + new TemplateField("SocketId", FieldType.Int32), + new TemplateField("Size", FieldType.Int32), + new TemplateField("Endpoint", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + // Template: Multidata52TemplateA — SessionId:string, AppDomain:string + private static readonly TemplateField[] Multidata52TemplateAFields = new TemplateField[] + { + new TemplateField("SessionId", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + // Template: Multidata53TemplateA — SocketId:int32, AppDomain:string + private static readonly TemplateField[] Multidata53TemplateAFields = new TemplateField[] + { + new TemplateField("SocketId", FieldType.Int32), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + // Template: Multidata54TemplateA — LocalId:string, Distributed:guid, AppDomain:string + private static readonly TemplateField[] Multidata54TemplateAFields = new TemplateField[] + { + new TemplateField("LocalId", FieldType.UnicodeString), + new TemplateField("Distributed", FieldType.Guid), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + // Template: Multidata55TemplateA — BufferId:int32, Size:int32, AppDomain:string + private static readonly TemplateField[] Multidata55TemplateAFields = new TemplateField[] + { + new TemplateField("BufferId", FieldType.Int32), + new TemplateField("Size", FieldType.Int32), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + // Template: Multidata60TemplateA — sharedMemoryName:string, AppDomain:string + private static readonly TemplateField[] Multidata60TemplateAFields = new TemplateField[] + { + new TemplateField("sharedMemoryName", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + // Template: Multidata61TemplateA — pipeName:string, AppDomain:string + private static readonly TemplateField[] Multidata61TemplateAFields = new TemplateField[] + { + new TemplateField("pipeName", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + /// + /// Writes EventPipe metadata entries for chunk 08 events (IDs 3371–3409). + /// + private void WriteMetadata_Chunk08(EventPipeWriterV5 writer, ref int metadataId) + { + // 3371 MtomMessageEncodingStart — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "MtomMessageEncodingStart", 3371, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3372 TextMessageEncodingStart — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TextMessageEncodingStart", 3372, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3373 BinaryMessageDecodingStart — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "BinaryMessageDecodingStart", 3373, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3374 MtomMessageDecodingStart — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "MtomMessageDecodingStart", 3374, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3375 TextMessageDecodingStart — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TextMessageDecodingStart", 3375, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3376 HttpResponseReceiveStart — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HttpResponseReceiveStart", 3376, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3377 SocketReadStop — Multidata51TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SocketReadStop", 3377, + new MetadataParameter("SocketId", MetadataTypeCode.Int32), + new MetadataParameter("Size", MetadataTypeCode.Int32), + new MetadataParameter("Endpoint", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3378 SocketAsyncReadStop — Multidata51TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SocketAsyncReadStop", 3378, + new MetadataParameter("SocketId", MetadataTypeCode.Int32), + new MetadataParameter("Size", MetadataTypeCode.Int32), + new MetadataParameter("Endpoint", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3379 SocketWriteStart — Multidata51TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SocketWriteStart", 3379, + new MetadataParameter("SocketId", MetadataTypeCode.Int32), + new MetadataParameter("Size", MetadataTypeCode.Int32), + new MetadataParameter("Endpoint", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3380 SocketAsyncWriteStart — Multidata51TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SocketAsyncWriteStart", 3380, + new MetadataParameter("SocketId", MetadataTypeCode.Int32), + new MetadataParameter("Size", MetadataTypeCode.Int32), + new MetadataParameter("Endpoint", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3381 SequenceAcknowledgementSent — Multidata52TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SequenceAcknowledgementSent", 3381, + new MetadataParameter("SessionId", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3382 ClientReliableSessionReconnect — Multidata52TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ClientReliableSessionReconnect", 3382, + new MetadataParameter("SessionId", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3383 ReliableSessionChannelFaulted — Multidata52TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ReliableSessionChannelFaulted", 3383, + new MetadataParameter("SessionId", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3384 WindowsStreamSecurityOnInitiateUpgrade — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WindowsStreamSecurityOnInitiateUpgrade", 3384, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3385 WindowsStreamSecurityOnAcceptUpgrade — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WindowsStreamSecurityOnAcceptUpgrade", 3385, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3386 SocketConnectionAbort — Multidata53TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SocketConnectionAbort", 3386, + new MetadataParameter("SocketId", MetadataTypeCode.Int32), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3388 HttpGetContextStart — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HttpGetContextStart", 3388, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3389 ClientSendPreambleStart — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ClientSendPreambleStart", 3389, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3390 ClientSendPreambleStop — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ClientSendPreambleStop", 3390, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3391 HttpMessageReceiveFailed — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HttpMessageReceiveFailed", 3391, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3392 TransactionScopeCreate — Multidata54TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TransactionScopeCreate", 3392, + new MetadataParameter("LocalId", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("Distributed", MetadataTypeCode.Guid), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3393 StreamedMessageReadByEncoder — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "StreamedMessageReadByEncoder", 3393, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3394 StreamedMessageWrittenByEncoder — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "StreamedMessageWrittenByEncoder", 3394, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3395 MessageWrittenAsynchronouslyByEncoder — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "MessageWrittenAsynchronouslyByEncoder", 3395, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3396 BufferedAsyncWriteStart — Multidata55TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "BufferedAsyncWriteStart", 3396, + new MetadataParameter("BufferId", MetadataTypeCode.Int32), + new MetadataParameter("Size", MetadataTypeCode.Int32), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3397 BufferedAsyncWriteStop — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "BufferedAsyncWriteStop", 3397, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3398 PipeSharedMemoryCreated — Multidata60TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "PipeSharedMemoryCreated", 3398, + new MetadataParameter("sharedMemoryName", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3399 NamedPipeCreated — Multidata61TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "NamedPipeCreated", 3399, + new MetadataParameter("pipeName", MetadataTypeCode.NullTerminatedUTF16String), + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3401 SignatureVerificationStart — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SignatureVerificationStart", 3401, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3402 SignatureVerificationSuccess — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SignatureVerificationSuccess", 3402, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3403 WrappedKeyDecryptionStart — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WrappedKeyDecryptionStart", 3403, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3404 WrappedKeyDecryptionSuccess — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WrappedKeyDecryptionSuccess", 3404, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3405 EncryptedDataProcessingStart — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "EncryptedDataProcessingStart", 3405, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3406 EncryptedDataProcessingSuccess — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "EncryptedDataProcessingSuccess", 3406, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3407 HttpPipelineProcessInboundRequestStart — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HttpPipelineProcessInboundRequestStart", 3407, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3408 HttpPipelineBeginProcessInboundRequestStart — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HttpPipelineBeginProcessInboundRequestStart", 3408, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + + // 3409 HttpPipelineProcessInboundRequestStop — OneStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HttpPipelineProcessInboundRequestStop", 3409, + new MetadataParameter("AppDomain", MetadataTypeCode.NullTerminatedUTF16String))); + } + + /// + /// Writes event payloads for chunk 08 events into an EventBlock. + /// + private void WriteEvents_Chunk08(EventPipeWriterV5 writer, ref int metadataId, ref int sequenceNumber) + { + int __metadataId = metadataId; + int __sequenceNumber = sequenceNumber; + + writer.WriteEventBlock(w => + { + // 3371 MtomMessageEncodingStart — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3371, Chunk08_OneStringsTemplateAFields)); + // 3372 TextMessageEncodingStart — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3372, Chunk08_OneStringsTemplateAFields)); + // 3373 BinaryMessageDecodingStart — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3373, Chunk08_OneStringsTemplateAFields)); + // 3374 MtomMessageDecodingStart — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3374, Chunk08_OneStringsTemplateAFields)); + // 3375 TextMessageDecodingStart — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3375, Chunk08_OneStringsTemplateAFields)); + // 3376 HttpResponseReceiveStart — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3376, Chunk08_OneStringsTemplateAFields)); + // 3377 SocketReadStop — Multidata51TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3377, Multidata51TemplateAFields)); + // 3378 SocketAsyncReadStop — Multidata51TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3378, Multidata51TemplateAFields)); + // 3379 SocketWriteStart — Multidata51TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3379, Multidata51TemplateAFields)); + // 3380 SocketAsyncWriteStart — Multidata51TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3380, Multidata51TemplateAFields)); + // 3381 SequenceAcknowledgementSent — Multidata52TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3381, Multidata52TemplateAFields)); + // 3382 ClientReliableSessionReconnect — Multidata52TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3382, Multidata52TemplateAFields)); + // 3383 ReliableSessionChannelFaulted — Multidata52TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3383, Multidata52TemplateAFields)); + // 3384 WindowsStreamSecurityOnInitiateUpgrade — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3384, Chunk08_OneStringsTemplateAFields)); + // 3385 WindowsStreamSecurityOnAcceptUpgrade — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3385, Chunk08_OneStringsTemplateAFields)); + // 3386 SocketConnectionAbort — Multidata53TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3386, Multidata53TemplateAFields)); + // 3388 HttpGetContextStart — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3388, Chunk08_OneStringsTemplateAFields)); + // 3389 ClientSendPreambleStart — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3389, Chunk08_OneStringsTemplateAFields)); + // 3390 ClientSendPreambleStop — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3390, Chunk08_OneStringsTemplateAFields)); + // 3391 HttpMessageReceiveFailed — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3391, Chunk08_OneStringsTemplateAFields)); + // 3392 TransactionScopeCreate — Multidata54TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3392, Multidata54TemplateAFields)); + // 3393 StreamedMessageReadByEncoder — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3393, Chunk08_OneStringsTemplateAFields)); + // 3394 StreamedMessageWrittenByEncoder — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3394, Chunk08_OneStringsTemplateAFields)); + // 3395 MessageWrittenAsynchronouslyByEncoder — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3395, Chunk08_OneStringsTemplateAFields)); + // 3396 BufferedAsyncWriteStart — Multidata55TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3396, Multidata55TemplateAFields)); + // 3397 BufferedAsyncWriteStop — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3397, Chunk08_OneStringsTemplateAFields)); + // 3398 PipeSharedMemoryCreated — Multidata60TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3398, Multidata60TemplateAFields)); + // 3399 NamedPipeCreated — Multidata61TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3399, Multidata61TemplateAFields)); + // 3401 SignatureVerificationStart — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3401, Chunk08_OneStringsTemplateAFields)); + // 3402 SignatureVerificationSuccess — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3402, Chunk08_OneStringsTemplateAFields)); + // 3403 WrappedKeyDecryptionStart — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3403, Chunk08_OneStringsTemplateAFields)); + // 3404 WrappedKeyDecryptionSuccess — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3404, Chunk08_OneStringsTemplateAFields)); + // 3405 EncryptedDataProcessingStart — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3405, Chunk08_OneStringsTemplateAFields)); + // 3406 EncryptedDataProcessingSuccess — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3406, Chunk08_OneStringsTemplateAFields)); + // 3407 HttpPipelineProcessInboundRequestStart — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3407, Chunk08_OneStringsTemplateAFields)); + // 3408 HttpPipelineBeginProcessInboundRequestStart — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3408, Chunk08_OneStringsTemplateAFields)); + // 3409 HttpPipelineProcessInboundRequestStop — OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3409, Chunk08_OneStringsTemplateAFields)); + }); + + + metadataId = __metadataId; + sequenceNumber = __sequenceNumber; + } + + /// + /// Subscribes to all chunk 08 events and records their payloads. + /// + private void Subscribe_Chunk08(ApplicationServerTraceEventParser parser, Dictionary> firedEvents) + { + parser.MtomMessageEncodingStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["MtomMessageEncodingStart"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.TextMessageEncodingStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["TextMessageEncodingStart"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.BinaryMessageDecodingStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["BinaryMessageDecodingStart"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.MtomMessageDecodingStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["MtomMessageDecodingStart"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.TextMessageDecodingStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["TextMessageDecodingStart"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.HttpResponseReceiveStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["HttpResponseReceiveStart"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.SocketReadStop += delegate (Multidata51TemplateATraceData data) + { + firedEvents["SocketReadStop"] = new Dictionary + { + { "SocketId", data.SocketId }, + { "Size", data.Size }, + { "Endpoint", data.Endpoint }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.SocketAsyncReadStop += delegate (Multidata51TemplateATraceData data) + { + firedEvents["SocketAsyncReadStop"] = new Dictionary + { + { "SocketId", data.SocketId }, + { "Size", data.Size }, + { "Endpoint", data.Endpoint }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.SocketWriteStart += delegate (Multidata51TemplateATraceData data) + { + firedEvents["SocketWriteStart"] = new Dictionary + { + { "SocketId", data.SocketId }, + { "Size", data.Size }, + { "Endpoint", data.Endpoint }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.SocketAsyncWriteStart += delegate (Multidata51TemplateATraceData data) + { + firedEvents["SocketAsyncWriteStart"] = new Dictionary + { + { "SocketId", data.SocketId }, + { "Size", data.Size }, + { "Endpoint", data.Endpoint }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.SequenceAcknowledgementSent += delegate (Multidata52TemplateATraceData data) + { + firedEvents["SequenceAcknowledgementSent"] = new Dictionary + { + { "SessionId", data.SessionId }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.ClientReliableSessionReconnect += delegate (Multidata52TemplateATraceData data) + { + firedEvents["ClientReliableSessionReconnect"] = new Dictionary + { + { "SessionId", data.SessionId }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.ReliableSessionChannelFaulted += delegate (Multidata52TemplateATraceData data) + { + firedEvents["ReliableSessionChannelFaulted"] = new Dictionary + { + { "SessionId", data.SessionId }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WindowsStreamSecurityOnInitiateUpgrade += delegate (OneStringsTemplateATraceData data) + { + firedEvents["WindowsStreamSecurityOnInitiateUpgrade"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.WindowsStreamSecurityOnAcceptUpgrade += delegate (OneStringsTemplateATraceData data) + { + firedEvents["WindowsStreamSecurityOnAcceptUpgrade"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.SocketConnectionAbort += delegate (Multidata53TemplateATraceData data) + { + firedEvents["SocketConnectionAbort"] = new Dictionary + { + { "SocketId", data.SocketId }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.HttpGetContextStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["HttpGetContextStart"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.ClientSendPreambleStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["ClientSendPreambleStart"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.ClientSendPreambleStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["ClientSendPreambleStop"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.HttpMessageReceiveFailed += delegate (OneStringsTemplateATraceData data) + { + firedEvents["HttpMessageReceiveFailed"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.TransactionScopeCreate += delegate (Multidata54TemplateATraceData data) + { + firedEvents["TransactionScopeCreate"] = new Dictionary + { + { "LocalId", data.LocalId }, + { "Distributed", data.Distributed }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.StreamedMessageReadByEncoder += delegate (OneStringsTemplateATraceData data) + { + firedEvents["StreamedMessageReadByEncoder"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.StreamedMessageWrittenByEncoder += delegate (OneStringsTemplateATraceData data) + { + firedEvents["StreamedMessageWrittenByEncoder"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.MessageWrittenAsynchronouslyByEncoder += delegate (OneStringsTemplateATraceData data) + { + firedEvents["MessageWrittenAsynchronouslyByEncoder"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.BufferedAsyncWriteStart += delegate (Multidata55TemplateATraceData data) + { + firedEvents["BufferedAsyncWriteStart"] = new Dictionary + { + { "BufferId", data.BufferId }, + { "Size", data.Size }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.BufferedAsyncWriteStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["BufferedAsyncWriteStop"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.PipeSharedMemoryCreated += delegate (Multidata60TemplateATraceData data) + { + firedEvents["PipeSharedMemoryCreated"] = new Dictionary + { + { "sharedMemoryName", data.sharedMemoryName }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.NamedPipeCreated += delegate (Multidata61TemplateATraceData data) + { + firedEvents["NamedPipeCreated"] = new Dictionary + { + { "pipeName", data.pipeName }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.SignatureVerificationStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["SignatureVerificationStart"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.SignatureVerificationSuccess += delegate (OneStringsTemplateATraceData data) + { + firedEvents["SignatureVerificationSuccess"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.WrappedKeyDecryptionStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["WrappedKeyDecryptionStart"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.WrappedKeyDecryptionSuccess += delegate (OneStringsTemplateATraceData data) + { + firedEvents["WrappedKeyDecryptionSuccess"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.EncryptedDataProcessingStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["EncryptedDataProcessingStart"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.EncryptedDataProcessingSuccess += delegate (OneStringsTemplateATraceData data) + { + firedEvents["EncryptedDataProcessingSuccess"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.HttpPipelineProcessInboundRequestStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["HttpPipelineProcessInboundRequestStart"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.HttpPipelineBeginProcessInboundRequestStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["HttpPipelineBeginProcessInboundRequestStart"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + parser.HttpPipelineProcessInboundRequestStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["HttpPipelineProcessInboundRequestStop"] = new Dictionary { { "AppDomain", data.AppDomain } }; + }; + } + + /// + /// Validates all chunk 08 events fired with the expected payload values. + /// + private void Validate_Chunk08(Dictionary> firedEvents) + { + // Helper to validate OneStringsTemplateA events + void ValidateOneString(int eventId, string eventName) + { + Assert.True(firedEvents.ContainsKey(eventName), $"Event {eventName} did not fire."); + var fields = firedEvents[eventName]; + Assert.Equal(TestString(eventId, "AppDomain"), (string)fields["AppDomain"]); + } + + // Helper to validate Multidata51TemplateA events (SocketId, Size, Endpoint, AppDomain) + void ValidateMultidata51(int eventId, string eventName) + { + Assert.True(firedEvents.ContainsKey(eventName), $"Event {eventName} did not fire."); + var fields = firedEvents[eventName]; + Assert.Equal(TestInt32(eventId, 0), (int)fields["SocketId"]); + Assert.Equal(TestInt32(eventId, 1), (int)fields["Size"]); + Assert.Equal(TestString(eventId, "Endpoint"), (string)fields["Endpoint"]); + Assert.Equal(TestString(eventId, "AppDomain"), (string)fields["AppDomain"]); + } + + // Helper to validate Multidata52TemplateA events (SessionId, AppDomain) + void ValidateMultidata52(int eventId, string eventName) + { + Assert.True(firedEvents.ContainsKey(eventName), $"Event {eventName} did not fire."); + var fields = firedEvents[eventName]; + Assert.Equal(TestString(eventId, "SessionId"), (string)fields["SessionId"]); + Assert.Equal(TestString(eventId, "AppDomain"), (string)fields["AppDomain"]); + } + + // Helper to validate Multidata53TemplateA events (SocketId, AppDomain) + void ValidateMultidata53(int eventId, string eventName) + { + Assert.True(firedEvents.ContainsKey(eventName), $"Event {eventName} did not fire."); + var fields = firedEvents[eventName]; + Assert.Equal(TestInt32(eventId, 0), (int)fields["SocketId"]); + Assert.Equal(TestString(eventId, "AppDomain"), (string)fields["AppDomain"]); + } + + // 3371–3376: OneStringsTemplateA events + ValidateOneString(3371, "MtomMessageEncodingStart"); // MtomMessageEncodingStart + ValidateOneString(3372, "TextMessageEncodingStart"); // TextMessageEncodingStart + ValidateOneString(3373, "BinaryMessageDecodingStart"); // BinaryMessageDecodingStart + ValidateOneString(3374, "MtomMessageDecodingStart"); // MtomMessageDecodingStart + ValidateOneString(3375, "TextMessageDecodingStart"); // TextMessageDecodingStart + ValidateOneString(3376, "HttpResponseReceiveStart"); // HttpResponseReceiveStart + + // 3377–3380: Multidata51TemplateA events + ValidateMultidata51(3377, "SocketReadStop"); // SocketReadStop + ValidateMultidata51(3378, "SocketAsyncReadStop"); // SocketAsyncReadStop + ValidateMultidata51(3379, "SocketWriteStart"); // SocketWriteStart + ValidateMultidata51(3380, "SocketAsyncWriteStart"); // SocketAsyncWriteStart + + // 3381–3383: Multidata52TemplateA events + ValidateMultidata52(3381, "SequenceAcknowledgementSent"); // SequenceAcknowledgementSent + ValidateMultidata52(3382, "ClientReliableSessionReconnect"); // ClientReliableSessionReconnect + ValidateMultidata52(3383, "ReliableSessionChannelFaulted"); // ReliableSessionChannelFaulted + + // 3384–3385: OneStringsTemplateA events + ValidateOneString(3384, "WindowsStreamSecurityOnInitiateUpgrade"); // WindowsStreamSecurityOnInitiateUpgrade + ValidateOneString(3385, "WindowsStreamSecurityOnAcceptUpgrade"); // WindowsStreamSecurityOnAcceptUpgrade + + // Multidata53TemplateA + ValidateMultidata53(3386, "SocketConnectionAbort"); // SocketConnectionAbort + + // 3388–3391: OneStringsTemplateA events + ValidateOneString(3388, "HttpGetContextStart"); // HttpGetContextStart + ValidateOneString(3389, "ClientSendPreambleStart"); // ClientSendPreambleStart + ValidateOneString(3390, "ClientSendPreambleStop"); // ClientSendPreambleStop + ValidateOneString(3391, "HttpMessageReceiveFailed"); // HttpMessageReceiveFailed + + // Multidata54TemplateA (LocalId, Distributed, AppDomain) + { + int eventId = 3392; + string eventName = "TransactionScopeCreate"; + Assert.True(firedEvents.ContainsKey(eventName), $"Event {eventName} did not fire."); + var fields = firedEvents[eventName]; + Assert.Equal(TestString(eventId, "LocalId"), (string)fields["LocalId"]); + Assert.Equal(TestGuid(eventId, 1), (Guid)fields["Distributed"]); + Assert.Equal(TestString(eventId, "AppDomain"), (string)fields["AppDomain"]); + } + + // 3393–3395: OneStringsTemplateA events + ValidateOneString(3393, "StreamedMessageReadByEncoder"); // StreamedMessageReadByEncoder + ValidateOneString(3394, "StreamedMessageWrittenByEncoder"); // StreamedMessageWrittenByEncoder + ValidateOneString(3395, "MessageWrittenAsynchronouslyByEncoder"); // MessageWrittenAsynchronouslyByEncoder + + // Multidata55TemplateA (BufferId, Size, AppDomain) + { + int eventId = 3396; + string eventName = "BufferedAsyncWriteStart"; + Assert.True(firedEvents.ContainsKey(eventName), $"Event {eventName} did not fire."); + var fields = firedEvents[eventName]; + Assert.Equal(TestInt32(eventId, 0), (int)fields["BufferId"]); + Assert.Equal(TestInt32(eventId, 1), (int)fields["Size"]); + Assert.Equal(TestString(eventId, "AppDomain"), (string)fields["AppDomain"]); + } + + // OneStringsTemplateA + ValidateOneString(3397, "BufferedAsyncWriteStop"); // BufferedAsyncWriteStop + + // Multidata60TemplateA (sharedMemoryName, AppDomain) + { + int eventId = 3398; + string eventName = "PipeSharedMemoryCreated"; + Assert.True(firedEvents.ContainsKey(eventName), $"Event {eventName} did not fire."); + var fields = firedEvents[eventName]; + Assert.Equal(TestString(eventId, "sharedMemoryName"), (string)fields["sharedMemoryName"]); + Assert.Equal(TestString(eventId, "AppDomain"), (string)fields["AppDomain"]); + } + + // Multidata61TemplateA (pipeName, AppDomain) + { + int eventId = 3399; + string eventName = "NamedPipeCreated"; + Assert.True(firedEvents.ContainsKey(eventName), $"Event {eventName} did not fire."); + var fields = firedEvents[eventName]; + Assert.Equal(TestString(eventId, "pipeName"), (string)fields["pipeName"]); + Assert.Equal(TestString(eventId, "AppDomain"), (string)fields["AppDomain"]); + } + + // 3401–3406: OneStringsTemplateA events + ValidateOneString(3401, "SignatureVerificationStart"); // SignatureVerificationStart + ValidateOneString(3402, "SignatureVerificationSuccess"); // SignatureVerificationSuccess + ValidateOneString(3403, "WrappedKeyDecryptionStart"); // WrappedKeyDecryptionStart + ValidateOneString(3404, "WrappedKeyDecryptionSuccess"); // WrappedKeyDecryptionSuccess + ValidateOneString(3405, "EncryptedDataProcessingStart"); // EncryptedDataProcessingStart + ValidateOneString(3406, "EncryptedDataProcessingSuccess"); // EncryptedDataProcessingSuccess + + // 3407–3409: OneStringsTemplateA events + ValidateOneString(3407, "HttpPipelineProcessInboundRequestStart"); // HttpPipelineProcessInboundRequestStart + ValidateOneString(3408, "HttpPipelineBeginProcessInboundRequestStart"); // HttpPipelineBeginProcessInboundRequestStart + ValidateOneString(3409, "HttpPipelineProcessInboundRequestStop"); // HttpPipelineProcessInboundRequestStop + } + } +} diff --git a/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk09.cs b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk09.cs new file mode 100644 index 000000000..98add8fe1 --- /dev/null +++ b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk09.cs @@ -0,0 +1,764 @@ +using Microsoft.Diagnostics.Tracing; +using Microsoft.Diagnostics.Tracing.Parsers; +using Microsoft.Diagnostics.Tracing.Parsers.ApplicationServer; +using System; +using System.Collections.Generic; +using System.IO; +using Xunit; + +namespace TraceEventTests.Parsers +{ + public partial class ApplicationServerTraceEventParserTests + { + // Template field definitions for chunk 09 + private static readonly TemplateField[] s_chunk09_oneStringsTemplateAFields = new TemplateField[] + { + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk09_twoStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_threeStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_fourStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("data3", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata62TemplateAFields = new TemplateField[] + { + new TemplateField("remoteAddress", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata63TemplateAFields = new TemplateField[] + { + new TemplateField("websocketId", FieldType.Int32), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata64TemplateAFields = new TemplateField[] + { + new TemplateField("errorMessage", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata65TemplateAFields = new TemplateField[] + { + new TemplateField("websocketId", FieldType.Int32), + new TemplateField("byteCount", FieldType.Int32), + new TemplateField("remoteAddress", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata66TemplateAFields = new TemplateField[] + { + new TemplateField("websocketId", FieldType.Int32), + new TemplateField("remoteAddress", FieldType.UnicodeString), + new TemplateField("closeStatus", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata67TemplateAFields = new TemplateField[] + { + new TemplateField("websocketId", FieldType.Int32), + new TemplateField("closeStatus", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata68TemplateAFields = new TemplateField[] + { + new TemplateField("clientWebSocketFactoryType", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata84TemplateAFields = new TemplateField[] + { + new TemplateField("limit", FieldType.Int32), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata85TemplateAFields = new TemplateField[] + { + new TemplateField("TrackingProfile", FieldType.UnicodeString), + new TemplateField("ActivityDefinitionId", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private void WriteMetadata_Chunk09(EventPipeWriterV5 writer, ref int metadataId) + { + // EVENT:3410|HttpPipelineFaulted|OneStringsTemplateA|opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HttpPipelineFaulted", 3410)); + // EVENT:3411|HttpPipelineTimeoutException|OneStringsTemplateA|opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HttpPipelineTimeoutException", 3411)); + // EVENT:3412|HttpPipelineProcessResponseStart|OneStringsTemplateA|opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HttpPipelineProcessResponseStart", 3412) { OpCode = 1 }); + // EVENT:3413|HttpPipelineBeginProcessResponseStart|OneStringsTemplateA|opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HttpPipelineBeginProcessResponseStart", 3413) { OpCode = 1 }); + // EVENT:3414|HttpPipelineProcessResponseStop|OneStringsTemplateA|opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HttpPipelineProcessResponseStop", 3414) { OpCode = 2 }); + // EVENT:3415|WebSocketConnectionRequestSendStart|Multidata62TemplateA|opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketConnectionRequestSendStart", 3415) { OpCode = 1 }); + // EVENT:3416|WebSocketConnectionRequestSendStop|Multidata63TemplateA|opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketConnectionRequestSendStop", 3416) { OpCode = 2 }); + // EVENT:3417|WebSocketConnectionAcceptStart|OneStringsTemplateA|opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketConnectionAcceptStart", 3417) { OpCode = 1 }); + // EVENT:3418|WebSocketConnectionAccepted|Multidata63TemplateA|opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketConnectionAccepted", 3418) { OpCode = 2 }); + // EVENT:3419|WebSocketConnectionDeclined|Multidata64TemplateA|opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketConnectionDeclined", 3419)); + // EVENT:3420|WebSocketConnectionFailed|Multidata64TemplateA|opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketConnectionFailed", 3420)); + // EVENT:3421|WebSocketConnectionAborted|Multidata63TemplateA|opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketConnectionAborted", 3421)); + // EVENT:3422|WebSocketAsyncWriteStart|Multidata65TemplateA|opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketAsyncWriteStart", 3422) { OpCode = 1 }); + // EVENT:3423|WebSocketAsyncWriteStop|Multidata63TemplateA|opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketAsyncWriteStop", 3423) { OpCode = 2 }); + // EVENT:3424|WebSocketAsyncReadStart|Multidata63TemplateA|opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketAsyncReadStart", 3424) { OpCode = 1 }); + // EVENT:3425|WebSocketAsyncReadStop|Multidata65TemplateA|opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketAsyncReadStop", 3425) { OpCode = 2 }); + // EVENT:3426|WebSocketCloseSent|Multidata66TemplateA|opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketCloseSent", 3426)); + // EVENT:3427|WebSocketCloseOutputSent|Multidata66TemplateA|opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketCloseOutputSent", 3427)); + // EVENT:3428|WebSocketConnectionClosed|Multidata63TemplateA|opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketConnectionClosed", 3428)); + // EVENT:3429|WebSocketCloseStatusReceived|Multidata67TemplateA|opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketCloseStatusReceived", 3429)); + // EVENT:3430|WebSocketUseVersionFromClientWebSocketFactory|Multidata68TemplateA|opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketUseVersionFromClientWebSocketFactory", 3430)); + // EVENT:3431|WebSocketCreateClientWebSocketWithFactory|Multidata68TemplateA|opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "WebSocketCreateClientWebSocketWithFactory", 3431)); + // EVENT:3501|InferredContractDescription|ThreeStringsTemplateA|opcode=69 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "InferredContractDescription", 3501) { OpCode = 69 }); + // EVENT:3502|InferredOperationDescription|FourStringsTemplateA|opcode=70 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "InferredOperationDescription", 3502) { OpCode = 70 }); + // EVENT:3503|DuplicateCorrelationQuery|TwoStringsTemplateA|opcode=28 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "DuplicateCorrelationQuery", 3503) { OpCode = 28 }); + // EVENT:3507|ServiceEndpointAdded|FourStringsTemplateA|opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ServiceEndpointAdded", 3507)); + // EVENT:3508|TrackingProfileNotFound|Multidata85TemplateA|opcode=124 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TrackingProfileNotFound", 3508) { OpCode = 124 }); + // EVENT:3550|BufferOutOfOrderMessageNoInstance|TwoStringsTemplateA|opcode=11 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "BufferOutOfOrderMessageNoInstance", 3550) { OpCode = 11 }); + // EVENT:3551|BufferOutOfOrderMessageNoBookmark|ThreeStringsTemplateA|opcode=10 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "BufferOutOfOrderMessageNoBookmark", 3551) { OpCode = 10 }); + // EVENT:3552|MaxPendingMessagesPerChannelExceeded|Multidata84TemplateA|opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "MaxPendingMessagesPerChannelExceeded", 3552)); + // EVENT:3553|XamlServicesLoadStart|OneStringsTemplateA|opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "XamlServicesLoadStart", 3553) { OpCode = 1 }); + // EVENT:3554|XamlServicesLoadStop|OneStringsTemplateA|opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "XamlServicesLoadStop", 3554) { OpCode = 2 }); + // EVENT:3555|CreateWorkflowServiceHostStart|OneStringsTemplateA|opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "CreateWorkflowServiceHostStart", 3555) { OpCode = 1 }); + // EVENT:3556|CreateWorkflowServiceHostStop|OneStringsTemplateA|opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "CreateWorkflowServiceHostStop", 3556) { OpCode = 2 }); + // EVENT:3557|TransactedReceiveScopeEndCommitFailed|ThreeStringsTemplateA|opcode=0 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TransactedReceiveScopeEndCommitFailed", 3557)); + // EVENT:3558|ServiceActivationStart|OneStringsTemplateA|opcode=1 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ServiceActivationStart", 3558) { OpCode = 1 }); + // EVENT:3559|ServiceActivationStop|OneStringsTemplateA|opcode=2 + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ServiceActivationStop", 3559) { OpCode = 2 }); + } + + private void WriteEvents_Chunk09(EventPipeWriterV5 writer, ref int metadataId, ref int sequenceNumber) + { + int __metadataId = metadataId; + int __sequenceNumber = sequenceNumber; + int baseMetadataId = __metadataId; + writer.WriteEventBlock(w => + { + // 3410: HttpPipelineFaulted - OneStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 0, 999, __sequenceNumber++, BuildPayload(3410, s_chunk09_oneStringsTemplateAFields)); + // 3411: HttpPipelineTimeoutException - OneStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 1, 999, __sequenceNumber++, BuildPayload(3411, s_chunk09_oneStringsTemplateAFields)); + // 3412: HttpPipelineProcessResponseStart - OneStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 2, 999, __sequenceNumber++, BuildPayload(3412, s_chunk09_oneStringsTemplateAFields)); + // 3413: HttpPipelineBeginProcessResponseStart - OneStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 3, 999, __sequenceNumber++, BuildPayload(3413, s_chunk09_oneStringsTemplateAFields)); + // 3414: HttpPipelineProcessResponseStop - OneStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 4, 999, __sequenceNumber++, BuildPayload(3414, s_chunk09_oneStringsTemplateAFields)); + // 3415: WebSocketConnectionRequestSendStart - Multidata62TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 5, 999, __sequenceNumber++, BuildPayload(3415, s_multidata62TemplateAFields)); + // 3416: WebSocketConnectionRequestSendStop - Multidata63TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 6, 999, __sequenceNumber++, BuildPayload(3416, s_multidata63TemplateAFields)); + // 3417: WebSocketConnectionAcceptStart - OneStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 7, 999, __sequenceNumber++, BuildPayload(3417, s_chunk09_oneStringsTemplateAFields)); + // 3418: WebSocketConnectionAccepted - Multidata63TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 8, 999, __sequenceNumber++, BuildPayload(3418, s_multidata63TemplateAFields)); + // 3419: WebSocketConnectionDeclined - Multidata64TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 9, 999, __sequenceNumber++, BuildPayload(3419, s_multidata64TemplateAFields)); + // 3420: WebSocketConnectionFailed - Multidata64TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 10, 999, __sequenceNumber++, BuildPayload(3420, s_multidata64TemplateAFields)); + // 3421: WebSocketConnectionAborted - Multidata63TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 11, 999, __sequenceNumber++, BuildPayload(3421, s_multidata63TemplateAFields)); + // 3422: WebSocketAsyncWriteStart - Multidata65TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 12, 999, __sequenceNumber++, BuildPayload(3422, s_multidata65TemplateAFields)); + // 3423: WebSocketAsyncWriteStop - Multidata63TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 13, 999, __sequenceNumber++, BuildPayload(3423, s_multidata63TemplateAFields)); + // 3424: WebSocketAsyncReadStart - Multidata63TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 14, 999, __sequenceNumber++, BuildPayload(3424, s_multidata63TemplateAFields)); + // 3425: WebSocketAsyncReadStop - Multidata65TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 15, 999, __sequenceNumber++, BuildPayload(3425, s_multidata65TemplateAFields)); + // 3426: WebSocketCloseSent - Multidata66TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 16, 999, __sequenceNumber++, BuildPayload(3426, s_multidata66TemplateAFields)); + // 3427: WebSocketCloseOutputSent - Multidata66TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 17, 999, __sequenceNumber++, BuildPayload(3427, s_multidata66TemplateAFields)); + // 3428: WebSocketConnectionClosed - Multidata63TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 18, 999, __sequenceNumber++, BuildPayload(3428, s_multidata63TemplateAFields)); + // 3429: WebSocketCloseStatusReceived - Multidata67TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 19, 999, __sequenceNumber++, BuildPayload(3429, s_multidata67TemplateAFields)); + // 3430: WebSocketUseVersionFromClientWebSocketFactory - Multidata68TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 20, 999, __sequenceNumber++, BuildPayload(3430, s_multidata68TemplateAFields)); + // 3431: WebSocketCreateClientWebSocketWithFactory - Multidata68TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 21, 999, __sequenceNumber++, BuildPayload(3431, s_multidata68TemplateAFields)); + // 3501: InferredContractDescription - ThreeStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 22, 999, __sequenceNumber++, BuildPayload(3501, s_threeStringsTemplateAFields)); + // 3502: InferredOperationDescription - FourStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 23, 999, __sequenceNumber++, BuildPayload(3502, s_fourStringsTemplateAFields)); + // 3503: DuplicateCorrelationQuery - TwoStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 24, 999, __sequenceNumber++, BuildPayload(3503, s_chunk09_twoStringsTemplateAFields)); + // 3507: ServiceEndpointAdded - FourStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 25, 999, __sequenceNumber++, BuildPayload(3507, s_fourStringsTemplateAFields)); + // 3508: TrackingProfileNotFound - Multidata85TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 26, 999, __sequenceNumber++, BuildPayload(3508, s_multidata85TemplateAFields)); + // 3550: BufferOutOfOrderMessageNoInstance - TwoStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 27, 999, __sequenceNumber++, BuildPayload(3550, s_chunk09_twoStringsTemplateAFields)); + // 3551: BufferOutOfOrderMessageNoBookmark - ThreeStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 28, 999, __sequenceNumber++, BuildPayload(3551, s_threeStringsTemplateAFields)); + // 3552: MaxPendingMessagesPerChannelExceeded - Multidata84TemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 29, 999, __sequenceNumber++, BuildPayload(3552, s_multidata84TemplateAFields)); + // 3553: XamlServicesLoadStart - OneStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 30, 999, __sequenceNumber++, BuildPayload(3553, s_chunk09_oneStringsTemplateAFields)); + // 3554: XamlServicesLoadStop - OneStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 31, 999, __sequenceNumber++, BuildPayload(3554, s_chunk09_oneStringsTemplateAFields)); + // 3555: CreateWorkflowServiceHostStart - OneStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 32, 999, __sequenceNumber++, BuildPayload(3555, s_chunk09_oneStringsTemplateAFields)); + // 3556: CreateWorkflowServiceHostStop - OneStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 33, 999, __sequenceNumber++, BuildPayload(3556, s_chunk09_oneStringsTemplateAFields)); + // 3557: TransactedReceiveScopeEndCommitFailed - ThreeStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 34, 999, __sequenceNumber++, BuildPayload(3557, s_threeStringsTemplateAFields)); + // 3558: ServiceActivationStart - OneStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 35, 999, __sequenceNumber++, BuildPayload(3558, s_chunk09_oneStringsTemplateAFields)); + // 3559: ServiceActivationStop - OneStringsTemplateA + w.WriteEventBlobV4Or5(baseMetadataId + 36, 999, __sequenceNumber++, BuildPayload(3559, s_chunk09_oneStringsTemplateAFields)); + }); + + __metadataId += 37; + metadataId = __metadataId; + sequenceNumber = __sequenceNumber; + } + + private void Subscribe_Chunk09(ApplicationServerTraceEventParser parser, Dictionary> firedEvents) + { + parser.HttpPipelineFaulted += delegate (OneStringsTemplateATraceData data) + { + firedEvents["HttpPipelineFaulted"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + parser.HttpPipelineTimeoutException += delegate (OneStringsTemplateATraceData data) + { + firedEvents["HttpPipelineTimeoutException"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + parser.HttpPipelineProcessResponseStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["HttpPipelineProcessResponseStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + parser.HttpPipelineBeginProcessResponseStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["HttpPipelineBeginProcessResponseStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + parser.HttpPipelineProcessResponseStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["HttpPipelineProcessResponseStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketConnectionRequestSendStart += delegate (Multidata62TemplateATraceData data) + { + firedEvents["WebSocketConnectionRequestSendStart"] = new Dictionary + { + { "remoteAddress", data.remoteAddress }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketConnectionRequestSendStop += delegate (Multidata63TemplateATraceData data) + { + firedEvents["WebSocketConnectionRequestSendStop"] = new Dictionary + { + { "websocketId", data.websocketId }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketConnectionAcceptStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["WebSocketConnectionAcceptStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketConnectionAccepted += delegate (Multidata63TemplateATraceData data) + { + firedEvents["WebSocketConnectionAccepted"] = new Dictionary + { + { "websocketId", data.websocketId }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketConnectionDeclined += delegate (Multidata64TemplateATraceData data) + { + firedEvents["WebSocketConnectionDeclined"] = new Dictionary + { + { "errorMessage", data.errorMessage }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketConnectionFailed += delegate (Multidata64TemplateATraceData data) + { + firedEvents["WebSocketConnectionFailed"] = new Dictionary + { + { "errorMessage", data.errorMessage }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketConnectionAborted += delegate (Multidata63TemplateATraceData data) + { + firedEvents["WebSocketConnectionAborted"] = new Dictionary + { + { "websocketId", data.websocketId }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketAsyncWriteStart += delegate (Multidata65TemplateATraceData data) + { + firedEvents["WebSocketAsyncWriteStart"] = new Dictionary + { + { "websocketId", data.websocketId }, + { "byteCount", data.byteCount }, + { "remoteAddress", data.remoteAddress }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketAsyncWriteStop += delegate (Multidata63TemplateATraceData data) + { + firedEvents["WebSocketAsyncWriteStop"] = new Dictionary + { + { "websocketId", data.websocketId }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketAsyncReadStart += delegate (Multidata63TemplateATraceData data) + { + firedEvents["WebSocketAsyncReadStart"] = new Dictionary + { + { "websocketId", data.websocketId }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketAsyncReadStop += delegate (Multidata65TemplateATraceData data) + { + firedEvents["WebSocketAsyncReadStop"] = new Dictionary + { + { "websocketId", data.websocketId }, + { "byteCount", data.byteCount }, + { "remoteAddress", data.remoteAddress }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketCloseSent += delegate (Multidata66TemplateATraceData data) + { + firedEvents["WebSocketCloseSent"] = new Dictionary + { + { "websocketId", data.websocketId }, + { "remoteAddress", data.remoteAddress }, + { "closeStatus", data.closeStatus }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketCloseOutputSent += delegate (Multidata66TemplateATraceData data) + { + firedEvents["WebSocketCloseOutputSent"] = new Dictionary + { + { "websocketId", data.websocketId }, + { "remoteAddress", data.remoteAddress }, + { "closeStatus", data.closeStatus }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketConnectionClosed += delegate (Multidata63TemplateATraceData data) + { + firedEvents["WebSocketConnectionClosed"] = new Dictionary + { + { "websocketId", data.websocketId }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketCloseStatusReceived += delegate (Multidata67TemplateATraceData data) + { + firedEvents["WebSocketCloseStatusReceived"] = new Dictionary + { + { "websocketId", data.websocketId }, + { "closeStatus", data.closeStatus }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketUseVersionFromClientWebSocketFactory += delegate (Multidata68TemplateATraceData data) + { + firedEvents["WebSocketUseVersionFromClientWebSocketFactory"] = new Dictionary + { + { "clientWebSocketFactoryType", data.clientWebSocketFactoryType }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.WebSocketCreateClientWebSocketWithFactory += delegate (Multidata68TemplateATraceData data) + { + firedEvents["WebSocketCreateClientWebSocketWithFactory"] = new Dictionary + { + { "clientWebSocketFactoryType", data.clientWebSocketFactoryType }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.InferredContractDescription += delegate (ThreeStringsTemplateATraceData data) + { + firedEvents["InferredContractDescription"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.InferredOperationDescription += delegate (FourStringsTemplateATraceData data) + { + firedEvents["InferredOperationDescription"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "data3", data.data3 }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.DuplicateCorrelationQuery += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["DuplicateCorrelationQuery"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.ServiceEndpointAdded += delegate (FourStringsTemplateATraceData data) + { + firedEvents["ServiceEndpointAdded"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "data3", data.data3 }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.TrackingProfileNotFound += delegate (Multidata85TemplateATraceData data) + { + firedEvents["TrackingProfileNotFound"] = new Dictionary + { + { "TrackingProfile", data.TrackingProfile }, + { "ActivityDefinitionId", data.ActivityDefinitionId }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.BufferOutOfOrderMessageNoInstance += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["BufferOutOfOrderMessageNoInstance"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.BufferOutOfOrderMessageNoBookmark += delegate (ThreeStringsTemplateATraceData data) + { + firedEvents["BufferOutOfOrderMessageNoBookmark"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.MaxPendingMessagesPerChannelExceeded += delegate (Multidata84TemplateATraceData data) + { + firedEvents["MaxPendingMessagesPerChannelExceeded"] = new Dictionary + { + { "limit", data.limit }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.XamlServicesLoadStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["XamlServicesLoadStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + parser.XamlServicesLoadStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["XamlServicesLoadStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + parser.CreateWorkflowServiceHostStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["CreateWorkflowServiceHostStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + parser.CreateWorkflowServiceHostStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["CreateWorkflowServiceHostStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + parser.TransactedReceiveScopeEndCommitFailed += delegate (ThreeStringsTemplateATraceData data) + { + firedEvents["TransactedReceiveScopeEndCommitFailed"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "AppDomain", data.AppDomain }, + }; + }; + parser.ServiceActivationStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["ServiceActivationStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + parser.ServiceActivationStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["ServiceActivationStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + } + + private void Validate_Chunk09(Dictionary> firedEvents) + { + // 3410: HttpPipelineFaulted - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("HttpPipelineFaulted"), "Event HttpPipelineFaulted did not fire."); + Assert.Equal(TestString(3410, "AppDomain"), firedEvents["HttpPipelineFaulted"]["AppDomain"]); + + // 3411: HttpPipelineTimeoutException - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("HttpPipelineTimeoutException"), "Event HttpPipelineTimeoutException did not fire."); + Assert.Equal(TestString(3411, "AppDomain"), firedEvents["HttpPipelineTimeoutException"]["AppDomain"]); + + // 3412: HttpPipelineProcessResponseStart - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("HttpPipelineProcessResponseStart"), "Event HttpPipelineProcessResponseStart did not fire."); + Assert.Equal(TestString(3412, "AppDomain"), firedEvents["HttpPipelineProcessResponseStart"]["AppDomain"]); + + // 3413: HttpPipelineBeginProcessResponseStart - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("HttpPipelineBeginProcessResponseStart"), "Event HttpPipelineBeginProcessResponseStart did not fire."); + Assert.Equal(TestString(3413, "AppDomain"), firedEvents["HttpPipelineBeginProcessResponseStart"]["AppDomain"]); + + // 3414: HttpPipelineProcessResponseStop - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("HttpPipelineProcessResponseStop"), "Event HttpPipelineProcessResponseStop did not fire."); + Assert.Equal(TestString(3414, "AppDomain"), firedEvents["HttpPipelineProcessResponseStop"]["AppDomain"]); + + // 3415: WebSocketConnectionRequestSendStart - Multidata62TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketConnectionRequestSendStart"), "Event WebSocketConnectionRequestSendStart did not fire."); + Assert.Equal(TestString(3415, "remoteAddress"), firedEvents["WebSocketConnectionRequestSendStart"]["remoteAddress"]); + Assert.Equal(TestString(3415, "AppDomain"), firedEvents["WebSocketConnectionRequestSendStart"]["AppDomain"]); + + // 3416: WebSocketConnectionRequestSendStop - Multidata63TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketConnectionRequestSendStop"), "Event WebSocketConnectionRequestSendStop did not fire."); + Assert.Equal(TestInt32(3416, 0), firedEvents["WebSocketConnectionRequestSendStop"]["websocketId"]); + Assert.Equal(TestString(3416, "AppDomain"), firedEvents["WebSocketConnectionRequestSendStop"]["AppDomain"]); + + // 3417: WebSocketConnectionAcceptStart - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("WebSocketConnectionAcceptStart"), "Event WebSocketConnectionAcceptStart did not fire."); + Assert.Equal(TestString(3417, "AppDomain"), firedEvents["WebSocketConnectionAcceptStart"]["AppDomain"]); + + // 3418: WebSocketConnectionAccepted - Multidata63TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketConnectionAccepted"), "Event WebSocketConnectionAccepted did not fire."); + Assert.Equal(TestInt32(3418, 0), firedEvents["WebSocketConnectionAccepted"]["websocketId"]); + Assert.Equal(TestString(3418, "AppDomain"), firedEvents["WebSocketConnectionAccepted"]["AppDomain"]); + + // 3419: WebSocketConnectionDeclined - Multidata64TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketConnectionDeclined"), "Event WebSocketConnectionDeclined did not fire."); + Assert.Equal(TestString(3419, "errorMessage"), firedEvents["WebSocketConnectionDeclined"]["errorMessage"]); + Assert.Equal(TestString(3419, "AppDomain"), firedEvents["WebSocketConnectionDeclined"]["AppDomain"]); + + // 3420: WebSocketConnectionFailed - Multidata64TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketConnectionFailed"), "Event WebSocketConnectionFailed did not fire."); + Assert.Equal(TestString(3420, "errorMessage"), firedEvents["WebSocketConnectionFailed"]["errorMessage"]); + Assert.Equal(TestString(3420, "AppDomain"), firedEvents["WebSocketConnectionFailed"]["AppDomain"]); + + // 3421: WebSocketConnectionAborted - Multidata63TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketConnectionAborted"), "Event WebSocketConnectionAborted did not fire."); + Assert.Equal(TestInt32(3421, 0), firedEvents["WebSocketConnectionAborted"]["websocketId"]); + Assert.Equal(TestString(3421, "AppDomain"), firedEvents["WebSocketConnectionAborted"]["AppDomain"]); + + // 3422: WebSocketAsyncWriteStart - Multidata65TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketAsyncWriteStart"), "Event WebSocketAsyncWriteStart did not fire."); + Assert.Equal(TestInt32(3422, 0), firedEvents["WebSocketAsyncWriteStart"]["websocketId"]); + Assert.Equal(TestInt32(3422, 1), firedEvents["WebSocketAsyncWriteStart"]["byteCount"]); + Assert.Equal(TestString(3422, "remoteAddress"), firedEvents["WebSocketAsyncWriteStart"]["remoteAddress"]); + Assert.Equal(TestString(3422, "AppDomain"), firedEvents["WebSocketAsyncWriteStart"]["AppDomain"]); + + // 3423: WebSocketAsyncWriteStop - Multidata63TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketAsyncWriteStop"), "Event WebSocketAsyncWriteStop did not fire."); + Assert.Equal(TestInt32(3423, 0), firedEvents["WebSocketAsyncWriteStop"]["websocketId"]); + Assert.Equal(TestString(3423, "AppDomain"), firedEvents["WebSocketAsyncWriteStop"]["AppDomain"]); + + // 3424: WebSocketAsyncReadStart - Multidata63TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketAsyncReadStart"), "Event WebSocketAsyncReadStart did not fire."); + Assert.Equal(TestInt32(3424, 0), firedEvents["WebSocketAsyncReadStart"]["websocketId"]); + Assert.Equal(TestString(3424, "AppDomain"), firedEvents["WebSocketAsyncReadStart"]["AppDomain"]); + + // 3425: WebSocketAsyncReadStop - Multidata65TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketAsyncReadStop"), "Event WebSocketAsyncReadStop did not fire."); + Assert.Equal(TestInt32(3425, 0), firedEvents["WebSocketAsyncReadStop"]["websocketId"]); + Assert.Equal(TestInt32(3425, 1), firedEvents["WebSocketAsyncReadStop"]["byteCount"]); + Assert.Equal(TestString(3425, "remoteAddress"), firedEvents["WebSocketAsyncReadStop"]["remoteAddress"]); + Assert.Equal(TestString(3425, "AppDomain"), firedEvents["WebSocketAsyncReadStop"]["AppDomain"]); + + // 3426: WebSocketCloseSent - Multidata66TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketCloseSent"), "Event WebSocketCloseSent did not fire."); + Assert.Equal(TestInt32(3426, 0), firedEvents["WebSocketCloseSent"]["websocketId"]); + Assert.Equal(TestString(3426, "remoteAddress"), firedEvents["WebSocketCloseSent"]["remoteAddress"]); + Assert.Equal(TestString(3426, "closeStatus"), firedEvents["WebSocketCloseSent"]["closeStatus"]); + Assert.Equal(TestString(3426, "AppDomain"), firedEvents["WebSocketCloseSent"]["AppDomain"]); + + // 3427: WebSocketCloseOutputSent - Multidata66TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketCloseOutputSent"), "Event WebSocketCloseOutputSent did not fire."); + Assert.Equal(TestInt32(3427, 0), firedEvents["WebSocketCloseOutputSent"]["websocketId"]); + Assert.Equal(TestString(3427, "remoteAddress"), firedEvents["WebSocketCloseOutputSent"]["remoteAddress"]); + Assert.Equal(TestString(3427, "closeStatus"), firedEvents["WebSocketCloseOutputSent"]["closeStatus"]); + Assert.Equal(TestString(3427, "AppDomain"), firedEvents["WebSocketCloseOutputSent"]["AppDomain"]); + + // 3428: WebSocketConnectionClosed - Multidata63TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketConnectionClosed"), "Event WebSocketConnectionClosed did not fire."); + Assert.Equal(TestInt32(3428, 0), firedEvents["WebSocketConnectionClosed"]["websocketId"]); + Assert.Equal(TestString(3428, "AppDomain"), firedEvents["WebSocketConnectionClosed"]["AppDomain"]); + + // 3429: WebSocketCloseStatusReceived - Multidata67TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketCloseStatusReceived"), "Event WebSocketCloseStatusReceived did not fire."); + Assert.Equal(TestInt32(3429, 0), firedEvents["WebSocketCloseStatusReceived"]["websocketId"]); + Assert.Equal(TestString(3429, "closeStatus"), firedEvents["WebSocketCloseStatusReceived"]["closeStatus"]); + Assert.Equal(TestString(3429, "AppDomain"), firedEvents["WebSocketCloseStatusReceived"]["AppDomain"]); + + // 3430: WebSocketUseVersionFromClientWebSocketFactory - Multidata68TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketUseVersionFromClientWebSocketFactory"), "Event WebSocketUseVersionFromClientWebSocketFactory did not fire."); + Assert.Equal(TestString(3430, "clientWebSocketFactoryType"), firedEvents["WebSocketUseVersionFromClientWebSocketFactory"]["clientWebSocketFactoryType"]); + Assert.Equal(TestString(3430, "AppDomain"), firedEvents["WebSocketUseVersionFromClientWebSocketFactory"]["AppDomain"]); + + // 3431: WebSocketCreateClientWebSocketWithFactory - Multidata68TemplateA + Assert.True(firedEvents.ContainsKey("WebSocketCreateClientWebSocketWithFactory"), "Event WebSocketCreateClientWebSocketWithFactory did not fire."); + Assert.Equal(TestString(3431, "clientWebSocketFactoryType"), firedEvents["WebSocketCreateClientWebSocketWithFactory"]["clientWebSocketFactoryType"]); + Assert.Equal(TestString(3431, "AppDomain"), firedEvents["WebSocketCreateClientWebSocketWithFactory"]["AppDomain"]); + + // 3501: InferredContractDescription - ThreeStringsTemplateA + Assert.True(firedEvents.ContainsKey("InferredContractDescription"), "Event InferredContractDescription did not fire."); + Assert.Equal(TestString(3501, "data1"), firedEvents["InferredContractDescription"]["data1"]); + Assert.Equal(TestString(3501, "data2"), firedEvents["InferredContractDescription"]["data2"]); + Assert.Equal(TestString(3501, "AppDomain"), firedEvents["InferredContractDescription"]["AppDomain"]); + + // 3502: InferredOperationDescription - FourStringsTemplateA + Assert.True(firedEvents.ContainsKey("InferredOperationDescription"), "Event InferredOperationDescription did not fire."); + Assert.Equal(TestString(3502, "data1"), firedEvents["InferredOperationDescription"]["data1"]); + Assert.Equal(TestString(3502, "data2"), firedEvents["InferredOperationDescription"]["data2"]); + Assert.Equal(TestString(3502, "data3"), firedEvents["InferredOperationDescription"]["data3"]); + Assert.Equal(TestString(3502, "AppDomain"), firedEvents["InferredOperationDescription"]["AppDomain"]); + + // 3503: DuplicateCorrelationQuery - TwoStringsTemplateA + Assert.True(firedEvents.ContainsKey("DuplicateCorrelationQuery"), "Event DuplicateCorrelationQuery did not fire."); + Assert.Equal(TestString(3503, "data1"), firedEvents["DuplicateCorrelationQuery"]["data1"]); + Assert.Equal(TestString(3503, "AppDomain"), firedEvents["DuplicateCorrelationQuery"]["AppDomain"]); + + // 3507: ServiceEndpointAdded - FourStringsTemplateA + Assert.True(firedEvents.ContainsKey("ServiceEndpointAdded"), "Event ServiceEndpointAdded did not fire."); + Assert.Equal(TestString(3507, "data1"), firedEvents["ServiceEndpointAdded"]["data1"]); + Assert.Equal(TestString(3507, "data2"), firedEvents["ServiceEndpointAdded"]["data2"]); + Assert.Equal(TestString(3507, "data3"), firedEvents["ServiceEndpointAdded"]["data3"]); + Assert.Equal(TestString(3507, "AppDomain"), firedEvents["ServiceEndpointAdded"]["AppDomain"]); + + // 3508: TrackingProfileNotFound - Multidata85TemplateA + Assert.True(firedEvents.ContainsKey("TrackingProfileNotFound"), "Event TrackingProfileNotFound did not fire."); + Assert.Equal(TestString(3508, "TrackingProfile"), firedEvents["TrackingProfileNotFound"]["TrackingProfile"]); + Assert.Equal(TestString(3508, "ActivityDefinitionId"), firedEvents["TrackingProfileNotFound"]["ActivityDefinitionId"]); + Assert.Equal(TestString(3508, "AppDomain"), firedEvents["TrackingProfileNotFound"]["AppDomain"]); + + // 3550: BufferOutOfOrderMessageNoInstance - TwoStringsTemplateA + Assert.True(firedEvents.ContainsKey("BufferOutOfOrderMessageNoInstance"), "Event BufferOutOfOrderMessageNoInstance did not fire."); + Assert.Equal(TestString(3550, "data1"), firedEvents["BufferOutOfOrderMessageNoInstance"]["data1"]); + Assert.Equal(TestString(3550, "AppDomain"), firedEvents["BufferOutOfOrderMessageNoInstance"]["AppDomain"]); + + // 3551: BufferOutOfOrderMessageNoBookmark - ThreeStringsTemplateA + Assert.True(firedEvents.ContainsKey("BufferOutOfOrderMessageNoBookmark"), "Event BufferOutOfOrderMessageNoBookmark did not fire."); + Assert.Equal(TestString(3551, "data1"), firedEvents["BufferOutOfOrderMessageNoBookmark"]["data1"]); + Assert.Equal(TestString(3551, "data2"), firedEvents["BufferOutOfOrderMessageNoBookmark"]["data2"]); + Assert.Equal(TestString(3551, "AppDomain"), firedEvents["BufferOutOfOrderMessageNoBookmark"]["AppDomain"]); + + // 3552: MaxPendingMessagesPerChannelExceeded - Multidata84TemplateA + Assert.True(firedEvents.ContainsKey("MaxPendingMessagesPerChannelExceeded"), "Event MaxPendingMessagesPerChannelExceeded did not fire."); + Assert.Equal(TestInt32(3552, 0), firedEvents["MaxPendingMessagesPerChannelExceeded"]["limit"]); + Assert.Equal(TestString(3552, "AppDomain"), firedEvents["MaxPendingMessagesPerChannelExceeded"]["AppDomain"]); + + // 3553: XamlServicesLoadStart - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("XamlServicesLoadStart"), "Event XamlServicesLoadStart did not fire."); + Assert.Equal(TestString(3553, "AppDomain"), firedEvents["XamlServicesLoadStart"]["AppDomain"]); + + // 3554: XamlServicesLoadStop - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("XamlServicesLoadStop"), "Event XamlServicesLoadStop did not fire."); + Assert.Equal(TestString(3554, "AppDomain"), firedEvents["XamlServicesLoadStop"]["AppDomain"]); + + // 3555: CreateWorkflowServiceHostStart - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("CreateWorkflowServiceHostStart"), "Event CreateWorkflowServiceHostStart did not fire."); + Assert.Equal(TestString(3555, "AppDomain"), firedEvents["CreateWorkflowServiceHostStart"]["AppDomain"]); + + // 3556: CreateWorkflowServiceHostStop - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("CreateWorkflowServiceHostStop"), "Event CreateWorkflowServiceHostStop did not fire."); + Assert.Equal(TestString(3556, "AppDomain"), firedEvents["CreateWorkflowServiceHostStop"]["AppDomain"]); + + // 3557: TransactedReceiveScopeEndCommitFailed - ThreeStringsTemplateA + Assert.True(firedEvents.ContainsKey("TransactedReceiveScopeEndCommitFailed"), "Event TransactedReceiveScopeEndCommitFailed did not fire."); + Assert.Equal(TestString(3557, "data1"), firedEvents["TransactedReceiveScopeEndCommitFailed"]["data1"]); + Assert.Equal(TestString(3557, "data2"), firedEvents["TransactedReceiveScopeEndCommitFailed"]["data2"]); + Assert.Equal(TestString(3557, "AppDomain"), firedEvents["TransactedReceiveScopeEndCommitFailed"]["AppDomain"]); + + // 3558: ServiceActivationStart - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("ServiceActivationStart"), "Event ServiceActivationStart did not fire."); + Assert.Equal(TestString(3558, "AppDomain"), firedEvents["ServiceActivationStart"]["AppDomain"]); + + // 3559: ServiceActivationStop - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("ServiceActivationStop"), "Event ServiceActivationStop did not fire."); + Assert.Equal(TestString(3559, "AppDomain"), firedEvents["ServiceActivationStop"]["AppDomain"]); + } + } +} diff --git a/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk10.cs b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk10.cs new file mode 100644 index 000000000..0c3b0a736 --- /dev/null +++ b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk10.cs @@ -0,0 +1,870 @@ +using Microsoft.Diagnostics.Tracing; +using Microsoft.Diagnostics.Tracing.Parsers; +using Microsoft.Diagnostics.Tracing.Parsers.ApplicationServer; +using System.Collections.Generic; +using Xunit; + +namespace TraceEventTests.Parsers +{ + public partial class ApplicationServerTraceEventParserTests + { + #region Chunk 10 Template Fields + + private static readonly TemplateField[] s_chunk10_OneStringsTemplateA = new TemplateField[] + { + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk10_TwoStringsTemplateA = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk10_TwoStringsTemplateEA = new TemplateField[] + { + new TemplateField("SerializedException", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk10_ThreeStringsTemplateA = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk10_ThreeStringsTemplateEA = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("SerializedException", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk10_FourStringsTemplateA = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("data3", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk10_FiveStringsTemplateA = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("data3", FieldType.UnicodeString), + new TemplateField("data4", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk10_Multidata48TemplateA = new TemplateField[] + { + new TemplateField("Uri", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk10_Multidata76TemplateA = new TemplateField[] + { + new TemplateField("availableMemoryBytes", FieldType.Int64), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk10_Multidata77TemplateA = new TemplateField[] + { + new TemplateField("via", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk10_Multidata78TemplateA = new TemplateField[] + { + new TemplateField("Endpoint", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk10_Multidata79TemplateA = new TemplateField[] + { + new TemplateField("Uri", FieldType.UnicodeString), + new TemplateField("count", FieldType.Int32), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk10_Multidata81TemplateA = new TemplateField[] + { + new TemplateField("Status", FieldType.UnicodeString), + new TemplateField("Uri", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + #endregion + + #region Chunk 10 WriteMetadata + + private void WriteMetadata_Chunk10(EventPipeWriterV5 writer, ref int metadataId) + { + writer.WriteMetadataBlock( + // 3560 ServiceActivationAvailableMemory (opcode 0) + new EventMetadata(metadataId++, ProviderName, "ServiceActivationAvailableMemory", 3560), + // 3561 ServiceActivationException (opcode 0) + new EventMetadata(metadataId++, ProviderName, "ServiceActivationException", 3561), + // 3800 RoutingServiceClosingClient (opcode 87) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceClosingClient", 3800) { OpCode = 87 }, + // 3801 RoutingServiceChannelFaulted (opcode 86) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceChannelFaulted", 3801) { OpCode = 86 }, + // 3802 RoutingServiceCompletingOneWay (opcode 89) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceCompletingOneWay", 3802) { OpCode = 89 }, + // 3803 RoutingServiceProcessingFailure (opcode 92) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceProcessingFailure", 3803) { OpCode = 92 }, + // 3804 RoutingServiceCreatingClientForEndpoint (opcode 88) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceCreatingClientForEndpoint", 3804) { OpCode = 88 }, + // 3805 RoutingServiceDisplayConfig (opcode 0) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceDisplayConfig", 3805), + // 3807 RoutingServiceCompletingTwoWay (opcode 90) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceCompletingTwoWay", 3807) { OpCode = 90 }, + // 3809 RoutingServiceMessageRoutedToEndpoints (opcode 94) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceMessageRoutedToEndpoints", 3809) { OpCode = 94 }, + // 3810 RoutingServiceConfigurationApplied (opcode 82) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceConfigurationApplied", 3810) { OpCode = 82 }, + // 3815 RoutingServiceProcessingMessage (opcode 93) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceProcessingMessage", 3815) { OpCode = 93 }, + // 3816 RoutingServiceTransmittingMessage (opcode 98) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceTransmittingMessage", 3816) { OpCode = 98 }, + // 3817 RoutingServiceCommittingTransaction (opcode 101) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceCommittingTransaction", 3817) { OpCode = 101 }, + // 3818 RoutingServiceDuplexCallbackException (opcode 83) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceDuplexCallbackException", 3818) { OpCode = 83 }, + // 3819 RoutingServiceMovedToBackup (opcode 91) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceMovedToBackup", 3819) { OpCode = 91 }, + // 3820 RoutingServiceCreatingTransaction (opcode 102) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceCreatingTransaction", 3820) { OpCode = 102 }, + // 3821 RoutingServiceCloseFailed (opcode 81) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceCloseFailed", 3821) { OpCode = 81 }, + // 3822 RoutingServiceSendingResponse (opcode 96) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceSendingResponse", 3822) { OpCode = 96 }, + // 3823 RoutingServiceSendingFaultResponse (opcode 95) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceSendingFaultResponse", 3823) { OpCode = 95 }, + // 3824 RoutingServiceCompletingReceiveContext (opcode 100) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceCompletingReceiveContext", 3824) { OpCode = 100 }, + // 3825 RoutingServiceAbandoningReceiveContext (opcode 99) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceAbandoningReceiveContext", 3825) { OpCode = 99 }, + // 3826 RoutingServiceUsingExistingTransaction (opcode 103) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceUsingExistingTransaction", 3826) { OpCode = 103 }, + // 3827 RoutingServiceTransmitFailed (opcode 85) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceTransmitFailed", 3827) { OpCode = 85 }, + // 3828 RoutingServiceFilterTableMatchStart (opcode 1) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceFilterTableMatchStart", 3828) { OpCode = 1 }, + // 3829 RoutingServiceFilterTableMatchStop (opcode 2) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceFilterTableMatchStop", 3829) { OpCode = 2 }, + // 3830 RoutingServiceAbortingChannel (opcode 80) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceAbortingChannel", 3830) { OpCode = 80 }, + // 3831 RoutingServiceHandledException (opcode 84) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceHandledException", 3831) { OpCode = 84 }, + // 3832 RoutingServiceTransmitSucceeded (opcode 97) + new EventMetadata(metadataId++, ProviderName, "RoutingServiceTransmitSucceeded", 3832) { OpCode = 97 }, + // 4001 TransportListenerSessionsReceived (opcode 10) + new EventMetadata(metadataId++, ProviderName, "TransportListenerSessionsReceived", 4001) { OpCode = 10 }, + // 4002 FailFastException (opcode 0) + new EventMetadata(metadataId++, ProviderName, "FailFastException", 4002), + // 4003 ServiceStartPipeError (opcode 0) + new EventMetadata(metadataId++, ProviderName, "ServiceStartPipeError", 4003), + // 4008 DispatchSessionStart (opcode 1) + new EventMetadata(metadataId++, ProviderName, "DispatchSessionStart", 4008) { OpCode = 1 }, + // 4010 PendingSessionQueueFull (opcode 0) + new EventMetadata(metadataId++, ProviderName, "PendingSessionQueueFull", 4010), + // 4011 MessageQueueRegisterStart (opcode 1) + new EventMetadata(metadataId++, ProviderName, "MessageQueueRegisterStart", 4011) { OpCode = 1 }, + // 4012 MessageQueueRegisterAbort (opcode 0) + new EventMetadata(metadataId++, ProviderName, "MessageQueueRegisterAbort", 4012), + // 4013 MessageQueueUnregisterSucceeded (opcode 2) + new EventMetadata(metadataId++, ProviderName, "MessageQueueUnregisterSucceeded", 4013) { OpCode = 2 } + ); + } + + #endregion + + #region Chunk 10 WriteEvents + + private void WriteEvents_Chunk10(EventPipeWriterV5 writer, ref int metadataId, ref int sequenceNumber) + { + int __metadataId = metadataId; + int __sequenceNumber = sequenceNumber; + writer.WriteEventBlock(w => + { + // 3560 ServiceActivationAvailableMemory - Multidata76TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3560, s_chunk10_Multidata76TemplateA)); + // 3561 ServiceActivationException - ThreeStringsTemplateEA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3561, s_chunk10_ThreeStringsTemplateEA)); + // 3800 RoutingServiceClosingClient - TwoStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3800, s_chunk10_TwoStringsTemplateA)); + // 3801 RoutingServiceChannelFaulted - TwoStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3801, s_chunk10_TwoStringsTemplateA)); + // 3802 RoutingServiceCompletingOneWay - TwoStringsTemplateEA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3802, s_chunk10_TwoStringsTemplateEA)); + // 3803 RoutingServiceProcessingFailure - ThreeStringsTemplateEA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3803, s_chunk10_ThreeStringsTemplateEA)); + // 3804 RoutingServiceCreatingClientForEndpoint - TwoStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3804, s_chunk10_TwoStringsTemplateA)); + // 3805 RoutingServiceDisplayConfig - FourStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3805, s_chunk10_FourStringsTemplateA)); + // 3807 RoutingServiceCompletingTwoWay - OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3807, s_chunk10_OneStringsTemplateA)); + // 3809 RoutingServiceMessageRoutedToEndpoints - ThreeStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3809, s_chunk10_ThreeStringsTemplateA)); + // 3810 RoutingServiceConfigurationApplied - OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3810, s_chunk10_OneStringsTemplateA)); + // 3815 RoutingServiceProcessingMessage - FiveStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3815, s_chunk10_FiveStringsTemplateA)); + // 3816 RoutingServiceTransmittingMessage - FourStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3816, s_chunk10_FourStringsTemplateA)); + // 3817 RoutingServiceCommittingTransaction - TwoStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3817, s_chunk10_TwoStringsTemplateA)); + // 3818 RoutingServiceDuplexCallbackException - ThreeStringsTemplateEA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3818, s_chunk10_ThreeStringsTemplateEA)); + // 3819 RoutingServiceMovedToBackup - FourStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3819, s_chunk10_FourStringsTemplateA)); + // 3820 RoutingServiceCreatingTransaction - TwoStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3820, s_chunk10_TwoStringsTemplateA)); + // 3821 RoutingServiceCloseFailed - ThreeStringsTemplateEA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3821, s_chunk10_ThreeStringsTemplateEA)); + // 3822 RoutingServiceSendingResponse - TwoStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3822, s_chunk10_TwoStringsTemplateA)); + // 3823 RoutingServiceSendingFaultResponse - TwoStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3823, s_chunk10_TwoStringsTemplateA)); + // 3824 RoutingServiceCompletingReceiveContext - TwoStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3824, s_chunk10_TwoStringsTemplateA)); + // 3825 RoutingServiceAbandoningReceiveContext - TwoStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3825, s_chunk10_TwoStringsTemplateA)); + // 3826 RoutingServiceUsingExistingTransaction - TwoStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3826, s_chunk10_TwoStringsTemplateA)); + // 3827 RoutingServiceTransmitFailed - ThreeStringsTemplateEA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3827, s_chunk10_ThreeStringsTemplateEA)); + // 3828 RoutingServiceFilterTableMatchStart - OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3828, s_chunk10_OneStringsTemplateA)); + // 3829 RoutingServiceFilterTableMatchStop - OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3829, s_chunk10_OneStringsTemplateA)); + // 3830 RoutingServiceAbortingChannel - TwoStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3830, s_chunk10_TwoStringsTemplateA)); + // 3831 RoutingServiceHandledException - TwoStringsTemplateEA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3831, s_chunk10_TwoStringsTemplateEA)); + // 3832 RoutingServiceTransmitSucceeded - FourStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(3832, s_chunk10_FourStringsTemplateA)); + // 4001 TransportListenerSessionsReceived - Multidata77TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4001, s_chunk10_Multidata77TemplateA)); + // 4002 FailFastException - TwoStringsTemplateEA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4002, s_chunk10_TwoStringsTemplateEA)); + // 4003 ServiceStartPipeError - Multidata78TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4003, s_chunk10_Multidata78TemplateA)); + // 4008 DispatchSessionStart - OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4008, s_chunk10_OneStringsTemplateA)); + // 4010 PendingSessionQueueFull - Multidata79TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4010, s_chunk10_Multidata79TemplateA)); + // 4011 MessageQueueRegisterStart - OneStringsTemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4011, s_chunk10_OneStringsTemplateA)); + // 4012 MessageQueueRegisterAbort - Multidata81TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4012, s_chunk10_Multidata81TemplateA)); + // 4013 MessageQueueUnregisterSucceeded - Multidata48TemplateA + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4013, s_chunk10_Multidata48TemplateA)); + }); + + metadataId = __metadataId; + sequenceNumber = __sequenceNumber; + } + + #endregion + + #region Chunk 10 Subscribe + + private void Subscribe_Chunk10(ApplicationServerTraceEventParser parser, Dictionary> firedEvents) + { + // 3560 ServiceActivationAvailableMemory - Multidata76TemplateA + parser.ServiceActivationAvailableMemory += data => + { + firedEvents["ServiceActivationAvailableMemory"] = new Dictionary + { + { "availableMemoryBytes", data.availableMemoryBytes }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3561 ServiceActivationException - ThreeStringsTemplateEA + parser.ServiceActivationException += data => + { + firedEvents["ServiceActivationException"] = new Dictionary + { + { "data1", data.data1 }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3800 RoutingServiceClosingClient - TwoStringsTemplateA + parser.RoutingServiceClosingClient += data => + { + firedEvents["RoutingServiceClosingClient"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3801 RoutingServiceChannelFaulted - TwoStringsTemplateA + parser.RoutingServiceChannelFaulted += data => + { + firedEvents["RoutingServiceChannelFaulted"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3802 RoutingServiceCompletingOneWay - TwoStringsTemplateEA + parser.RoutingServiceCompletingOneWay += data => + { + firedEvents["RoutingServiceCompletingOneWay"] = new Dictionary + { + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3803 RoutingServiceProcessingFailure - ThreeStringsTemplateEA + parser.RoutingServiceProcessingFailure += data => + { + firedEvents["RoutingServiceProcessingFailure"] = new Dictionary + { + { "data1", data.data1 }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3804 RoutingServiceCreatingClientForEndpoint - TwoStringsTemplateA + parser.RoutingServiceCreatingClientForEndpoint += data => + { + firedEvents["RoutingServiceCreatingClientForEndpoint"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3805 RoutingServiceDisplayConfig - FourStringsTemplateA + parser.RoutingServiceDisplayConfig += data => + { + firedEvents["RoutingServiceDisplayConfig"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "data3", data.data3 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3807 RoutingServiceCompletingTwoWay - OneStringsTemplateA + parser.RoutingServiceCompletingTwoWay += data => + { + firedEvents["RoutingServiceCompletingTwoWay"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + // 3809 RoutingServiceMessageRoutedToEndpoints - ThreeStringsTemplateA + parser.RoutingServiceMessageRoutedToEndpoints += data => + { + firedEvents["RoutingServiceMessageRoutedToEndpoints"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3810 RoutingServiceConfigurationApplied - OneStringsTemplateA + parser.RoutingServiceConfigurationApplied += data => + { + firedEvents["RoutingServiceConfigurationApplied"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + // 3815 RoutingServiceProcessingMessage - FiveStringsTemplateA + parser.RoutingServiceProcessingMessage += data => + { + firedEvents["RoutingServiceProcessingMessage"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "data3", data.data3 }, + { "data4", data.data4 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3816 RoutingServiceTransmittingMessage - FourStringsTemplateA + parser.RoutingServiceTransmittingMessage += data => + { + firedEvents["RoutingServiceTransmittingMessage"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "data3", data.data3 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3817 RoutingServiceCommittingTransaction - TwoStringsTemplateA + parser.RoutingServiceCommittingTransaction += data => + { + firedEvents["RoutingServiceCommittingTransaction"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3818 RoutingServiceDuplexCallbackException - ThreeStringsTemplateEA + parser.RoutingServiceDuplexCallbackException += data => + { + firedEvents["RoutingServiceDuplexCallbackException"] = new Dictionary + { + { "data1", data.data1 }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3819 RoutingServiceMovedToBackup - FourStringsTemplateA + parser.RoutingServiceMovedToBackup += data => + { + firedEvents["RoutingServiceMovedToBackup"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "data3", data.data3 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3820 RoutingServiceCreatingTransaction - TwoStringsTemplateA + parser.RoutingServiceCreatingTransaction += data => + { + firedEvents["RoutingServiceCreatingTransaction"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3821 RoutingServiceCloseFailed - ThreeStringsTemplateEA + parser.RoutingServiceCloseFailed += data => + { + firedEvents["RoutingServiceCloseFailed"] = new Dictionary + { + { "data1", data.data1 }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3822 RoutingServiceSendingResponse - TwoStringsTemplateA + parser.RoutingServiceSendingResponse += data => + { + firedEvents["RoutingServiceSendingResponse"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3823 RoutingServiceSendingFaultResponse - TwoStringsTemplateA + parser.RoutingServiceSendingFaultResponse += data => + { + firedEvents["RoutingServiceSendingFaultResponse"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3824 RoutingServiceCompletingReceiveContext - TwoStringsTemplateA + parser.RoutingServiceCompletingReceiveContext += data => + { + firedEvents["RoutingServiceCompletingReceiveContext"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3825 RoutingServiceAbandoningReceiveContext - TwoStringsTemplateA + parser.RoutingServiceAbandoningReceiveContext += data => + { + firedEvents["RoutingServiceAbandoningReceiveContext"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3826 RoutingServiceUsingExistingTransaction - TwoStringsTemplateA + parser.RoutingServiceUsingExistingTransaction += data => + { + firedEvents["RoutingServiceUsingExistingTransaction"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3827 RoutingServiceTransmitFailed - ThreeStringsTemplateEA + parser.RoutingServiceTransmitFailed += data => + { + firedEvents["RoutingServiceTransmitFailed"] = new Dictionary + { + { "data1", data.data1 }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3828 RoutingServiceFilterTableMatchStart - OneStringsTemplateA + parser.RoutingServiceFilterTableMatchStart += data => + { + firedEvents["RoutingServiceFilterTableMatchStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + // 3829 RoutingServiceFilterTableMatchStop - OneStringsTemplateA + parser.RoutingServiceFilterTableMatchStop += data => + { + firedEvents["RoutingServiceFilterTableMatchStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + // 3830 RoutingServiceAbortingChannel - TwoStringsTemplateA + parser.RoutingServiceAbortingChannel += data => + { + firedEvents["RoutingServiceAbortingChannel"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3831 RoutingServiceHandledException - TwoStringsTemplateEA + parser.RoutingServiceHandledException += data => + { + firedEvents["RoutingServiceHandledException"] = new Dictionary + { + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 3832 RoutingServiceTransmitSucceeded - FourStringsTemplateA + parser.RoutingServiceTransmitSucceeded += data => + { + firedEvents["RoutingServiceTransmitSucceeded"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "data3", data.data3 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 4001 TransportListenerSessionsReceived - Multidata77TemplateA + parser.TransportListenerSessionsReceived += data => + { + firedEvents["TransportListenerSessionsReceived"] = new Dictionary + { + { "via", data.via }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 4002 FailFastException - TwoStringsTemplateEA + parser.FailFastException += data => + { + firedEvents["FailFastException"] = new Dictionary + { + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 4003 ServiceStartPipeError - Multidata78TemplateA + parser.ServiceStartPipeError += data => + { + firedEvents["ServiceStartPipeError"] = new Dictionary + { + { "Endpoint", data.Endpoint }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 4008 DispatchSessionStart - OneStringsTemplateA + parser.DispatchSessionStart += data => + { + firedEvents["DispatchSessionStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + // 4010 PendingSessionQueueFull - Multidata79TemplateA + parser.PendingSessionQueueFull += data => + { + firedEvents["PendingSessionQueueFull"] = new Dictionary + { + { "Uri", data.Uri }, + { "count", data.count }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 4011 MessageQueueRegisterStart - OneStringsTemplateA + parser.MessageQueueRegisterStart += data => + { + firedEvents["MessageQueueRegisterStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + // 4012 MessageQueueRegisterAbort - Multidata81TemplateA + parser.MessageQueueRegisterAbort += data => + { + firedEvents["MessageQueueRegisterAbort"] = new Dictionary + { + { "Status", data.Status }, + { "Uri", data.Uri }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 4013 MessageQueueUnregisterSucceeded - Multidata48TemplateA + parser.MessageQueueUnregisterSucceeded += data => + { + firedEvents["MessageQueueUnregisterSucceeded"] = new Dictionary + { + { "Uri", data.Uri }, + { "AppDomain", data.AppDomain }, + }; + }; + } + + #endregion + + #region Chunk 10 Validate + + private void Validate_Chunk10(Dictionary> firedEvents) + { + // 3560 ServiceActivationAvailableMemory - Multidata76TemplateA + Assert.True(firedEvents.ContainsKey("ServiceActivationAvailableMemory"), "Event ServiceActivationAvailableMemory did not fire."); + Assert.Equal(TestInt64(3560, 0), (long)firedEvents["ServiceActivationAvailableMemory"]["availableMemoryBytes"]); + Assert.Equal(TestString(3560, "AppDomain"), (string)firedEvents["ServiceActivationAvailableMemory"]["AppDomain"]); + + // 3561 ServiceActivationException - ThreeStringsTemplateEA + Assert.True(firedEvents.ContainsKey("ServiceActivationException"), "Event ServiceActivationException did not fire."); + Assert.Equal(TestString(3561, "data1"), (string)firedEvents["ServiceActivationException"]["data1"]); + Assert.Equal(TestString(3561, "SerializedException"), (string)firedEvents["ServiceActivationException"]["SerializedException"]); + Assert.Equal(TestString(3561, "AppDomain"), (string)firedEvents["ServiceActivationException"]["AppDomain"]); + + // 3800 RoutingServiceClosingClient - TwoStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceClosingClient"), "Event RoutingServiceClosingClient did not fire."); + Assert.Equal(TestString(3800, "data1"), (string)firedEvents["RoutingServiceClosingClient"]["data1"]); + Assert.Equal(TestString(3800, "AppDomain"), (string)firedEvents["RoutingServiceClosingClient"]["AppDomain"]); + + // 3801 RoutingServiceChannelFaulted - TwoStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceChannelFaulted"), "Event RoutingServiceChannelFaulted did not fire."); + Assert.Equal(TestString(3801, "data1"), (string)firedEvents["RoutingServiceChannelFaulted"]["data1"]); + Assert.Equal(TestString(3801, "AppDomain"), (string)firedEvents["RoutingServiceChannelFaulted"]["AppDomain"]); + + // 3802 RoutingServiceCompletingOneWay - TwoStringsTemplateEA + Assert.True(firedEvents.ContainsKey("RoutingServiceCompletingOneWay"), "Event RoutingServiceCompletingOneWay did not fire."); + Assert.Equal(TestString(3802, "SerializedException"), (string)firedEvents["RoutingServiceCompletingOneWay"]["SerializedException"]); + Assert.Equal(TestString(3802, "AppDomain"), (string)firedEvents["RoutingServiceCompletingOneWay"]["AppDomain"]); + + // 3803 RoutingServiceProcessingFailure - ThreeStringsTemplateEA + Assert.True(firedEvents.ContainsKey("RoutingServiceProcessingFailure"), "Event RoutingServiceProcessingFailure did not fire."); + Assert.Equal(TestString(3803, "data1"), (string)firedEvents["RoutingServiceProcessingFailure"]["data1"]); + Assert.Equal(TestString(3803, "SerializedException"), (string)firedEvents["RoutingServiceProcessingFailure"]["SerializedException"]); + Assert.Equal(TestString(3803, "AppDomain"), (string)firedEvents["RoutingServiceProcessingFailure"]["AppDomain"]); + + // 3804 RoutingServiceCreatingClientForEndpoint - TwoStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceCreatingClientForEndpoint"), "Event RoutingServiceCreatingClientForEndpoint did not fire."); + Assert.Equal(TestString(3804, "data1"), (string)firedEvents["RoutingServiceCreatingClientForEndpoint"]["data1"]); + Assert.Equal(TestString(3804, "AppDomain"), (string)firedEvents["RoutingServiceCreatingClientForEndpoint"]["AppDomain"]); + + // 3805 RoutingServiceDisplayConfig - FourStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceDisplayConfig"), "Event RoutingServiceDisplayConfig did not fire."); + Assert.Equal(TestString(3805, "data1"), (string)firedEvents["RoutingServiceDisplayConfig"]["data1"]); + Assert.Equal(TestString(3805, "data2"), (string)firedEvents["RoutingServiceDisplayConfig"]["data2"]); + Assert.Equal(TestString(3805, "data3"), (string)firedEvents["RoutingServiceDisplayConfig"]["data3"]); + Assert.Equal(TestString(3805, "AppDomain"), (string)firedEvents["RoutingServiceDisplayConfig"]["AppDomain"]); + + // 3807 RoutingServiceCompletingTwoWay - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceCompletingTwoWay"), "Event RoutingServiceCompletingTwoWay did not fire."); + Assert.Equal(TestString(3807, "AppDomain"), (string)firedEvents["RoutingServiceCompletingTwoWay"]["AppDomain"]); + + // 3809 RoutingServiceMessageRoutedToEndpoints - ThreeStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceMessageRoutedToEndpoints"), "Event RoutingServiceMessageRoutedToEndpoints did not fire."); + Assert.Equal(TestString(3809, "data1"), (string)firedEvents["RoutingServiceMessageRoutedToEndpoints"]["data1"]); + Assert.Equal(TestString(3809, "data2"), (string)firedEvents["RoutingServiceMessageRoutedToEndpoints"]["data2"]); + Assert.Equal(TestString(3809, "AppDomain"), (string)firedEvents["RoutingServiceMessageRoutedToEndpoints"]["AppDomain"]); + + // 3810 RoutingServiceConfigurationApplied - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceConfigurationApplied"), "Event RoutingServiceConfigurationApplied did not fire."); + Assert.Equal(TestString(3810, "AppDomain"), (string)firedEvents["RoutingServiceConfigurationApplied"]["AppDomain"]); + + // 3815 RoutingServiceProcessingMessage - FiveStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceProcessingMessage"), "Event RoutingServiceProcessingMessage did not fire."); + Assert.Equal(TestString(3815, "data1"), (string)firedEvents["RoutingServiceProcessingMessage"]["data1"]); + Assert.Equal(TestString(3815, "data2"), (string)firedEvents["RoutingServiceProcessingMessage"]["data2"]); + Assert.Equal(TestString(3815, "data3"), (string)firedEvents["RoutingServiceProcessingMessage"]["data3"]); + Assert.Equal(TestString(3815, "data4"), (string)firedEvents["RoutingServiceProcessingMessage"]["data4"]); + Assert.Equal(TestString(3815, "AppDomain"), (string)firedEvents["RoutingServiceProcessingMessage"]["AppDomain"]); + + // 3816 RoutingServiceTransmittingMessage - FourStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceTransmittingMessage"), "Event RoutingServiceTransmittingMessage did not fire."); + Assert.Equal(TestString(3816, "data1"), (string)firedEvents["RoutingServiceTransmittingMessage"]["data1"]); + Assert.Equal(TestString(3816, "data2"), (string)firedEvents["RoutingServiceTransmittingMessage"]["data2"]); + Assert.Equal(TestString(3816, "data3"), (string)firedEvents["RoutingServiceTransmittingMessage"]["data3"]); + Assert.Equal(TestString(3816, "AppDomain"), (string)firedEvents["RoutingServiceTransmittingMessage"]["AppDomain"]); + + // 3817 RoutingServiceCommittingTransaction - TwoStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceCommittingTransaction"), "Event RoutingServiceCommittingTransaction did not fire."); + Assert.Equal(TestString(3817, "data1"), (string)firedEvents["RoutingServiceCommittingTransaction"]["data1"]); + Assert.Equal(TestString(3817, "AppDomain"), (string)firedEvents["RoutingServiceCommittingTransaction"]["AppDomain"]); + + // 3818 RoutingServiceDuplexCallbackException - ThreeStringsTemplateEA + Assert.True(firedEvents.ContainsKey("RoutingServiceDuplexCallbackException"), "Event RoutingServiceDuplexCallbackException did not fire."); + Assert.Equal(TestString(3818, "data1"), (string)firedEvents["RoutingServiceDuplexCallbackException"]["data1"]); + Assert.Equal(TestString(3818, "SerializedException"), (string)firedEvents["RoutingServiceDuplexCallbackException"]["SerializedException"]); + Assert.Equal(TestString(3818, "AppDomain"), (string)firedEvents["RoutingServiceDuplexCallbackException"]["AppDomain"]); + + // 3819 RoutingServiceMovedToBackup - FourStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceMovedToBackup"), "Event RoutingServiceMovedToBackup did not fire."); + Assert.Equal(TestString(3819, "data1"), (string)firedEvents["RoutingServiceMovedToBackup"]["data1"]); + Assert.Equal(TestString(3819, "data2"), (string)firedEvents["RoutingServiceMovedToBackup"]["data2"]); + Assert.Equal(TestString(3819, "data3"), (string)firedEvents["RoutingServiceMovedToBackup"]["data3"]); + Assert.Equal(TestString(3819, "AppDomain"), (string)firedEvents["RoutingServiceMovedToBackup"]["AppDomain"]); + + // 3820 RoutingServiceCreatingTransaction - TwoStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceCreatingTransaction"), "Event RoutingServiceCreatingTransaction did not fire."); + Assert.Equal(TestString(3820, "data1"), (string)firedEvents["RoutingServiceCreatingTransaction"]["data1"]); + Assert.Equal(TestString(3820, "AppDomain"), (string)firedEvents["RoutingServiceCreatingTransaction"]["AppDomain"]); + + // 3821 RoutingServiceCloseFailed - ThreeStringsTemplateEA + Assert.True(firedEvents.ContainsKey("RoutingServiceCloseFailed"), "Event RoutingServiceCloseFailed did not fire."); + Assert.Equal(TestString(3821, "data1"), (string)firedEvents["RoutingServiceCloseFailed"]["data1"]); + Assert.Equal(TestString(3821, "SerializedException"), (string)firedEvents["RoutingServiceCloseFailed"]["SerializedException"]); + Assert.Equal(TestString(3821, "AppDomain"), (string)firedEvents["RoutingServiceCloseFailed"]["AppDomain"]); + + // 3822 RoutingServiceSendingResponse - TwoStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceSendingResponse"), "Event RoutingServiceSendingResponse did not fire."); + Assert.Equal(TestString(3822, "data1"), (string)firedEvents["RoutingServiceSendingResponse"]["data1"]); + Assert.Equal(TestString(3822, "AppDomain"), (string)firedEvents["RoutingServiceSendingResponse"]["AppDomain"]); + + // 3823 RoutingServiceSendingFaultResponse - TwoStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceSendingFaultResponse"), "Event RoutingServiceSendingFaultResponse did not fire."); + Assert.Equal(TestString(3823, "data1"), (string)firedEvents["RoutingServiceSendingFaultResponse"]["data1"]); + Assert.Equal(TestString(3823, "AppDomain"), (string)firedEvents["RoutingServiceSendingFaultResponse"]["AppDomain"]); + + // 3824 RoutingServiceCompletingReceiveContext - TwoStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceCompletingReceiveContext"), "Event RoutingServiceCompletingReceiveContext did not fire."); + Assert.Equal(TestString(3824, "data1"), (string)firedEvents["RoutingServiceCompletingReceiveContext"]["data1"]); + Assert.Equal(TestString(3824, "AppDomain"), (string)firedEvents["RoutingServiceCompletingReceiveContext"]["AppDomain"]); + + // 3825 RoutingServiceAbandoningReceiveContext - TwoStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceAbandoningReceiveContext"), "Event RoutingServiceAbandoningReceiveContext did not fire."); + Assert.Equal(TestString(3825, "data1"), (string)firedEvents["RoutingServiceAbandoningReceiveContext"]["data1"]); + Assert.Equal(TestString(3825, "AppDomain"), (string)firedEvents["RoutingServiceAbandoningReceiveContext"]["AppDomain"]); + + // 3826 RoutingServiceUsingExistingTransaction - TwoStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceUsingExistingTransaction"), "Event RoutingServiceUsingExistingTransaction did not fire."); + Assert.Equal(TestString(3826, "data1"), (string)firedEvents["RoutingServiceUsingExistingTransaction"]["data1"]); + Assert.Equal(TestString(3826, "AppDomain"), (string)firedEvents["RoutingServiceUsingExistingTransaction"]["AppDomain"]); + + // 3827 RoutingServiceTransmitFailed - ThreeStringsTemplateEA + Assert.True(firedEvents.ContainsKey("RoutingServiceTransmitFailed"), "Event RoutingServiceTransmitFailed did not fire."); + Assert.Equal(TestString(3827, "data1"), (string)firedEvents["RoutingServiceTransmitFailed"]["data1"]); + Assert.Equal(TestString(3827, "SerializedException"), (string)firedEvents["RoutingServiceTransmitFailed"]["SerializedException"]); + Assert.Equal(TestString(3827, "AppDomain"), (string)firedEvents["RoutingServiceTransmitFailed"]["AppDomain"]); + + // 3828 RoutingServiceFilterTableMatchStart - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceFilterTableMatchStart"), "Event RoutingServiceFilterTableMatchStart did not fire."); + Assert.Equal(TestString(3828, "AppDomain"), (string)firedEvents["RoutingServiceFilterTableMatchStart"]["AppDomain"]); + + // 3829 RoutingServiceFilterTableMatchStop - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceFilterTableMatchStop"), "Event RoutingServiceFilterTableMatchStop did not fire."); + Assert.Equal(TestString(3829, "AppDomain"), (string)firedEvents["RoutingServiceFilterTableMatchStop"]["AppDomain"]); + + // 3830 RoutingServiceAbortingChannel - TwoStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceAbortingChannel"), "Event RoutingServiceAbortingChannel did not fire."); + Assert.Equal(TestString(3830, "data1"), (string)firedEvents["RoutingServiceAbortingChannel"]["data1"]); + Assert.Equal(TestString(3830, "AppDomain"), (string)firedEvents["RoutingServiceAbortingChannel"]["AppDomain"]); + + // 3831 RoutingServiceHandledException - TwoStringsTemplateEA + Assert.True(firedEvents.ContainsKey("RoutingServiceHandledException"), "Event RoutingServiceHandledException did not fire."); + Assert.Equal(TestString(3831, "SerializedException"), (string)firedEvents["RoutingServiceHandledException"]["SerializedException"]); + Assert.Equal(TestString(3831, "AppDomain"), (string)firedEvents["RoutingServiceHandledException"]["AppDomain"]); + + // 3832 RoutingServiceTransmitSucceeded - FourStringsTemplateA + Assert.True(firedEvents.ContainsKey("RoutingServiceTransmitSucceeded"), "Event RoutingServiceTransmitSucceeded did not fire."); + Assert.Equal(TestString(3832, "data1"), (string)firedEvents["RoutingServiceTransmitSucceeded"]["data1"]); + Assert.Equal(TestString(3832, "data2"), (string)firedEvents["RoutingServiceTransmitSucceeded"]["data2"]); + Assert.Equal(TestString(3832, "data3"), (string)firedEvents["RoutingServiceTransmitSucceeded"]["data3"]); + Assert.Equal(TestString(3832, "AppDomain"), (string)firedEvents["RoutingServiceTransmitSucceeded"]["AppDomain"]); + + // 4001 TransportListenerSessionsReceived - Multidata77TemplateA + Assert.True(firedEvents.ContainsKey("TransportListenerSessionsReceived"), "Event TransportListenerSessionsReceived did not fire."); + Assert.Equal(TestString(4001, "via"), (string)firedEvents["TransportListenerSessionsReceived"]["via"]); + Assert.Equal(TestString(4001, "AppDomain"), (string)firedEvents["TransportListenerSessionsReceived"]["AppDomain"]); + + // 4002 FailFastException - TwoStringsTemplateEA + Assert.True(firedEvents.ContainsKey("FailFastException"), "Event FailFastException did not fire."); + Assert.Equal(TestString(4002, "SerializedException"), (string)firedEvents["FailFastException"]["SerializedException"]); + Assert.Equal(TestString(4002, "AppDomain"), (string)firedEvents["FailFastException"]["AppDomain"]); + + // 4003 ServiceStartPipeError - Multidata78TemplateA + Assert.True(firedEvents.ContainsKey("ServiceStartPipeError"), "Event ServiceStartPipeError did not fire."); + Assert.Equal(TestString(4003, "Endpoint"), (string)firedEvents["ServiceStartPipeError"]["Endpoint"]); + Assert.Equal(TestString(4003, "AppDomain"), (string)firedEvents["ServiceStartPipeError"]["AppDomain"]); + + // 4008 DispatchSessionStart - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("DispatchSessionStart"), "Event DispatchSessionStart did not fire."); + Assert.Equal(TestString(4008, "AppDomain"), (string)firedEvents["DispatchSessionStart"]["AppDomain"]); + + // 4010 PendingSessionQueueFull - Multidata79TemplateA + Assert.True(firedEvents.ContainsKey("PendingSessionQueueFull"), "Event PendingSessionQueueFull did not fire."); + Assert.Equal(TestString(4010, "Uri"), (string)firedEvents["PendingSessionQueueFull"]["Uri"]); + Assert.Equal(TestInt32(4010, 1), (int)firedEvents["PendingSessionQueueFull"]["count"]); + Assert.Equal(TestString(4010, "AppDomain"), (string)firedEvents["PendingSessionQueueFull"]["AppDomain"]); + + // 4011 MessageQueueRegisterStart - OneStringsTemplateA + Assert.True(firedEvents.ContainsKey("MessageQueueRegisterStart"), "Event MessageQueueRegisterStart did not fire."); + Assert.Equal(TestString(4011, "AppDomain"), (string)firedEvents["MessageQueueRegisterStart"]["AppDomain"]); + + // 4012 MessageQueueRegisterAbort - Multidata81TemplateA + Assert.True(firedEvents.ContainsKey("MessageQueueRegisterAbort"), "Event MessageQueueRegisterAbort did not fire."); + Assert.Equal(TestString(4012, "Status"), (string)firedEvents["MessageQueueRegisterAbort"]["Status"]); + Assert.Equal(TestString(4012, "Uri"), (string)firedEvents["MessageQueueRegisterAbort"]["Uri"]); + Assert.Equal(TestString(4012, "AppDomain"), (string)firedEvents["MessageQueueRegisterAbort"]["AppDomain"]); + + // 4013 MessageQueueUnregisterSucceeded - Multidata48TemplateA + Assert.True(firedEvents.ContainsKey("MessageQueueUnregisterSucceeded"), "Event MessageQueueUnregisterSucceeded did not fire."); + Assert.Equal(TestString(4013, "Uri"), (string)firedEvents["MessageQueueUnregisterSucceeded"]["Uri"]); + Assert.Equal(TestString(4013, "AppDomain"), (string)firedEvents["MessageQueueUnregisterSucceeded"]["AppDomain"]); + } + + #endregion + } +} diff --git a/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk11.cs b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk11.cs new file mode 100644 index 000000000..8ba813158 --- /dev/null +++ b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk11.cs @@ -0,0 +1,718 @@ +using Microsoft.Diagnostics.Tracing; +using Microsoft.Diagnostics.Tracing.Parsers; +using Microsoft.Diagnostics.Tracing.Parsers.ApplicationServer; +using System; +using System.Collections.Generic; +using Xunit; + +namespace TraceEventTests.Parsers +{ + public partial class ApplicationServerTraceEventParserTests + { + #region Chunk 11 Template Fields + + private static readonly TemplateField[] s_multidata48TemplateAFields = new TemplateField[] + { + new TemplateField("Uri", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata80TemplateAFields = new TemplateField[] + { + new TemplateField("Uri", FieldType.UnicodeString), + new TemplateField("Status", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata82TemplateAFields = new TemplateField[] + { + new TemplateField("hresult", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_multidata83TemplateAFields = new TemplateField[] + { + new TemplateField("curr", FieldType.Int32), + new TemplateField("max", FieldType.Int32), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk11_oneStringsTemplateAFields = new TemplateField[] + { + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk11_threeStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_threeStringsTemplateEAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("SerializedException", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_chunk11_twoStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_twoStringsTemplateEAFields = new TemplateField[] + { + new TemplateField("SerializedException", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + #endregion + + #region Chunk 11 Metadata + + private void WriteMetadata_Chunk11(EventPipeWriterV5 writer, ref int metadataId) + { + writer.WriteMetadataBlock( + // 4014 MessageQueueRegisterFailed (Multidata80TemplateA) + new EventMetadata(metadataId++, ProviderName, "MessageQueueRegisterFailed", 4014), + // 4015 MessageQueueRegisterCompleted (Multidata48TemplateA) + new EventMetadata(metadataId++, ProviderName, "MessageQueueRegisterCompleted", 4015), + // 4016 MessageQueueDuplicatedSocketError (OneStringsTemplateA) + new EventMetadata(metadataId++, ProviderName, "MessageQueueDuplicatedSocketError", 4016), + // 4019 MessageQueueDuplicatedSocketComplete (OneStringsTemplateA) opcode=2 + new EventMetadata(metadataId++, ProviderName, "MessageQueueDuplicatedSocketComplete", 4019) { OpCode = 2 }, + // 4020 TcpTransportListenerListeningStart (Multidata48TemplateA) opcode=1 + new EventMetadata(metadataId++, ProviderName, "TcpTransportListenerListeningStart", 4020) { OpCode = 1 }, + // 4021 TcpTransportListenerListeningStop (OneStringsTemplateA) opcode=2 + new EventMetadata(metadataId++, ProviderName, "TcpTransportListenerListeningStop", 4021) { OpCode = 2 }, + // 4022 WebhostUnregisterProtocolFailed (Multidata82TemplateA) + new EventMetadata(metadataId++, ProviderName, "WebhostUnregisterProtocolFailed", 4022), + // 4023 WasCloseAllListenerChannelInstancesCompleted (OneStringsTemplateA) opcode=2 + new EventMetadata(metadataId++, ProviderName, "WasCloseAllListenerChannelInstancesCompleted", 4023) { OpCode = 2 }, + // 4024 WasCloseAllListenerChannelInstancesFailed (Multidata82TemplateA) opcode=2 + new EventMetadata(metadataId++, ProviderName, "WasCloseAllListenerChannelInstancesFailed", 4024) { OpCode = 2 }, + // 4025 OpenListenerChannelInstanceFailed (Multidata82TemplateA) + new EventMetadata(metadataId++, ProviderName, "OpenListenerChannelInstanceFailed", 4025), + // 4026 WasConnected (OneStringsTemplateA) opcode=132 + new EventMetadata(metadataId++, ProviderName, "WasConnected", 4026) { OpCode = 132 }, + // 4027 WasDisconnected (OneStringsTemplateA) opcode=133 + new EventMetadata(metadataId++, ProviderName, "WasDisconnected", 4027) { OpCode = 133 }, + // 4028 PipeTransportListenerListeningStart (Multidata48TemplateA) opcode=1 + new EventMetadata(metadataId++, ProviderName, "PipeTransportListenerListeningStart", 4028) { OpCode = 1 }, + // 4029 PipeTransportListenerListeningStop (OneStringsTemplateA) opcode=2 + new EventMetadata(metadataId++, ProviderName, "PipeTransportListenerListeningStop", 4029) { OpCode = 2 }, + // 4030 DispatchSessionSuccess (OneStringsTemplateA) opcode=2 + new EventMetadata(metadataId++, ProviderName, "DispatchSessionSuccess", 4030) { OpCode = 2 }, + // 4031 DispatchSessionFailed (OneStringsTemplateA) + new EventMetadata(metadataId++, ProviderName, "DispatchSessionFailed", 4031), + // 4032 WasConnectionTimedout (OneStringsTemplateA) + new EventMetadata(metadataId++, ProviderName, "WasConnectionTimedout", 4032), + // 4033 RoutingTableLookupStart (OneStringsTemplateA) opcode=1 + new EventMetadata(metadataId++, ProviderName, "RoutingTableLookupStart", 4033) { OpCode = 1 }, + // 4034 RoutingTableLookupStop (OneStringsTemplateA) opcode=2 + new EventMetadata(metadataId++, ProviderName, "RoutingTableLookupStop", 4034) { OpCode = 2 }, + // 4035 PendingSessionQueueRatio (Multidata83TemplateA) + new EventMetadata(metadataId++, ProviderName, "PendingSessionQueueRatio", 4035), + // 4201 EndSqlCommandExecute (TwoStringsTemplateA) opcode=2 + new EventMetadata(metadataId++, ProviderName, "EndSqlCommandExecute", 4201) { OpCode = 2 }, + // 4202 StartSqlCommandExecute (TwoStringsTemplateA) opcode=1 + new EventMetadata(metadataId++, ProviderName, "StartSqlCommandExecute", 4202) { OpCode = 1 }, + // 4203 RenewLockSystemError (OneStringsTemplateA) + new EventMetadata(metadataId++, ProviderName, "RenewLockSystemError", 4203), + // 4205 FoundProcessingError (ThreeStringsTemplateEA) + new EventMetadata(metadataId++, ProviderName, "FoundProcessingError", 4205), + // 4206 UnlockInstanceException (TwoStringsTemplateA) + new EventMetadata(metadataId++, ProviderName, "UnlockInstanceException", 4206), + // 4207 MaximumRetriesExceededForSqlCommand (OneStringsTemplateA) + new EventMetadata(metadataId++, ProviderName, "MaximumRetriesExceededForSqlCommand", 4207), + // 4208 RetryingSqlCommandDueToSqlError (TwoStringsTemplateA) + new EventMetadata(metadataId++, ProviderName, "RetryingSqlCommandDueToSqlError", 4208), + // 4209 TimeoutOpeningSqlConnection (TwoStringsTemplateA) + new EventMetadata(metadataId++, ProviderName, "TimeoutOpeningSqlConnection", 4209), + // 4210 SqlExceptionCaught (ThreeStringsTemplateA) + new EventMetadata(metadataId++, ProviderName, "SqlExceptionCaught", 4210), + // 4211 QueuingSqlRetry (TwoStringsTemplateA) + new EventMetadata(metadataId++, ProviderName, "QueuingSqlRetry", 4211), + // 4212 LockRetryTimeout (TwoStringsTemplateA) + new EventMetadata(metadataId++, ProviderName, "LockRetryTimeout", 4212), + // 4213 RunnableInstancesDetectionError (TwoStringsTemplateEA) + new EventMetadata(metadataId++, ProviderName, "RunnableInstancesDetectionError", 4213), + // 4214 InstanceLocksRecoveryError (TwoStringsTemplateEA) + new EventMetadata(metadataId++, ProviderName, "InstanceLocksRecoveryError", 4214), + // 4600 MessageLogEventSizeExceeded (OneStringsTemplateA) + new EventMetadata(metadataId++, ProviderName, "MessageLogEventSizeExceeded", 4600), + // 4801 DiscoveryClientInClientChannelFailedToClose (TwoStringsTemplateEA) opcode=30 + new EventMetadata(metadataId++, ProviderName, "DiscoveryClientInClientChannelFailedToClose", 4801) { OpCode = 30 }, + // 4802 DiscoveryClientProtocolExceptionSuppressed (TwoStringsTemplateEA) opcode=29 + new EventMetadata(metadataId++, ProviderName, "DiscoveryClientProtocolExceptionSuppressed", 4802) { OpCode = 29 }, + // 4803 DiscoveryClientReceivedMulticastSuppression (OneStringsTemplateA) opcode=31 + new EventMetadata(metadataId++, ProviderName, "DiscoveryClientReceivedMulticastSuppression", 4803) { OpCode = 31 } + ); + } + + #endregion + + #region Chunk 11 Events + + private void WriteEvents_Chunk11(EventPipeWriterV5 writer, ref int metadataId, ref int sequenceNumber) + { + int __metadataId = metadataId; + int __sequenceNumber = sequenceNumber; + writer.WriteEventBlock(w => + { + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4014, s_multidata80TemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4015, s_multidata48TemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4016, s_chunk11_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4019, s_chunk11_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4020, s_multidata48TemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4021, s_chunk11_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4022, s_multidata82TemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4023, s_chunk11_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4024, s_multidata82TemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4025, s_multidata82TemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4026, s_chunk11_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4027, s_chunk11_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4028, s_multidata48TemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4029, s_chunk11_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4030, s_chunk11_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4031, s_chunk11_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4032, s_chunk11_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4033, s_chunk11_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4034, s_chunk11_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4035, s_multidata83TemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4201, s_chunk11_twoStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4202, s_chunk11_twoStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4203, s_chunk11_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4205, s_threeStringsTemplateEAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4206, s_chunk11_twoStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4207, s_chunk11_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4208, s_chunk11_twoStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4209, s_chunk11_twoStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4210, s_chunk11_threeStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4211, s_chunk11_twoStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4212, s_chunk11_twoStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4213, s_twoStringsTemplateEAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4214, s_twoStringsTemplateEAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4600, s_chunk11_oneStringsTemplateAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4801, s_twoStringsTemplateEAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4802, s_twoStringsTemplateEAFields)); + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4803, s_chunk11_oneStringsTemplateAFields)); + }); + + metadataId = __metadataId; + sequenceNumber = __sequenceNumber; + } + + #endregion + + #region Chunk 11 Subscription + + private void Subscribe_Chunk11(ApplicationServerTraceEventParser parser, Dictionary> firedEvents) + { + // 4014 MessageQueueRegisterFailed (Multidata80TemplateA) + parser.MessageQueueRegisterFailed += delegate (Multidata80TemplateATraceData data) + { + var fields = new Dictionary(); + fields["Uri"] = data.Uri; + fields["Status"] = data.Status; + fields["AppDomain"] = data.AppDomain; + firedEvents["MessageQueueRegisterFailed"] = fields; + }; + + // 4015 MessageQueueRegisterCompleted (Multidata48TemplateA) + parser.MessageQueueRegisterCompleted += delegate (Multidata48TemplateATraceData data) + { + var fields = new Dictionary(); + fields["Uri"] = data.Uri; + fields["AppDomain"] = data.AppDomain; + firedEvents["MessageQueueRegisterCompleted"] = fields; + }; + + // 4016 MessageQueueDuplicatedSocketError (OneStringsTemplateA) + parser.MessageQueueDuplicatedSocketError += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["MessageQueueDuplicatedSocketError"] = fields; + }; + + // 4019 MessageQueueDuplicatedSocketComplete (OneStringsTemplateA) + parser.MessageQueueDuplicatedSocketComplete += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["MessageQueueDuplicatedSocketComplete"] = fields; + }; + + // 4020 TcpTransportListenerListeningStart (Multidata48TemplateA) + parser.TcpTransportListenerListeningStart += delegate (Multidata48TemplateATraceData data) + { + var fields = new Dictionary(); + fields["Uri"] = data.Uri; + fields["AppDomain"] = data.AppDomain; + firedEvents["TcpTransportListenerListeningStart"] = fields; + }; + + // 4021 TcpTransportListenerListeningStop (OneStringsTemplateA) + parser.TcpTransportListenerListeningStop += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["TcpTransportListenerListeningStop"] = fields; + }; + + // 4022 WebhostUnregisterProtocolFailed (Multidata82TemplateA) + parser.WebhostUnregisterProtocolFailed += delegate (Multidata82TemplateATraceData data) + { + var fields = new Dictionary(); + fields["hresult"] = data.hresult; + fields["AppDomain"] = data.AppDomain; + firedEvents["WebhostUnregisterProtocolFailed"] = fields; + }; + + // 4023 WasCloseAllListenerChannelInstancesCompleted (OneStringsTemplateA) + parser.WasCloseAllListenerChannelInstancesCompleted += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["WasCloseAllListenerChannelInstancesCompleted"] = fields; + }; + + // 4024 WasCloseAllListenerChannelInstancesFailed (Multidata82TemplateA) + parser.WasCloseAllListenerChannelInstancesFailed += delegate (Multidata82TemplateATraceData data) + { + var fields = new Dictionary(); + fields["hresult"] = data.hresult; + fields["AppDomain"] = data.AppDomain; + firedEvents["WasCloseAllListenerChannelInstancesFailed"] = fields; + }; + + // 4025 OpenListenerChannelInstanceFailed (Multidata82TemplateA) + parser.OpenListenerChannelInstanceFailed += delegate (Multidata82TemplateATraceData data) + { + var fields = new Dictionary(); + fields["hresult"] = data.hresult; + fields["AppDomain"] = data.AppDomain; + firedEvents["OpenListenerChannelInstanceFailed"] = fields; + }; + + // 4026 WasConnected (OneStringsTemplateA) + parser.WasConnected += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["WasConnected"] = fields; + }; + + // 4027 WasDisconnected (OneStringsTemplateA) + parser.WasDisconnected += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["WasDisconnected"] = fields; + }; + + // 4028 PipeTransportListenerListeningStart (Multidata48TemplateA) + parser.PipeTransportListenerListeningStart += delegate (Multidata48TemplateATraceData data) + { + var fields = new Dictionary(); + fields["Uri"] = data.Uri; + fields["AppDomain"] = data.AppDomain; + firedEvents["PipeTransportListenerListeningStart"] = fields; + }; + + // 4029 PipeTransportListenerListeningStop (OneStringsTemplateA) + parser.PipeTransportListenerListeningStop += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["PipeTransportListenerListeningStop"] = fields; + }; + + // 4030 DispatchSessionSuccess (OneStringsTemplateA) + parser.DispatchSessionSuccess += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["DispatchSessionSuccess"] = fields; + }; + + // 4031 DispatchSessionFailed (OneStringsTemplateA) + parser.DispatchSessionFailed += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["DispatchSessionFailed"] = fields; + }; + + // 4032 WasConnectionTimedout (OneStringsTemplateA) + parser.WasConnectionTimedout += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["WasConnectionTimedout"] = fields; + }; + + // 4033 RoutingTableLookupStart (OneStringsTemplateA) + parser.RoutingTableLookupStart += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["RoutingTableLookupStart"] = fields; + }; + + // 4034 RoutingTableLookupStop (OneStringsTemplateA) + parser.RoutingTableLookupStop += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["RoutingTableLookupStop"] = fields; + }; + + // 4035 PendingSessionQueueRatio (Multidata83TemplateA) + parser.PendingSessionQueueRatio += delegate (Multidata83TemplateATraceData data) + { + var fields = new Dictionary(); + fields["curr"] = data.curr; + fields["max"] = data.max; + fields["AppDomain"] = data.AppDomain; + firedEvents["PendingSessionQueueRatio"] = fields; + }; + + // 4201 EndSqlCommandExecute (TwoStringsTemplateA) + parser.EndSqlCommandExecute += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["EndSqlCommandExecute"] = fields; + }; + + // 4202 StartSqlCommandExecute (TwoStringsTemplateA) + parser.StartSqlCommandExecute += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["StartSqlCommandExecute"] = fields; + }; + + // 4203 RenewLockSystemError (OneStringsTemplateA) + parser.RenewLockSystemError += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["RenewLockSystemError"] = fields; + }; + + // 4205 FoundProcessingError (ThreeStringsTemplateEA) + parser.FoundProcessingError += delegate (ThreeStringsTemplateEATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["SerializedException"] = data.SerializedException; + fields["AppDomain"] = data.AppDomain; + firedEvents["FoundProcessingError"] = fields; + }; + + // 4206 UnlockInstanceException (TwoStringsTemplateA) + parser.UnlockInstanceException += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["UnlockInstanceException"] = fields; + }; + + // 4207 MaximumRetriesExceededForSqlCommand (OneStringsTemplateA) + parser.MaximumRetriesExceededForSqlCommand += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["MaximumRetriesExceededForSqlCommand"] = fields; + }; + + // 4208 RetryingSqlCommandDueToSqlError (TwoStringsTemplateA) + parser.RetryingSqlCommandDueToSqlError += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["RetryingSqlCommandDueToSqlError"] = fields; + }; + + // 4209 TimeoutOpeningSqlConnection (TwoStringsTemplateA) + parser.TimeoutOpeningSqlConnection += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["TimeoutOpeningSqlConnection"] = fields; + }; + + // 4210 SqlExceptionCaught (ThreeStringsTemplateA) + parser.SqlExceptionCaught += delegate (ThreeStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["data2"] = data.data2; + fields["AppDomain"] = data.AppDomain; + firedEvents["SqlExceptionCaught"] = fields; + }; + + // 4211 QueuingSqlRetry (TwoStringsTemplateA) + parser.QueuingSqlRetry += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["QueuingSqlRetry"] = fields; + }; + + // 4212 LockRetryTimeout (TwoStringsTemplateA) + parser.LockRetryTimeout += delegate (TwoStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["data1"] = data.data1; + fields["AppDomain"] = data.AppDomain; + firedEvents["LockRetryTimeout"] = fields; + }; + + // 4213 RunnableInstancesDetectionError (TwoStringsTemplateEA) + parser.RunnableInstancesDetectionError += delegate (TwoStringsTemplateEATraceData data) + { + var fields = new Dictionary(); + fields["SerializedException"] = data.SerializedException; + fields["AppDomain"] = data.AppDomain; + firedEvents["RunnableInstancesDetectionError"] = fields; + }; + + // 4214 InstanceLocksRecoveryError (TwoStringsTemplateEA) + parser.InstanceLocksRecoveryError += delegate (TwoStringsTemplateEATraceData data) + { + var fields = new Dictionary(); + fields["SerializedException"] = data.SerializedException; + fields["AppDomain"] = data.AppDomain; + firedEvents["InstanceLocksRecoveryError"] = fields; + }; + + // 4600 MessageLogEventSizeExceeded (OneStringsTemplateA) + parser.MessageLogEventSizeExceeded += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["MessageLogEventSizeExceeded"] = fields; + }; + + // 4801 DiscoveryClientInClientChannelFailedToClose (TwoStringsTemplateEA) + parser.DiscoveryClientInClientChannelFailedToClose += delegate (TwoStringsTemplateEATraceData data) + { + var fields = new Dictionary(); + fields["SerializedException"] = data.SerializedException; + fields["AppDomain"] = data.AppDomain; + firedEvents["DiscoveryClientInClientChannelFailedToClose"] = fields; + }; + + // 4802 DiscoveryClientProtocolExceptionSuppressed (TwoStringsTemplateEA) + parser.DiscoveryClientProtocolExceptionSuppressed += delegate (TwoStringsTemplateEATraceData data) + { + var fields = new Dictionary(); + fields["SerializedException"] = data.SerializedException; + fields["AppDomain"] = data.AppDomain; + firedEvents["DiscoveryClientProtocolExceptionSuppressed"] = fields; + }; + + // 4803 DiscoveryClientReceivedMulticastSuppression (OneStringsTemplateA) + parser.DiscoveryClientReceivedMulticastSuppression += delegate (OneStringsTemplateATraceData data) + { + var fields = new Dictionary(); + fields["AppDomain"] = data.AppDomain; + firedEvents["DiscoveryClientReceivedMulticastSuppression"] = fields; + }; + } + + #endregion + + #region Chunk 11 Validation + + private void Validate_Chunk11(Dictionary> firedEvents) + { + // 4014 MessageQueueRegisterFailed (Multidata80TemplateA) + Assert.True(firedEvents.ContainsKey("MessageQueueRegisterFailed"), "MessageQueueRegisterFailed (4014) did not fire"); + Assert.Equal(TestString(4014, "Uri"), firedEvents["MessageQueueRegisterFailed"]["Uri"]); + Assert.Equal(TestString(4014, "Status"), firedEvents["MessageQueueRegisterFailed"]["Status"]); + Assert.Equal(TestString(4014, "AppDomain"), firedEvents["MessageQueueRegisterFailed"]["AppDomain"]); + + // 4015 MessageQueueRegisterCompleted (Multidata48TemplateA) + Assert.True(firedEvents.ContainsKey("MessageQueueRegisterCompleted"), "MessageQueueRegisterCompleted (4015) did not fire"); + Assert.Equal(TestString(4015, "Uri"), firedEvents["MessageQueueRegisterCompleted"]["Uri"]); + Assert.Equal(TestString(4015, "AppDomain"), firedEvents["MessageQueueRegisterCompleted"]["AppDomain"]); + + // 4016 MessageQueueDuplicatedSocketError (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("MessageQueueDuplicatedSocketError"), "MessageQueueDuplicatedSocketError (4016) did not fire"); + Assert.Equal(TestString(4016, "AppDomain"), firedEvents["MessageQueueDuplicatedSocketError"]["AppDomain"]); + + // 4019 MessageQueueDuplicatedSocketComplete (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("MessageQueueDuplicatedSocketComplete"), "MessageQueueDuplicatedSocketComplete (4019) did not fire"); + Assert.Equal(TestString(4019, "AppDomain"), firedEvents["MessageQueueDuplicatedSocketComplete"]["AppDomain"]); + + // 4020 TcpTransportListenerListeningStart (Multidata48TemplateA) + Assert.True(firedEvents.ContainsKey("TcpTransportListenerListeningStart"), "TcpTransportListenerListeningStart (4020) did not fire"); + Assert.Equal(TestString(4020, "Uri"), firedEvents["TcpTransportListenerListeningStart"]["Uri"]); + Assert.Equal(TestString(4020, "AppDomain"), firedEvents["TcpTransportListenerListeningStart"]["AppDomain"]); + + // 4021 TcpTransportListenerListeningStop (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("TcpTransportListenerListeningStop"), "TcpTransportListenerListeningStop (4021) did not fire"); + Assert.Equal(TestString(4021, "AppDomain"), firedEvents["TcpTransportListenerListeningStop"]["AppDomain"]); + + // 4022 WebhostUnregisterProtocolFailed (Multidata82TemplateA) + Assert.True(firedEvents.ContainsKey("WebhostUnregisterProtocolFailed"), "WebhostUnregisterProtocolFailed (4022) did not fire"); + Assert.Equal(TestString(4022, "hresult"), firedEvents["WebhostUnregisterProtocolFailed"]["hresult"]); + Assert.Equal(TestString(4022, "AppDomain"), firedEvents["WebhostUnregisterProtocolFailed"]["AppDomain"]); + + // 4023 WasCloseAllListenerChannelInstancesCompleted (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("WasCloseAllListenerChannelInstancesCompleted"), "WasCloseAllListenerChannelInstancesCompleted (4023) did not fire"); + Assert.Equal(TestString(4023, "AppDomain"), firedEvents["WasCloseAllListenerChannelInstancesCompleted"]["AppDomain"]); + + // 4024 WasCloseAllListenerChannelInstancesFailed (Multidata82TemplateA) + Assert.True(firedEvents.ContainsKey("WasCloseAllListenerChannelInstancesFailed"), "WasCloseAllListenerChannelInstancesFailed (4024) did not fire"); + Assert.Equal(TestString(4024, "hresult"), firedEvents["WasCloseAllListenerChannelInstancesFailed"]["hresult"]); + Assert.Equal(TestString(4024, "AppDomain"), firedEvents["WasCloseAllListenerChannelInstancesFailed"]["AppDomain"]); + + // 4025 OpenListenerChannelInstanceFailed (Multidata82TemplateA) + Assert.True(firedEvents.ContainsKey("OpenListenerChannelInstanceFailed"), "OpenListenerChannelInstanceFailed (4025) did not fire"); + Assert.Equal(TestString(4025, "hresult"), firedEvents["OpenListenerChannelInstanceFailed"]["hresult"]); + Assert.Equal(TestString(4025, "AppDomain"), firedEvents["OpenListenerChannelInstanceFailed"]["AppDomain"]); + + // 4026 WasConnected (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("WasConnected"), "WasConnected (4026) did not fire"); + Assert.Equal(TestString(4026, "AppDomain"), firedEvents["WasConnected"]["AppDomain"]); + + // 4027 WasDisconnected (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("WasDisconnected"), "WasDisconnected (4027) did not fire"); + Assert.Equal(TestString(4027, "AppDomain"), firedEvents["WasDisconnected"]["AppDomain"]); + + // 4028 PipeTransportListenerListeningStart (Multidata48TemplateA) + Assert.True(firedEvents.ContainsKey("PipeTransportListenerListeningStart"), "PipeTransportListenerListeningStart (4028) did not fire"); + Assert.Equal(TestString(4028, "Uri"), firedEvents["PipeTransportListenerListeningStart"]["Uri"]); + Assert.Equal(TestString(4028, "AppDomain"), firedEvents["PipeTransportListenerListeningStart"]["AppDomain"]); + + // 4029 PipeTransportListenerListeningStop (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("PipeTransportListenerListeningStop"), "PipeTransportListenerListeningStop (4029) did not fire"); + Assert.Equal(TestString(4029, "AppDomain"), firedEvents["PipeTransportListenerListeningStop"]["AppDomain"]); + + // 4030 DispatchSessionSuccess (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("DispatchSessionSuccess"), "DispatchSessionSuccess (4030) did not fire"); + Assert.Equal(TestString(4030, "AppDomain"), firedEvents["DispatchSessionSuccess"]["AppDomain"]); + + // 4031 DispatchSessionFailed (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("DispatchSessionFailed"), "DispatchSessionFailed (4031) did not fire"); + Assert.Equal(TestString(4031, "AppDomain"), firedEvents["DispatchSessionFailed"]["AppDomain"]); + + // 4032 WasConnectionTimedout (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("WasConnectionTimedout"), "WasConnectionTimedout (4032) did not fire"); + Assert.Equal(TestString(4032, "AppDomain"), firedEvents["WasConnectionTimedout"]["AppDomain"]); + + // 4033 RoutingTableLookupStart (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("RoutingTableLookupStart"), "RoutingTableLookupStart (4033) did not fire"); + Assert.Equal(TestString(4033, "AppDomain"), firedEvents["RoutingTableLookupStart"]["AppDomain"]); + + // 4034 RoutingTableLookupStop (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("RoutingTableLookupStop"), "RoutingTableLookupStop (4034) did not fire"); + Assert.Equal(TestString(4034, "AppDomain"), firedEvents["RoutingTableLookupStop"]["AppDomain"]); + + // 4035 PendingSessionQueueRatio (Multidata83TemplateA) + Assert.True(firedEvents.ContainsKey("PendingSessionQueueRatio"), "PendingSessionQueueRatio (4035) did not fire"); + Assert.Equal(TestInt32(4035, 0), firedEvents["PendingSessionQueueRatio"]["curr"]); + Assert.Equal(TestInt32(4035, 1), firedEvents["PendingSessionQueueRatio"]["max"]); + Assert.Equal(TestString(4035, "AppDomain"), firedEvents["PendingSessionQueueRatio"]["AppDomain"]); + + // 4201 EndSqlCommandExecute (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("EndSqlCommandExecute"), "EndSqlCommandExecute (4201) did not fire"); + Assert.Equal(TestString(4201, "data1"), firedEvents["EndSqlCommandExecute"]["data1"]); + Assert.Equal(TestString(4201, "AppDomain"), firedEvents["EndSqlCommandExecute"]["AppDomain"]); + + // 4202 StartSqlCommandExecute (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("StartSqlCommandExecute"), "StartSqlCommandExecute (4202) did not fire"); + Assert.Equal(TestString(4202, "data1"), firedEvents["StartSqlCommandExecute"]["data1"]); + Assert.Equal(TestString(4202, "AppDomain"), firedEvents["StartSqlCommandExecute"]["AppDomain"]); + + // 4203 RenewLockSystemError (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("RenewLockSystemError"), "RenewLockSystemError (4203) did not fire"); + Assert.Equal(TestString(4203, "AppDomain"), firedEvents["RenewLockSystemError"]["AppDomain"]); + + // 4205 FoundProcessingError (ThreeStringsTemplateEA) + Assert.True(firedEvents.ContainsKey("FoundProcessingError"), "FoundProcessingError (4205) did not fire"); + Assert.Equal(TestString(4205, "data1"), firedEvents["FoundProcessingError"]["data1"]); + Assert.Equal(TestString(4205, "SerializedException"), firedEvents["FoundProcessingError"]["SerializedException"]); + Assert.Equal(TestString(4205, "AppDomain"), firedEvents["FoundProcessingError"]["AppDomain"]); + + // 4206 UnlockInstanceException (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("UnlockInstanceException"), "UnlockInstanceException (4206) did not fire"); + Assert.Equal(TestString(4206, "data1"), firedEvents["UnlockInstanceException"]["data1"]); + Assert.Equal(TestString(4206, "AppDomain"), firedEvents["UnlockInstanceException"]["AppDomain"]); + + // 4207 MaximumRetriesExceededForSqlCommand (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("MaximumRetriesExceededForSqlCommand"), "MaximumRetriesExceededForSqlCommand (4207) did not fire"); + Assert.Equal(TestString(4207, "AppDomain"), firedEvents["MaximumRetriesExceededForSqlCommand"]["AppDomain"]); + + // 4208 RetryingSqlCommandDueToSqlError (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("RetryingSqlCommandDueToSqlError"), "RetryingSqlCommandDueToSqlError (4208) did not fire"); + Assert.Equal(TestString(4208, "data1"), firedEvents["RetryingSqlCommandDueToSqlError"]["data1"]); + Assert.Equal(TestString(4208, "AppDomain"), firedEvents["RetryingSqlCommandDueToSqlError"]["AppDomain"]); + + // 4209 TimeoutOpeningSqlConnection (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("TimeoutOpeningSqlConnection"), "TimeoutOpeningSqlConnection (4209) did not fire"); + Assert.Equal(TestString(4209, "data1"), firedEvents["TimeoutOpeningSqlConnection"]["data1"]); + Assert.Equal(TestString(4209, "AppDomain"), firedEvents["TimeoutOpeningSqlConnection"]["AppDomain"]); + + // 4210 SqlExceptionCaught (ThreeStringsTemplateA) + Assert.True(firedEvents.ContainsKey("SqlExceptionCaught"), "SqlExceptionCaught (4210) did not fire"); + Assert.Equal(TestString(4210, "data1"), firedEvents["SqlExceptionCaught"]["data1"]); + Assert.Equal(TestString(4210, "data2"), firedEvents["SqlExceptionCaught"]["data2"]); + Assert.Equal(TestString(4210, "AppDomain"), firedEvents["SqlExceptionCaught"]["AppDomain"]); + + // 4211 QueuingSqlRetry (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("QueuingSqlRetry"), "QueuingSqlRetry (4211) did not fire"); + Assert.Equal(TestString(4211, "data1"), firedEvents["QueuingSqlRetry"]["data1"]); + Assert.Equal(TestString(4211, "AppDomain"), firedEvents["QueuingSqlRetry"]["AppDomain"]); + + // 4212 LockRetryTimeout (TwoStringsTemplateA) + Assert.True(firedEvents.ContainsKey("LockRetryTimeout"), "LockRetryTimeout (4212) did not fire"); + Assert.Equal(TestString(4212, "data1"), firedEvents["LockRetryTimeout"]["data1"]); + Assert.Equal(TestString(4212, "AppDomain"), firedEvents["LockRetryTimeout"]["AppDomain"]); + + // 4213 RunnableInstancesDetectionError (TwoStringsTemplateEA) + Assert.True(firedEvents.ContainsKey("RunnableInstancesDetectionError"), "RunnableInstancesDetectionError (4213) did not fire"); + Assert.Equal(TestString(4213, "SerializedException"), firedEvents["RunnableInstancesDetectionError"]["SerializedException"]); + Assert.Equal(TestString(4213, "AppDomain"), firedEvents["RunnableInstancesDetectionError"]["AppDomain"]); + + // 4214 InstanceLocksRecoveryError (TwoStringsTemplateEA) + Assert.True(firedEvents.ContainsKey("InstanceLocksRecoveryError"), "InstanceLocksRecoveryError (4214) did not fire"); + Assert.Equal(TestString(4214, "SerializedException"), firedEvents["InstanceLocksRecoveryError"]["SerializedException"]); + Assert.Equal(TestString(4214, "AppDomain"), firedEvents["InstanceLocksRecoveryError"]["AppDomain"]); + + // 4600 MessageLogEventSizeExceeded (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("MessageLogEventSizeExceeded"), "MessageLogEventSizeExceeded (4600) did not fire"); + Assert.Equal(TestString(4600, "AppDomain"), firedEvents["MessageLogEventSizeExceeded"]["AppDomain"]); + + // 4801 DiscoveryClientInClientChannelFailedToClose (TwoStringsTemplateEA) + Assert.True(firedEvents.ContainsKey("DiscoveryClientInClientChannelFailedToClose"), "DiscoveryClientInClientChannelFailedToClose (4801) did not fire"); + Assert.Equal(TestString(4801, "SerializedException"), firedEvents["DiscoveryClientInClientChannelFailedToClose"]["SerializedException"]); + Assert.Equal(TestString(4801, "AppDomain"), firedEvents["DiscoveryClientInClientChannelFailedToClose"]["AppDomain"]); + + // 4802 DiscoveryClientProtocolExceptionSuppressed (TwoStringsTemplateEA) + Assert.True(firedEvents.ContainsKey("DiscoveryClientProtocolExceptionSuppressed"), "DiscoveryClientProtocolExceptionSuppressed (4802) did not fire"); + Assert.Equal(TestString(4802, "SerializedException"), firedEvents["DiscoveryClientProtocolExceptionSuppressed"]["SerializedException"]); + Assert.Equal(TestString(4802, "AppDomain"), firedEvents["DiscoveryClientProtocolExceptionSuppressed"]["AppDomain"]); + + // 4803 DiscoveryClientReceivedMulticastSuppression (OneStringsTemplateA) + Assert.True(firedEvents.ContainsKey("DiscoveryClientReceivedMulticastSuppression"), "DiscoveryClientReceivedMulticastSuppression (4803) did not fire"); + Assert.Equal(TestString(4803, "AppDomain"), firedEvents["DiscoveryClientReceivedMulticastSuppression"]["AppDomain"]); + } + + #endregion + } +} diff --git a/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk12.cs b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk12.cs new file mode 100644 index 000000000..b19705f4c --- /dev/null +++ b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk12.cs @@ -0,0 +1,840 @@ +// Auto-generated test code for chunk 12 (events 4804-5204) +using Microsoft.Diagnostics.Tracing; +using Microsoft.Diagnostics.Tracing.Parsers; +using Microsoft.Diagnostics.Tracing.Parsers.ApplicationServer; +using System; +using System.Collections.Generic; +using Xunit; + +namespace TraceEventTests.Parsers +{ + public partial class ApplicationServerTraceEventParserTests + { + // ===================================================================== + // Template field arrays for chunk 12 + // ===================================================================== + + private static readonly TemplateField[] s_OneStringsTemplateAFields = new TemplateField[] + { + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_Multidata33TemplateAFields = new TemplateField[] + { + new TemplateField("TypeName", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_Multidata87TemplateAFields = new TemplateField[] + { + new TemplateField("discoveryMessageName", FieldType.UnicodeString), + new TemplateField("messageId", FieldType.UnicodeString), + new TemplateField("discoveryOperationName", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_Multidata88TemplateAFields = new TemplateField[] + { + new TemplateField("messageType", FieldType.UnicodeString), + new TemplateField("messageId", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_Multidata89TemplateAFields = new TemplateField[] + { + new TemplateField("discoveryMessageName", FieldType.UnicodeString), + new TemplateField("messageId", FieldType.UnicodeString), + new TemplateField("relatesTo", FieldType.UnicodeString), + new TemplateField("discoveryOperationName", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_Multidata90TemplateAFields = new TemplateField[] + { + new TemplateField("messageId", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_Multidata91TemplateAFields = new TemplateField[] + { + new TemplateField("messageType", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_Multidata92TemplateAFields = new TemplateField[] + { + new TemplateField("discoveryMessageName", FieldType.UnicodeString), + new TemplateField("messageId", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_Multidata93TemplateAFields = new TemplateField[] + { + new TemplateField("endpointAddress", FieldType.UnicodeString), + new TemplateField("listenUri", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_Multidata94TemplateEAFields = new TemplateField[] + { + new TemplateField("endpointAddress", FieldType.UnicodeString), + new TemplateField("via", FieldType.UnicodeString), + new TemplateField("SerializedException", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_Multidata95TemplateAFields = new TemplateField[] + { + new TemplateField("endpointAddress", FieldType.UnicodeString), + new TemplateField("via", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_Multidata96TemplateAFields = new TemplateField[] + { + new TemplateField("synchronizationContextType", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_Multidata97TemplateAFields = new TemplateField[] + { + new TemplateField("SurrogateType", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_Multidata98TemplateAFields = new TemplateField[] + { + new TemplateField("Kind", FieldType.UnicodeString), + new TemplateField("TypeName", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] s_Multidata99TemplateAFields = new TemplateField[] + { + new TemplateField("DCType", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + // ===================================================================== + // WriteMetadata_Chunk12: Emit metadata entries for events 4804-5204 + // ===================================================================== + private void WriteMetadata_Chunk12(EventPipeWriterV5 writer, ref int metadataId) + { + writer.WriteMetadataBlock( + // Discovery events (4804-4821) + new EventMetadata(metadataId++, ProviderName, "DiscoveryMessageReceivedAfterOperationCompleted", 4804) { OpCode = 45 }, + new EventMetadata(metadataId++, ProviderName, "DiscoveryMessageWithInvalidContent", 4805) { OpCode = 37 }, + new EventMetadata(metadataId++, ProviderName, "DiscoveryMessageWithInvalidRelatesToOrOperationCompleted", 4806) { OpCode = 38 }, + new EventMetadata(metadataId++, ProviderName, "DiscoveryMessageWithInvalidReplyTo", 4807) { OpCode = 39 }, + new EventMetadata(metadataId++, ProviderName, "DiscoveryMessageWithNoContent", 4808) { OpCode = 40 }, + new EventMetadata(metadataId++, ProviderName, "DiscoveryMessageWithNullMessageId", 4809) { OpCode = 41 }, + new EventMetadata(metadataId++, ProviderName, "DiscoveryMessageWithNullMessageSequence", 4810) { OpCode = 42 }, + new EventMetadata(metadataId++, ProviderName, "DiscoveryMessageWithNullRelatesTo", 4811) { OpCode = 43 }, + new EventMetadata(metadataId++, ProviderName, "DiscoveryMessageWithNullReplyTo", 4812) { OpCode = 44 }, + new EventMetadata(metadataId++, ProviderName, "DuplicateDiscoveryMessage", 4813) { OpCode = 36 }, + new EventMetadata(metadataId++, ProviderName, "EndpointDiscoverabilityDisabled", 4814) { OpCode = 58 }, + new EventMetadata(metadataId++, ProviderName, "EndpointDiscoverabilityEnabled", 4815) { OpCode = 59 }, + new EventMetadata(metadataId++, ProviderName, "FindInitiatedInDiscoveryClientChannel", 4816) { OpCode = 33 }, + new EventMetadata(metadataId++, ProviderName, "InnerChannelCreationFailed", 4817) { OpCode = 32 }, + new EventMetadata(metadataId++, ProviderName, "InnerChannelOpenFailed", 4818) { OpCode = 34 }, + new EventMetadata(metadataId++, ProviderName, "InnerChannelOpenSucceeded", 4819) { OpCode = 35 }, + new EventMetadata(metadataId++, ProviderName, "SynchronizationContextReset", 4820) { OpCode = 46 }, + new EventMetadata(metadataId++, ProviderName, "SynchronizationContextSetToNull", 4821) { OpCode = 47 }, + // Serialization events (5001-5017) + new EventMetadata(metadataId++, ProviderName, "DCSerializeWithSurrogateStart", 5001) { OpCode = 1 }, + new EventMetadata(metadataId++, ProviderName, "DCSerializeWithSurrogateStop", 5002) { OpCode = 2 }, + new EventMetadata(metadataId++, ProviderName, "DCDeserializeWithSurrogateStart", 5003) { OpCode = 1 }, + new EventMetadata(metadataId++, ProviderName, "DCDeserializeWithSurrogateStop", 5004) { OpCode = 2 }, + new EventMetadata(metadataId++, ProviderName, "ImportKnownTypesStart", 5005) { OpCode = 1 }, + new EventMetadata(metadataId++, ProviderName, "ImportKnownTypesStop", 5006) { OpCode = 2 }, + new EventMetadata(metadataId++, ProviderName, "DCResolverResolve", 5007) { OpCode = 1 }, + new EventMetadata(metadataId++, ProviderName, "DCGenWriterStart", 5008) { OpCode = 1 }, + new EventMetadata(metadataId++, ProviderName, "DCGenWriterStop", 5009) { OpCode = 2 }, + new EventMetadata(metadataId++, ProviderName, "DCGenReaderStart", 5010) { OpCode = 1 }, + new EventMetadata(metadataId++, ProviderName, "DCGenReaderStop", 5011) { OpCode = 2 }, + new EventMetadata(metadataId++, ProviderName, "DCJsonGenReaderStart", 5012) { OpCode = 1 }, + new EventMetadata(metadataId++, ProviderName, "DCJsonGenReaderStop", 5013) { OpCode = 2 }, + new EventMetadata(metadataId++, ProviderName, "DCJsonGenWriterStart", 5014) { OpCode = 1 }, + new EventMetadata(metadataId++, ProviderName, "DCJsonGenWriterStop", 5015) { OpCode = 2 }, + new EventMetadata(metadataId++, ProviderName, "GenXmlSerializableStart", 5016) { OpCode = 1 }, + new EventMetadata(metadataId++, ProviderName, "GenXmlSerializableStop", 5017) { OpCode = 2 }, + // Channel events (5203-5204) + new EventMetadata(metadataId++, ProviderName, "JsonMessageDecodingStart", 5203) { OpCode = 1 }, + new EventMetadata(metadataId++, ProviderName, "JsonMessageEncodingStart", 5204) { OpCode = 1 } + ); + } + + // ===================================================================== + // WriteEvents_Chunk12: Emit event payloads for events 4804-5204 + // ===================================================================== + private void WriteEvents_Chunk12(EventPipeWriterV5 writer, ref int metadataId, ref int sequenceNumber) + { + int __metadataId = metadataId; + int __sequenceNumber = sequenceNumber; + writer.WriteEventBlock(w => + { + // 4804: Multidata87TemplateA (discoveryMessageName, messageId, discoveryOperationName, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4804, s_Multidata87TemplateAFields)); + // 4805: Multidata88TemplateA (messageType, messageId, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4805, s_Multidata88TemplateAFields)); + // 4806: Multidata89TemplateA (discoveryMessageName, messageId, relatesTo, discoveryOperationName, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4806, s_Multidata89TemplateAFields)); + // 4807: Multidata90TemplateA (messageId, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4807, s_Multidata90TemplateAFields)); + // 4808: Multidata91TemplateA (messageType, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4808, s_Multidata91TemplateAFields)); + // 4809: Multidata91TemplateA (messageType, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4809, s_Multidata91TemplateAFields)); + // 4810: Multidata92TemplateA (discoveryMessageName, messageId, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4810, s_Multidata92TemplateAFields)); + // 4811: Multidata92TemplateA (discoveryMessageName, messageId, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4811, s_Multidata92TemplateAFields)); + // 4812: Multidata90TemplateA (messageId, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4812, s_Multidata90TemplateAFields)); + // 4813: Multidata88TemplateA (messageType, messageId, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4813, s_Multidata88TemplateAFields)); + // 4814: Multidata93TemplateA (endpointAddress, listenUri, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4814, s_Multidata93TemplateAFields)); + // 4815: Multidata93TemplateA (endpointAddress, listenUri, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4815, s_Multidata93TemplateAFields)); + // 4816: OneStringsTemplateA (AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4816, s_OneStringsTemplateAFields)); + // 4817: Multidata94TemplateEA (endpointAddress, via, SerializedException, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4817, s_Multidata94TemplateEAFields)); + // 4818: Multidata94TemplateEA (endpointAddress, via, SerializedException, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4818, s_Multidata94TemplateEAFields)); + // 4819: Multidata95TemplateA (endpointAddress, via, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4819, s_Multidata95TemplateAFields)); + // 4820: Multidata96TemplateA (synchronizationContextType, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4820, s_Multidata96TemplateAFields)); + // 4821: OneStringsTemplateA (AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(4821, s_OneStringsTemplateAFields)); + // 5001: Multidata97TemplateA (SurrogateType, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5001, s_Multidata97TemplateAFields)); + // 5002: OneStringsTemplateA (AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5002, s_OneStringsTemplateAFields)); + // 5003: Multidata97TemplateA (SurrogateType, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5003, s_Multidata97TemplateAFields)); + // 5004: OneStringsTemplateA (AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5004, s_OneStringsTemplateAFields)); + // 5005: OneStringsTemplateA (AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5005, s_OneStringsTemplateAFields)); + // 5006: OneStringsTemplateA (AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5006, s_OneStringsTemplateAFields)); + // 5007: Multidata33TemplateA (TypeName, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5007, s_Multidata33TemplateAFields)); + // 5008: Multidata98TemplateA (Kind, TypeName, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5008, s_Multidata98TemplateAFields)); + // 5009: OneStringsTemplateA (AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5009, s_OneStringsTemplateAFields)); + // 5010: Multidata98TemplateA (Kind, TypeName, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5010, s_Multidata98TemplateAFields)); + // 5011: OneStringsTemplateA (AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5011, s_OneStringsTemplateAFields)); + // 5012: Multidata98TemplateA (Kind, TypeName, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5012, s_Multidata98TemplateAFields)); + // 5013: OneStringsTemplateA (AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5013, s_OneStringsTemplateAFields)); + // 5014: Multidata98TemplateA (Kind, TypeName, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5014, s_Multidata98TemplateAFields)); + // 5015: OneStringsTemplateA (AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5015, s_OneStringsTemplateAFields)); + // 5016: Multidata99TemplateA (DCType, AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5016, s_Multidata99TemplateAFields)); + // 5017: OneStringsTemplateA (AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5017, s_OneStringsTemplateAFields)); + // 5203: OneStringsTemplateA (AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5203, s_OneStringsTemplateAFields)); + // 5204: OneStringsTemplateA (AppDomain) + w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5204, s_OneStringsTemplateAFields)); + }); + + metadataId = __metadataId; + sequenceNumber = __sequenceNumber; + } + + // ===================================================================== + // Subscribe_Chunk12: Subscribe to parser events and record received data + // ===================================================================== + private void Subscribe_Chunk12(ApplicationServerTraceEventParser parser, Dictionary> firedEvents) + { + parser.DiscoveryMessageReceivedAfterOperationCompleted += delegate (Multidata87TemplateATraceData data) + { + firedEvents["DiscoveryMessageReceivedAfterOperationCompleted"] = new Dictionary + { + { "discoveryMessageName", data.discoveryMessageName }, + { "messageId", data.messageId }, + { "discoveryOperationName", data.discoveryOperationName }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DiscoveryMessageWithInvalidContent += delegate (Multidata88TemplateATraceData data) + { + firedEvents["DiscoveryMessageWithInvalidContent"] = new Dictionary + { + { "messageType", data.messageType }, + { "messageId", data.messageId }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DiscoveryMessageWithInvalidRelatesToOrOperationCompleted += delegate (Multidata89TemplateATraceData data) + { + firedEvents["DiscoveryMessageWithInvalidRelatesToOrOperationCompleted"] = new Dictionary + { + { "discoveryMessageName", data.discoveryMessageName }, + { "messageId", data.messageId }, + { "relatesTo", data.relatesTo }, + { "discoveryOperationName", data.discoveryOperationName }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DiscoveryMessageWithInvalidReplyTo += delegate (Multidata90TemplateATraceData data) + { + firedEvents["DiscoveryMessageWithInvalidReplyTo"] = new Dictionary + { + { "messageId", data.messageId }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DiscoveryMessageWithNoContent += delegate (Multidata91TemplateATraceData data) + { + firedEvents["DiscoveryMessageWithNoContent"] = new Dictionary + { + { "messageType", data.messageType }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DiscoveryMessageWithNullMessageId += delegate (Multidata91TemplateATraceData data) + { + firedEvents["DiscoveryMessageWithNullMessageId"] = new Dictionary + { + { "messageType", data.messageType }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DiscoveryMessageWithNullMessageSequence += delegate (Multidata92TemplateATraceData data) + { + firedEvents["DiscoveryMessageWithNullMessageSequence"] = new Dictionary + { + { "discoveryMessageName", data.discoveryMessageName }, + { "messageId", data.messageId }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DiscoveryMessageWithNullRelatesTo += delegate (Multidata92TemplateATraceData data) + { + firedEvents["DiscoveryMessageWithNullRelatesTo"] = new Dictionary + { + { "discoveryMessageName", data.discoveryMessageName }, + { "messageId", data.messageId }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DiscoveryMessageWithNullReplyTo += delegate (Multidata90TemplateATraceData data) + { + firedEvents["DiscoveryMessageWithNullReplyTo"] = new Dictionary + { + { "messageId", data.messageId }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DuplicateDiscoveryMessage += delegate (Multidata88TemplateATraceData data) + { + firedEvents["DuplicateDiscoveryMessage"] = new Dictionary + { + { "messageType", data.messageType }, + { "messageId", data.messageId }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.EndpointDiscoverabilityDisabled += delegate (Multidata93TemplateATraceData data) + { + firedEvents["EndpointDiscoverabilityDisabled"] = new Dictionary + { + { "endpointAddress", data.endpointAddress }, + { "listenUri", data.listenUri }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.EndpointDiscoverabilityEnabled += delegate (Multidata93TemplateATraceData data) + { + firedEvents["EndpointDiscoverabilityEnabled"] = new Dictionary + { + { "endpointAddress", data.endpointAddress }, + { "listenUri", data.listenUri }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.FindInitiatedInDiscoveryClientChannel += delegate (OneStringsTemplateATraceData data) + { + firedEvents["FindInitiatedInDiscoveryClientChannel"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.InnerChannelCreationFailed += delegate (Multidata94TemplateEATraceData data) + { + firedEvents["InnerChannelCreationFailed"] = new Dictionary + { + { "endpointAddress", data.endpointAddress }, + { "via", data.via }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.InnerChannelOpenFailed += delegate (Multidata94TemplateEATraceData data) + { + firedEvents["InnerChannelOpenFailed"] = new Dictionary + { + { "endpointAddress", data.endpointAddress }, + { "via", data.via }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.InnerChannelOpenSucceeded += delegate (Multidata95TemplateATraceData data) + { + firedEvents["InnerChannelOpenSucceeded"] = new Dictionary + { + { "endpointAddress", data.endpointAddress }, + { "via", data.via }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.SynchronizationContextReset += delegate (Multidata96TemplateATraceData data) + { + firedEvents["SynchronizationContextReset"] = new Dictionary + { + { "synchronizationContextType", data.synchronizationContextType }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.SynchronizationContextSetToNull += delegate (OneStringsTemplateATraceData data) + { + firedEvents["SynchronizationContextSetToNull"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DCSerializeWithSurrogateStart += delegate (Multidata97TemplateATraceData data) + { + firedEvents["DCSerializeWithSurrogateStart"] = new Dictionary + { + { "SurrogateType", data.SurrogateType }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DCSerializeWithSurrogateStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["DCSerializeWithSurrogateStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DCDeserializeWithSurrogateStart += delegate (Multidata97TemplateATraceData data) + { + firedEvents["DCDeserializeWithSurrogateStart"] = new Dictionary + { + { "SurrogateType", data.SurrogateType }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DCDeserializeWithSurrogateStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["DCDeserializeWithSurrogateStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.ImportKnownTypesStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["ImportKnownTypesStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.ImportKnownTypesStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["ImportKnownTypesStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DCResolverResolve += delegate (Multidata33TemplateATraceData data) + { + firedEvents["DCResolverResolve"] = new Dictionary + { + { "TypeName", data.TypeName }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DCGenWriterStart += delegate (Multidata98TemplateATraceData data) + { + firedEvents["DCGenWriterStart"] = new Dictionary + { + { "Kind", data.Kind }, + { "TypeName", data.TypeName }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DCGenWriterStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["DCGenWriterStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DCGenReaderStart += delegate (Multidata98TemplateATraceData data) + { + firedEvents["DCGenReaderStart"] = new Dictionary + { + { "Kind", data.Kind }, + { "TypeName", data.TypeName }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DCGenReaderStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["DCGenReaderStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DCJsonGenReaderStart += delegate (Multidata98TemplateATraceData data) + { + firedEvents["DCJsonGenReaderStart"] = new Dictionary + { + { "Kind", data.Kind }, + { "TypeName", data.TypeName }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DCJsonGenReaderStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["DCJsonGenReaderStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DCJsonGenWriterStart += delegate (Multidata98TemplateATraceData data) + { + firedEvents["DCJsonGenWriterStart"] = new Dictionary + { + { "Kind", data.Kind }, + { "TypeName", data.TypeName }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.DCJsonGenWriterStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["DCJsonGenWriterStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.GenXmlSerializableStart += delegate (Multidata99TemplateATraceData data) + { + firedEvents["GenXmlSerializableStart"] = new Dictionary + { + { "DCType", data.DCType }, + { "AppDomain", data.AppDomain }, + }; + }; + + parser.GenXmlSerializableStop += delegate (OneStringsTemplateATraceData data) + { + firedEvents["GenXmlSerializableStop"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.JsonMessageDecodingStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["JsonMessageDecodingStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + parser.JsonMessageEncodingStart += delegate (OneStringsTemplateATraceData data) + { + firedEvents["JsonMessageEncodingStart"] = new Dictionary + { + { "AppDomain", data.AppDomain }, + }; + }; + + } + + + // ===================================================================== + // Validate_Chunk12: Validate all received event payloads + // ===================================================================== + private void Validate_Chunk12(Dictionary> firedEvents) + { + // --- 4804: DiscoveryMessageReceivedAfterOperationCompleted --- + Assert.True(firedEvents.ContainsKey("DiscoveryMessageReceivedAfterOperationCompleted"), "Event DiscoveryMessageReceivedAfterOperationCompleted not received"); + var eDiscoveryMessageReceivedAfterOperationCompleted = firedEvents["DiscoveryMessageReceivedAfterOperationCompleted"]; + Assert.Equal(TestString(4804, "discoveryMessageName"), (string)eDiscoveryMessageReceivedAfterOperationCompleted["discoveryMessageName"]); + Assert.Equal(TestString(4804, "messageId"), (string)eDiscoveryMessageReceivedAfterOperationCompleted["messageId"]); + Assert.Equal(TestString(4804, "discoveryOperationName"), (string)eDiscoveryMessageReceivedAfterOperationCompleted["discoveryOperationName"]); + Assert.Equal(TestString(4804, "AppDomain"), (string)eDiscoveryMessageReceivedAfterOperationCompleted["AppDomain"]); + + // --- 4805: DiscoveryMessageWithInvalidContent --- + Assert.True(firedEvents.ContainsKey("DiscoveryMessageWithInvalidContent"), "Event DiscoveryMessageWithInvalidContent not received"); + var eDiscoveryMessageWithInvalidContent = firedEvents["DiscoveryMessageWithInvalidContent"]; + Assert.Equal(TestString(4805, "messageType"), (string)eDiscoveryMessageWithInvalidContent["messageType"]); + Assert.Equal(TestString(4805, "messageId"), (string)eDiscoveryMessageWithInvalidContent["messageId"]); + Assert.Equal(TestString(4805, "AppDomain"), (string)eDiscoveryMessageWithInvalidContent["AppDomain"]); + + // --- 4806: DiscoveryMessageWithInvalidRelatesToOrOperationCompleted --- + Assert.True(firedEvents.ContainsKey("DiscoveryMessageWithInvalidRelatesToOrOperationCompleted"), "Event DiscoveryMessageWithInvalidRelatesToOrOperationCompleted not received"); + var eDiscoveryMessageWithInvalidRelatesToOrOperationCompleted = firedEvents["DiscoveryMessageWithInvalidRelatesToOrOperationCompleted"]; + Assert.Equal(TestString(4806, "discoveryMessageName"), (string)eDiscoveryMessageWithInvalidRelatesToOrOperationCompleted["discoveryMessageName"]); + Assert.Equal(TestString(4806, "messageId"), (string)eDiscoveryMessageWithInvalidRelatesToOrOperationCompleted["messageId"]); + Assert.Equal(TestString(4806, "relatesTo"), (string)eDiscoveryMessageWithInvalidRelatesToOrOperationCompleted["relatesTo"]); + Assert.Equal(TestString(4806, "discoveryOperationName"), (string)eDiscoveryMessageWithInvalidRelatesToOrOperationCompleted["discoveryOperationName"]); + Assert.Equal(TestString(4806, "AppDomain"), (string)eDiscoveryMessageWithInvalidRelatesToOrOperationCompleted["AppDomain"]); + + // --- 4807: DiscoveryMessageWithInvalidReplyTo --- + Assert.True(firedEvents.ContainsKey("DiscoveryMessageWithInvalidReplyTo"), "Event DiscoveryMessageWithInvalidReplyTo not received"); + var eDiscoveryMessageWithInvalidReplyTo = firedEvents["DiscoveryMessageWithInvalidReplyTo"]; + Assert.Equal(TestString(4807, "messageId"), (string)eDiscoveryMessageWithInvalidReplyTo["messageId"]); + Assert.Equal(TestString(4807, "AppDomain"), (string)eDiscoveryMessageWithInvalidReplyTo["AppDomain"]); + + // --- 4808: DiscoveryMessageWithNoContent --- + Assert.True(firedEvents.ContainsKey("DiscoveryMessageWithNoContent"), "Event DiscoveryMessageWithNoContent not received"); + var eDiscoveryMessageWithNoContent = firedEvents["DiscoveryMessageWithNoContent"]; + Assert.Equal(TestString(4808, "messageType"), (string)eDiscoveryMessageWithNoContent["messageType"]); + Assert.Equal(TestString(4808, "AppDomain"), (string)eDiscoveryMessageWithNoContent["AppDomain"]); + + // --- 4809: DiscoveryMessageWithNullMessageId --- + Assert.True(firedEvents.ContainsKey("DiscoveryMessageWithNullMessageId"), "Event DiscoveryMessageWithNullMessageId not received"); + var eDiscoveryMessageWithNullMessageId = firedEvents["DiscoveryMessageWithNullMessageId"]; + Assert.Equal(TestString(4809, "messageType"), (string)eDiscoveryMessageWithNullMessageId["messageType"]); + Assert.Equal(TestString(4809, "AppDomain"), (string)eDiscoveryMessageWithNullMessageId["AppDomain"]); + + // --- 4810: DiscoveryMessageWithNullMessageSequence --- + Assert.True(firedEvents.ContainsKey("DiscoveryMessageWithNullMessageSequence"), "Event DiscoveryMessageWithNullMessageSequence not received"); + var eDiscoveryMessageWithNullMessageSequence = firedEvents["DiscoveryMessageWithNullMessageSequence"]; + Assert.Equal(TestString(4810, "discoveryMessageName"), (string)eDiscoveryMessageWithNullMessageSequence["discoveryMessageName"]); + Assert.Equal(TestString(4810, "messageId"), (string)eDiscoveryMessageWithNullMessageSequence["messageId"]); + Assert.Equal(TestString(4810, "AppDomain"), (string)eDiscoveryMessageWithNullMessageSequence["AppDomain"]); + + // --- 4811: DiscoveryMessageWithNullRelatesTo --- + Assert.True(firedEvents.ContainsKey("DiscoveryMessageWithNullRelatesTo"), "Event DiscoveryMessageWithNullRelatesTo not received"); + var eDiscoveryMessageWithNullRelatesTo = firedEvents["DiscoveryMessageWithNullRelatesTo"]; + Assert.Equal(TestString(4811, "discoveryMessageName"), (string)eDiscoveryMessageWithNullRelatesTo["discoveryMessageName"]); + Assert.Equal(TestString(4811, "messageId"), (string)eDiscoveryMessageWithNullRelatesTo["messageId"]); + Assert.Equal(TestString(4811, "AppDomain"), (string)eDiscoveryMessageWithNullRelatesTo["AppDomain"]); + + // --- 4812: DiscoveryMessageWithNullReplyTo --- + Assert.True(firedEvents.ContainsKey("DiscoveryMessageWithNullReplyTo"), "Event DiscoveryMessageWithNullReplyTo not received"); + var eDiscoveryMessageWithNullReplyTo = firedEvents["DiscoveryMessageWithNullReplyTo"]; + Assert.Equal(TestString(4812, "messageId"), (string)eDiscoveryMessageWithNullReplyTo["messageId"]); + Assert.Equal(TestString(4812, "AppDomain"), (string)eDiscoveryMessageWithNullReplyTo["AppDomain"]); + + // --- 4813: DuplicateDiscoveryMessage --- + Assert.True(firedEvents.ContainsKey("DuplicateDiscoveryMessage"), "Event DuplicateDiscoveryMessage not received"); + var eDuplicateDiscoveryMessage = firedEvents["DuplicateDiscoveryMessage"]; + Assert.Equal(TestString(4813, "messageType"), (string)eDuplicateDiscoveryMessage["messageType"]); + Assert.Equal(TestString(4813, "messageId"), (string)eDuplicateDiscoveryMessage["messageId"]); + Assert.Equal(TestString(4813, "AppDomain"), (string)eDuplicateDiscoveryMessage["AppDomain"]); + + // --- 4814: EndpointDiscoverabilityDisabled --- + Assert.True(firedEvents.ContainsKey("EndpointDiscoverabilityDisabled"), "Event EndpointDiscoverabilityDisabled not received"); + var eEndpointDiscoverabilityDisabled = firedEvents["EndpointDiscoverabilityDisabled"]; + Assert.Equal(TestString(4814, "endpointAddress"), (string)eEndpointDiscoverabilityDisabled["endpointAddress"]); + Assert.Equal(TestString(4814, "listenUri"), (string)eEndpointDiscoverabilityDisabled["listenUri"]); + Assert.Equal(TestString(4814, "AppDomain"), (string)eEndpointDiscoverabilityDisabled["AppDomain"]); + + // --- 4815: EndpointDiscoverabilityEnabled --- + Assert.True(firedEvents.ContainsKey("EndpointDiscoverabilityEnabled"), "Event EndpointDiscoverabilityEnabled not received"); + var eEndpointDiscoverabilityEnabled = firedEvents["EndpointDiscoverabilityEnabled"]; + Assert.Equal(TestString(4815, "endpointAddress"), (string)eEndpointDiscoverabilityEnabled["endpointAddress"]); + Assert.Equal(TestString(4815, "listenUri"), (string)eEndpointDiscoverabilityEnabled["listenUri"]); + Assert.Equal(TestString(4815, "AppDomain"), (string)eEndpointDiscoverabilityEnabled["AppDomain"]); + + // --- 4816: FindInitiatedInDiscoveryClientChannel --- + Assert.True(firedEvents.ContainsKey("FindInitiatedInDiscoveryClientChannel"), "Event FindInitiatedInDiscoveryClientChannel not received"); + var eFindInitiatedInDiscoveryClientChannel = firedEvents["FindInitiatedInDiscoveryClientChannel"]; + Assert.Equal(TestString(4816, "AppDomain"), (string)eFindInitiatedInDiscoveryClientChannel["AppDomain"]); + + // --- 4817: InnerChannelCreationFailed --- + Assert.True(firedEvents.ContainsKey("InnerChannelCreationFailed"), "Event InnerChannelCreationFailed not received"); + var eInnerChannelCreationFailed = firedEvents["InnerChannelCreationFailed"]; + Assert.Equal(TestString(4817, "endpointAddress"), (string)eInnerChannelCreationFailed["endpointAddress"]); + Assert.Equal(TestString(4817, "via"), (string)eInnerChannelCreationFailed["via"]); + Assert.Equal(TestString(4817, "SerializedException"), (string)eInnerChannelCreationFailed["SerializedException"]); + Assert.Equal(TestString(4817, "AppDomain"), (string)eInnerChannelCreationFailed["AppDomain"]); + + // --- 4818: InnerChannelOpenFailed --- + Assert.True(firedEvents.ContainsKey("InnerChannelOpenFailed"), "Event InnerChannelOpenFailed not received"); + var eInnerChannelOpenFailed = firedEvents["InnerChannelOpenFailed"]; + Assert.Equal(TestString(4818, "endpointAddress"), (string)eInnerChannelOpenFailed["endpointAddress"]); + Assert.Equal(TestString(4818, "via"), (string)eInnerChannelOpenFailed["via"]); + Assert.Equal(TestString(4818, "SerializedException"), (string)eInnerChannelOpenFailed["SerializedException"]); + Assert.Equal(TestString(4818, "AppDomain"), (string)eInnerChannelOpenFailed["AppDomain"]); + + // --- 4819: InnerChannelOpenSucceeded --- + Assert.True(firedEvents.ContainsKey("InnerChannelOpenSucceeded"), "Event InnerChannelOpenSucceeded not received"); + var eInnerChannelOpenSucceeded = firedEvents["InnerChannelOpenSucceeded"]; + Assert.Equal(TestString(4819, "endpointAddress"), (string)eInnerChannelOpenSucceeded["endpointAddress"]); + Assert.Equal(TestString(4819, "via"), (string)eInnerChannelOpenSucceeded["via"]); + Assert.Equal(TestString(4819, "AppDomain"), (string)eInnerChannelOpenSucceeded["AppDomain"]); + + // --- 4820: SynchronizationContextReset --- + Assert.True(firedEvents.ContainsKey("SynchronizationContextReset"), "Event SynchronizationContextReset not received"); + var eSynchronizationContextReset = firedEvents["SynchronizationContextReset"]; + Assert.Equal(TestString(4820, "synchronizationContextType"), (string)eSynchronizationContextReset["synchronizationContextType"]); + Assert.Equal(TestString(4820, "AppDomain"), (string)eSynchronizationContextReset["AppDomain"]); + + // --- 4821: SynchronizationContextSetToNull --- + Assert.True(firedEvents.ContainsKey("SynchronizationContextSetToNull"), "Event SynchronizationContextSetToNull not received"); + var eSynchronizationContextSetToNull = firedEvents["SynchronizationContextSetToNull"]; + Assert.Equal(TestString(4821, "AppDomain"), (string)eSynchronizationContextSetToNull["AppDomain"]); + + // --- 5001: DCSerializeWithSurrogateStart --- + Assert.True(firedEvents.ContainsKey("DCSerializeWithSurrogateStart"), "Event DCSerializeWithSurrogateStart not received"); + var eDCSerializeWithSurrogateStart = firedEvents["DCSerializeWithSurrogateStart"]; + Assert.Equal(TestString(5001, "SurrogateType"), (string)eDCSerializeWithSurrogateStart["SurrogateType"]); + Assert.Equal(TestString(5001, "AppDomain"), (string)eDCSerializeWithSurrogateStart["AppDomain"]); + + // --- 5002: DCSerializeWithSurrogateStop --- + Assert.True(firedEvents.ContainsKey("DCSerializeWithSurrogateStop"), "Event DCSerializeWithSurrogateStop not received"); + var eDCSerializeWithSurrogateStop = firedEvents["DCSerializeWithSurrogateStop"]; + Assert.Equal(TestString(5002, "AppDomain"), (string)eDCSerializeWithSurrogateStop["AppDomain"]); + + // --- 5003: DCDeserializeWithSurrogateStart --- + Assert.True(firedEvents.ContainsKey("DCDeserializeWithSurrogateStart"), "Event DCDeserializeWithSurrogateStart not received"); + var eDCDeserializeWithSurrogateStart = firedEvents["DCDeserializeWithSurrogateStart"]; + Assert.Equal(TestString(5003, "SurrogateType"), (string)eDCDeserializeWithSurrogateStart["SurrogateType"]); + Assert.Equal(TestString(5003, "AppDomain"), (string)eDCDeserializeWithSurrogateStart["AppDomain"]); + + // --- 5004: DCDeserializeWithSurrogateStop --- + Assert.True(firedEvents.ContainsKey("DCDeserializeWithSurrogateStop"), "Event DCDeserializeWithSurrogateStop not received"); + var eDCDeserializeWithSurrogateStop = firedEvents["DCDeserializeWithSurrogateStop"]; + Assert.Equal(TestString(5004, "AppDomain"), (string)eDCDeserializeWithSurrogateStop["AppDomain"]); + + // --- 5005: ImportKnownTypesStart --- + Assert.True(firedEvents.ContainsKey("ImportKnownTypesStart"), "Event ImportKnownTypesStart not received"); + var eImportKnownTypesStart = firedEvents["ImportKnownTypesStart"]; + Assert.Equal(TestString(5005, "AppDomain"), (string)eImportKnownTypesStart["AppDomain"]); + + // --- 5006: ImportKnownTypesStop --- + Assert.True(firedEvents.ContainsKey("ImportKnownTypesStop"), "Event ImportKnownTypesStop not received"); + var eImportKnownTypesStop = firedEvents["ImportKnownTypesStop"]; + Assert.Equal(TestString(5006, "AppDomain"), (string)eImportKnownTypesStop["AppDomain"]); + + // --- 5007: DCResolverResolve --- + Assert.True(firedEvents.ContainsKey("DCResolverResolve"), "Event DCResolverResolve not received"); + var eDCResolverResolve = firedEvents["DCResolverResolve"]; + Assert.Equal(TestString(5007, "TypeName"), (string)eDCResolverResolve["TypeName"]); + Assert.Equal(TestString(5007, "AppDomain"), (string)eDCResolverResolve["AppDomain"]); + + // --- 5008: DCGenWriterStart --- + Assert.True(firedEvents.ContainsKey("DCGenWriterStart"), "Event DCGenWriterStart not received"); + var eDCGenWriterStart = firedEvents["DCGenWriterStart"]; + Assert.Equal(TestString(5008, "Kind"), (string)eDCGenWriterStart["Kind"]); + Assert.Equal(TestString(5008, "TypeName"), (string)eDCGenWriterStart["TypeName"]); + Assert.Equal(TestString(5008, "AppDomain"), (string)eDCGenWriterStart["AppDomain"]); + + // --- 5009: DCGenWriterStop --- + Assert.True(firedEvents.ContainsKey("DCGenWriterStop"), "Event DCGenWriterStop not received"); + var eDCGenWriterStop = firedEvents["DCGenWriterStop"]; + Assert.Equal(TestString(5009, "AppDomain"), (string)eDCGenWriterStop["AppDomain"]); + + // --- 5010: DCGenReaderStart --- + Assert.True(firedEvents.ContainsKey("DCGenReaderStart"), "Event DCGenReaderStart not received"); + var eDCGenReaderStart = firedEvents["DCGenReaderStart"]; + Assert.Equal(TestString(5010, "Kind"), (string)eDCGenReaderStart["Kind"]); + Assert.Equal(TestString(5010, "TypeName"), (string)eDCGenReaderStart["TypeName"]); + Assert.Equal(TestString(5010, "AppDomain"), (string)eDCGenReaderStart["AppDomain"]); + + // --- 5011: DCGenReaderStop --- + Assert.True(firedEvents.ContainsKey("DCGenReaderStop"), "Event DCGenReaderStop not received"); + var eDCGenReaderStop = firedEvents["DCGenReaderStop"]; + Assert.Equal(TestString(5011, "AppDomain"), (string)eDCGenReaderStop["AppDomain"]); + + // --- 5012: DCJsonGenReaderStart --- + Assert.True(firedEvents.ContainsKey("DCJsonGenReaderStart"), "Event DCJsonGenReaderStart not received"); + var eDCJsonGenReaderStart = firedEvents["DCJsonGenReaderStart"]; + Assert.Equal(TestString(5012, "Kind"), (string)eDCJsonGenReaderStart["Kind"]); + Assert.Equal(TestString(5012, "TypeName"), (string)eDCJsonGenReaderStart["TypeName"]); + Assert.Equal(TestString(5012, "AppDomain"), (string)eDCJsonGenReaderStart["AppDomain"]); + + // --- 5013: DCJsonGenReaderStop --- + Assert.True(firedEvents.ContainsKey("DCJsonGenReaderStop"), "Event DCJsonGenReaderStop not received"); + var eDCJsonGenReaderStop = firedEvents["DCJsonGenReaderStop"]; + Assert.Equal(TestString(5013, "AppDomain"), (string)eDCJsonGenReaderStop["AppDomain"]); + + // --- 5014: DCJsonGenWriterStart --- + Assert.True(firedEvents.ContainsKey("DCJsonGenWriterStart"), "Event DCJsonGenWriterStart not received"); + var eDCJsonGenWriterStart = firedEvents["DCJsonGenWriterStart"]; + Assert.Equal(TestString(5014, "Kind"), (string)eDCJsonGenWriterStart["Kind"]); + Assert.Equal(TestString(5014, "TypeName"), (string)eDCJsonGenWriterStart["TypeName"]); + Assert.Equal(TestString(5014, "AppDomain"), (string)eDCJsonGenWriterStart["AppDomain"]); + + // --- 5015: DCJsonGenWriterStop --- + Assert.True(firedEvents.ContainsKey("DCJsonGenWriterStop"), "Event DCJsonGenWriterStop not received"); + var eDCJsonGenWriterStop = firedEvents["DCJsonGenWriterStop"]; + Assert.Equal(TestString(5015, "AppDomain"), (string)eDCJsonGenWriterStop["AppDomain"]); + + // --- 5016: GenXmlSerializableStart --- + Assert.True(firedEvents.ContainsKey("GenXmlSerializableStart"), "Event GenXmlSerializableStart not received"); + var eGenXmlSerializableStart = firedEvents["GenXmlSerializableStart"]; + Assert.Equal(TestString(5016, "DCType"), (string)eGenXmlSerializableStart["DCType"]); + Assert.Equal(TestString(5016, "AppDomain"), (string)eGenXmlSerializableStart["AppDomain"]); + + // --- 5017: GenXmlSerializableStop --- + Assert.True(firedEvents.ContainsKey("GenXmlSerializableStop"), "Event GenXmlSerializableStop not received"); + var eGenXmlSerializableStop = firedEvents["GenXmlSerializableStop"]; + Assert.Equal(TestString(5017, "AppDomain"), (string)eGenXmlSerializableStop["AppDomain"]); + + // --- 5203: JsonMessageDecodingStart --- + Assert.True(firedEvents.ContainsKey("JsonMessageDecodingStart"), "Event JsonMessageDecodingStart not received"); + var eJsonMessageDecodingStart = firedEvents["JsonMessageDecodingStart"]; + Assert.Equal(TestString(5203, "AppDomain"), (string)eJsonMessageDecodingStart["AppDomain"]); + + // --- 5204: JsonMessageEncodingStart --- + Assert.True(firedEvents.ContainsKey("JsonMessageEncodingStart"), "Event JsonMessageEncodingStart not received"); + var eJsonMessageEncodingStart = firedEvents["JsonMessageEncodingStart"]; + Assert.Equal(TestString(5204, "AppDomain"), (string)eJsonMessageEncodingStart["AppDomain"]); + + } + } +} diff --git a/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk13.cs b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk13.cs new file mode 100644 index 000000000..da09f81a9 --- /dev/null +++ b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.Chunk13.cs @@ -0,0 +1,1102 @@ +using Microsoft.Diagnostics.Tracing; +using Microsoft.Diagnostics.Tracing.Parsers; +using Microsoft.Diagnostics.Tracing.Parsers.ApplicationServer; +using System; +using System.Collections.Generic; +using System.IO; +using Xunit; + +namespace TraceEventTests.Parsers +{ + public partial class ApplicationServerTraceEventParserTests + { + // ── Template field arrays for Chunk 13 ── + + private static readonly TemplateField[] FourStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("data3", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] FourStringsTemplateEAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("SerializedException", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata0TemplateAFields = new TemplateField[] + { + new TemplateField("appdomainName", FieldType.UnicodeString), + new TemplateField("processName", FieldType.UnicodeString), + new TemplateField("processId", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata100TemplateHAFields = new TemplateField[] + { + new TemplateField("tokenID", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata101TemplateHAFields = new TemplateField[] + { + new TemplateField("issuerName", FieldType.UnicodeString), + new TemplateField("tokenID", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata102TemplateHAFields = new TemplateField[] + { + new TemplateField("tokenType", FieldType.UnicodeString), + new TemplateField("tokenID", FieldType.UnicodeString), + new TemplateField("errorMessage", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata103TemplateHAFields = new TemplateField[] + { + new TemplateField("tokenType", FieldType.UnicodeString), + new TemplateField("tokenID", FieldType.UnicodeString), + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata15TemplateAFields = new TemplateField[] + { + new TemplateField("RecordNumber", FieldType.Int64), + new TemplateField("ProviderId", FieldType.Guid), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata16TemplateAFields = new TemplateField[] + { + new TemplateField("Data", FieldType.UnicodeString), + new TemplateField("Activity", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata18TemplateAFields = new TemplateField[] + { + new TemplateField("name", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Multidata84TemplateAFields = new TemplateField[] + { + new TemplateField("limit", FieldType.Int32), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Chunk13_ThreeStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("data2", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] ThreeStringsTemplateEAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("SerializedException", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] Chunk13_TwoStringsTemplateAFields = new TemplateField[] + { + new TemplateField("data1", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] TwoStringsTemplateTAFields = new TemplateField[] + { + new TemplateField("ExtendedData", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + private static readonly TemplateField[] TwoStringsTemplateVAFields = new TemplateField[] + { + new TemplateField("HostReference", FieldType.UnicodeString), + new TemplateField("AppDomain", FieldType.UnicodeString), + }; + + // ── WriteMetadata_Chunk13 ── + + private void WriteMetadata_Chunk13(EventPipeWriterV5 writer, ref int metadataId) + { + // 5402 TokenValidationStarted - Multidata103TemplateHA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TokenValidationStarted", 5402, + new MetadataParameter("tokenType", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("tokenID", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("HostReference", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 5403 TokenValidationSuccess - Multidata103TemplateHA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TokenValidationSuccess", 5403, + new MetadataParameter("tokenType", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("tokenID", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("HostReference", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 5404 TokenValidationFailure - Multidata102TemplateHA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TokenValidationFailure", 5404, + new MetadataParameter("tokenType", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("tokenID", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("errorMessage", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("HostReference", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 5405 GetIssuerNameSuccess - Multidata101TemplateHA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "GetIssuerNameSuccess", 5405, + new MetadataParameter("issuerName", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("tokenID", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("HostReference", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 5406 GetIssuerNameFailure - Multidata100TemplateHA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "GetIssuerNameFailure", 5406, + new MetadataParameter("tokenID", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("HostReference", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 5600 FederationMessageProcessingStarted - TwoStringsTemplateVA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "FederationMessageProcessingStarted", 5600, + new MetadataParameter("HostReference", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 5601 FederationMessageProcessingSuccess - TwoStringsTemplateVA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "FederationMessageProcessingSuccess", 5601, + new MetadataParameter("HostReference", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 5602 FederationMessageCreationStarted - TwoStringsTemplateVA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "FederationMessageCreationStarted", 5602, + new MetadataParameter("HostReference", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 5603 FederationMessageCreationSuccess - TwoStringsTemplateVA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "FederationMessageCreationSuccess", 5603, + new MetadataParameter("HostReference", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 5604 SessionCookieReadingStarted - TwoStringsTemplateVA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SessionCookieReadingStarted", 5604, + new MetadataParameter("HostReference", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 5605 SessionCookieReadingSuccess - TwoStringsTemplateVA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "SessionCookieReadingSuccess", 5605, + new MetadataParameter("HostReference", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 5606 PrincipalSettingFromSessionTokenStarted - TwoStringsTemplateVA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "PrincipalSettingFromSessionTokenStarted", 5606, + new MetadataParameter("HostReference", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 5607 PrincipalSettingFromSessionTokenSuccess - TwoStringsTemplateVA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "PrincipalSettingFromSessionTokenSuccess", 5607, + new MetadataParameter("HostReference", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 39456 TrackingRecordDropped - Multidata15TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TrackingRecordDropped", 39456, + new MetadataParameter("RecordNumber", new MetadataType(MetadataTypeCode.Int64)), + new MetadataParameter("ProviderId", new MetadataType(MetadataTypeCode.Guid)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 39457 TrackingRecordRaised - ThreeStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TrackingRecordRaised", 39457, + new MetadataParameter("data1", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("data2", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 39458 TrackingRecordTruncated - Multidata15TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TrackingRecordTruncated", 39458, + new MetadataParameter("RecordNumber", new MetadataType(MetadataTypeCode.Int64)), + new MetadataParameter("ProviderId", new MetadataType(MetadataTypeCode.Guid)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 39459 TrackingDataExtracted - Multidata16TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TrackingDataExtracted", 39459, + new MetadataParameter("Data", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("Activity", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 39460 TrackingValueNotSerializable - Multidata18TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TrackingValueNotSerializable", 39460, + new MetadataParameter("name", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57393 AppDomainUnload - Multidata0TemplateA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "AppDomainUnload", 57393, + new MetadataParameter("appdomainName", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("processName", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("processId", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57394 HandledException - ThreeStringsTemplateEA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HandledException", 57394, + new MetadataParameter("data1", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("SerializedException", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57395 ShipAssertExceptionMessage - TwoStringsTemplateA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ShipAssertExceptionMessage", 57395, + new MetadataParameter("data1", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57396 ThrowingException - FourStringsTemplateEA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ThrowingException", 57396, + new MetadataParameter("data1", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("data2", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("SerializedException", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57397 UnhandledException - ThreeStringsTemplateEA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "UnhandledException", 57397, + new MetadataParameter("data1", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("SerializedException", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57398 MaxInstancesExceeded - Multidata84TemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "MaxInstancesExceeded", 57398, + new MetadataParameter("limit", new MetadataType(MetadataTypeCode.Int32)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57399 TraceCodeEventLogCritical - TwoStringsTemplateTA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TraceCodeEventLogCritical", 57399, + new MetadataParameter("ExtendedData", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57400 TraceCodeEventLogError - TwoStringsTemplateTA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TraceCodeEventLogError", 57400, + new MetadataParameter("ExtendedData", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57401 TraceCodeEventLogInfo - TwoStringsTemplateTA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TraceCodeEventLogInfo", 57401, + new MetadataParameter("ExtendedData", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57402 TraceCodeEventLogVerbose - TwoStringsTemplateTA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TraceCodeEventLogVerbose", 57402, + new MetadataParameter("ExtendedData", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57403 TraceCodeEventLogWarning - TwoStringsTemplateTA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "TraceCodeEventLogWarning", 57403, + new MetadataParameter("ExtendedData", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57404 HandledExceptionWarning - ThreeStringsTemplateEA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HandledExceptionWarning", 57404, + new MetadataParameter("data1", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("SerializedException", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57405 HandledExceptionError - ThreeStringsTemplateEA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HandledExceptionError", 57405, + new MetadataParameter("data1", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("SerializedException", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57406 HandledExceptionVerbose - ThreeStringsTemplateEA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HandledExceptionVerbose", 57406, + new MetadataParameter("data1", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("SerializedException", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57407 ThrowingExceptionVerbose - FourStringsTemplateEA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ThrowingExceptionVerbose", 57407, + new MetadataParameter("data1", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("data2", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("SerializedException", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57408 EtwUnhandledException - ThreeStringsTemplateEA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "EtwUnhandledException", 57408, + new MetadataParameter("data1", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("SerializedException", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57409 ThrowingEtwExceptionVerbose - FourStringsTemplateEA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ThrowingEtwExceptionVerbose", 57409, + new MetadataParameter("data1", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("data2", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("SerializedException", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 57410 ThrowingEtwException - FourStringsTemplateEA (task=0, taskGuid=Guid.Empty) + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "ThrowingEtwException", 57410, + new MetadataParameter("data1", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("data2", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("SerializedException", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + + // 62326 HttpHandlerPickedForUrl - FourStringsTemplateA + writer.WriteMetadataBlock(new EventMetadata(metadataId++, ProviderName, "HttpHandlerPickedForUrl", 62326, + new MetadataParameter("data1", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("data2", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("data3", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)), + new MetadataParameter("AppDomain", new MetadataType(MetadataTypeCode.NullTerminatedUTF16String)))); + } + + // ── WriteEvents_Chunk13 ── + + private void WriteEvents_Chunk13(EventPipeWriterV5 writer, ref int metadataId, ref int sequenceNumber) + { + int __metadataId = metadataId; + int __sequenceNumber = sequenceNumber; + + // 5402 TokenValidationStarted + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5402, Multidata103TemplateHAFields))); + + // 5403 TokenValidationSuccess + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5403, Multidata103TemplateHAFields))); + + // 5404 TokenValidationFailure + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5404, Multidata102TemplateHAFields))); + + // 5405 GetIssuerNameSuccess + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5405, Multidata101TemplateHAFields))); + + // 5406 GetIssuerNameFailure + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5406, Multidata100TemplateHAFields))); + + // 5600 FederationMessageProcessingStarted + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5600, TwoStringsTemplateVAFields))); + + // 5601 FederationMessageProcessingSuccess + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5601, TwoStringsTemplateVAFields))); + + // 5602 FederationMessageCreationStarted + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5602, TwoStringsTemplateVAFields))); + + // 5603 FederationMessageCreationSuccess + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5603, TwoStringsTemplateVAFields))); + + // 5604 SessionCookieReadingStarted + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5604, TwoStringsTemplateVAFields))); + + // 5605 SessionCookieReadingSuccess + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5605, TwoStringsTemplateVAFields))); + + // 5606 PrincipalSettingFromSessionTokenStarted + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5606, TwoStringsTemplateVAFields))); + + // 5607 PrincipalSettingFromSessionTokenSuccess + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(5607, TwoStringsTemplateVAFields))); + + // 39456 TrackingRecordDropped + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(39456, Multidata15TemplateAFields))); + + // 39457 TrackingRecordRaised + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(39457, Chunk13_ThreeStringsTemplateAFields))); + + // 39458 TrackingRecordTruncated + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(39458, Multidata15TemplateAFields))); + + // 39459 TrackingDataExtracted + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(39459, Multidata16TemplateAFields))); + + // 39460 TrackingValueNotSerializable + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(39460, Multidata18TemplateAFields))); + + // 57393 AppDomainUnload + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57393, Multidata0TemplateAFields))); + + // 57394 HandledException + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57394, ThreeStringsTemplateEAFields))); + + // 57395 ShipAssertExceptionMessage + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57395, Chunk13_TwoStringsTemplateAFields))); + + // 57396 ThrowingException + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57396, FourStringsTemplateEAFields))); + + // 57397 UnhandledException + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57397, ThreeStringsTemplateEAFields))); + + // 57398 MaxInstancesExceeded + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57398, Multidata84TemplateAFields))); + + // 57399 TraceCodeEventLogCritical + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57399, TwoStringsTemplateTAFields))); + + // 57400 TraceCodeEventLogError + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57400, TwoStringsTemplateTAFields))); + + // 57401 TraceCodeEventLogInfo + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57401, TwoStringsTemplateTAFields))); + + // 57402 TraceCodeEventLogVerbose + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57402, TwoStringsTemplateTAFields))); + + // 57403 TraceCodeEventLogWarning + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57403, TwoStringsTemplateTAFields))); + + // 57404 HandledExceptionWarning + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57404, ThreeStringsTemplateEAFields))); + + // 57405 HandledExceptionError + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57405, ThreeStringsTemplateEAFields))); + + // 57406 HandledExceptionVerbose + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57406, ThreeStringsTemplateEAFields))); + + // 57407 ThrowingExceptionVerbose + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57407, FourStringsTemplateEAFields))); + + // 57408 EtwUnhandledException + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57408, ThreeStringsTemplateEAFields))); + + // 57409 ThrowingEtwExceptionVerbose + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57409, FourStringsTemplateEAFields))); + + // 57410 ThrowingEtwException + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(57410, FourStringsTemplateEAFields))); + + // 62326 HttpHandlerPickedForUrl + writer.WriteEventBlock(w => w.WriteEventBlobV4Or5(__metadataId++, 999, __sequenceNumber++, BuildPayload(62326, FourStringsTemplateAFields))); + + metadataId = __metadataId; + sequenceNumber = __sequenceNumber; + } + + // ── Subscribe_Chunk13 ── + + private void Subscribe_Chunk13(ApplicationServerTraceEventParser parser, Dictionary> firedEvents) + { + // 5402 TokenValidationStarted - Multidata103TemplateHA + parser.TokenValidationStarted += delegate (Multidata103TemplateHATraceData data) + { + firedEvents["TokenValidationStarted"] = new Dictionary + { + { "tokenType", data.tokenType }, + { "tokenID", data.tokenID }, + { "HostReference", data.HostReference }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 5403 TokenValidationSuccess - Multidata103TemplateHA + parser.TokenValidationSuccess += delegate (Multidata103TemplateHATraceData data) + { + firedEvents["TokenValidationSuccess"] = new Dictionary + { + { "tokenType", data.tokenType }, + { "tokenID", data.tokenID }, + { "HostReference", data.HostReference }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 5404 TokenValidationFailure - Multidata102TemplateHA + parser.TokenValidationFailure += delegate (Multidata102TemplateHATraceData data) + { + firedEvents["TokenValidationFailure"] = new Dictionary + { + { "tokenType", data.tokenType }, + { "tokenID", data.tokenID }, + { "errorMessage", data.errorMessage }, + { "HostReference", data.HostReference }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 5405 GetIssuerNameSuccess - Multidata101TemplateHA + parser.GetIssuerNameSuccess += delegate (Multidata101TemplateHATraceData data) + { + firedEvents["GetIssuerNameSuccess"] = new Dictionary + { + { "issuerName", data.issuerName }, + { "tokenID", data.tokenID }, + { "HostReference", data.HostReference }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 5406 GetIssuerNameFailure - Multidata100TemplateHA + parser.GetIssuerNameFailure += delegate (Multidata100TemplateHATraceData data) + { + firedEvents["GetIssuerNameFailure"] = new Dictionary + { + { "tokenID", data.tokenID }, + { "HostReference", data.HostReference }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 5600 FederationMessageProcessingStarted - TwoStringsTemplateVA + parser.FederationMessageProcessingStarted += delegate (TwoStringsTemplateVATraceData data) + { + firedEvents["FederationMessageProcessingStarted"] = new Dictionary + { + { "HostReference", data.HostReference }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 5601 FederationMessageProcessingSuccess - TwoStringsTemplateVA + parser.FederationMessageProcessingSuccess += delegate (TwoStringsTemplateVATraceData data) + { + firedEvents["FederationMessageProcessingSuccess"] = new Dictionary + { + { "HostReference", data.HostReference }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 5602 FederationMessageCreationStarted - TwoStringsTemplateVA + parser.FederationMessageCreationStarted += delegate (TwoStringsTemplateVATraceData data) + { + firedEvents["FederationMessageCreationStarted"] = new Dictionary + { + { "HostReference", data.HostReference }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 5603 FederationMessageCreationSuccess - TwoStringsTemplateVA + parser.FederationMessageCreationSuccess += delegate (TwoStringsTemplateVATraceData data) + { + firedEvents["FederationMessageCreationSuccess"] = new Dictionary + { + { "HostReference", data.HostReference }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 5604 SessionCookieReadingStarted - TwoStringsTemplateVA + parser.SessionCookieReadingStarted += delegate (TwoStringsTemplateVATraceData data) + { + firedEvents["SessionCookieReadingStarted"] = new Dictionary + { + { "HostReference", data.HostReference }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 5605 SessionCookieReadingSuccess - TwoStringsTemplateVA + parser.SessionCookieReadingSuccess += delegate (TwoStringsTemplateVATraceData data) + { + firedEvents["SessionCookieReadingSuccess"] = new Dictionary + { + { "HostReference", data.HostReference }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 5606 PrincipalSettingFromSessionTokenStarted - TwoStringsTemplateVA + parser.PrincipalSettingFromSessionTokenStarted += delegate (TwoStringsTemplateVATraceData data) + { + firedEvents["PrincipalSettingFromSessionTokenStarted"] = new Dictionary + { + { "HostReference", data.HostReference }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 5607 PrincipalSettingFromSessionTokenSuccess - TwoStringsTemplateVA + parser.PrincipalSettingFromSessionTokenSuccess += delegate (TwoStringsTemplateVATraceData data) + { + firedEvents["PrincipalSettingFromSessionTokenSuccess"] = new Dictionary + { + { "HostReference", data.HostReference }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 39456 TrackingRecordDropped - Multidata15TemplateA + parser.TrackingRecordDropped += delegate (Multidata15TemplateATraceData data) + { + firedEvents["TrackingRecordDropped"] = new Dictionary + { + { "RecordNumber", data.RecordNumber }, + { "ProviderId", data.ProviderId }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 39457 TrackingRecordRaised - ThreeStringsTemplateA + parser.TrackingRecordRaised += delegate (ThreeStringsTemplateATraceData data) + { + firedEvents["TrackingRecordRaised"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 39458 TrackingRecordTruncated - Multidata15TemplateA + parser.TrackingRecordTruncated += delegate (Multidata15TemplateATraceData data) + { + firedEvents["TrackingRecordTruncated"] = new Dictionary + { + { "RecordNumber", data.RecordNumber }, + { "ProviderId", data.ProviderId }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 39459 TrackingDataExtracted - Multidata16TemplateA + parser.TrackingDataExtracted += delegate (Multidata16TemplateATraceData data) + { + firedEvents["TrackingDataExtracted"] = new Dictionary + { + { "Data", data.Data }, + { "Activity", data.Activity }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 39460 TrackingValueNotSerializable - Multidata18TemplateA + parser.TrackingValueNotSerializable += delegate (Multidata18TemplateATraceData data) + { + firedEvents["TrackingValueNotSerializable"] = new Dictionary + { + { "name", data.name }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57393 AppDomainUnload - Multidata0TemplateA + parser.AppDomainUnload += delegate (Multidata0TemplateATraceData data) + { + firedEvents["AppDomainUnload"] = new Dictionary + { + { "appdomainName", data.appdomainName }, + { "processName", data.processName }, + { "processId", data.processId }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57394 HandledException - ThreeStringsTemplateEA + parser.HandledException += delegate (ThreeStringsTemplateEATraceData data) + { + firedEvents["HandledException"] = new Dictionary + { + { "data1", data.data1 }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57395 ShipAssertExceptionMessage - TwoStringsTemplateA + parser.ShipAssertExceptionMessage += delegate (TwoStringsTemplateATraceData data) + { + firedEvents["ShipAssertExceptionMessage"] = new Dictionary + { + { "data1", data.data1 }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57396 ThrowingException - FourStringsTemplateEA + parser.ThrowingException += delegate (FourStringsTemplateEATraceData data) + { + firedEvents["ThrowingException"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57397 UnhandledException - ThreeStringsTemplateEA + parser.UnhandledException += delegate (ThreeStringsTemplateEATraceData data) + { + firedEvents["UnhandledException"] = new Dictionary + { + { "data1", data.data1 }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57398 MaxInstancesExceeded - Multidata84TemplateA + parser.MaxInstancesExceeded += delegate (Multidata84TemplateATraceData data) + { + firedEvents["MaxInstancesExceeded"] = new Dictionary + { + { "limit", data.limit }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57399 TraceCodeEventLogCritical - TwoStringsTemplateTA + parser.TraceCodeEventLogCritical += delegate (TwoStringsTemplateTATraceData data) + { + firedEvents["TraceCodeEventLogCritical"] = new Dictionary + { + { "ExtendedData", data.ExtendedData }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57400 TraceCodeEventLogError - TwoStringsTemplateTA + parser.TraceCodeEventLogError += delegate (TwoStringsTemplateTATraceData data) + { + firedEvents["TraceCodeEventLogError"] = new Dictionary + { + { "ExtendedData", data.ExtendedData }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57401 TraceCodeEventLogInfo - TwoStringsTemplateTA + parser.TraceCodeEventLogInfo += delegate (TwoStringsTemplateTATraceData data) + { + firedEvents["TraceCodeEventLogInfo"] = new Dictionary + { + { "ExtendedData", data.ExtendedData }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57402 TraceCodeEventLogVerbose - TwoStringsTemplateTA + parser.TraceCodeEventLogVerbose += delegate (TwoStringsTemplateTATraceData data) + { + firedEvents["TraceCodeEventLogVerbose"] = new Dictionary + { + { "ExtendedData", data.ExtendedData }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57403 TraceCodeEventLogWarning - TwoStringsTemplateTA + parser.TraceCodeEventLogWarning += delegate (TwoStringsTemplateTATraceData data) + { + firedEvents["TraceCodeEventLogWarning"] = new Dictionary + { + { "ExtendedData", data.ExtendedData }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57404 HandledExceptionWarning - ThreeStringsTemplateEA + parser.HandledExceptionWarning += delegate (ThreeStringsTemplateEATraceData data) + { + firedEvents["HandledExceptionWarning"] = new Dictionary + { + { "data1", data.data1 }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57405 HandledExceptionError - ThreeStringsTemplateEA + parser.HandledExceptionError += delegate (ThreeStringsTemplateEATraceData data) + { + firedEvents["HandledExceptionError"] = new Dictionary + { + { "data1", data.data1 }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57406 HandledExceptionVerbose - ThreeStringsTemplateEA + parser.HandledExceptionVerbose += delegate (ThreeStringsTemplateEATraceData data) + { + firedEvents["HandledExceptionVerbose"] = new Dictionary + { + { "data1", data.data1 }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57407 ThrowingExceptionVerbose - FourStringsTemplateEA + parser.ThrowingExceptionVerbose += delegate (FourStringsTemplateEATraceData data) + { + firedEvents["ThrowingExceptionVerbose"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57408 EtwUnhandledException - ThreeStringsTemplateEA + parser.EtwUnhandledException += delegate (ThreeStringsTemplateEATraceData data) + { + firedEvents["EtwUnhandledException"] = new Dictionary + { + { "data1", data.data1 }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57409 ThrowingEtwExceptionVerbose - FourStringsTemplateEA + parser.ThrowingEtwExceptionVerbose += delegate (FourStringsTemplateEATraceData data) + { + firedEvents["ThrowingEtwExceptionVerbose"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 57410 ThrowingEtwException - FourStringsTemplateEA + parser.ThrowingEtwException += delegate (FourStringsTemplateEATraceData data) + { + firedEvents["ThrowingEtwException"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "SerializedException", data.SerializedException }, + { "AppDomain", data.AppDomain }, + }; + }; + + // 62326 HttpHandlerPickedForUrl - FourStringsTemplateA + parser.HttpHandlerPickedForUrl += delegate (FourStringsTemplateATraceData data) + { + firedEvents["HttpHandlerPickedForUrl"] = new Dictionary + { + { "data1", data.data1 }, + { "data2", data.data2 }, + { "data3", data.data3 }, + { "AppDomain", data.AppDomain }, + }; + }; + } + + // ── Validate_Chunk13 ── + + private void Validate_Chunk13(Dictionary> firedEvents) + { + // 5402 TokenValidationStarted - Multidata103TemplateHA + Assert.True(firedEvents.ContainsKey("TokenValidationStarted"), "Event TokenValidationStarted did not fire."); + Assert.Equal(TestString(5402, "tokenType"), firedEvents["TokenValidationStarted"]["tokenType"]); + Assert.Equal(TestString(5402, "tokenID"), firedEvents["TokenValidationStarted"]["tokenID"]); + Assert.Equal(TestString(5402, "HostReference"), firedEvents["TokenValidationStarted"]["HostReference"]); + Assert.Equal(TestString(5402, "AppDomain"), firedEvents["TokenValidationStarted"]["AppDomain"]); + + // 5403 TokenValidationSuccess - Multidata103TemplateHA + Assert.True(firedEvents.ContainsKey("TokenValidationSuccess"), "Event TokenValidationSuccess did not fire."); + Assert.Equal(TestString(5403, "tokenType"), firedEvents["TokenValidationSuccess"]["tokenType"]); + Assert.Equal(TestString(5403, "tokenID"), firedEvents["TokenValidationSuccess"]["tokenID"]); + Assert.Equal(TestString(5403, "HostReference"), firedEvents["TokenValidationSuccess"]["HostReference"]); + Assert.Equal(TestString(5403, "AppDomain"), firedEvents["TokenValidationSuccess"]["AppDomain"]); + + // 5404 TokenValidationFailure - Multidata102TemplateHA + Assert.True(firedEvents.ContainsKey("TokenValidationFailure"), "Event TokenValidationFailure did not fire."); + Assert.Equal(TestString(5404, "tokenType"), firedEvents["TokenValidationFailure"]["tokenType"]); + Assert.Equal(TestString(5404, "tokenID"), firedEvents["TokenValidationFailure"]["tokenID"]); + Assert.Equal(TestString(5404, "errorMessage"), firedEvents["TokenValidationFailure"]["errorMessage"]); + Assert.Equal(TestString(5404, "HostReference"), firedEvents["TokenValidationFailure"]["HostReference"]); + Assert.Equal(TestString(5404, "AppDomain"), firedEvents["TokenValidationFailure"]["AppDomain"]); + + // 5405 GetIssuerNameSuccess - Multidata101TemplateHA + Assert.True(firedEvents.ContainsKey("GetIssuerNameSuccess"), "Event GetIssuerNameSuccess did not fire."); + Assert.Equal(TestString(5405, "issuerName"), firedEvents["GetIssuerNameSuccess"]["issuerName"]); + Assert.Equal(TestString(5405, "tokenID"), firedEvents["GetIssuerNameSuccess"]["tokenID"]); + Assert.Equal(TestString(5405, "HostReference"), firedEvents["GetIssuerNameSuccess"]["HostReference"]); + Assert.Equal(TestString(5405, "AppDomain"), firedEvents["GetIssuerNameSuccess"]["AppDomain"]); + + // 5406 GetIssuerNameFailure - Multidata100TemplateHA + Assert.True(firedEvents.ContainsKey("GetIssuerNameFailure"), "Event GetIssuerNameFailure did not fire."); + Assert.Equal(TestString(5406, "tokenID"), firedEvents["GetIssuerNameFailure"]["tokenID"]); + Assert.Equal(TestString(5406, "HostReference"), firedEvents["GetIssuerNameFailure"]["HostReference"]); + Assert.Equal(TestString(5406, "AppDomain"), firedEvents["GetIssuerNameFailure"]["AppDomain"]); + + // 5600 FederationMessageProcessingStarted - TwoStringsTemplateVA + Assert.True(firedEvents.ContainsKey("FederationMessageProcessingStarted"), "Event FederationMessageProcessingStarted did not fire."); + Assert.Equal(TestString(5600, "HostReference"), firedEvents["FederationMessageProcessingStarted"]["HostReference"]); + Assert.Equal(TestString(5600, "AppDomain"), firedEvents["FederationMessageProcessingStarted"]["AppDomain"]); + + // 5601 FederationMessageProcessingSuccess - TwoStringsTemplateVA + Assert.True(firedEvents.ContainsKey("FederationMessageProcessingSuccess"), "Event FederationMessageProcessingSuccess did not fire."); + Assert.Equal(TestString(5601, "HostReference"), firedEvents["FederationMessageProcessingSuccess"]["HostReference"]); + Assert.Equal(TestString(5601, "AppDomain"), firedEvents["FederationMessageProcessingSuccess"]["AppDomain"]); + + // 5602 FederationMessageCreationStarted - TwoStringsTemplateVA + Assert.True(firedEvents.ContainsKey("FederationMessageCreationStarted"), "Event FederationMessageCreationStarted did not fire."); + Assert.Equal(TestString(5602, "HostReference"), firedEvents["FederationMessageCreationStarted"]["HostReference"]); + Assert.Equal(TestString(5602, "AppDomain"), firedEvents["FederationMessageCreationStarted"]["AppDomain"]); + + // 5603 FederationMessageCreationSuccess - TwoStringsTemplateVA + Assert.True(firedEvents.ContainsKey("FederationMessageCreationSuccess"), "Event FederationMessageCreationSuccess did not fire."); + Assert.Equal(TestString(5603, "HostReference"), firedEvents["FederationMessageCreationSuccess"]["HostReference"]); + Assert.Equal(TestString(5603, "AppDomain"), firedEvents["FederationMessageCreationSuccess"]["AppDomain"]); + + // 5604 SessionCookieReadingStarted - TwoStringsTemplateVA + Assert.True(firedEvents.ContainsKey("SessionCookieReadingStarted"), "Event SessionCookieReadingStarted did not fire."); + Assert.Equal(TestString(5604, "HostReference"), firedEvents["SessionCookieReadingStarted"]["HostReference"]); + Assert.Equal(TestString(5604, "AppDomain"), firedEvents["SessionCookieReadingStarted"]["AppDomain"]); + + // 5605 SessionCookieReadingSuccess - TwoStringsTemplateVA + Assert.True(firedEvents.ContainsKey("SessionCookieReadingSuccess"), "Event SessionCookieReadingSuccess did not fire."); + Assert.Equal(TestString(5605, "HostReference"), firedEvents["SessionCookieReadingSuccess"]["HostReference"]); + Assert.Equal(TestString(5605, "AppDomain"), firedEvents["SessionCookieReadingSuccess"]["AppDomain"]); + + // 5606 PrincipalSettingFromSessionTokenStarted - TwoStringsTemplateVA + Assert.True(firedEvents.ContainsKey("PrincipalSettingFromSessionTokenStarted"), "Event PrincipalSettingFromSessionTokenStarted did not fire."); + Assert.Equal(TestString(5606, "HostReference"), firedEvents["PrincipalSettingFromSessionTokenStarted"]["HostReference"]); + Assert.Equal(TestString(5606, "AppDomain"), firedEvents["PrincipalSettingFromSessionTokenStarted"]["AppDomain"]); + + // 5607 PrincipalSettingFromSessionTokenSuccess - TwoStringsTemplateVA + Assert.True(firedEvents.ContainsKey("PrincipalSettingFromSessionTokenSuccess"), "Event PrincipalSettingFromSessionTokenSuccess did not fire."); + Assert.Equal(TestString(5607, "HostReference"), firedEvents["PrincipalSettingFromSessionTokenSuccess"]["HostReference"]); + Assert.Equal(TestString(5607, "AppDomain"), firedEvents["PrincipalSettingFromSessionTokenSuccess"]["AppDomain"]); + + // 39456 TrackingRecordDropped - Multidata15TemplateA + Assert.True(firedEvents.ContainsKey("TrackingRecordDropped"), "Event TrackingRecordDropped did not fire."); + Assert.Equal(TestInt64(39456, 0), firedEvents["TrackingRecordDropped"]["RecordNumber"]); + Assert.Equal(TestGuid(39456, 1), firedEvents["TrackingRecordDropped"]["ProviderId"]); + Assert.Equal(TestString(39456, "AppDomain"), firedEvents["TrackingRecordDropped"]["AppDomain"]); + + // 39457 TrackingRecordRaised - ThreeStringsTemplateA + Assert.True(firedEvents.ContainsKey("TrackingRecordRaised"), "Event TrackingRecordRaised did not fire."); + Assert.Equal(TestString(39457, "data1"), firedEvents["TrackingRecordRaised"]["data1"]); + Assert.Equal(TestString(39457, "data2"), firedEvents["TrackingRecordRaised"]["data2"]); + Assert.Equal(TestString(39457, "AppDomain"), firedEvents["TrackingRecordRaised"]["AppDomain"]); + + // 39458 TrackingRecordTruncated - Multidata15TemplateA + Assert.True(firedEvents.ContainsKey("TrackingRecordTruncated"), "Event TrackingRecordTruncated did not fire."); + Assert.Equal(TestInt64(39458, 0), firedEvents["TrackingRecordTruncated"]["RecordNumber"]); + Assert.Equal(TestGuid(39458, 1), firedEvents["TrackingRecordTruncated"]["ProviderId"]); + Assert.Equal(TestString(39458, "AppDomain"), firedEvents["TrackingRecordTruncated"]["AppDomain"]); + + // 39459 TrackingDataExtracted - Multidata16TemplateA + Assert.True(firedEvents.ContainsKey("TrackingDataExtracted"), "Event TrackingDataExtracted did not fire."); + Assert.Equal(TestString(39459, "Data"), firedEvents["TrackingDataExtracted"]["Data"]); + Assert.Equal(TestString(39459, "Activity"), firedEvents["TrackingDataExtracted"]["Activity"]); + Assert.Equal(TestString(39459, "AppDomain"), firedEvents["TrackingDataExtracted"]["AppDomain"]); + + // 39460 TrackingValueNotSerializable - Multidata18TemplateA + Assert.True(firedEvents.ContainsKey("TrackingValueNotSerializable"), "Event TrackingValueNotSerializable did not fire."); + Assert.Equal(TestString(39460, "name"), firedEvents["TrackingValueNotSerializable"]["name"]); + Assert.Equal(TestString(39460, "AppDomain"), firedEvents["TrackingValueNotSerializable"]["AppDomain"]); + + // 57393 AppDomainUnload - Multidata0TemplateA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("AppDomainUnload"), "Event AppDomainUnload did not fire."); + Assert.Equal(TestString(57393, "appdomainName"), firedEvents["AppDomainUnload"]["appdomainName"]); + Assert.Equal(TestString(57393, "processName"), firedEvents["AppDomainUnload"]["processName"]); + Assert.Equal(TestString(57393, "processId"), firedEvents["AppDomainUnload"]["processId"]); + Assert.Equal(TestString(57393, "AppDomain"), firedEvents["AppDomainUnload"]["AppDomain"]); + + // 57394 HandledException - ThreeStringsTemplateEA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("HandledException"), "Event HandledException did not fire."); + Assert.Equal(TestString(57394, "data1"), firedEvents["HandledException"]["data1"]); + Assert.Equal(TestString(57394, "SerializedException"), firedEvents["HandledException"]["SerializedException"]); + Assert.Equal(TestString(57394, "AppDomain"), firedEvents["HandledException"]["AppDomain"]); + + // 57395 ShipAssertExceptionMessage - TwoStringsTemplateA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("ShipAssertExceptionMessage"), "Event ShipAssertExceptionMessage did not fire."); + Assert.Equal(TestString(57395, "data1"), firedEvents["ShipAssertExceptionMessage"]["data1"]); + Assert.Equal(TestString(57395, "AppDomain"), firedEvents["ShipAssertExceptionMessage"]["AppDomain"]); + + // 57396 ThrowingException - FourStringsTemplateEA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("ThrowingException"), "Event ThrowingException did not fire."); + Assert.Equal(TestString(57396, "data1"), firedEvents["ThrowingException"]["data1"]); + Assert.Equal(TestString(57396, "data2"), firedEvents["ThrowingException"]["data2"]); + Assert.Equal(TestString(57396, "SerializedException"), firedEvents["ThrowingException"]["SerializedException"]); + Assert.Equal(TestString(57396, "AppDomain"), firedEvents["ThrowingException"]["AppDomain"]); + + // 57397 UnhandledException - ThreeStringsTemplateEA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("UnhandledException"), "Event UnhandledException did not fire."); + Assert.Equal(TestString(57397, "data1"), firedEvents["UnhandledException"]["data1"]); + Assert.Equal(TestString(57397, "SerializedException"), firedEvents["UnhandledException"]["SerializedException"]); + Assert.Equal(TestString(57397, "AppDomain"), firedEvents["UnhandledException"]["AppDomain"]); + + // 57398 MaxInstancesExceeded - Multidata84TemplateA + Assert.True(firedEvents.ContainsKey("MaxInstancesExceeded"), "Event MaxInstancesExceeded did not fire."); + Assert.Equal(TestInt32(57398, 0), firedEvents["MaxInstancesExceeded"]["limit"]); + Assert.Equal(TestString(57398, "AppDomain"), firedEvents["MaxInstancesExceeded"]["AppDomain"]); + + // 57399 TraceCodeEventLogCritical - TwoStringsTemplateTA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("TraceCodeEventLogCritical"), "Event TraceCodeEventLogCritical did not fire."); + Assert.Equal(TestString(57399, "ExtendedData"), firedEvents["TraceCodeEventLogCritical"]["ExtendedData"]); + Assert.Equal(TestString(57399, "AppDomain"), firedEvents["TraceCodeEventLogCritical"]["AppDomain"]); + + // 57400 TraceCodeEventLogError - TwoStringsTemplateTA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("TraceCodeEventLogError"), "Event TraceCodeEventLogError did not fire."); + Assert.Equal(TestString(57400, "ExtendedData"), firedEvents["TraceCodeEventLogError"]["ExtendedData"]); + Assert.Equal(TestString(57400, "AppDomain"), firedEvents["TraceCodeEventLogError"]["AppDomain"]); + + // 57401 TraceCodeEventLogInfo - TwoStringsTemplateTA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("TraceCodeEventLogInfo"), "Event TraceCodeEventLogInfo did not fire."); + Assert.Equal(TestString(57401, "ExtendedData"), firedEvents["TraceCodeEventLogInfo"]["ExtendedData"]); + Assert.Equal(TestString(57401, "AppDomain"), firedEvents["TraceCodeEventLogInfo"]["AppDomain"]); + + // 57402 TraceCodeEventLogVerbose - TwoStringsTemplateTA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("TraceCodeEventLogVerbose"), "Event TraceCodeEventLogVerbose did not fire."); + Assert.Equal(TestString(57402, "ExtendedData"), firedEvents["TraceCodeEventLogVerbose"]["ExtendedData"]); + Assert.Equal(TestString(57402, "AppDomain"), firedEvents["TraceCodeEventLogVerbose"]["AppDomain"]); + + // 57403 TraceCodeEventLogWarning - TwoStringsTemplateTA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("TraceCodeEventLogWarning"), "Event TraceCodeEventLogWarning did not fire."); + Assert.Equal(TestString(57403, "ExtendedData"), firedEvents["TraceCodeEventLogWarning"]["ExtendedData"]); + Assert.Equal(TestString(57403, "AppDomain"), firedEvents["TraceCodeEventLogWarning"]["AppDomain"]); + + // 57404 HandledExceptionWarning - ThreeStringsTemplateEA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("HandledExceptionWarning"), "Event HandledExceptionWarning did not fire."); + Assert.Equal(TestString(57404, "data1"), firedEvents["HandledExceptionWarning"]["data1"]); + Assert.Equal(TestString(57404, "SerializedException"), firedEvents["HandledExceptionWarning"]["SerializedException"]); + Assert.Equal(TestString(57404, "AppDomain"), firedEvents["HandledExceptionWarning"]["AppDomain"]); + + // 57405 HandledExceptionError - ThreeStringsTemplateEA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("HandledExceptionError"), "Event HandledExceptionError did not fire."); + Assert.Equal(TestString(57405, "data1"), firedEvents["HandledExceptionError"]["data1"]); + Assert.Equal(TestString(57405, "SerializedException"), firedEvents["HandledExceptionError"]["SerializedException"]); + Assert.Equal(TestString(57405, "AppDomain"), firedEvents["HandledExceptionError"]["AppDomain"]); + + // 57406 HandledExceptionVerbose - ThreeStringsTemplateEA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("HandledExceptionVerbose"), "Event HandledExceptionVerbose did not fire."); + Assert.Equal(TestString(57406, "data1"), firedEvents["HandledExceptionVerbose"]["data1"]); + Assert.Equal(TestString(57406, "SerializedException"), firedEvents["HandledExceptionVerbose"]["SerializedException"]); + Assert.Equal(TestString(57406, "AppDomain"), firedEvents["HandledExceptionVerbose"]["AppDomain"]); + + // 57407 ThrowingExceptionVerbose - FourStringsTemplateEA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("ThrowingExceptionVerbose"), "Event ThrowingExceptionVerbose did not fire."); + Assert.Equal(TestString(57407, "data1"), firedEvents["ThrowingExceptionVerbose"]["data1"]); + Assert.Equal(TestString(57407, "data2"), firedEvents["ThrowingExceptionVerbose"]["data2"]); + Assert.Equal(TestString(57407, "SerializedException"), firedEvents["ThrowingExceptionVerbose"]["SerializedException"]); + Assert.Equal(TestString(57407, "AppDomain"), firedEvents["ThrowingExceptionVerbose"]["AppDomain"]); + + // 57408 EtwUnhandledException - ThreeStringsTemplateEA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("EtwUnhandledException"), "Event EtwUnhandledException did not fire."); + Assert.Equal(TestString(57408, "data1"), firedEvents["EtwUnhandledException"]["data1"]); + Assert.Equal(TestString(57408, "SerializedException"), firedEvents["EtwUnhandledException"]["SerializedException"]); + Assert.Equal(TestString(57408, "AppDomain"), firedEvents["EtwUnhandledException"]["AppDomain"]); + + // 57409 ThrowingEtwExceptionVerbose - FourStringsTemplateEA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("ThrowingEtwExceptionVerbose"), "Event ThrowingEtwExceptionVerbose did not fire."); + Assert.Equal(TestString(57409, "data1"), firedEvents["ThrowingEtwExceptionVerbose"]["data1"]); + Assert.Equal(TestString(57409, "data2"), firedEvents["ThrowingEtwExceptionVerbose"]["data2"]); + Assert.Equal(TestString(57409, "SerializedException"), firedEvents["ThrowingEtwExceptionVerbose"]["SerializedException"]); + Assert.Equal(TestString(57409, "AppDomain"), firedEvents["ThrowingEtwExceptionVerbose"]["AppDomain"]); + + // 57410 ThrowingEtwException - FourStringsTemplateEA (task=0, Guid.Empty) + Assert.True(firedEvents.ContainsKey("ThrowingEtwException"), "Event ThrowingEtwException did not fire."); + Assert.Equal(TestString(57410, "data1"), firedEvents["ThrowingEtwException"]["data1"]); + Assert.Equal(TestString(57410, "data2"), firedEvents["ThrowingEtwException"]["data2"]); + Assert.Equal(TestString(57410, "SerializedException"), firedEvents["ThrowingEtwException"]["SerializedException"]); + Assert.Equal(TestString(57410, "AppDomain"), firedEvents["ThrowingEtwException"]["AppDomain"]); + + // 62326 HttpHandlerPickedForUrl - FourStringsTemplateA + Assert.True(firedEvents.ContainsKey("HttpHandlerPickedForUrl"), "Event HttpHandlerPickedForUrl did not fire."); + Assert.Equal(TestString(62326, "data1"), firedEvents["HttpHandlerPickedForUrl"]["data1"]); + Assert.Equal(TestString(62326, "data2"), firedEvents["HttpHandlerPickedForUrl"]["data2"]); + Assert.Equal(TestString(62326, "data3"), firedEvents["HttpHandlerPickedForUrl"]["data3"]); + Assert.Equal(TestString(62326, "AppDomain"), firedEvents["HttpHandlerPickedForUrl"]["AppDomain"]); + } + } +} diff --git a/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.cs b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.cs new file mode 100644 index 000000000..07709c5f5 --- /dev/null +++ b/src/TraceEvent/TraceEvent.Tests/Parsers/ApplicationServerTraceEventParserTests.cs @@ -0,0 +1,267 @@ +using Microsoft.Diagnostics.Tracing; +using Microsoft.Diagnostics.Tracing.Parsers; +using Microsoft.Diagnostics.Tracing.Parsers.ApplicationServer; +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using Xunit; + +namespace TraceEventTests.Parsers +{ + public partial class ApplicationServerTraceEventParserTests + { + private const string ProviderName = "Microsoft-Windows-Application Server-Applications"; + + /// + /// Validates that every event in the ApplicationServerTraceEventParser fires correctly + /// with the expected payload values when processing a synthetic nettrace trace. + /// + /// + /// Validates that every event in the ApplicationServerTraceEventParser fires correctly + /// with the expected payload values when processing a synthetic nettrace trace. + /// + [Fact] + public void AllEventsRoundTrip() + { + // Build synthetic trace with all 481 events + byte[] traceBytes = BuildTrace(); + + // Process and collect results + var firedEvents = new Dictionary>(); + using (var stream = new MemoryStream(traceBytes)) + { + var source = new EventPipeEventSource(stream); + var parser = new ApplicationServerTraceEventParser(source); + SubscribeAllEvents(parser, firedEvents); + source.Process(); + } + + // Validate all events fired with correct values + ValidateAllEvents(firedEvents); + } + + #region Trace Building + + private byte[] BuildTrace() + { + var writer = new EventPipeWriterV5(); + writer.WriteHeaders(); + + int metadataId = 1; + // Each chunk writes its metadata entries + WriteMetadata_Chunk01(writer, ref metadataId); + WriteMetadata_Chunk02(writer, ref metadataId); + WriteMetadata_Chunk03(writer, ref metadataId); + WriteMetadata_Chunk04(writer, ref metadataId); + WriteMetadata_Chunk05(writer, ref metadataId); + WriteMetadata_Chunk06(writer, ref metadataId); + WriteMetadata_Chunk07(writer, ref metadataId); + WriteMetadata_Chunk08(writer, ref metadataId); + WriteMetadata_Chunk09(writer, ref metadataId); + WriteMetadata_Chunk10(writer, ref metadataId); + WriteMetadata_Chunk11(writer, ref metadataId); + WriteMetadata_Chunk12(writer, ref metadataId); + WriteMetadata_Chunk13(writer, ref metadataId); + + // Reset metadataId counter for events (events reference the same IDs) + metadataId = 1; + int sequenceNumber = 1; + // Each chunk writes its event payloads + WriteEvents_Chunk01(writer, ref metadataId, ref sequenceNumber); + WriteEvents_Chunk02(writer, ref metadataId, ref sequenceNumber); + WriteEvents_Chunk03(writer, ref metadataId, ref sequenceNumber); + WriteEvents_Chunk04(writer, ref metadataId, ref sequenceNumber); + WriteEvents_Chunk05(writer, ref metadataId, ref sequenceNumber); + WriteEvents_Chunk06(writer, ref metadataId, ref sequenceNumber); + WriteEvents_Chunk07(writer, ref metadataId, ref sequenceNumber); + WriteEvents_Chunk08(writer, ref metadataId, ref sequenceNumber); + WriteEvents_Chunk09(writer, ref metadataId, ref sequenceNumber); + WriteEvents_Chunk10(writer, ref metadataId, ref sequenceNumber); + WriteEvents_Chunk11(writer, ref metadataId, ref sequenceNumber); + WriteEvents_Chunk12(writer, ref metadataId, ref sequenceNumber); + WriteEvents_Chunk13(writer, ref metadataId, ref sequenceNumber); + + writer.WriteEndObject(); + return writer.ToArray(); + } + + #endregion + + #region Event Subscription + + private void SubscribeAllEvents(ApplicationServerTraceEventParser parser, Dictionary> firedEvents) + { + Subscribe_Chunk01(parser, firedEvents); + Subscribe_Chunk02(parser, firedEvents); + Subscribe_Chunk03(parser, firedEvents); + Subscribe_Chunk04(parser, firedEvents); + Subscribe_Chunk05(parser, firedEvents); + Subscribe_Chunk06(parser, firedEvents); + Subscribe_Chunk07(parser, firedEvents); + Subscribe_Chunk08(parser, firedEvents); + Subscribe_Chunk09(parser, firedEvents); + Subscribe_Chunk10(parser, firedEvents); + Subscribe_Chunk11(parser, firedEvents); + Subscribe_Chunk12(parser, firedEvents); + Subscribe_Chunk13(parser, firedEvents); + } + + #endregion + + #region Validation + + private void ValidateAllEvents(Dictionary> firedEvents) + { + Validate_Chunk01(firedEvents); + Validate_Chunk02(firedEvents); + Validate_Chunk03(firedEvents); + Validate_Chunk04(firedEvents); + Validate_Chunk05(firedEvents); + Validate_Chunk06(firedEvents); + Validate_Chunk07(firedEvents); + Validate_Chunk08(firedEvents); + Validate_Chunk09(firedEvents); + Validate_Chunk10(firedEvents); + Validate_Chunk11(firedEvents); + Validate_Chunk12(firedEvents); + Validate_Chunk13(firedEvents); + } + + #endregion + + #region Helpers + + /// + /// Generates a unique non-default string value for a given event and field. + /// + private static string TestString(int eventId, string fieldName) + { + return $"Event{eventId}_{fieldName}"; + } + + /// + /// Generates a unique non-default Int32 value derived from event ID and field index. + /// + private static int TestInt32(int eventId, int fieldIndex) + { + return eventId * 100 + fieldIndex + 1; + } + + /// + /// Generates a unique non-default Int64 value derived from event ID and field index. + /// + private static long TestInt64(int eventId, int fieldIndex) + { + return (long)eventId * 100000 + fieldIndex + 1; + } + + /// + /// Generates a unique non-default UInt64 value derived from event ID and field index. + /// + private static ulong TestUInt64(int eventId, int fieldIndex) + { + return (ulong)eventId * 100000 + (ulong)fieldIndex + 1; + } + + /// + /// Generates a unique non-default byte value derived from event ID. + /// + private static byte TestByte(int eventId, int fieldIndex) + { + return (byte)((eventId + fieldIndex) % 255 + 1); + } + + /// + /// Generates a unique non-default GUID derived from event ID and field index. + /// + private static Guid TestGuid(int eventId, int fieldIndex) + { + return new Guid(eventId, (short)fieldIndex, 0, 0, 1, 2, 3, 4, 5, 6, 7); + } + + /// + /// Generates a unique non-default FILETIME (as Int64) derived from event ID and field index. + /// + private static long TestFileTime(int eventId, int fieldIndex) + { + // Use a date in 2020 plus event-specific offset to avoid default values + return new DateTime(2020, 1, 1).Ticks + (long)eventId * 1000000 + fieldIndex; + } + + /// + /// Writes a null-terminated UTF-16 string to a BinaryWriter. + /// + private static void WriteUnicodeString(BinaryWriter writer, string value) + { + byte[] bytes = Encoding.Unicode.GetBytes(value); + writer.Write(bytes); + writer.Write((short)0); // null terminator + } + + /// + /// Writes a payload for the given template fields. + /// Returns the byte array of the payload. + /// + private static byte[] BuildPayload(int eventId, TemplateField[] fields) + { + using (var ms = new MemoryStream()) + using (var bw = new BinaryWriter(ms)) + { + for (int i = 0; i < fields.Length; i++) + { + switch (fields[i].Type) + { + case FieldType.UnicodeString: + WriteUnicodeString(bw, TestString(eventId, fields[i].Name)); + break; + case FieldType.Int32: + bw.Write(TestInt32(eventId, i)); + break; + case FieldType.Int64: + bw.Write(TestInt64(eventId, i)); + break; + case FieldType.UInt64: + bw.Write((long)TestUInt64(eventId, i)); // written as 8 bytes + break; + case FieldType.UInt8: + bw.Write(TestByte(eventId, i)); + break; + case FieldType.Guid: + bw.Write(TestGuid(eventId, i).ToByteArray()); + break; + case FieldType.FileTime: + bw.Write(TestFileTime(eventId, i)); + break; + } + } + return ms.ToArray(); + } + } + + internal enum FieldType + { + UnicodeString, + Int32, + Int64, + UInt64, + UInt8, + Guid, + FileTime + } + + internal struct TemplateField + { + public string Name; + public FieldType Type; + + public TemplateField(string name, FieldType type) + { + Name = name; + Type = type; + } + } + + #endregion + } +} diff --git a/src/TraceEvent/TraceLog.cs b/src/TraceEvent/TraceLog.cs index b7957ae87..9fc84f6be 100644 --- a/src/TraceEvent/TraceLog.cs +++ b/src/TraceEvent/TraceLog.cs @@ -1233,6 +1233,7 @@ internal void RegisterStandardParsers() new SampleProfilerTraceEventParser(this); new WpfTraceEventParser(this); + new ApplicationServerTraceEventParser(this); var dynamicParser = Dynamic;