public void SettingsTestFixture() { string _traceName = string.Empty; AssemblyTraceEvent.GetTraceName(x => _traceName = x); Assert.AreEqual("CAS.RealTime", _traceName, "Trace name must be well defined and cannot be changed - it is breaking feature"); }
public void TracerTestMethod() { AssemblyTraceEvent _tracerWrapper = AssemblyTraceEvent.Tracer; Assert.IsNotNull(_tracerWrapper); Assert.AreEqual <string>("DataProvider.TextReader", _tracerWrapper.Name); TraceSource _tracer = _tracerWrapper.TraceSource; Assert.IsNotNull(_tracer); Assert.AreEqual(2, _tracer.Listeners.Count, $"Available listeners: {string.Join(", ", _tracer.Listeners.Cast<TraceListener>().Select<TraceListener, string>(x => x.Name).ToArray<String>())}"); Dictionary <string, TraceListener> _listeners = _tracer.Listeners.Cast <TraceListener>().ToDictionary <TraceListener, string>(x => x.Name); Assert.IsTrue(_listeners.ContainsKey("LogFile")); TraceListener _listener = _listeners["LogFile"]; Assert.IsNotNull(_listener); Assert.IsInstanceOfType(_listener, typeof(DelimitedListTraceListener)); DelimitedListTraceListener _advancedListener = _listener as DelimitedListTraceListener; Assert.IsNotNull(_advancedListener.Filter); Assert.IsInstanceOfType(_advancedListener.Filter, typeof(EventTypeFilter)); EventTypeFilter _eventTypeFilter = _advancedListener.Filter as EventTypeFilter; Assert.AreEqual(SourceLevels.All, _eventTypeFilter.EventType); string _testPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); Assert.AreEqual <string>(Path.Combine(_testPath, @"log\CAS.CommServer.ProtocolHub.Communication.log"), GetFileName(_advancedListener)); }
private void Pendulum(object state) { if (!Monitor.TryEnter(this)) // instead of lock (this) { return; // we are exiting, because the lock is already acquired (this is not the problem because it will be soon launched again by the Timer) } try { if (stopwatch.Elapsed > m_deadline) { MaxDelayMessage("Pendulum"); stopwatch.Reset(); string message = String.Format(Resources.RestartMessageFormat, m_ObjectName, MethodCallMessageToString(m_lastCall)); AssemblyTraceEvent.Trace(TraceEventType.Critical, 162, "WatchdogProperty", message); #if DEBUG MarkRestart(message); //NUnit.Framework.Assert.Fail //( "I am about to reboot the system, but reboot is now switched off because of debug mode", "Processes.MonitoredThread" ); #else CAS.Lib.RTLib.Processes.Manager.ForceReboot(); #endif } } finally { Monitor.Exit(this); } }
private void MaxDelayMessage(string SourceName) { if (stopwatch.Elapsed > m_maxDelay) { m_maxDelay = stopwatch.Elapsed; string message = String.Format(Resources.MaxDelayMessageFormat, m_maxDelay.TotalMilliseconds.ToString(), m_ObjectName, SourceName + ":" + MethodCallMessageToString(m_lastCall)); AssemblyTraceEvent.Trace(TraceEventType.Information, 267, "WatchdogProperty", message); } }
/// <summary> /// Enters the guarded by the watchdog object. /// </summary> /// <param name="lastCall">The call message.</param> public void EnterWatchdog(IMethodCallMessage lastCall) { lock (this) { if (stopwatch.Elapsed > TimeSpan.Zero) { string message = String.Format(Resources.WatchdogStopwatchIsNotZeroMessageFormat, stopwatch.Elapsed.Milliseconds); AssemblyTraceEvent.Trace(TraceEventType.Warning, 286, "WatchdogProperty", message); } if (InsideWatchdogCoutner != 0) { string message = String.Format(Resources.InsideWatchdogMessageFormat, InsideWatchdogCoutner); AssemblyTraceEvent.Trace(TraceEventType.Warning, 291, "WatchdogProperty", message); } #if DEBUG string meth = MethodCallMessageToString(lastCall); #endif m_lastCall = lastCall; stopwatch.Start(); InsideWatchdogCoutner++; } }