public void ConvertProcessConfig() { var filterDescriptorPid = new ProcessFilterDescriptor { Key = ProcessFilterKey.ProcessId, MatchType = ProcessFilterType.Exact, Value = "5" }; var filterDescriptorPidContains = new ProcessFilterDescriptor { Key = ProcessFilterKey.ProcessId, MatchType = ProcessFilterType.Contains, Value = "6" }; var filterDescriptorName = new ProcessFilterDescriptor { Key = ProcessFilterKey.ProcessName, MatchType = ProcessFilterType.Exact, Value = "name1" }; var filterDescriptorNameContains = new ProcessFilterDescriptor { Key = ProcessFilterKey.ProcessName, MatchType = ProcessFilterType.Contains, Value = "namePartial" }; var filterDescriptorCommand = new ProcessFilterDescriptor { Key = ProcessFilterKey.CommandLine, MatchType = ProcessFilterType.Exact, Value = "command arg" }; var filterDescriptorCommandContains = new ProcessFilterDescriptor { Key = ProcessFilterKey.CommandLine, MatchType = ProcessFilterType.Contains, Value = "arg1" }; var filter = CreateFilterEntry(filterDescriptorPid); ValidateProcessFilter(DiagProcessFilterCriteria.ProcessId, filterDescriptorPid.Value, filter); //Contains still becomes Exact for ProcessId filter = CreateFilterEntry(filterDescriptorPidContains); ValidateProcessFilter(DiagProcessFilterCriteria.ProcessId, filterDescriptorPidContains.Value, filter); filter = CreateFilterEntry(filterDescriptorName); ValidateProcessFilter(DiagProcessFilterCriteria.ProcessName, filterDescriptorName.Value, filter); filter = CreateFilterEntry(filterDescriptorNameContains); ValidateProcessFilter(DiagProcessFilterCriteria.ProcessName, filterDescriptorNameContains.Value, DiagProcessFilterMatchType.Contains, filter); filter = CreateFilterEntry(filterDescriptorCommand); ValidateProcessFilter(DiagProcessFilterCriteria.CommandLine, filterDescriptorCommand.Value, filter); filter = CreateFilterEntry(filterDescriptorCommandContains); ValidateProcessFilter(DiagProcessFilterCriteria.CommandLine, filterDescriptorCommandContains.Value, DiagProcessFilterMatchType.Contains, filter); //This filter doesn't make any sense but we are just testing that we can combine multiple filters var options = CreateOptions(filterDescriptorPid, filterDescriptorName, filterDescriptorNameContains, filterDescriptorCommand, filterDescriptorCommandContains); ValidateProcessFilter(DiagProcessFilterCriteria.ProcessId, filterDescriptorPid.Value, options.Filters[0]); ValidateProcessFilter(DiagProcessFilterCriteria.ProcessName, filterDescriptorName.Value, options.Filters[1]); ValidateProcessFilter(DiagProcessFilterCriteria.ProcessName, filterDescriptorNameContains.Value, DiagProcessFilterMatchType.Contains, options.Filters[2]); ValidateProcessFilter(DiagProcessFilterCriteria.CommandLine, filterDescriptorCommand.Value, options.Filters[3]); ValidateProcessFilter(DiagProcessFilterCriteria.CommandLine, filterDescriptorCommandContains.Value, DiagProcessFilterMatchType.Contains, options.Filters[4]); }
private static DiagProcessFilterEntry CreateFilterEntry(ProcessFilterDescriptor filter) { return(CreateOptions(filter).Filters.First()); }