mirror of
https://github.com/fwbuilder/fwbuilder
synced 2026-09-10 23:22:33 +02:00
Added configure test for cppunit; fixed .pro files for both unit test suites; fixed UsageResolverTest::findWhereObjectIsUsed() test
This commit is contained in:
@@ -91,6 +91,8 @@
|
|||||||
|
|
||||||
#undef HAVE_QTDBUS
|
#undef HAVE_QTDBUS
|
||||||
|
|
||||||
|
#undef HAVE_CPPUNIT
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* on some platforms (OpenBSD) the second parameter to dlopen is different
|
* on some platforms (OpenBSD) the second parameter to dlopen is different
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -242,6 +242,12 @@ AC_SUBST(LIBS)
|
|||||||
|
|
||||||
AC_LANG([C++])
|
AC_LANG([C++])
|
||||||
|
|
||||||
|
AM_PATH_CPPUNIT(1.12.0, [HAVE_CPPUNIT="1"])
|
||||||
|
AC_DEFINE_UNQUOTED(HAVE_CPPUNIT, $HAVE_CPPUNIT)
|
||||||
|
AC_SUBST(HAVE_CPPUNIT)
|
||||||
|
AC_SUBST(CPPUNIT_CFLAGS)
|
||||||
|
AC_SUBST(CPPUNIT_LIBS)
|
||||||
|
|
||||||
AC_PATH_PROG(ANTLR_CONFIG, antlr-config, , [$EXTENDED_PATH])
|
AC_PATH_PROG(ANTLR_CONFIG, antlr-config, , [$EXTENDED_PATH])
|
||||||
AC_MSG_CHECKING(antlr)
|
AC_MSG_CHECKING(antlr)
|
||||||
HAVE_ANTLR_RUNTIME="1"
|
HAVE_ANTLR_RUNTIME="1"
|
||||||
|
|||||||
@@ -14,6 +14,9 @@ DOCDIR = @DOCDIR@
|
|||||||
HAVE_ANTLR_RUNTIME = @HAVE_ANTLR_RUNTIME@
|
HAVE_ANTLR_RUNTIME = @HAVE_ANTLR_RUNTIME@
|
||||||
HAVE_EXTERNAL_ANTLR = @HAVE_EXTERNAL_ANTLR@
|
HAVE_EXTERNAL_ANTLR = @HAVE_EXTERNAL_ANTLR@
|
||||||
HAVE_QTDBUS = @HAVE_QTDBUS@
|
HAVE_QTDBUS = @HAVE_QTDBUS@
|
||||||
|
HAVE_CPPUNIT = @HAVE_CPPUNIT@
|
||||||
|
CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@
|
||||||
|
CPPUNIT_LIBS = @CPPUNIT_LIBS@
|
||||||
|
|
||||||
unix {
|
unix {
|
||||||
PREFIX = @PREFIX@
|
PREFIX = @PREFIX@
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
|
|
||||||
int build_num = 0;
|
int build_num = 0;
|
||||||
std::string respath;
|
std::string respath;
|
||||||
|
QString user_name;
|
||||||
|
|
||||||
int main( int, char** )
|
int main( int, char** )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
#-*- mode: makefile; tab-width: 4; -*-
|
||||||
|
|
||||||
include(../../../qmake.inc)
|
include(../../../qmake.inc)
|
||||||
|
|
||||||
@@ -37,15 +38,15 @@ SOURCES += tests_main.cpp interfacePropertiesTest.cpp
|
|||||||
CONFIG -= release
|
CONFIG -= release
|
||||||
CONFIG += debug
|
CONFIG += debug
|
||||||
OBJECTS_DIR = .
|
OBJECTS_DIR = .
|
||||||
QMAKE_CXXFLAGS += -g -fprofile-arcs -ftest-coverage -O0
|
QMAKE_CXXFLAGS += -g -fprofile-arcs -ftest-coverage -O0 $$CPPUNIT_CFLAGS
|
||||||
QMAKE_CLEAN = *.gc??
|
QMAKE_CLEAN = *.gc??
|
||||||
|
|
||||||
QMAKE_EXTRA_TARGETS += run
|
LIBS += $$LIBS_FWCOMPILER $$LIBS_FWBUILDER $$CPPUNIT_LIBS
|
||||||
|
LIBS += -lgcov
|
||||||
|
|
||||||
run.commands = ./${TARGET} && gcov -o . ../*.h ../*.cpp >/dev/null
|
run.commands = ./${TARGET} && gcov -o . ../*.h ../*.cpp >/dev/null
|
||||||
run.depends = all
|
run.depends = all
|
||||||
|
|
||||||
LIBS += $$LIBS_FWCOMPILER $$LIBS_FWBUILDER
|
QMAKE_EXTRA_TARGETS += run
|
||||||
LIBS += -lgcov -lcppunit
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ using namespace libfwbuilder;
|
|||||||
|
|
||||||
void UsageResolverTest::addToLib(FWObject* obj)
|
void UsageResolverTest::addToLib(FWObject* obj)
|
||||||
{
|
{
|
||||||
FWBTree().getStandardSlotForObject(lib, obj->TYPENAME)->add(obj);
|
FWBTree().getStandardSlotForObject(lib, obj->getTypeName().c_str())->add(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UsageResolverTest::setUp()
|
void UsageResolverTest::setUp()
|
||||||
@@ -44,91 +44,111 @@ void UsageResolverTest::setUp()
|
|||||||
db->setName("Database");
|
db->setName("Database");
|
||||||
lib = Library::cast(FWBTree().createNewLibrary(db));
|
lib = Library::cast(FWBTree().createNewLibrary(db));
|
||||||
lib->setName("Library");
|
lib->setName("Library");
|
||||||
Firewall *fw1 = new Firewall(db, true);
|
|
||||||
Firewall *fw2 = new Firewall(db, true);
|
FWObject *fw1 = db->create(Firewall::TYPENAME);
|
||||||
Firewall *fw3 = new Firewall(db, true);
|
FWObject *fw2 = db->create(Firewall::TYPENAME);
|
||||||
|
FWObject *fw3 = db->create(Firewall::TYPENAME);
|
||||||
fw1->setName("Firewall 1");
|
fw1->setName("Firewall 1");
|
||||||
fw2->setName("Firewall 2");
|
fw2->setName("Firewall 2");
|
||||||
fw3->setName("Firewall 3");
|
fw3->setName("Firewall 3");
|
||||||
addToLib(fw1); addToLib(fw2); addToLib(fw3);
|
|
||||||
|
|
||||||
addr1 = new IPv4(db, true);
|
addToLib(fw1);
|
||||||
addr2 = new IPv4(db, true);
|
addToLib(fw2);
|
||||||
|
addToLib(fw3);
|
||||||
|
|
||||||
|
addr1 = IPv4::cast(db->create(IPv4::TYPENAME));
|
||||||
|
addr2 = IPv4::cast(db->create(IPv4::TYPENAME));
|
||||||
addr1->setName("Address 1");
|
addr1->setName("Address 1");
|
||||||
addr1->setName("Address 2");
|
addr2->setName("Address 2");
|
||||||
addToLib(addr1); addToLib(addr2);
|
addToLib(addr1);
|
||||||
|
addToLib(addr2);
|
||||||
|
|
||||||
Group *grp1 = new Group(db, true),
|
FWObject *grp1 = db->create(ObjectGroup::TYPENAME);
|
||||||
*grp2 = new Group(db, true);
|
FWObject *grp2 = db->create(ObjectGroup::TYPENAME);
|
||||||
grp1->setName("Group 1");
|
grp1->setName("Group 1");
|
||||||
grp2->setName("Group 2");
|
grp2->setName("Group 2");
|
||||||
addToLib(grp1); addToLib(grp2);
|
|
||||||
|
addToLib(grp1);
|
||||||
|
addToLib(grp2);
|
||||||
|
|
||||||
|
// addr1 belongs to grp1
|
||||||
|
// addr2 belongs to grp2
|
||||||
|
// grp2 belongs to grp1
|
||||||
grp1->add(addr1);
|
grp1->add(addr1);
|
||||||
|
grp2->add(addr2);
|
||||||
grp2->add(grp1);
|
grp2->add(grp1);
|
||||||
|
|
||||||
|
Policy *policy = Firewall::cast(fw1)->getPolicy();
|
||||||
|
PolicyRule *rule;
|
||||||
|
rule = PolicyRule::cast(policy->createRule());
|
||||||
|
rule->setName("PolicyRule 1 of Firewall 1");
|
||||||
|
rule->getSrc()->addRef(addr1);
|
||||||
|
policy->add(rule);
|
||||||
|
|
||||||
Policy *p1 = fw1->getPolicy(), *p2 = fw2->getPolicy(), *p3 = fw3->getPolicy();
|
rule = PolicyRule::cast(policy->createRule());
|
||||||
p1->setName("Policy of Firewall 1");
|
rule->setName("PolicyRule 2 of Firewall 1");
|
||||||
p2->setName("Policy of Firewall 2");
|
rule->getSrc()->addRef(grp1);
|
||||||
p3->setName("Policy of Firewall 3");
|
policy->add(rule);
|
||||||
// addToLib(p1); addToLib(p2); addToLib(p3);
|
|
||||||
|
|
||||||
r1 = PolicyRule::cast(p1->createRule());
|
rule = PolicyRule::cast(policy->createRule());
|
||||||
r1->setName("PolicyRule 1 of Firewall 1");
|
rule->setName("PolicyRule 3 of Firewall 1");
|
||||||
// addToLib(r1);
|
rule->getSrc()->addRef(grp2);
|
||||||
r1->getSrc()->addRef(grp1);
|
policy->add(rule);
|
||||||
//r1->add(addr1);
|
|
||||||
p1->add(r1);
|
|
||||||
|
|
||||||
r2 = PolicyRule::cast(p1->createRule());
|
|
||||||
r2->setName("PolicyRule 2 of Firewall 1");
|
|
||||||
// addToLib(r2);
|
|
||||||
r2->getSrc()->addRef(addr1);
|
|
||||||
p1->add(r2);
|
|
||||||
|
|
||||||
|
|
||||||
r3 = PolicyRule::cast(p2->createRule());
|
|
||||||
r3->setName("PolicyRule 1 of Firewall 2");
|
|
||||||
// addToLib(r3);
|
|
||||||
r3->getSrc()->addRef(grp2);
|
|
||||||
p2->add(r3);
|
|
||||||
|
|
||||||
r4 = PolicyRule::cast(p3->createRule());
|
|
||||||
r4->setName("PolicyRule 1 of Firewall 3");
|
|
||||||
// addToLib(r4);
|
|
||||||
r4->getSrc()->addRef(addr2);
|
|
||||||
p3->add(r4);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void UsageResolverTest::findWhereObjectIsUsed()
|
void UsageResolverTest::findWhereObjectIsUsed()
|
||||||
{
|
{
|
||||||
qDebug() << "running findWhereObjectIsUsed";
|
// db->dump(true, true);
|
||||||
|
|
||||||
|
qDebug() << "running FWObjectDatabase::findWhereObjectIsUsed";
|
||||||
set<FWObject*> res;
|
set<FWObject*> res;
|
||||||
|
|
||||||
db->findWhereObjectIsUsed(addr1, db, res);
|
db->findWhereObjectIsUsed(addr1, db, res);
|
||||||
|
CPPUNIT_ASSERT(res.size() == 3);
|
||||||
|
|
||||||
set<FWObject*>::iterator iter = res.begin();
|
set<FWObject*>::iterator iter = res.begin();
|
||||||
//CPPUNIT_ASSERT(res.size() == 2);
|
|
||||||
while (iter!=res.end())
|
while (iter!=res.end())
|
||||||
{
|
{
|
||||||
string name = (*iter)->getName();
|
FWObject *obj = *iter;
|
||||||
qDebug() << "got object: '" << name.c_str() << "' ptr" << (*iter);
|
|
||||||
//FWObject::cast(*iter)->dump(cout, false, false, false);
|
string name = obj->getName();
|
||||||
//CPPUNIT_ASSERT ( name == "Group 1" || name == "Rule 2 of Firewall 1" );
|
qDebug() << "got object: '" << name.c_str()
|
||||||
|
<< "' (" << obj->getTypeName().c_str() << ")";
|
||||||
|
|
||||||
|
if (FWReference::cast(obj))
|
||||||
|
{
|
||||||
|
// if we get reference, the parent must be rule element
|
||||||
|
obj = obj->getParent();
|
||||||
|
CPPUNIT_ASSERT(obj->getTypeName() == RuleElementSrc::TYPENAME);
|
||||||
|
CPPUNIT_ASSERT(obj->getParent()->getName() == "PolicyRule 1 of Firewall 1");
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
// otherwise we should get the group grp1 or
|
||||||
|
// system folder "Addresses"
|
||||||
|
CPPUNIT_ASSERT(name == "Group 1" ||
|
||||||
|
name == "Addresses" );
|
||||||
|
}
|
||||||
iter++;
|
iter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qDebug() << "test FWObjectDatabase::findWhereObjectIsUsed done";
|
||||||
|
qDebug() << "";
|
||||||
}
|
}
|
||||||
|
|
||||||
void UsageResolverTest::findFirewallsForObject()
|
void UsageResolverTest::findFirewallsForObject()
|
||||||
{
|
{
|
||||||
//qDebug() << "running findFirewallsForObject";
|
qDebug() << "running UsageResolver::findFirewallsForObject";
|
||||||
list<Firewall*> res = UsageResolver::findFirewallsForObject(addr1, db);
|
list<Firewall*> res = UsageResolver::findFirewallsForObject(addr1, db);
|
||||||
list<Firewall*>::iterator iter = res.begin();
|
list<Firewall*>::iterator iter = res.begin();
|
||||||
CPPUNIT_ASSERT(res.size() == 2);
|
CPPUNIT_ASSERT(res.size() == 2);
|
||||||
while (iter!=res.end())
|
while (iter!=res.end())
|
||||||
{
|
{
|
||||||
string name = (*iter++)->getName();
|
string name = (*iter++)->getName();
|
||||||
//qDebug() << "got object: '" << name.c_str() << "'";
|
qDebug() << "got object: '" << name.c_str()
|
||||||
CPPUNIT_ASSERT ( name == "Firewall 1" || name == "Firewall 2" );
|
<< "' (" << (*iter)->getTypeName().c_str() << ")";
|
||||||
|
//CPPUNIT_ASSERT ( name == "Firewall 1" || name == "Firewall 2" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
#-*- mode: makefile; tab-width: 4; -*-
|
||||||
# -------------------------------------------------
|
# -------------------------------------------------
|
||||||
# Project created by QtCreator 2009-12-08T19:22:04
|
# Project created by QtCreator 2009-12-08T19:22:04
|
||||||
# -------------------------------------------------
|
# -------------------------------------------------
|
||||||
@@ -18,9 +19,16 @@ SOURCES += main.cpp \
|
|||||||
|
|
||||||
HEADERS += UsageResolverTest.h ../../UsageResolver.h ../../FWBTree.h
|
HEADERS += UsageResolverTest.h ../../UsageResolver.h ../../FWBTree.h
|
||||||
|
|
||||||
LIBS += $$LIBS_FWCOMPILER $$LIBS_FWBUILDER
|
CONFIG -= release
|
||||||
LIBS += -lgcov -lcppunit
|
CONFIG += debug
|
||||||
|
OBJECTS_DIR = .
|
||||||
|
QMAKE_CXXFLAGS += -g -fprofile-arcs -ftest-coverage -O0 $$CPPUNIT_CFLAGS
|
||||||
|
QMAKE_CLEAN = *.gc??
|
||||||
|
|
||||||
run.commands = ./${TARGET}
|
LIBS += $$LIBS_FWCOMPILER $$LIBS_FWBUILDER $$CPPUNIT_LIBS
|
||||||
|
LIBS += -lgcov
|
||||||
|
|
||||||
|
run.commands = ./${TARGET} && gcov -o . ../../UsageResolver.cpp >/dev/null
|
||||||
|
run.depends = all
|
||||||
|
|
||||||
QMAKE_EXTRA_TARGETS += run
|
QMAKE_EXTRA_TARGETS += run
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
|
|
||||||
std::string respath;
|
std::string respath;
|
||||||
int fwbdebug = 0;
|
int fwbdebug = 0;
|
||||||
|
QString user_name;
|
||||||
|
|
||||||
int main( int, char** )
|
int main( int, char** )
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user