- Includes consistency test for new and updated objects, as
some fixes in MySQL and SQLite From: Arthur Rodrigo S Valadares <arthursv@linux.vnet.ibm.com>0.6.0-stable
parent
409e7262df
commit
9e353d5713
|
@ -425,8 +425,8 @@ namespace OpenSim.Data.MySQL
|
|||
group.RootPart = prim;
|
||||
createdObjects.Add(group.UUID, group);
|
||||
retvals.Add(group);
|
||||
LoadItems(prim);
|
||||
}
|
||||
LoadItems(prim);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
@ -463,8 +463,8 @@ namespace OpenSim.Data.MySQL
|
|||
prim.Shape = PrimitiveBaseShape.Default;
|
||||
}
|
||||
createdObjects[new UUID(objID)].AddPart(prim);
|
||||
LoadItems(prim);
|
||||
}
|
||||
LoadItems(prim);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
@ -495,7 +495,6 @@ namespace OpenSim.Data.MySQL
|
|||
|
||||
String sql = String.Format("primID = '{0}'", prim.UUID.ToString());
|
||||
DataRow[] dbItemRows = dbItems.Select(sql);
|
||||
Console.WriteLine("dbItemRows MYSQL Length: {0}",dbItemRows.Length);
|
||||
IList<TaskInventoryItem> inventory = new List<TaskInventoryItem>();
|
||||
|
||||
foreach (DataRow row in dbItemRows)
|
||||
|
|
|
@ -438,11 +438,10 @@ namespace OpenSim.Data.SQLite
|
|||
}
|
||||
group.AddPart(prim);
|
||||
group.RootPart = prim;
|
||||
Console.WriteLine("The Object UUID is {0}",prim.UUID);
|
||||
createdObjects.Add(group.UUID, group);
|
||||
retvals.Add(group);
|
||||
LoadItems(prim);
|
||||
}
|
||||
LoadItems(prim);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
@ -477,10 +476,9 @@ namespace OpenSim.Data.SQLite
|
|||
"[REGION DB]: No shape found for prim in storage, so setting default box shape");
|
||||
prim.Shape = PrimitiveBaseShape.Default;
|
||||
}
|
||||
Console.WriteLine("Version2: The Object UUID is {0}",prim.UUID);
|
||||
createdObjects[new UUID(objID)].AddPart(prim);
|
||||
LoadItems(prim);
|
||||
}
|
||||
LoadItems(prim);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
@ -504,20 +502,13 @@ namespace OpenSim.Data.SQLite
|
|||
{
|
||||
//m_log.DebugFormat("[DATASTORE]: Loading inventory for {0}, {1}", prim.Name, prim.UUID);
|
||||
|
||||
DataTable dbItems = ds.Tables["primitems"];
|
||||
//return; POINT OF FAILURE!!! BELOW THIS LINE FAILS
|
||||
Console.WriteLine("dbItems: {0} and the prim is: {1}, UUID {2}",dbItems,prim.Name,prim.UUID);
|
||||
DataTable dbItems = ds.Tables["primitems"];
|
||||
String sql = String.Format("primID = '{0}'", prim.UUID.ToString());
|
||||
//string sql = "primID = '" + prim.UUID.ToString() + "'";
|
||||
DataRow[] dbItemRows = dbItems.Select(sql);
|
||||
Console.WriteLine("dbItemRows Length: {0}",dbItemRows.Length);
|
||||
if (dbItemRows.Length == 0)
|
||||
return;
|
||||
IList<TaskInventoryItem> inventory = new List<TaskInventoryItem>();
|
||||
|
||||
foreach (DataRow row in dbItemRows)
|
||||
{
|
||||
Console.WriteLine("Inside the foreach");
|
||||
TaskInventoryItem item = buildItem(row);
|
||||
inventory.Add(item);
|
||||
|
||||
|
@ -1194,7 +1185,7 @@ namespace OpenSim.Data.SQLite
|
|||
Convert.ToSingle(
|
||||
row["SitTargetOrientW"]));
|
||||
|
||||
prim.Color = Color.FromArgb(Convert.ToInt32(row["ColorR"]), Convert.ToInt32(row["ColorB"]), Convert.ToInt32(row["ColorG"]));
|
||||
prim.Color = Color.FromArgb(Convert.ToInt32(row["ColorR"]), Convert.ToInt32(row["ColorG"]), Convert.ToInt32(row["ColorB"]));
|
||||
|
||||
prim.ClickAction = Convert.ToByte(row["ClickAction"]);
|
||||
prim.PayPrice[0] = Convert.ToInt32(row["PayPrice"]);
|
||||
|
|
|
@ -184,12 +184,8 @@ namespace OpenSim.Data.Tests
|
|||
sog.AddPart(p2);
|
||||
sog.AddPart(p3);
|
||||
|
||||
Console.WriteLine("Test 10 has prims {0} and {1} in region {2}",prim1,prim2,region1);
|
||||
Console.WriteLine("The prims are {0}, {1}, {2} and {3} and region is {4}",tmp0,tmp1,tmp2,tmp3,newregion);
|
||||
SceneObjectPart[] parts = sog.GetParts();
|
||||
Console.WriteLine("Before Insertion:");
|
||||
Assert.That(parts.Length,Is.EqualTo(4));
|
||||
Console.WriteLine("PASSED BEFORE");
|
||||
|
||||
db.StoreObject(sog, newregion);
|
||||
List<SceneObjectGroup> sogs = db.LoadObjects(newregion);
|
||||
|
@ -197,9 +193,7 @@ namespace OpenSim.Data.Tests
|
|||
SceneObjectGroup newsog = sogs[0];
|
||||
|
||||
SceneObjectPart[] newparts = newsog.GetParts();
|
||||
Console.WriteLine("After Insertion:");
|
||||
Assert.That(newparts.Length,Is.EqualTo(4));
|
||||
Console.WriteLine("PASSED AFTER!");
|
||||
|
||||
Assert.That(newsog.HasChildPrim(tmp0));
|
||||
Assert.That(newsog.HasChildPrim(tmp1));
|
||||
|
@ -208,9 +202,11 @@ namespace OpenSim.Data.Tests
|
|||
}
|
||||
|
||||
[Test]
|
||||
[Ignore("Make sure 12 works first")]
|
||||
public void T013_ObjectConsistency()
|
||||
public void T013_DatabaseConsistency()
|
||||
{
|
||||
// Sets all ScenePart parameters, stores and retrieves them, then check for consistency with initial data
|
||||
// The commented Asserts are the ones that are unchangeable (when storing on the database, their "Set" values are ignored
|
||||
// The ObjectFlags is an exception, if it is entered incorrectly, the object IS REJECTED on the database silently.
|
||||
UUID creator,uuid = new UUID();
|
||||
creator = UUID.Random();
|
||||
uint iserial = (uint) random.Next();
|
||||
|
@ -236,8 +232,7 @@ namespace OpenSim.Data.Tests
|
|||
Vector3 angvelo = new Vector3(random.Next(),random.Next(),random.Next());
|
||||
Vector3 accel = new Vector3(random.Next(),random.Next(),random.Next());
|
||||
string description = name;
|
||||
//Color color = Color.Brown;
|
||||
Color color = Color.FromArgb(255, 165, 42, 42);
|
||||
Color color = Color.FromArgb(255, 165, 50, 100);
|
||||
string text = "All Your Base Are Belong to Us";
|
||||
string sitname = "SitName";
|
||||
string touchname = "TouchName";
|
||||
|
@ -281,156 +276,194 @@ namespace OpenSim.Data.Tests
|
|||
sop.UpdateFlag = updatef;
|
||||
|
||||
//Tests if local part accepted the parameters:
|
||||
Console.WriteLine("Test -0");
|
||||
Assert.That(regionh,Is.EqualTo(sop.RegionHandle));
|
||||
Console.WriteLine("Test -1 localid é: {0} e LocalId é {1}",localid,sop.LocalId);
|
||||
Assert.That(localid,Is.EqualTo(sop.LocalId));
|
||||
Console.WriteLine("Test -2");
|
||||
//**Assert.That(pbshap,Is.EqualTo(sop.Shape));
|
||||
Assert.That(groupos,Is.EqualTo(sop.GroupPosition));
|
||||
Console.WriteLine("Test -3");
|
||||
Assert.That(name,Is.EqualTo(sop.Name));
|
||||
Console.WriteLine("Test -4");
|
||||
Assert.That(rotoff,Is.EqualTo(sop.RotationOffset));
|
||||
Console.WriteLine("Test 0 - uuid is {0}",uuid);
|
||||
Assert.That(uuid,Is.EqualTo(sop.UUID));
|
||||
Console.WriteLine("Test 1");
|
||||
Assert.That(creator,Is.EqualTo(sop.CreatorID));
|
||||
Console.WriteLine("Test 2 - iserial is {0}",iserial);
|
||||
Assert.That(iserial,Is.EqualTo(sop.InventorySerial));
|
||||
Console.WriteLine("Test 3");
|
||||
Assert.That(dic,Is.EqualTo(sop.TaskInventory));
|
||||
Console.WriteLine("Test 4");
|
||||
Assert.That(objf,Is.EqualTo(sop.ObjectFlags));
|
||||
Console.WriteLine("Test 5");
|
||||
Assert.That(name,Is.EqualTo(sop.Name));
|
||||
Console.WriteLine("Test 6");
|
||||
Assert.That(material,Is.EqualTo(sop.Material));
|
||||
Console.WriteLine("Test 7");
|
||||
Assert.That(pin,Is.EqualTo(sop.ScriptAccessPin));
|
||||
Console.WriteLine("Test 8");
|
||||
Assert.That(textani,Is.EqualTo(sop.TextureAnimation));
|
||||
Console.WriteLine("Test 9");
|
||||
Assert.That(partsys,Is.EqualTo(sop.ParticleSystem));
|
||||
Console.WriteLine("Test 9.1");
|
||||
Assert.That(expires,Is.EqualTo(sop.Expires));
|
||||
Console.WriteLine("Test 9.2");
|
||||
Assert.That(rezzed,Is.EqualTo(sop.Rezzed));
|
||||
Console.WriteLine("Test 10");
|
||||
Assert.That(offset,Is.EqualTo(sop.OffsetPosition));
|
||||
Assert.That(velocity,Is.EqualTo(sop.Velocity));
|
||||
Console.WriteLine("Test 12");
|
||||
Assert.That(angvelo,Is.EqualTo(sop.AngularVelocity));
|
||||
Console.WriteLine("Test 13");
|
||||
Assert.That(accel,Is.EqualTo(sop.Acceleration));
|
||||
Console.WriteLine("Test 14");
|
||||
Assert.That(description,Is.EqualTo(sop.Description));
|
||||
Assert.That(color,Is.EqualTo(sop.Color));
|
||||
Assert.That(text,Is.EqualTo(sop.Text));
|
||||
Assert.That(sitname,Is.EqualTo(sop.SitName));
|
||||
Console.WriteLine("Test 15");
|
||||
Assert.That(touchname,Is.EqualTo(sop.TouchName));
|
||||
Console.WriteLine("Test 16");
|
||||
Assert.That(linknum,Is.EqualTo(sop.LinkNum));
|
||||
Console.WriteLine("Test 17");
|
||||
Assert.That(clickaction,Is.EqualTo(sop.ClickAction));
|
||||
Console.WriteLine("Test 18");
|
||||
Assert.That(scale,Is.EqualTo(sop.Scale));
|
||||
Console.WriteLine("Test 19");
|
||||
Assert.That(updatef,Is.EqualTo(sop.UpdateFlag));
|
||||
Console.WriteLine("Test 20");
|
||||
|
||||
// This is necessary or object will not be inserted in DB
|
||||
sop.ObjectFlags = 0;
|
||||
|
||||
SceneObjectGroup sog = new SceneObjectGroup();
|
||||
sog.AddPart(sop);
|
||||
sog.RootPart = sop;
|
||||
sog.RootPart = sop;
|
||||
|
||||
// Inserts group in DB
|
||||
db.StoreObject(sog,region3);
|
||||
List<SceneObjectGroup> sogs = db.LoadObjects(region3);
|
||||
Assert.That(sogs.Count, Is.EqualTo(1));
|
||||
// Makes sure there are no double insertions:
|
||||
/*
|
||||
db.StoreObject(sog,region3);
|
||||
sogs = db.LoadObjects(region3);
|
||||
Assert.That(sogs.Count, Is.EqualTo(1));
|
||||
*/
|
||||
|
||||
|
||||
// Tests if the parameters were inserted correctly
|
||||
SceneObjectPart p = sogs[0].RootPart;
|
||||
Console.WriteLine("Test -0");
|
||||
Assert.That(regionh,Is.EqualTo(p.RegionHandle));
|
||||
Console.WriteLine("Test -1 localid é: {0} e LocalId é {1}",localid,p.LocalId);
|
||||
//Assert.That(localid,Is.EqualTo(p.LocalId));
|
||||
Console.WriteLine("Test -2");
|
||||
//Assert.That(pbshap,Is.EqualTo(p.Shape));
|
||||
Assert.That(groupos,Is.EqualTo(p.GroupPosition));
|
||||
Console.WriteLine("Test -3");
|
||||
Assert.That(name,Is.EqualTo(p.Name));
|
||||
Console.WriteLine("Test -4");
|
||||
Assert.That(rotoff,Is.EqualTo(p.RotationOffset));
|
||||
Console.WriteLine("Test 0 - uuid is {0}",uuid);
|
||||
Assert.That(uuid,Is.EqualTo(p.UUID));
|
||||
Console.WriteLine("Test 1");
|
||||
Assert.That(creator,Is.EqualTo(p.CreatorID));
|
||||
Console.WriteLine("Test 2 - iserial is {0}",iserial);
|
||||
//Assert.That(iserial,Is.EqualTo(p.InventorySerial));
|
||||
Console.WriteLine("Test 3");
|
||||
Assert.That(dic,Is.EqualTo(p.TaskInventory));
|
||||
Console.WriteLine("Test 4");
|
||||
//Assert.That(objf,Is.EqualTo(p.ObjectFlags));
|
||||
Console.WriteLine("Test 5");
|
||||
Assert.That(name,Is.EqualTo(p.Name));
|
||||
Console.WriteLine("Test 6");
|
||||
Assert.That(material,Is.EqualTo(p.Material));
|
||||
Console.WriteLine("Test 7");
|
||||
Assert.That(pin,Is.EqualTo(p.ScriptAccessPin));
|
||||
Console.WriteLine("Test 8");
|
||||
Assert.That(textani,Is.EqualTo(p.TextureAnimation));
|
||||
Console.WriteLine("Test 9");
|
||||
Assert.That(partsys,Is.EqualTo(p.ParticleSystem));
|
||||
Console.WriteLine("Test 9.1 - Expires in {0}",expires);
|
||||
//Assert.That(expires,Is.EqualTo(p.Expires));
|
||||
Console.WriteLine("Test 9.2 - Rezzed in {0}",rezzed);
|
||||
//Assert.That(rezzed,Is.EqualTo(p.Rezzed));
|
||||
Console.WriteLine("Test 10");
|
||||
Assert.That(offset,Is.EqualTo(p.OffsetPosition));
|
||||
Assert.That(velocity,Is.EqualTo(p.Velocity));
|
||||
Console.WriteLine("Test 12");
|
||||
Assert.That(angvelo,Is.EqualTo(p.AngularVelocity));
|
||||
Console.WriteLine("Test 13");
|
||||
Assert.That(accel,Is.EqualTo(p.Acceleration));
|
||||
Console.WriteLine("Test 14");
|
||||
Assert.That(description,Is.EqualTo(p.Description));
|
||||
Assert.That(color,Is.EqualTo(p.Color));
|
||||
Assert.That(text,Is.EqualTo(p.Text));
|
||||
Assert.That(sitname,Is.EqualTo(p.SitName));
|
||||
Console.WriteLine("Test 15");
|
||||
Assert.That(touchname,Is.EqualTo(p.TouchName));
|
||||
Console.WriteLine("Test 16");
|
||||
//Assert.That(linknum,Is.EqualTo(p.LinkNum));
|
||||
Console.WriteLine("Test 17");
|
||||
Assert.That(clickaction,Is.EqualTo(p.ClickAction));
|
||||
Console.WriteLine("Test 18");
|
||||
Assert.That(scale,Is.EqualTo(p.Scale));
|
||||
Console.WriteLine("Test 19");
|
||||
//Assert.That(updatef,Is.EqualTo(p.UpdateFlag));
|
||||
Console.WriteLine("Test 20");
|
||||
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void T014_UpdateObject()
|
||||
{
|
||||
string text = "object1 text";
|
||||
|
||||
string text1 = "object1 text";
|
||||
SceneObjectGroup sog = FindSOG("object1", region1);
|
||||
sog.RootPart.Text = text;
|
||||
sog.RootPart.Text = text1;
|
||||
db.StoreObject(sog, region1);
|
||||
|
||||
sog = FindSOG("object1", region1);
|
||||
Assert.That(text, Is.EqualTo(sog.RootPart.Text));
|
||||
Assert.That(text1, Is.EqualTo(sog.RootPart.Text));
|
||||
|
||||
|
||||
// Creates random values
|
||||
UUID creator = new UUID();
|
||||
creator = UUID.Random();
|
||||
TaskInventoryDictionary dic = new TaskInventoryDictionary();
|
||||
uint objf = (uint) random.Next();
|
||||
localID = localID + 1;
|
||||
string name = "West Adam";
|
||||
byte material = (byte) random.Next(255);
|
||||
ulong regionh = (ulong)random.NextDouble() * (ulong)random.Next();
|
||||
int pin = random.Next();
|
||||
Byte[] partsys = new byte[8];
|
||||
Byte[] textani = new byte[8];
|
||||
random.NextBytes(textani);
|
||||
random.NextBytes(partsys);
|
||||
DateTime expires = new DateTime(2010, 12, 20);
|
||||
DateTime rezzed = new DateTime(2005, 07, 15);
|
||||
Vector3 groupos = new Vector3(random.Next(),random.Next(),random.Next());
|
||||
Vector3 offset = new Vector3(random.Next(),random.Next(),random.Next());
|
||||
Quaternion rotoff = new Quaternion(random.Next(),random.Next(),random.Next(),random.Next());
|
||||
Vector3 velocity = new Vector3(random.Next(),random.Next(),random.Next());
|
||||
Vector3 angvelo = new Vector3(random.Next(),random.Next(),random.Next());
|
||||
Vector3 accel = new Vector3(random.Next(),random.Next(),random.Next());
|
||||
string description = name;
|
||||
Color color = Color.FromArgb(255, 255, 255, 0);
|
||||
string text = "What You Say?{]\vz~";
|
||||
string sitname = RandomName();
|
||||
string touchname = RandomName();
|
||||
int linknum = random.Next();
|
||||
byte clickaction = (byte) random.Next(255);
|
||||
PrimitiveBaseShape pbshap = new PrimitiveBaseShape();
|
||||
pbshap = PrimitiveBaseShape.Default;
|
||||
Vector3 scale = new Vector3(random.Next(),random.Next(),random.Next());
|
||||
byte updatef = (byte) random.Next(255);
|
||||
|
||||
// Updates the region with new values
|
||||
SceneObjectGroup sog2 = FindSOG("Adam West", region3);
|
||||
Assert.That(sog2,Is.Not.Null);
|
||||
sog2.RootPart.RegionHandle = regionh;
|
||||
sog2.RootPart.Shape = pbshap;
|
||||
sog2.RootPart.GroupPosition = groupos;
|
||||
sog2.RootPart.RotationOffset = rotoff;
|
||||
sog2.RootPart.CreatorID = creator;
|
||||
sog2.RootPart.TaskInventory = dic;
|
||||
sog2.RootPart.Name = name;
|
||||
sog2.RootPart.Material = material;
|
||||
sog2.RootPart.ScriptAccessPin = pin;
|
||||
sog2.RootPart.TextureAnimation = textani;
|
||||
sog2.RootPart.ParticleSystem = partsys;
|
||||
sog2.RootPart.Expires = expires;
|
||||
sog2.RootPart.Rezzed = rezzed;
|
||||
sog2.RootPart.OffsetPosition = offset;
|
||||
sog2.RootPart.Velocity = velocity;
|
||||
sog2.RootPart.AngularVelocity = angvelo;
|
||||
sog2.RootPart.Acceleration = accel;
|
||||
sog2.RootPart.Description = description;
|
||||
sog2.RootPart.Color = color;
|
||||
sog2.RootPart.Text = text;
|
||||
sog2.RootPart.SitName = sitname;
|
||||
sog2.RootPart.TouchName = touchname;
|
||||
sog2.RootPart.LinkNum = linknum;
|
||||
sog2.RootPart.ClickAction = clickaction;
|
||||
sog2.RootPart.Scale = scale;
|
||||
sog2.RootPart.UpdateFlag = updatef;
|
||||
|
||||
db.StoreObject(sog2, region3);
|
||||
List<SceneObjectGroup> sogs = db.LoadObjects(region3);
|
||||
Assert.That(sogs.Count, Is.EqualTo(1));
|
||||
|
||||
SceneObjectGroup retsog = FindSOG("West Adam", region3);
|
||||
Assert.That(retsog,Is.Not.Null);
|
||||
SceneObjectPart p = retsog.RootPart;
|
||||
Assert.That(regionh,Is.EqualTo(p.RegionHandle));
|
||||
Assert.That(groupos,Is.EqualTo(p.GroupPosition));
|
||||
Assert.That(name,Is.EqualTo(p.Name));
|
||||
Assert.That(rotoff,Is.EqualTo(p.RotationOffset));
|
||||
Assert.That(creator,Is.EqualTo(p.CreatorID));
|
||||
Assert.That(dic,Is.EqualTo(p.TaskInventory));
|
||||
Assert.That(name,Is.EqualTo(p.Name));
|
||||
Assert.That(material,Is.EqualTo(p.Material));
|
||||
Assert.That(pin,Is.EqualTo(p.ScriptAccessPin));
|
||||
Assert.That(textani,Is.EqualTo(p.TextureAnimation));
|
||||
Assert.That(partsys,Is.EqualTo(p.ParticleSystem));
|
||||
Assert.That(offset,Is.EqualTo(p.OffsetPosition));
|
||||
Assert.That(velocity,Is.EqualTo(p.Velocity));
|
||||
Assert.That(angvelo,Is.EqualTo(p.AngularVelocity));
|
||||
Assert.That(accel,Is.EqualTo(p.Acceleration));
|
||||
Assert.That(description,Is.EqualTo(p.Description));
|
||||
Assert.That(color,Is.EqualTo(p.Color));
|
||||
Assert.That(text,Is.EqualTo(p.Text));
|
||||
Assert.That(sitname,Is.EqualTo(p.SitName));
|
||||
Assert.That(touchname,Is.EqualTo(p.TouchName));
|
||||
Assert.That(clickaction,Is.EqualTo(p.ClickAction));
|
||||
Assert.That(scale,Is.EqualTo(p.Scale));
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -639,9 +672,6 @@ namespace OpenSim.Data.Tests
|
|||
private SceneObjectGroup NewSOG(string name, UUID uuid)
|
||||
{
|
||||
SceneObjectPart sop = new SceneObjectPart();
|
||||
//sop.LocalId = 1;
|
||||
sop.LocalId = localID;
|
||||
localID = localID + 1;
|
||||
sop.Name = name;
|
||||
sop.Description = name;
|
||||
sop.Text = RandomName();
|
||||
|
@ -654,16 +684,12 @@ namespace OpenSim.Data.Tests
|
|||
SceneObjectGroup sog = new SceneObjectGroup();
|
||||
sog.AddPart(sop);
|
||||
sog.RootPart = sop;
|
||||
|
||||
return sog;
|
||||
}
|
||||
|
||||
private SceneObjectPart NewSOP(string name, UUID uuid)
|
||||
{
|
||||
SceneObjectPart sop = new SceneObjectPart();
|
||||
//sop.LocalId = 1;
|
||||
sop.LocalId = localID;
|
||||
localID = localID + 1;
|
||||
sop.Name = name;
|
||||
sop.Description = name;
|
||||
sop.Text = RandomName();
|
||||
|
|
Loading…
Reference in New Issue