Commit 24db5cdc authored by Tristan Matthews's avatar Tristan Matthews

* #7097: cleanup, stripped dead code, removed shadowed-vars

Found with -Wshadow argument to g++
parent 6aceecc3
......@@ -214,10 +214,10 @@ AlsaLayer::stopStream (void)
* return the function return value
*/
#define ALSA_CALL(call, error) ({ \
int err = call; \
if (err < 0) \
_error("ALSA: "error": %s", snd_strerror(err)); \
err; \
int err_code = call; \
if (err_code < 0) \
_error("ALSA: "error": %s", snd_strerror(err_code)); \
err_code; \
})
void AlsaLayer::stopCaptureStream (void)
......
......@@ -374,7 +374,7 @@ void YamlEmitter::addMappingItem (int mappingid, std::string key, YamlNode *node
throw;
}
} else if (node->getType() == SEQUENCE) {
SequenceNode *seqnode = (SequenceNode *)node;
SequenceNode *seqnode = static_cast<SequenceNode *>(node);
if ( (temp1 = yaml_document_add_scalar (&document, NULL, (yaml_char_t *) key.c_str(), -1, YAML_PLAIN_SCALAR_STYLE)) == 0)
throw YamlEmitterException ("Could not add scalar to document");
......@@ -387,25 +387,21 @@ void YamlEmitter::addMappingItem (int mappingid, std::string key, YamlNode *node
Sequence *seq = seqnode->getSequence();
Sequence::const_iterator it;
for (it = seq->begin(); it != seq->end(); ++it) {
YamlNode *node = *it;
YamlNode *yamlNode = *it;
int id;
if ( (id = yaml_document_add_mapping (&document, NULL, YAML_BLOCK_MAPPING_STYLE)) == 0) {
if ((id = yaml_document_add_mapping (&document, NULL, YAML_BLOCK_MAPPING_STYLE)) == 0)
throw YamlEmitterException ("Could not add account mapping to document");
}
if (yaml_document_append_sequence_item (&document, temp2, id) == 0) {
if (yaml_document_append_sequence_item (&document, temp2, id) == 0)
throw YamlEmitterException ("Could not append account mapping to sequence");
}
MappingNode *mapnode = (MappingNode*)node;
MappingNode *mapnode = static_cast<MappingNode*>(yamlNode);
Mapping *map = mapnode->getMapping();
Mapping::iterator mapit;
for (mapit = map->begin(); mapit != map->end() ; ++mapit)
addMappingItem(id, mapit->first, mapit->second);
}
} else {
} else
throw YamlEmitterException ("Unknown node type while adding mapping node");
}
}
}
......@@ -131,7 +131,6 @@ class YamlEmitter
friend class ConfigurationTest;
};
}
#endif
......@@ -31,6 +31,7 @@
#ifndef __SFL_CALLMANAGER_H__
#define __SFL_CALLMANAGER_H__
#include "dbus_cpp.h"
#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 6
/* This warning option only exists for gcc 4.6.0 and greater. */
#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
......@@ -47,7 +48,6 @@
#pragma GCC diagnostic warning "-Wunused-but-set-variable"
#endif
#include <dbus-c++/dbus.h>
#include <stdexcept>
class CallManagerException: public std::runtime_error
......
......@@ -48,7 +48,7 @@
#pragma GCC diagnostic warning "-Wunused-but-set-variable"
#endif
#include <dbus-c++/dbus.h>
#include "dbus_cpp.h"
class ConfigurationManager
: public org::sflphone::SFLphone::ConfigurationManager_adaptor,
......
......@@ -31,11 +31,8 @@
#ifndef __DBUSMANAGERIMPL_H__
#define __DBUSMANAGERIMPL_H__
#pragma GCC diagnostic ignored "-Wignored-qualifiers"
#pragma GCC diagnostic ignored "-Wunused-parameter"
#include <dbus-c++/dbus.h>
#pragma GCC diagnostic warning "-Wignored-qualifiers"
#pragma GCC diagnostic warning "-Wunused-parameter"
#include "dbus_cpp.h"
class ConfigurationManager;
class CallManager;
class NetworkManager;
......
......@@ -27,8 +27,8 @@
* shall include the source code for the parts of OpenSSL used as well
* as that of the covered work.
*/
#include <global.h>
#include <instance.h>
#include "global.h"
#include "instance.h"
#include "../manager.h"
Instance::Instance (DBus::Connection& connection)
......
......@@ -34,6 +34,7 @@
#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 6
#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
#endif
#include "dbus_cpp.h"
#pragma GCC diagnostic ignored "-Wignored-qualifiers"
#pragma GCC diagnostic ignored "-Wunused-parameter"
......@@ -44,9 +45,6 @@
#pragma GCC diagnostic warning "-Wunused-but-set-variable"
#endif
#include <dbus-c++/dbus.h>
class Instance
: public org::sflphone::SFLphone::Instance_adaptor,
public DBus::IntrospectableAdaptor,
......
......@@ -28,10 +28,12 @@
* as that of the covered work.
*/
#include <global.h>
#include "networkmanager.h"
#include <iostream>
#include <instance.h>
#include "global.h"
#include "instance.h"
#include "../manager.h"
const std::string NetworkManager::statesString[5] = {"unknown", "asleep", "connecting", "connected", "disconnected"};
......@@ -55,6 +57,6 @@ void NetworkManager::PropertiesChanged (const std::map< std::string, ::DBus::Var
Manager::instance().registerAccounts();
}
NetworkManager::NetworkManager (DBus::Connection& connection, const DBus::Path& path, const char* destination) : DBus::ObjectProxy (connection, path, destination)
NetworkManager::NetworkManager (DBus::Connection& connection, const DBus::Path& dbus_path, const char* destination) : DBus::ObjectProxy (connection, dbus_path, destination)
{
}
......@@ -6,8 +6,7 @@
#ifndef __dbusxx__networkmanager_proxy_h__PROXY_MARSHAL_H
#define __dbusxx__networkmanager_proxy_h__PROXY_MARSHAL_H
#include <dbus-c++/dbus.h>
#include <cassert>
#include "dbus_cpp.h"
namespace org
{
......
......@@ -31,13 +31,13 @@
#include "urlhook.h"
#include <cstdlib>
void UrlHook::runAction (std::string command, std::string args)
int UrlHook::runAction(const std::string &command, const std::string &args)
{
if (args.empty())
return;
return 0;
//FIXME : use fork and execve, so no need to escape shell arguments
std::string cmd = command + "\"" + args + "\" &";
system(cmd.c_str());
return system(cmd.c_str());
}
......@@ -33,10 +33,8 @@
#include <string>
class UrlHook
namespace UrlHook
{
public:
static void runAction (std::string, std::string);
};
int runAction(const std::string &command, const std::string &arg);
}
#endif // URL_HOOK_H
......@@ -57,16 +57,16 @@ IAXCall::getSupportedFormat (const std::string &accountID) const
{
Account *account = Manager::instance().getAccount (accountID);
int format = 0;
int format_mask = 0;
if (account) {
CodecOrder map(account->getActiveCodecs());
for (CodecOrder::const_iterator iter = map.begin(); iter != map.end(); ++iter)
format |= codecToASTFormat(*iter);
format_mask |= codecToASTFormat(*iter);
}
else
_error ("No IAx account could be found");
return format;
return format_mask;
}
int IAXCall::getFirstMatchingFormat (int needles, const std::string &accountID) const
......@@ -76,10 +76,10 @@ int IAXCall::getFirstMatchingFormat (int needles, const std::string &accountID)
if (account != NULL) {
CodecOrder map(account->getActiveCodecs());
for (CodecOrder::const_iterator iter = map.begin(); iter != map.end(); ++iter) {
int format = codecToASTFormat(*iter);
int format_mask = codecToASTFormat(*iter);
// Return the first that matches
if (format & needles)
return format;
if (format_mask & needles)
return format_mask;
}
} else
_error ("No IAx account could be found");
......
......@@ -86,8 +86,8 @@ IAXVoIPLink::terminate()
for (CallMap::iterator iter = _callMap.begin(); iter != _callMap.end(); ++iter) {
IAXCall *call = dynamic_cast<IAXCall*> (iter->second);
if (call) {
ost::MutexLock m(mutexIAX_);
iax_hangup (call->session, (char*) "Dumped Call");
ost::MutexLock lock(mutexIAX_);
iax_hangup (call->session, const_cast<char*>("Dumped Call"));
delete call;
}
}
......
......@@ -93,52 +93,52 @@ class CryptoAttribute
{
public:
CryptoAttribute (std::string tag,
std::string cryptoSuite,
std::string srtpKeyMethod,
std::string srtpKeyInfo,
std::string lifetime,
std::string mkiValue,
std::string mkiLength) :
tag (tag),
cryptoSuite (cryptoSuite),
srtpKeyMethod (srtpKeyMethod),
srtpKeyInfo (srtpKeyInfo),
lifetime (lifetime),
mkiValue (mkiValue),
mkiLength (mkiLength) {};
CryptoAttribute (const std::string &tag,
const std::string &cryptoSuite,
const std::string &srtpKeyMethod,
const std::string &srtpKeyInfo,
const std::string &lifetime,
const std::string &mkiValue,
const std::string &mkiLength) :
tag_(tag),
cryptoSuite_(cryptoSuite),
srtpKeyMethod_(srtpKeyMethod),
srtpKeyInfo_(srtpKeyInfo),
lifetime_(lifetime),
mkiValue_(mkiValue),
mkiLength_(mkiLength) {}
std::string getTag() const {
return tag;
};
return tag_;
}
std::string getCryptoSuite() const {
return cryptoSuite;
};
return cryptoSuite_;
}
std::string getSrtpKeyMethod() const {
return srtpKeyMethod;
};
return srtpKeyMethod_;
}
std::string getSrtpKeyInfo() const {
return srtpKeyInfo;
};
return srtpKeyInfo_;
}
std::string getLifetime() const {
return lifetime;
};
return lifetime_;
}
std::string getMkiValue() const {
return mkiValue;
};
return mkiValue_;
}
std::string getMkiLength() const {
return mkiLength;
};
return mkiLength_;
}
private:
std::string tag;
std::string cryptoSuite;
std::string srtpKeyMethod;
std::string srtpKeyInfo;
std::string lifetime;
std::string mkiValue;
std::string mkiLength;
std::string tag_;
std::string cryptoSuite_;
std::string srtpKeyMethod_;
std::string srtpKeyInfo_;
std::string lifetime_;
std::string mkiValue_;
std::string mkiLength_;
};
class SdesNegotiator
......@@ -156,7 +156,7 @@ class SdesNegotiator
public:
SdesNegotiator (const std::vector<CryptoSuiteDefinition>& localCapabilites, const std::vector<std::string>& remoteAttribute);
~SdesNegotiator() { };
~SdesNegotiator() {};
bool negotiate (void);
......
......@@ -40,7 +40,7 @@
SIPAccount::SIPAccount (const std::string& accountID)
: Account (accountID, "SIP")
, transport (NULL)
, transport_(NULL)
, regc_ (NULL)
, bRegister_ (false)
, registrationExpire_ (600)
......@@ -298,11 +298,11 @@ void SIPAccount::unserialize (Conf::MappingNode *map)
cred->getValue(USERNAME, &user);
cred->getValue(PASSWORD, &pass);
cred->getValue(REALM, &realm);
std::map<std::string, std::string> map;
map[USERNAME] = user;
map[PASSWORD] = pass;
map[REALM] = realm;
creds.push_back(map);
std::map<std::string, std::string> credentialMap;
credentialMap[USERNAME] = user;
credentialMap[PASSWORD] = pass;
credentialMap[REALM] = realm;
creds.push_back(credentialMap);
}
}
if (creds.empty()) {
......@@ -656,10 +656,10 @@ std::string SIPAccount::getLoginName (void)
std::string SIPAccount::getFromUri (void) const
{
std::string scheme("");
std::string transport("");
std::string username = username_;
std::string hostname = hostname_;
std::string scheme;
std::string transport;
std::string username(username_);
std::string hostname(hostname_);
// UDP does not require the transport specification
if (transportType_ == PJSIP_TRANSPORT_TLS) {
......
......@@ -408,8 +408,7 @@ class SIPAccount : public Account
return zrtpHelloHash_;
}
pjsip_transport* transport;
pjsip_transport* transport_;
private:
std::vector< std::map<std::string, std::string > > credentials_;
......
......@@ -288,7 +288,7 @@ void SIPVoIPLink::sendRegister (Account *a)
std::string srvUri(account->getServerUri());
std::string address, port;
findLocalAddressFromUri(srvUri, account->transport, address, port);
findLocalAddressFromUri(srvUri, account->transport_, address, port);
std::string from(account->getFromUri());
pj_str_t pjFrom = pj_str((char*)from.c_str());
......@@ -320,11 +320,11 @@ void SIPVoIPLink::sendRegister (Account *a)
if (pjsip_regc_register (regc, PJ_TRUE, &tdata) != PJ_SUCCESS)
throw VoipLinkException("Unable to initialize transaction data for account registration");
if (pjsip_regc_set_transport (regc, initTransportSelector (account->transport, _pool)) != PJ_SUCCESS)
if (pjsip_regc_set_transport (regc, initTransportSelector (account->transport_, _pool)) != PJ_SUCCESS)
throw VoipLinkException("Unable to set transport");
// decrease transport's ref count, counter incrementation is managed when acquiring transport
pjsip_transport_dec_ref(account->transport);
pjsip_transport_dec_ref(account->transport_);
// pjsip_regc_send increment the transport ref count by one,
if (pjsip_regc_send(regc, tdata) != PJ_SUCCESS)
......@@ -333,7 +333,7 @@ void SIPVoIPLink::sendRegister (Account *a)
// Decrease transport's ref count, since coresponding reference counter decrementation
// is performed in pjsip_regc_destroy. This function is never called in SFLphone as the
// regc data structure is permanently associated to the account at first registration.
pjsip_transport_dec_ref (account->transport);
pjsip_transport_dec_ref (account->transport_);
account->setRegistrationInfo (regc);
}
......@@ -753,7 +753,7 @@ SIPVoIPLink::SIPStartCall(SIPCall *call)
std::string toUri(call->getPeerNumber()); // expecting a fully well formed sip uri
std::string address, port;
findLocalAddressFromUri(toUri, account->transport, address, port);
findLocalAddressFromUri(toUri, account->transport_, address, port);
std::string from(account->getFromUri());
pj_str_t pjFrom = pj_str((char*)from.c_str());
......@@ -782,7 +782,7 @@ SIPVoIPLink::SIPStartCall(SIPCall *call)
if (pjsip_inv_invite(call->inv, &tdata) != PJ_SUCCESS)
return false;
pjsip_tpselector *tp = initTransportSelector(account->transport, call->inv->pool);
pjsip_tpselector *tp = initTransportSelector(account->transport_, call->inv->pool);
if (pjsip_dlg_set_transport (dialog, tp) != PJ_SUCCESS)
return false;
......@@ -882,7 +882,7 @@ bool SIPVoIPLink::SIPNewIpToIpCall (const std::string& id, const std::string& to
shutdownSipTransport(account);
createTlsTransport(account, remoteAddr);
if (!account->transport) {
if (!account->transport_) {
delete call;
return false;
}
......@@ -951,9 +951,9 @@ void SIPVoIPLink::createDefaultSipUdpTransport()
{
SIPAccount *account = dynamic_cast<SIPAccount *>(Manager::instance().getAccount(IP2IP_PROFILE));
createUdpTransport(account);
assert(account->transport);
assert(account->transport_);
_localUDPTransport = account->transport;
_localUDPTransport = account->transport_;
}
void SIPVoIPLink::createTlsListener (SIPAccount *account, pjsip_tpfactory **listener)
......@@ -987,7 +987,7 @@ void SIPVoIPLink::createTlsTransport (SIPAccount *account, std::string remoteAdd
if (localTlsListener == NULL)
createTlsListener(account, &localTlsListener);
pjsip_endpt_acquire_transport(_endpt, PJSIP_TRANSPORT_TLS, &rem_addr, sizeof (rem_addr), NULL, &account->transport);
pjsip_endpt_acquire_transport(_endpt, PJSIP_TRANSPORT_TLS, &rem_addr, sizeof (rem_addr), NULL, &account->transport_);
}
......@@ -1007,13 +1007,13 @@ void SIPVoIPLink::createSipTransport (SIPAccount *account)
else
createUdpTransport(account);
if (!account->transport) {
if (!account->transport_) {
// Could not create new transport, this transport may already exists
account->transport = transportMap_[account->getLocalPort()];
if (account->transport) {
pjsip_transport_add_ref(account->transport);
} else {
account->transport = _localUDPTransport;
account->transport_ = transportMap_[account->getLocalPort()];
if (account->transport_)
pjsip_transport_add_ref(account->transport_);
else {
account->transport_ = _localUDPTransport;
account->setLocalPort(_localUDPTransport->local_name.port);
}
}
......@@ -1054,11 +1054,11 @@ void SIPVoIPLink::createUdpTransport (SIPAccount *account)
listeningPort
};
pjsip_udp_transport_start(_endpt, &bound_addr, &a_name, 1, &account->transport);
pjsip_udp_transport_start(_endpt, &bound_addr, &a_name, 1, &account->transport_);
pjsip_tpmgr_dump_transports(pjsip_endpt_get_tpmgr(_endpt)); // dump debug information to stdout
if (account->transport)
transportMap_[account->getLocalPort()] = account->transport;
if (account->transport_)
transportMap_[account->getLocalPort()] = account->transport_;
}
pjsip_tpselector *SIPVoIPLink::initTransportSelector (pjsip_transport *transport, pj_pool_t *tp_pool)
......@@ -1113,7 +1113,7 @@ void SIPVoIPLink::createStunTransport (SIPAccount *account)
account->setPublishedAddress (listeningAddress);
account->setPublishedPort (a_name.port);
pjsip_udp_transport_attach2 (_endpt, PJSIP_TRANSPORT_UDP, sock, &a_name, 1, &account->transport);
pjsip_udp_transport_attach2 (_endpt, PJSIP_TRANSPORT_UDP, sock, &a_name, 1, &account->transport_);
pjsip_tpmgr_dump_transports (pjsip_endpt_get_tpmgr (_endpt));
}
......@@ -1121,9 +1121,9 @@ void SIPVoIPLink::createStunTransport (SIPAccount *account)
void SIPVoIPLink::shutdownSipTransport (SIPAccount *account)
{
if (account->transport) {
pjsip_transport_dec_ref(account->transport);
account->transport = NULL;
if (account->transport_) {
pjsip_transport_dec_ref(account->transport_);
account->transport_ = NULL;
}
}
......@@ -1508,8 +1508,8 @@ void transaction_state_changed_cb (pjsip_inv_session *inv UNUSED, pjsip_transact
Manager::instance().incomingMessage(call->getCallId(), from, module->findTextMessage (formatedMessage));
} catch (sfl::InstantMessageException &e) {
_error ("SipVoipLink: %s", e.what());
} catch (const sfl::InstantMessageException &except) {
_error ("SipVoipLink: %s", except.what());
}
}
......@@ -1673,7 +1673,7 @@ static pj_bool_t transaction_request_cb (pjsip_rx_data *rdata)
? account->getPublishedAddress()
: addrToUse;
pjsip_tpselector *tp = SIPVoIPLink::instance()->initTransportSelector (account->transport, call->getMemoryPool());
pjsip_tpselector *tp = SIPVoIPLink::instance()->initTransportSelector (account->transport_, call->getMemoryPool());
if (addrToUse == "0.0.0.0")
addrToUse = loadSIPLocalIP();
......
......@@ -24,8 +24,6 @@ test_SOURCES = \
configurationtest.cpp \
historytest.h \
historytest.cpp \
hookmanagertest.h \
hookmanagertest.cpp \
numbercleanertest.h \
numbercleanertest.cpp \
pluginmanagertest.h \
......@@ -52,7 +50,6 @@ test_SOURCES = \
echocanceltest.h \
gaincontroltest.h \
historytest.h \
hookmanagertest.h \
instantmessagingtest.h \
mainbuffertest.h \
numbercleanertest.h \
......
/*
* Copyright (C) 2004, 2005, 2006, 2008, 2009, 2010 Savoir-Faire Linux Inc.
* Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* Additional permission under GNU GPL version 3 section 7:
*
* If you modify this program, or any covered work, by linking or
* combining it with the OpenSSL project's OpenSSL library (or a
* modified version of that library), containing parts covered by the
* terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
* grants you additional permission to convey the resulting work.
* Corresponding Source for a non-source form of such a combination
* shall include the source code for the parts of OpenSSL used as well
* as that of the covered work.
*/
#include <stdio.h>
#include <sstream>
#include <dlfcn.h>
#include "global.h"
#include "hookmanagertest.h"
using std::cout;
using std::endl;
void HookManagerTest::setUp()
{
// Instanciate the hook manager singleton
urlhook = new UrlHook ();
}
void HookManagerTest::testAddAction ()
{
_debug ("-------------------- HookManagerTest::testAddAction --------------------\n");
// CPPUNIT_ASSERT (urlhook->addAction ("http://www.google.ca/?arg1=arg1&arg2=nvls&x=2&y=45&z=1", "x-www-browser") == 0);
}
void HookManagerTest::testLargeUrl ()
{
_debug ("-------------------- HookManagerTest::testLargeUrl --------------------\n");
std::string url;
std::cout << url.max_size() << std::endl;
}
void HookManagerTest::tearDown()
{
// Delete the hook manager object
delete urlhook;
urlhook=0;
}
/*
* Copyright (C) 2004, 2005, 2006, 2008, 2009, 2010 Savoir-Faire Linux Inc.
* Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* Additional permission under GNU GPL version 3 section 7:
*
* If you modify this program, or any covered work, by linking or
* combining it with the OpenSSL project's OpenSSL library (or a
* modified version of that library), containing parts covered by the
* terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
* grants you additional permission to convey the resulting work.
* Corresponding Source for a non-source form of such a combination
* shall include the source code for the parts of OpenSSL used as well
* as that of the covered work.
*/
/*
* @file hookmanagerTest.cpp
* @brief Regroups unitary tests related to the hook manager.
*/
#ifndef _HOOKMANAGER_TEST_
#define _HOOKMANAGER_TEST_
// Cppunit import
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/TestCaller.h>
#include <cppunit/TestCase.h>
#include <cppunit/TestSuite.h>
#include <assert.h>
// Application import
#include "hooks/urlhook.h"
class HookManagerTest : public CppUnit::TestFixture {
/**
* Use cppunit library macros to add unit test the factory
*/
CPPUNIT_TEST_SUITE (HookManagerTest);
CPPUNIT_TEST (testAddAction);
CPPUNIT_TEST (testLargeUrl);
CPPUNIT_TEST_SUITE_END ();
public:
/*
* Code factoring - Common resources can be initialized here.
* This method is called by unitcpp before each test
*/
void setUp();
void testAddAction ();
void testLargeUrl ();
/*
* Code factoring - Common resources can be released here.
* This method is called by unitcpp after each test
*/
void tearDown ();
private:
UrlHook *urlhook;
};
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(HookManagerTest, "HookManagerTest");
CPPUNIT_TEST_SUITE_REGISTRATION( HookManagerTest );
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment