handle.Close();
logs.Add(log);
}
+ else if (Marshal.GetLastWin32Error() != Interop.Errors.ERROR_INVALID_PARAMETER)
+ {
+ // This api should return the list of all event logs present on the system even if the current user can't open the log.
+ // Windows returns ERROR_INVALID_PARAMETER for special keys which were added in RS5+ but do not represent actual event logs.
+ logs.Add(log);
+ }
}
return logs.ToArray();
using System.Globalization;
using System.IO;
+using System.Linq;
using Xunit;
namespace System.Diagnostics.Tests
}
}
- [ConditionalFact(typeof(Helpers), nameof(Helpers.SupportsEventLogs))]
+ [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndSupportsEventLogs))]
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
public void GetEventLogEntriesTest()
{
Assert.True(Helpers.RetryOnWin7(() => eventLog.Entries.Count) >= 0);
}
}
+
+ [ConditionalFact(typeof(Helpers), nameof(Helpers.SupportsEventLogs))]
+ [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
+ public void GetEventLogContainsSecurityLogTest()
+ {
+ EventLog[] eventlogs = EventLog.GetEventLogs();
+ Assert.True(eventlogs.Select(t => t.Log).Contains("Security", StringComparer.OrdinalIgnoreCase));
+ }
}
}