private void ReadAbortTestCore(int itemCount) { string segmentFileName = null; try { Random rnd = new Random(); using (var segment = Create(10000, 1000, 16)) { segmentFileName = segment.FileName; for (int i = 0; i < itemCount; i++) { Assert.IsTrue(segment.TryAdd(i)); } } while (true) { using (var segment = PersistentDiskQueueSegment <int> .Open(100, segmentFileName, new ItemSerializer(), true)) { if (segment.IsCompleted) { break; } RunReadAbort(segment, Math.Max(1, itemCount / 10), rnd); } } } finally { if (segmentFileName != null && File.Exists(segmentFileName)) { try { File.Delete(segmentFileName); } catch { } } } }
private void WriteAbortTestCore(int itemCount) { string segmentFileName = null; try { Random rnd = new Random(); using (var segment = Create(10000, 1000, 16)) { segmentFileName = segment.FileName; RunWriteAbort(segment, itemCount, rnd); } int readCnt = 0; using (var segment = PersistentDiskQueueSegment <int> .Open(100, segmentFileName, new ItemSerializer(), true)) { Assert.IsTrue(segment.Count >= itemCount, "Item missed"); int item = 0; while (segment.TryTake(out item)) { readCnt++; } } Assert.IsTrue(readCnt >= itemCount, "Item missed"); } finally { if (segmentFileName != null && File.Exists(segmentFileName)) { try { File.Delete(segmentFileName); } catch { } } } }