private static BaseDirectoryWrapper WrapDirectory(Random random, Directory directory, bool bare) { if (Rarely(random)) { directory = new NRTCachingDirectory(directory, random.NextDouble(), random.NextDouble()); } if (Rarely(random)) { double maxMBPerSec = 10 + 5 * (random.NextDouble() - 0.5); if (LuceneTestCase.VERBOSE) { Console.WriteLine("LuceneTestCase: will rate limit output IndexOutput to " + maxMBPerSec + " MB/sec"); } RateLimitedDirectoryWrapper rateLimitedDirectoryWrapper = new RateLimitedDirectoryWrapper(directory); switch (random.Next(10)) { case 3: // sometimes rate limit on flush rateLimitedDirectoryWrapper.SetMaxWriteMBPerSec(maxMBPerSec, IOContext.UsageContext.FLUSH); break; case 2: // sometimes rate limit flush & merge rateLimitedDirectoryWrapper.SetMaxWriteMBPerSec(maxMBPerSec, IOContext.UsageContext.FLUSH); rateLimitedDirectoryWrapper.SetMaxWriteMBPerSec(maxMBPerSec, IOContext.UsageContext.MERGE); break; default: rateLimitedDirectoryWrapper.SetMaxWriteMBPerSec(maxMBPerSec, IOContext.UsageContext.MERGE); break; } directory = rateLimitedDirectoryWrapper; } if (bare) { BaseDirectoryWrapper @base = new BaseDirectoryWrapper(directory); // LUCENENET TODO CloseAfterSuite(new IDisposableDirectory(@base, SuiteFailureMarker)); return @base; } else { MockDirectoryWrapper mock = new MockDirectoryWrapper(random, directory); mock.Throttling = TEST_THROTTLING; // LUCENENET TODO CloseAfterSuite(new IDisposableDirectory(mock, SuiteFailureMarker)); return mock; } }
public IDisposableDirectory(BaseDirectoryWrapper dir, TestRuleMarkFailure failureMarker) { this.Dir = dir; this.FailureMarker = failureMarker; }
public ThreadAnonymousInnerClassHelper(TestIndexWriterWithThreads outerInstance, BaseDirectoryWrapper d, AtomicReference<IndexWriter> writerRef, LineFileDocs docs, int iters, AtomicBoolean failed, ReentrantLock rollbackLock, ReentrantLock commitLock) { this.OuterInstance = outerInstance; this.d = d; this.WriterRef = writerRef; this.Docs = docs; this.Iters = iters; this.Failed = failed; this.RollbackLock = rollbackLock; this.CommitLock = commitLock; }