From ad7214620f43666aba7a48c4777ee24dbd664b86 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Mon, 18 May 2009 17:46:14 +0000 Subject: * Re-enable save oar test by loading asset data plugins from test mock class * Actually spit out the exception caught by the plugin loader - not much point having plugins throw exceptions if we are just going to ignore them --- .../World/Archiver/Tests/ArchiverTests.cs | 240 ++++++++++----------- 1 file changed, 120 insertions(+), 120 deletions(-) (limited to 'OpenSim/Region/CoreModules/World') diff --git a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs index 2ba94f7..9741399 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs @@ -74,129 +74,129 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests } } - ///// - ///// Test saving a V0.2 OpenSim Region Archive. - ///// - //[Test] - //public void TestSaveOarV0p2() - //{ - // TestHelper.InMethod(); - // //log4net.Config.XmlConfigurator.Configure(); - - // ArchiverModule archiverModule = new ArchiverModule(); - // SerialiserModule serialiserModule = new SerialiserModule(); - // TerrainModule terrainModule = new TerrainModule(); - - // Scene scene = SceneSetupHelpers.SetupScene(false); - // SceneSetupHelpers.SetupSceneModules(scene, archiverModule, serialiserModule, terrainModule); - - // SceneObjectPart part1; - - // // Create and add prim 1 - // { - // string partName = "My Little Pony"; - // UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000015"); - // PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere(); - // Vector3 groupPosition = new Vector3(10, 20, 30); - // Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); - // Vector3 offsetPosition = new Vector3(5, 10, 15); - - // part1 - // = new SceneObjectPart( - // ownerId, shape, groupPosition, rotationOffset, offsetPosition); - // part1.Name = partName; - - // scene.AddNewSceneObject(new SceneObjectGroup(part1), false); - // } - - // SceneObjectPart part2; - - // // Create and add prim 2 - // { - // string partName = "Action Man"; - // UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000016"); - // PrimitiveBaseShape shape = PrimitiveBaseShape.CreateCylinder(); - // Vector3 groupPosition = new Vector3(90, 80, 70); - // Quaternion rotationOffset = new Quaternion(60, 70, 80, 90); - // Vector3 offsetPosition = new Vector3(20, 25, 30); - - // part2 - // = new SceneObjectPart( - // ownerId, shape, groupPosition, rotationOffset, offsetPosition); - // part2.Name = partName; - - // scene.AddNewSceneObject(new SceneObjectGroup(part2), false); - // } - - // MemoryStream archiveWriteStream = new MemoryStream(); - // scene.EventManager.OnOarFileSaved += SaveCompleted; - - // Guid requestId = new Guid("00000000-0000-0000-0000-808080808080"); + /// + /// Test saving a V0.2 OpenSim Region Archive. + /// + [Test] + public void TestSaveOarV0p2() + { + TestHelper.InMethod(); + log4net.Config.XmlConfigurator.Configure(); + + ArchiverModule archiverModule = new ArchiverModule(); + SerialiserModule serialiserModule = new SerialiserModule(); + TerrainModule terrainModule = new TerrainModule(); + + Scene scene = SceneSetupHelpers.SetupScene(false); + SceneSetupHelpers.SetupSceneModules(scene, archiverModule, serialiserModule, terrainModule); + + SceneObjectPart part1; + + // Create and add prim 1 + { + string partName = "My Little Pony"; + UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000015"); + PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere(); + Vector3 groupPosition = new Vector3(10, 20, 30); + Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); + Vector3 offsetPosition = new Vector3(5, 10, 15); + + part1 + = new SceneObjectPart( + ownerId, shape, groupPosition, rotationOffset, offsetPosition); + part1.Name = partName; + + scene.AddNewSceneObject(new SceneObjectGroup(part1), false); + } + + SceneObjectPart part2; + + // Create and add prim 2 + { + string partName = "Action Man"; + UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000016"); + PrimitiveBaseShape shape = PrimitiveBaseShape.CreateCylinder(); + Vector3 groupPosition = new Vector3(90, 80, 70); + Quaternion rotationOffset = new Quaternion(60, 70, 80, 90); + Vector3 offsetPosition = new Vector3(20, 25, 30); + + part2 + = new SceneObjectPart( + ownerId, shape, groupPosition, rotationOffset, offsetPosition); + part2.Name = partName; + + scene.AddNewSceneObject(new SceneObjectGroup(part2), false); + } + + MemoryStream archiveWriteStream = new MemoryStream(); + scene.EventManager.OnOarFileSaved += SaveCompleted; + + Guid requestId = new Guid("00000000-0000-0000-0000-808080808080"); - // lock (this) - // { - // archiverModule.ArchiveRegion(archiveWriteStream, requestId); - // //AssetServerBase assetServer = (AssetServerBase)scene.CommsManager.AssetCache.AssetServer; - // //while (assetServer.HasWaitingRequests()) - // // assetServer.ProcessNextRequest(); + lock (this) + { + archiverModule.ArchiveRegion(archiveWriteStream, requestId); + //AssetServerBase assetServer = (AssetServerBase)scene.CommsManager.AssetCache.AssetServer; + //while (assetServer.HasWaitingRequests()) + // assetServer.ProcessNextRequest(); - // Monitor.Wait(this, 60000); - // } + Monitor.Wait(this, 60000); + } - // Assert.That(m_lastRequestId, Is.EqualTo(requestId)); - - // byte[] archive = archiveWriteStream.ToArray(); - // MemoryStream archiveReadStream = new MemoryStream(archive); - // TarArchiveReader tar = new TarArchiveReader(archiveReadStream); - - // bool gotControlFile = false; - // bool gotObject1File = false; - // bool gotObject2File = false; - // string expectedObject1FileName = string.Format( - // "{0}_{1:000}-{2:000}-{3:000}__{4}.xml", - // part1.Name, - // Math.Round(part1.GroupPosition.X), Math.Round(part1.GroupPosition.Y), Math.Round(part1.GroupPosition.Z), - // part1.UUID); - // string expectedObject2FileName = string.Format( - // "{0}_{1:000}-{2:000}-{3:000}__{4}.xml", - // part2.Name, - // Math.Round(part2.GroupPosition.X), Math.Round(part2.GroupPosition.Y), Math.Round(part2.GroupPosition.Z), - // part2.UUID); - - // string filePath; - // TarArchiveReader.TarEntryType tarEntryType; - - // while (tar.ReadEntry(out filePath, out tarEntryType) != null) - // { - // if (ArchiveConstants.CONTROL_FILE_PATH == filePath) - // { - // gotControlFile = true; - // } - // else if (filePath.StartsWith(ArchiveConstants.OBJECTS_PATH)) - // { - // string fileName = filePath.Remove(0, ArchiveConstants.OBJECTS_PATH.Length); - - // if (fileName.StartsWith(part1.Name)) - // { - // Assert.That(fileName, Is.EqualTo(expectedObject1FileName)); - // gotObject1File = true; - // } - // else if (fileName.StartsWith(part2.Name)) - // { - // Assert.That(fileName, Is.EqualTo(expectedObject2FileName)); - // gotObject2File = true; - // } - // } - // } - - // Assert.That(gotControlFile, Is.True, "No control file in archive"); - // Assert.That(gotObject1File, Is.True, "No object1 file in archive"); - // Assert.That(gotObject2File, Is.True, "No object2 file in archive"); - - // // TODO: Test presence of more files and contents of files. - // // Temporary - // Console.WriteLine("Successfully completed {0}", MethodBase.GetCurrentMethod()); - //} + Assert.That(m_lastRequestId, Is.EqualTo(requestId)); + + byte[] archive = archiveWriteStream.ToArray(); + MemoryStream archiveReadStream = new MemoryStream(archive); + TarArchiveReader tar = new TarArchiveReader(archiveReadStream); + + bool gotControlFile = false; + bool gotObject1File = false; + bool gotObject2File = false; + string expectedObject1FileName = string.Format( + "{0}_{1:000}-{2:000}-{3:000}__{4}.xml", + part1.Name, + Math.Round(part1.GroupPosition.X), Math.Round(part1.GroupPosition.Y), Math.Round(part1.GroupPosition.Z), + part1.UUID); + string expectedObject2FileName = string.Format( + "{0}_{1:000}-{2:000}-{3:000}__{4}.xml", + part2.Name, + Math.Round(part2.GroupPosition.X), Math.Round(part2.GroupPosition.Y), Math.Round(part2.GroupPosition.Z), + part2.UUID); + + string filePath; + TarArchiveReader.TarEntryType tarEntryType; + + while (tar.ReadEntry(out filePath, out tarEntryType) != null) + { + if (ArchiveConstants.CONTROL_FILE_PATH == filePath) + { + gotControlFile = true; + } + else if (filePath.StartsWith(ArchiveConstants.OBJECTS_PATH)) + { + string fileName = filePath.Remove(0, ArchiveConstants.OBJECTS_PATH.Length); + + if (fileName.StartsWith(part1.Name)) + { + Assert.That(fileName, Is.EqualTo(expectedObject1FileName)); + gotObject1File = true; + } + else if (fileName.StartsWith(part2.Name)) + { + Assert.That(fileName, Is.EqualTo(expectedObject2FileName)); + gotObject2File = true; + } + } + } + + Assert.That(gotControlFile, Is.True, "No control file in archive"); + Assert.That(gotObject1File, Is.True, "No object1 file in archive"); + Assert.That(gotObject2File, Is.True, "No object2 file in archive"); + + // TODO: Test presence of more files and contents of files. + // Temporary + Console.WriteLine("Successfully completed {0}", MethodBase.GetCurrentMethod()); + } /// /// Test loading a V0.2 OpenSim Region Archive. -- cgit v1.1