mirror of
https://github.com/fwbuilder/fwbuilder
synced 2026-03-19 01:37:17 +01:00
Added configure test for cppunit; fixed .pro files for both unit test suites; fixed UsageResolverTest::findWhereObjectIsUsed() test
This commit is contained in:
parent
62287a7c7c
commit
83388646c2
@ -91,6 +91,8 @@
|
||||
|
||||
#undef HAVE_QTDBUS
|
||||
|
||||
#undef HAVE_CPPUNIT
|
||||
|
||||
/*
|
||||
* on some platforms (OpenBSD) the second parameter to dlopen is different
|
||||
*/
|
||||
|
||||
@ -242,6 +242,12 @@ AC_SUBST(LIBS)
|
||||
|
||||
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_MSG_CHECKING(antlr)
|
||||
HAVE_ANTLR_RUNTIME="1"
|
||||
|
||||
@ -14,6 +14,9 @@ DOCDIR = @DOCDIR@
|
||||
HAVE_ANTLR_RUNTIME = @HAVE_ANTLR_RUNTIME@
|
||||
HAVE_EXTERNAL_ANTLR = @HAVE_EXTERNAL_ANTLR@
|
||||
HAVE_QTDBUS = @HAVE_QTDBUS@
|
||||
HAVE_CPPUNIT = @HAVE_CPPUNIT@
|
||||
CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@
|
||||
CPPUNIT_LIBS = @CPPUNIT_LIBS@
|
||||
|
||||
unix {
|
||||
PREFIX = @PREFIX@
|
||||
|
||||
@ -30,6 +30,7 @@
|
||||
|
||||
int build_num = 0;
|
||||
std::string respath;
|
||||
QString user_name;
|
||||
|
||||
int main( int, char** )
|
||||
{
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
#-*- mode: makefile; tab-width: 4; -*-
|
||||
|
||||
include(../../../qmake.inc)
|
||||
|
||||
@ -37,15 +38,15 @@ SOURCES += tests_main.cpp interfacePropertiesTest.cpp
|
||||
CONFIG -= release
|
||||
CONFIG += debug
|
||||
OBJECTS_DIR = .
|
||||
QMAKE_CXXFLAGS += -g -fprofile-arcs -ftest-coverage -O0
|
||||
QMAKE_CXXFLAGS += -g -fprofile-arcs -ftest-coverage -O0 $$CPPUNIT_CFLAGS
|
||||
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.depends = all
|
||||
|
||||
LIBS += $$LIBS_FWCOMPILER $$LIBS_FWBUILDER
|
||||
LIBS += -lgcov -lcppunit
|
||||
QMAKE_EXTRA_TARGETS += run
|
||||
|
||||
|
||||
|
||||
@ -35,7 +35,7 @@ using namespace libfwbuilder;
|
||||
|
||||
void UsageResolverTest::addToLib(FWObject* obj)
|
||||
{
|
||||
FWBTree().getStandardSlotForObject(lib, obj->TYPENAME)->add(obj);
|
||||
FWBTree().getStandardSlotForObject(lib, obj->getTypeName().c_str())->add(obj);
|
||||
}
|
||||
|
||||
void UsageResolverTest::setUp()
|
||||
@ -44,91 +44,111 @@ void UsageResolverTest::setUp()
|
||||
db->setName("Database");
|
||||
lib = Library::cast(FWBTree().createNewLibrary(db));
|
||||
lib->setName("Library");
|
||||
Firewall *fw1 = new Firewall(db, true);
|
||||
Firewall *fw2 = new Firewall(db, true);
|
||||
Firewall *fw3 = new Firewall(db, true);
|
||||
|
||||
FWObject *fw1 = db->create(Firewall::TYPENAME);
|
||||
FWObject *fw2 = db->create(Firewall::TYPENAME);
|
||||
FWObject *fw3 = db->create(Firewall::TYPENAME);
|
||||
fw1->setName("Firewall 1");
|
||||
fw2->setName("Firewall 2");
|
||||
fw3->setName("Firewall 3");
|
||||
addToLib(fw1); addToLib(fw2); addToLib(fw3);
|
||||
|
||||
addr1 = new IPv4(db, true);
|
||||
addr2 = new IPv4(db, true);
|
||||
addToLib(fw1);
|
||||
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 2");
|
||||
addToLib(addr1); addToLib(addr2);
|
||||
addr2->setName("Address 2");
|
||||
addToLib(addr1);
|
||||
addToLib(addr2);
|
||||
|
||||
Group *grp1 = new Group(db, true),
|
||||
*grp2 = new Group(db, true);
|
||||
FWObject *grp1 = db->create(ObjectGroup::TYPENAME);
|
||||
FWObject *grp2 = db->create(ObjectGroup::TYPENAME);
|
||||
grp1->setName("Group 1");
|
||||
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);
|
||||
grp2->add(addr2);
|
||||
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();
|
||||
p1->setName("Policy of Firewall 1");
|
||||
p2->setName("Policy of Firewall 2");
|
||||
p3->setName("Policy of Firewall 3");
|
||||
// addToLib(p1); addToLib(p2); addToLib(p3);
|
||||
rule = PolicyRule::cast(policy->createRule());
|
||||
rule->setName("PolicyRule 2 of Firewall 1");
|
||||
rule->getSrc()->addRef(grp1);
|
||||
policy->add(rule);
|
||||
|
||||
r1 = PolicyRule::cast(p1->createRule());
|
||||
r1->setName("PolicyRule 1 of Firewall 1");
|
||||
// addToLib(r1);
|
||||
r1->getSrc()->addRef(grp1);
|
||||
//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);
|
||||
rule = PolicyRule::cast(policy->createRule());
|
||||
rule->setName("PolicyRule 3 of Firewall 1");
|
||||
rule->getSrc()->addRef(grp2);
|
||||
policy->add(rule);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void UsageResolverTest::findWhereObjectIsUsed()
|
||||
{
|
||||
qDebug() << "running findWhereObjectIsUsed";
|
||||
// db->dump(true, true);
|
||||
|
||||
qDebug() << "running FWObjectDatabase::findWhereObjectIsUsed";
|
||||
set<FWObject*> res;
|
||||
|
||||
db->findWhereObjectIsUsed(addr1, db, res);
|
||||
CPPUNIT_ASSERT(res.size() == 3);
|
||||
|
||||
set<FWObject*>::iterator iter = res.begin();
|
||||
//CPPUNIT_ASSERT(res.size() == 2);
|
||||
while (iter!=res.end())
|
||||
{
|
||||
string name = (*iter)->getName();
|
||||
qDebug() << "got object: '" << name.c_str() << "' ptr" << (*iter);
|
||||
//FWObject::cast(*iter)->dump(cout, false, false, false);
|
||||
//CPPUNIT_ASSERT ( name == "Group 1" || name == "Rule 2 of Firewall 1" );
|
||||
FWObject *obj = *iter;
|
||||
|
||||
string name = obj->getName();
|
||||
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++;
|
||||
}
|
||||
|
||||
qDebug() << "test FWObjectDatabase::findWhereObjectIsUsed done";
|
||||
qDebug() << "";
|
||||
}
|
||||
|
||||
void UsageResolverTest::findFirewallsForObject()
|
||||
{
|
||||
//qDebug() << "running findFirewallsForObject";
|
||||
qDebug() << "running UsageResolver::findFirewallsForObject";
|
||||
list<Firewall*> res = UsageResolver::findFirewallsForObject(addr1, db);
|
||||
list<Firewall*>::iterator iter = res.begin();
|
||||
CPPUNIT_ASSERT(res.size() == 2);
|
||||
while (iter!=res.end())
|
||||
{
|
||||
string name = (*iter++)->getName();
|
||||
//qDebug() << "got object: '" << name.c_str() << "'";
|
||||
CPPUNIT_ASSERT ( name == "Firewall 1" || name == "Firewall 2" );
|
||||
qDebug() << "got object: '" << name.c_str()
|
||||
<< "' (" << (*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
|
||||
# -------------------------------------------------
|
||||
@ -18,9 +19,16 @@ SOURCES += main.cpp \
|
||||
|
||||
HEADERS += UsageResolverTest.h ../../UsageResolver.h ../../FWBTree.h
|
||||
|
||||
LIBS += $$LIBS_FWCOMPILER $$LIBS_FWBUILDER
|
||||
LIBS += -lgcov -lcppunit
|
||||
CONFIG -= release
|
||||
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
|
||||
|
||||
@ -30,6 +30,7 @@
|
||||
|
||||
std::string respath;
|
||||
int fwbdebug = 0;
|
||||
QString user_name;
|
||||
|
||||
int main( int, char** )
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user