예제 #1
0
        public static EventProviderDescriptor GetDescriptor(this EventProvider provider)
        {
            if (!provider.IsEnabled)
            {
                throw new InvalidOperationException("Provider is disabled");
            }

            var d = new EventProviderDescriptor(provider.Id);

            d.Id              = provider.Id;
            d.Level           = provider.Level;
            d.MatchAnyKeyword = provider.MatchAnyKeyword;
            d.MatchAllKeyword = provider.MatchAllKeyword;

            d.IncludeSecurityId        = provider.IncludeSecurityId;
            d.IncludeTerminalSessionId = provider.IncludeTerminalSessionId;
            d.IncludeStackTrace        = provider.IncludeStackTrace;

            if (provider.FilterExecutableNames)
            {
                d.ExecutableName = string.Join(";", provider.ExecutableNames);
            }

            if (provider.FilterProcessIds)
            {
                d.ProcessIds = new List <uint>(provider.ProcessIds);
            }

            if (provider.FilterEventIds)
            {
                d.EventIds         = new List <ushort>(provider.EventIds);
                d.EventIdsFilterIn = provider.EventIdsFilterIn;
            }

            if (provider.FilterStackWalkEventIds)
            {
                d.StackWalkEventIds         = new List <ushort>(provider.StackWalkEventIds);
                d.StackWalkEventIdsFilterIn = provider.StackWalkEventIdsFilterIn;
            }

            if (provider.FilterStackWalkLevelKeyword)
            {
                d.FilterStackWalkLevelKeyword = provider.FilterStackWalkLevelKeyword;
                d.StackWalkFilterIn           = provider.StackWalkFilterIn;
                d.StackWalkLevel           = provider.StackWalkLevel;
                d.StackWalkMatchAnyKeyword = provider.StackWalkMatchAnyKeyword;
                d.StackWalkMatchAllKeyword = provider.StackWalkMatchAllKeyword;
            }

            d.Manifest        = provider.Manifest;
            d.StartupProjects = new List <string>(provider.StartupProjects);

            return(d);
        }
예제 #2
0
        private void VerifyEqual(EventProvider expected, EventProviderDescriptor actual)
        {
            Assert.Equal(expected.Id, actual.Id);
            Assert.Equal(expected.Level, actual.Level);
            Assert.Equal(expected.MatchAnyKeyword, actual.MatchAnyKeyword);
            Assert.Equal(expected.MatchAllKeyword, actual.MatchAllKeyword);

            Assert.Equal(expected.IncludeSecurityId, actual.IncludeSecurityId);
            Assert.Equal(expected.IncludeTerminalSessionId, actual.IncludeTerminalSessionId);
            Assert.Equal(expected.IncludeStackTrace, actual.IncludeStackTrace);

            if (expected.FilterExecutableNames)
            {
                Assert.Equal(string.Join(";", expected.ExecutableNames), actual.ExecutableName);
            }
            else
            {
                Assert.Null(actual.ExecutableName);
            }

            if (expected.FilterProcessIds)
            {
                Assert.Equal(expected.ProcessIds, actual.ProcessIds);
            }
            else
            {
                Assert.Null(actual.ProcessIds);
            }

            if (expected.FilterEventIds)
            {
                Assert.Equal(expected.EventIds, actual.EventIds);
                Assert.Equal(expected.EventIdsFilterIn, actual.EventIdsFilterIn);
            }
            else
            {
                Assert.Null(actual.EventIds);
            }

            if (expected.FilterStackWalkEventIds)
            {
                Assert.Equal(expected.StackWalkEventIds, actual.StackWalkEventIds);
                Assert.Equal(expected.StackWalkEventIdsFilterIn, actual.StackWalkEventIdsFilterIn);
            }
            else
            {
                Assert.Null(actual.StackWalkEventIds);
            }

            Assert.Equal(expected.FilterStackWalkLevelKeyword, actual.FilterStackWalkLevelKeyword);
            if (expected.FilterStackWalkEventIds)
            {
                Assert.Equal(expected.StackWalkFilterIn, actual.StackWalkFilterIn);
                Assert.Equal(expected.StackWalkLevel, actual.StackWalkLevel);
                Assert.Equal(expected.StackWalkMatchAnyKeyword, actual.StackWalkMatchAnyKeyword);
                Assert.Equal(expected.StackWalkMatchAllKeyword, actual.StackWalkMatchAllKeyword);
            }
            else
            {
                Assert.Equal(expected.StackWalkFilterIn, actual.StackWalkFilterIn);
                Assert.Equal(0, actual.StackWalkLevel);
                Assert.Equal(0ul, actual.StackWalkMatchAnyKeyword);
                Assert.Equal(0ul, actual.StackWalkMatchAllKeyword);
            }

            Assert.Equal(expected.Manifest, actual.Manifest);
            Assert.Equal(expected.StartupProjects, actual.StartupProjects);
        }