Make sure tests run through again. Also cleaned them up a little removing the memory-leaks.

Many tests for burnings-renderer fail atm, but probably just because renderer was improved and tests would need new reference images.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3351 dfc29bdd-3216-0410-991c-e03cc46cb475
master
cutealien 2010-07-16 20:29:07 +00:00
parent 0f94624fef
commit a716532bb0
10 changed files with 53 additions and 18 deletions

View File

@ -87,6 +87,8 @@ bool testArchive(IFileSystem* fs, const io::path& archiveName)
if ( fs->getFileArchiveCount() ) if ( fs->getFileArchiveCount() )
return false; return false;
readFile->drop();
return true; return true;
} }
@ -178,6 +180,8 @@ bool testEncryptedZip(IFileSystem* fs)
if ( fs->getFileArchiveCount() ) if ( fs->getFileArchiveCount() )
return false; return false;
readFile->drop();
return true; return true;
} }
@ -201,6 +205,9 @@ bool archiveReader()
ret &= testArchive(fs, "media/file_with_path.npk"); ret &= testArchive(fs, "media/file_with_path.npk");
logTestString("Testing encrypted zip files.\n"); logTestString("Testing encrypted zip files.\n");
ret &= testEncryptedZip(fs); ret &= testEncryptedZip(fs);
device->drop();
return ret; return ret;
} }

View File

@ -151,6 +151,10 @@ bool filesystem(void)
result &= testFlattenFilename(fs); result &= testFlattenFilename(fs);
result &= testgetAbsoluteFilename(fs); result &= testgetAbsoluteFilename(fs);
device->drop();
return result; return result;
} }

View File

@ -72,7 +72,7 @@ int main(int argumentCount, char * arguments[])
TEST(vectorPositionDimension2d); TEST(vectorPositionDimension2d);
// file system checks (with null driver) // file system checks (with null driver)
TEST(filesystem); TEST(filesystem);
TEST(archiveReader); TEST(archiveReader);
TEST(testXML); TEST(testXML);
TEST(serializeAttributes); TEST(serializeAttributes);
// null driver // null driver
@ -93,7 +93,7 @@ int main(int argumentCount, char * arguments[])
TEST(drawRectOutline); TEST(drawRectOutline);
TEST(flyCircleAnimator); TEST(flyCircleAnimator);
TEST(md2Animation); TEST(md2Animation);
TEST(testGeometryCreator); TEST(testGeometryCreator);
TEST(writeImageToFile); TEST(writeImageToFile);
TEST(meshTransform); TEST(meshTransform);
// all driver checks // all driver checks
@ -116,7 +116,7 @@ int main(int argumentCount, char * arguments[])
// q3 maps are slow // q3 maps are slow
TEST(planeMatrix); TEST(planeMatrix);
TEST(terrainSceneNode); TEST(terrainSceneNode);
TEST(lightMaps); TEST(lightMaps);
unsigned int numberOfTests = tests.size(); unsigned int numberOfTests = tests.size();
unsigned int testToRun = 0; unsigned int testToRun = 0;

View File

@ -80,5 +80,7 @@ bool meshTransform(void)
result = takeScreenshotAndCompareAgainstReference(driver, "-meshTransform.png"); result = takeScreenshotAndCompareAgainstReference(driver, "-meshTransform.png");
device->drop();
return result; return result;
} }

View File

@ -315,5 +315,7 @@ bool serializeAttributes()
logTestString("XmlSerialization failed in %s:%d\n", __FILE__, __LINE__ ); logTestString("XmlSerialization failed in %s:%d\n", __FILE__, __LINE__ );
} }
device->drop();
return result; return result;
} }

View File

@ -28,36 +28,48 @@ bool testGeometryCreator(void)
material.Lighting = false; material.Lighting = false;
material.TextureLayer[0].Texture = wall; material.TextureLayer[0].Texture = wall;
IMeshSceneNode * node = smgr->addMeshSceneNode( irr::scene::IMesh * meshHill = geom->createHillPlaneMesh(dimension2df(10, 5), dimension2du(5, 5),
geom->createHillPlaneMesh(dimension2df(10, 5), dimension2du(5, 5), &material, 10, dimension2df(2, 2), dimension2df(3, 3) );
&material, 10, dimension2df(2, 2), dimension2df(3, 3)), 0, -1, IMeshSceneNode * node = smgr->addMeshSceneNode(meshHill, 0, -1,
vector3df(0, 10, 0), vector3df(-60, 0, 0)); vector3df(0, 10, 0), vector3df(-60, 0, 0));
meshHill->drop();
node = smgr->addMeshSceneNode(geom->createArrowMesh(4, 8, 10, 6, 3, 6, irr::scene::IMesh * meshArrow = geom->createArrowMesh(4, 8, 10, 6, 3, 6,
SColor(255, 255, 0, 0), SColor(255, 0, 255, 0)), SColor(255, 255, 0, 0), SColor(255, 0, 255, 0));
0, -1, vector3df(-10, -20, 0)); node = smgr->addMeshSceneNode(meshArrow, 0, -1, vector3df(-10, -20, 0));
node->setMaterialFlag(video::EMF_LIGHTING, false); node->setMaterialFlag(video::EMF_LIGHTING, false);
meshArrow->drop();
node = smgr->addMeshSceneNode(geom->createConeMesh(5.f, 10.f, 16), 0, -1, vector3df(-35, -20, 0)); irr::scene::IMesh * meshCone = geom->createConeMesh(5.f, 10.f, 16);
node = smgr->addMeshSceneNode(meshCone, 0, -1, vector3df(-35, -20, 0));
node->setMaterialFlag(video::EMF_LIGHTING, false); node->setMaterialFlag(video::EMF_LIGHTING, false);
node->setMaterialTexture(0, wall); node->setMaterialTexture(0, wall);
meshCone->drop();
node = smgr->addMeshSceneNode(geom->createCubeMesh(), 0, -1, vector3df(-20, -20, 0)); irr::scene::IMesh * meshCube = geom->createCubeMesh();
node = smgr->addMeshSceneNode(meshCube, 0, -1, vector3df(-20, -20, 0));
node->setMaterialFlag(video::EMF_LIGHTING, false); node->setMaterialFlag(video::EMF_LIGHTING, false);
node->setMaterialTexture(0, wall); node->setMaterialTexture(0, wall);
meshCube->drop();
node = smgr->addMeshSceneNode(geom->createCylinderMesh(3, 10, 16), 0, -1, vector3df(0, -20, 10), core::vector3df(45,0,0)); irr::scene::IMesh * meshCylinder = geom->createCylinderMesh(3, 10, 16);
node = smgr->addMeshSceneNode(meshCylinder, 0, -1, vector3df(0, -20, 10), core::vector3df(45,0,0));
node->setMaterialFlag(video::EMF_LIGHTING, false); node->setMaterialFlag(video::EMF_LIGHTING, false);
node->setMaterialTexture(0, wall); node->setMaterialTexture(0, wall);
meshCylinder->drop();
node = smgr->addMeshSceneNode(geom->createSphereMesh(), 0, -1, vector3df(10, -15, 0)); irr::scene::IMesh * meshSphere = geom->createSphereMesh();
node = smgr->addMeshSceneNode(meshSphere, 0, -1, vector3df(10, -15, 0));
node->setMaterialFlag(video::EMF_LIGHTING, false); node->setMaterialFlag(video::EMF_LIGHTING, false);
node->setMaterialTexture(0, wall); node->setMaterialTexture(0, wall);
meshSphere->drop();
node = smgr->addMeshSceneNode(geom->createVolumeLightMesh(), 0, -1, vector3df(20, -20, -10)); irr::scene::IMesh * meshVolumeLight = geom->createVolumeLightMesh();
node = smgr->addMeshSceneNode(meshVolumeLight, 0, -1, vector3df(20, -20, -10));
node->setMaterialFlag(video::EMF_LIGHTING, false); node->setMaterialFlag(video::EMF_LIGHTING, false);
node->setMaterialTexture(0, wall); node->setMaterialTexture(0, wall);
node->setScale(core::vector3df(4.f,4.f,4.f)); node->setScale(core::vector3df(4.f,4.f,4.f));
meshVolumeLight->drop();
bool result = false; bool result = false;
device->run(); device->run();

View File

@ -38,6 +38,8 @@ bool testXML(void)
} }
reader->drop(); reader->drop();
device->drop();
return retVal; return retVal;
} }

View File

@ -1,4 +1,4 @@
Tests finished. 54 tests of 54 passed. Tests finished. 6 tests of 6 passed.
Compiled as DEBUG Compiled as DEBUG
Test suite pass at GMT Thu Mar 11 23:23:09 2010 Test suite pass at GMT Fri Jul 16 20:23:21 2010

View File

@ -43,5 +43,7 @@ bool testTimer(void)
timer->start(); timer->start();
success &= !timer->isStopped(); success &= !timer->isStopped();
device->drop();
return success; return success;
} }

View File

@ -67,6 +67,7 @@ bool writeImageToFile(void)
irr::video::IImage * fixedScreenshot = driver->createImage(video::ECF_R8G8B8, screenshot->getDimension()); irr::video::IImage * fixedScreenshot = driver->createImage(video::ECF_R8G8B8, screenshot->getDimension());
screenshot->copyTo(fixedScreenshot); screenshot->copyTo(fixedScreenshot);
screenshot->drop(); screenshot->drop();
screenshot = 0;
if(!fixedScreenshot) if(!fixedScreenshot)
{ {
@ -109,14 +110,17 @@ bool writeImageToFile(void)
referenceFilename = "media/Burning's Video-drawPixel.png"; referenceFilename = "media/Burning's Video-drawPixel.png";
if(!binaryCompareFiles(writtenFilename, referenceFilename)) if(!binaryCompareFiles(writtenFilename, referenceFilename))
{ {
logTestString("File written from memory is not the same as the reference file.\n"); logTestString("File written from memory is not the same as the reference file. %s:%d\n" , __FILE__, __LINE__);
assert(false); // assert(false);
goto cleanup; goto cleanup;
} }
result = true; result = true;
cleanup: cleanup:
if ( screenshot )
screenshot->drop();
if(writtenFile) if(writtenFile)
writtenFile->drop(); writtenFile->drop();