public override void Run()
{
try
{
LineFileDocs docs = new LineFileDocs(Random(), DefaultCodecSupportsDocValues());
int numDocs = 0;
while (DateTime.UtcNow < OuterInstance.EndTime)
{
int what = Random().Next(3);
NodeState node = OuterInstance.Nodes[Random().Next(OuterInstance.Nodes.Length)];
if (numDocs == 0 || what == 0)
{
node.Writer.AddDocument(docs.NextDoc());
numDocs++;
}
else if (what == 1)
{
node.Writer.UpdateDocument(new Term("docid", "" + Random().Next(numDocs)), docs.NextDoc());
numDocs++;
}
else
{
node.Writer.DeleteDocuments(new Term("docid", "" + Random().Next(numDocs)));
}
// TODO: doc blocks too
if (Random().Next(17) == 12)
{
node.Writer.Commit();
}
if (Random().Next(17) == 12)
{
OuterInstance.Nodes[Random().Next(OuterInstance.Nodes.Length)].Reopen();
}
}
}
catch (Exception t)
{
Console.WriteLine("FAILED:");
Console.Out.WriteLine(t.StackTrace);
throw new Exception(t.Message, t);
}
}
}