For LLImageManagerTests, make tests execute under synchronous fire and forget conditions.
I generally prefer this approach for regression tests because of the complexity of accounting for different threading conditions.TeleportWork
parent
139dcf1246
commit
f9dc5815c4
|
@ -54,6 +54,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
|
||||||
[TestFixtureSetUp]
|
[TestFixtureSetUp]
|
||||||
public void FixtureInit()
|
public void FixtureInit()
|
||||||
{
|
{
|
||||||
|
// Don't allow tests to be bamboozled by asynchronous events. Execute everything on the same thread.
|
||||||
|
Util.FireAndForgetMethod = FireAndForgetMethod.None;
|
||||||
|
|
||||||
using (
|
using (
|
||||||
Stream resource
|
Stream resource
|
||||||
= GetType().Assembly.GetManifestResourceStream(
|
= GetType().Assembly.GetManifestResourceStream(
|
||||||
|
@ -73,6 +76,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestFixtureTearDown]
|
||||||
|
public void TearDown()
|
||||||
|
{
|
||||||
|
// We must set this back afterwards, otherwise later tests will fail since they're expecting multiple
|
||||||
|
// threads. Possibly, later tests should be rewritten not to worry about such things.
|
||||||
|
Util.FireAndForgetMethod = Util.DefaultFireAndForgetMethod;
|
||||||
|
}
|
||||||
|
|
||||||
[SetUp]
|
[SetUp]
|
||||||
public override void SetUp()
|
public override void SetUp()
|
||||||
{
|
{
|
||||||
|
@ -106,14 +117,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
|
||||||
args.requestSequence = 1;
|
args.requestSequence = 1;
|
||||||
|
|
||||||
llim.EnqueueReq(args);
|
llim.EnqueueReq(args);
|
||||||
|
llim.ProcessImageQueue(20);
|
||||||
// We now have to wait and hit the processing wheel, because the decoding is async
|
|
||||||
int i = 10;
|
|
||||||
while (i-- > 0)
|
|
||||||
{
|
|
||||||
llim.ProcessImageQueue(20);
|
|
||||||
Thread.Sleep(100);
|
|
||||||
}
|
|
||||||
|
|
||||||
Assert.That(tc.SentImageDataPackets.Count, Is.EqualTo(1));
|
Assert.That(tc.SentImageDataPackets.Count, Is.EqualTo(1));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue