Tests: Add general tests for modules

The idea of these tests is to check whether the modules will work
with different kinds of inputs. The modules should be able to initialize
or return an error indication. But in all cases they should be able to handle
default arguments all different inputs
This commit is contained in:
2021-04-06 22:57:12 +01:00
parent fedcb2e03a
commit c3c4e229d8
8 changed files with 203 additions and 97 deletions
+72 -95
View File
@@ -19,13 +19,14 @@
/**
* \file TestModuleCreate.cpp
* \brief CalypModuleIf testing for YUV420p sequences
* \brief CalypModuleIf testing create
*/
#include "CalypFrame.h"
#include "CalypModulesFactory.h"
#include "CalypStream.h"
#include "gtest/gtest.h"
#include "lib/CalypFrame.h"
#include "lib/CalypModuleIf.h"
#include "lib/CalypStream.h"
#include "modules/CalypModulesFactory.h"
class TestModuleCreate : public ::testing::Test
{
@@ -35,6 +36,8 @@ protected:
// Can be omitted if not needed.
static void SetUpTestCase()
{
ClpString moduleName = CALYP_TEST_MODULE_NAME;
pcStream = new CalypStream;
pcStream->open( ClpString( CALYP_TEST_DATA_DIR ) + ClpString( "/BasketballDrill_F10_832x480_yuv420p.yuv" ), 832, 480, 0, 8,
CLP_BIG_ENDIAN, 1, true );
@@ -50,66 +53,65 @@ protected:
pcStream = NULL;
}
// Some expensive resource shared by all tests.
static CalypStream* pcStream;
static CalypFrame* pcFrame;
static CalypModuleIf* pcModule;
static ClpString sModuleName;
};
CalypStream* TestModuleCreate::pcStream = NULL;
CalypFrame* TestModuleCreate::pcFrame = NULL;
ClpString TestModuleCreate::sModuleName = CALYP_TEST_MODULE_NAME;
TEST_F( TestModuleCreate, FIND_MODULE )
{
CalypModuleIf* module;
CalypModulesFactoryMap& moduleFactoryMap = CalypModulesFactory::Get()->getMap();
CalypModulesFactoryMap::iterator it = moduleFactoryMap.begin();
for( unsigned int i = 0; it != moduleFactoryMap.end(); ++it, i++ )
// Called before each test
void SetUp()
{
if( strcmp( it->first, sModuleName.c_str() ) == 0 )
ClpString moduleName = CALYP_TEST_MODULE_NAME;
CalypModulesFactoryMap& moduleFactoryMap = CalypModulesFactory::Get()->getMap();
CalypModulesFactoryMap::iterator it = moduleFactoryMap.begin();
for( unsigned int i = 0; it != moduleFactoryMap.end(); ++it, i++ )
{
module = it->second();
break;
if( strcmp( it->first, moduleName.c_str() ) == 0 )
{
pcModule = it->second();
break;
}
}
}
EXPECT_NE( module, nullptr );
module->Delete();
void TearDown()
{
pcModule->Delete();
}
CalypModuleIf* pcModule;
// Some expensive resource shared by all tests.
static CalypStream* pcStream;
};
CalypStream* TestModuleCreate::pcStream = NULL;
TEST_F( TestModuleCreate, FIND_MODULE )
{
EXPECT_NE( pcModule, nullptr );
}
TEST_F( TestModuleCreate, CREATE_OK )
{
CalypModuleIf* module;
CalypModulesFactoryMap& moduleFactoryMap = CalypModulesFactory::Get()->getMap();
CalypModulesFactoryMap::iterator it = moduleFactoryMap.begin();
for( unsigned int i = 0; it != moduleFactoryMap.end(); ++it, i++ )
bool moduleRequireOptions = false;
if( pcModule->m_uiModuleRequirements & CLP_MODULE_REQUIRES_OPTIONS )
{
if( strcmp( it->first, sModuleName.c_str() ) == 0 )
{
module = it->second();
break;
}
moduleRequireOptions = true;
}
EXPECT_NE( module, nullptr );
bool moduleCreated = false;
std::vector<CalypFrame*> apcFrameList;
apcFrameList.clear();
for( unsigned int i = 0; i < module->m_uiNumberOfFrames; i++ )
for( unsigned int i = 0; i < pcModule->m_uiNumberOfFrames; i++ )
{
apcFrameList.push_back( pcStream->getCurrFrame() );
pcStream->setNextFrame();
pcStream->readNextFrame();
}
if( module->m_iModuleAPI >= CLP_MODULE_API_2 )
if( pcModule->m_iModuleAPI >= CLP_MODULE_API_2 )
{
moduleCreated = module->create( apcFrameList );
moduleCreated = pcModule->create( apcFrameList ) | moduleRequireOptions;
}
else if( module->m_iModuleAPI == CLP_MODULE_API_1 )
else if( pcModule->m_iModuleAPI == CLP_MODULE_API_1 )
{
module->create( pcStream->getCurrFrame() );
pcModule->create( pcStream->getCurrFrame() );
moduleCreated = true;
}
EXPECT_EQ( moduleCreated, true );
@@ -117,72 +119,47 @@ TEST_F( TestModuleCreate, CREATE_OK )
TEST_F( TestModuleCreate, CREATE_FAIL_LESS_ONE )
{
CalypModuleIf* module;
CalypModulesFactoryMap& moduleFactoryMap = CalypModulesFactory::Get()->getMap();
CalypModulesFactoryMap::iterator it = moduleFactoryMap.begin();
for( unsigned int i = 0; it != moduleFactoryMap.end(); ++it, i++ )
if( pcModule->m_iModuleAPI >= CLP_MODULE_API_2 )
{
if( strcmp( it->first, sModuleName.c_str() ) == 0 )
std::vector<CalypFrame*> apcFrameList;
apcFrameList.clear();
for( unsigned int i = 0; i < pcModule->m_uiNumberOfFrames - 1; i++ )
{
module = it->second();
break;
apcFrameList.push_back( pcStream->getCurrFrame() );
pcStream->setNextFrame();
pcStream->readNextFrame();
}
bool moduleCreated = pcModule->create( apcFrameList );
EXPECT_NE( moduleCreated, true );
}
EXPECT_NE( module, nullptr );
bool moduleCreated = false;
std::vector<CalypFrame*> apcFrameList;
apcFrameList.clear();
for( unsigned int i = 0; i < module->m_uiNumberOfFrames - 1; i++ )
{
apcFrameList.push_back( pcStream->getCurrFrame() );
pcStream->setNextFrame();
pcStream->readNextFrame();
}
if( module->m_iModuleAPI >= CLP_MODULE_API_2 )
{
moduleCreated = module->create( apcFrameList );
}
else if( module->m_iModuleAPI == CLP_MODULE_API_1 )
{
module->create( pcStream->getCurrFrame() );
moduleCreated = true;
}
EXPECT_NE( moduleCreated, true );
}
TEST_F( TestModuleCreate, CREATE_FAIL_PLUS_ONE )
{
CalypModuleIf* module;
CalypModulesFactoryMap& moduleFactoryMap = CalypModulesFactory::Get()->getMap();
CalypModulesFactoryMap::iterator it = moduleFactoryMap.begin();
for( unsigned int i = 0; it != moduleFactoryMap.end(); ++it, i++ )
if( pcModule->m_iModuleAPI >= CLP_MODULE_API_2 )
{
if( strcmp( it->first, sModuleName.c_str() ) == 0 )
std::vector<CalypFrame*> apcFrameList;
apcFrameList.clear();
for( unsigned int i = 0; i < pcModule->m_uiNumberOfFrames + 1; i++ )
{
module = it->second();
break;
apcFrameList.push_back( NULL );
}
bool moduleCreated = pcModule->create( apcFrameList );
EXPECT_NE( moduleCreated, true );
}
EXPECT_NE( module, nullptr );
}
bool moduleCreated = false;
std::vector<CalypFrame*> apcFrameList;
apcFrameList.clear();
for( unsigned int i = 0; i < module->m_uiNumberOfFrames + 1; i++ )
TEST_F( TestModuleCreate, CREATE_FAIL_NULL_FRAME )
{
if( pcModule->m_iModuleAPI >= CLP_MODULE_API_2 )
{
apcFrameList.push_back( pcStream->getCurrFrame() );
pcStream->setNextFrame();
pcStream->readNextFrame();
std::vector<CalypFrame*> apcFrameList;
apcFrameList.clear();
for( unsigned int i = 0; i < pcModule->m_uiNumberOfFrames - 1; i++ )
{
apcFrameList.push_back( NULL );
}
bool moduleCreated = pcModule->create( apcFrameList );
EXPECT_NE( moduleCreated, true );
}
if( module->m_iModuleAPI >= CLP_MODULE_API_2 )
{
moduleCreated = module->create( apcFrameList );
}
else if( module->m_iModuleAPI == CLP_MODULE_API_1 )
{
module->create( pcStream->getCurrFrame() );
moduleCreated = true;
}
EXPECT_NE( moduleCreated, true );
}
}