public void HitsFileWithDifferentNumberOfEntriesCausesExceptionOnUnload() { FunctionExecutor.Run(() => { using var ctx = new TrackerContext(); WriteHitsFile(new[] { 1, 2, 3 }); ModuleTrackerTemplate.HitsArray = new[] { 1 }; Assert.Throws <InvalidOperationException>(() => ModuleTrackerTemplate.UnloadModule(null, null)); return(s_success); }); }
public void HitsFileCorrectlyWritten() { FunctionExecutor.Run(() => { using var ctx = new TrackerContext(); ModuleTrackerTemplate.HitsArray = new[] { 1, 2, 0, 3 }; ModuleTrackerTemplate.UnloadModule(null, null); int[] expectedHitsArray = new[] { 1, 2, 0, 3 }; Assert.Equal(expectedHitsArray, ReadHitsFile()); return(s_success); }); }
public void HitsFileCorrectlyWritten() { using var invoker = RemoteExecutor.Invoke(_ => { using var ctx = new TrackerContext(); ModuleTrackerTemplate.HitsArray = new[] { 1, 2, 0, 3 }; ModuleTrackerTemplate.UnloadModule(null, null); var expectedHitsArray = new[] { 1, 2, 0, 3 }; Assert.Equal(expectedHitsArray, ReadHitsFile()); return(_success); }); }
public void HitsOnMultipleThreadsCorrectlyCounted() { FunctionExecutor.Run(() => { using var ctx = new TrackerContext(); ModuleTrackerTemplate.HitsArray = new[] { 0, 0, 0, 0 }; for (int i = 0; i < ModuleTrackerTemplate.HitsArray.Length; ++i) { var t = new Thread(HitIndex); t.Start(i); } ModuleTrackerTemplate.UnloadModule(null, null); var expectedHitsArray = new[] { 4, 3, 2, 1 }; Assert.Equal(expectedHitsArray, ReadHitsFile());