public void Test_EventSource_EtwManifestGenerationRollover() { RemoteExecutor.Invoke(() => { using (RemoteInvokeHandle handle = RemoteExecutor.Invoke(() => { var es = new SimpleEventSource(); for (var i = 0; i < 100; i++) { es.WriteSimpleInt(i); Thread.Sleep(100); } })) { var initialFileName = @"initialFile.etl"; var rolloverFileName = @"rolloverFile.etl"; var tracesession = new TraceEventSession("testname", initialFileName); var max_retries = 50; tracesession.EnableProvider("SimpleEventSource"); Thread.Sleep(TimeSpan.FromSeconds(5)); tracesession.Flush(); tracesession.SetFileName(rolloverFileName); Thread.Sleep(TimeSpan.FromSeconds(5)); tracesession.Flush(); tracesession.DisableProvider("SimpleEventSource"); tracesession.Dispose(); bool initialFileHasManifest = false; bool rollOverFileHasManifest = false; for (int i = 0; i < max_retries; i++) { if (VerifyManifestAndRemoveFile(initialFileName)) { initialFileHasManifest = true; break; } Thread.Sleep(1000); } for (int i = 0; i < max_retries; i++) { if (VerifyManifestAndRemoveFile(rolloverFileName)) { rollOverFileHasManifest = true; break; } Thread.Sleep(1000); } Assert.True(initialFileHasManifest); Assert.True(rollOverFileHasManifest); } }).Dispose(); }
public void Test_EventSource_EtwManifestGenerationRollover() { RemoteExecutor.Invoke(() => { using (RemoteInvokeHandle handle = RemoteExecutor.Invoke(() => { var es = new SimpleEventSource(); for (var i = 0; i < 100; i++) { es.WriteSimpleInt(i); Thread.Sleep(100); } })) { var initialFileName = @"initialFile.etl"; var rolloverFile = @"rolloverFile.etl"; var tracesession = new TraceEventSession("testname", initialFileName); tracesession.EnableProvider("SimpleEventSource"); Thread.Sleep(TimeSpan.FromSeconds(5)); tracesession.Flush(); // Sleep after requesting flush to ensure that the manifest payload generated // is fully written to the etl file. Thread.Sleep(TimeSpan.FromSeconds(5)); tracesession.SetFileName(rolloverFile); Thread.Sleep(TimeSpan.FromSeconds(5)); tracesession.Flush(); tracesession.DisableProvider("SimpleEventSource"); tracesession.Dispose(); Assert.True(VerifyManifestAndRemoveFile(initialFileName)); Assert.True(VerifyManifestAndRemoveFile(rolloverFile)); } }).Dispose(); }