mirror of
https://git.jami.net/savoirfairelinux/jami-daemon.git
synced 2025-08-12 22:09:25 +08:00
119 lines
3.1 KiB
C++
119 lines
3.1 KiB
C++
/*
|
|
* Copyright (C) 2004-2022 Savoir-faire Linux Inc.
|
|
* Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
|
|
* Author: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
|
|
* Author: Olivier Gregoire <olivier.gregoire@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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*
|
|
*/
|
|
#pragma once
|
|
|
|
// Cppunit import
|
|
#include <cppunit/extensions/HelperMacros.h>
|
|
#include <cppunit/TestCaller.h>
|
|
#include <cppunit/TestCase.h>
|
|
#include <cppunit/TestSuite.h>
|
|
|
|
// Application import
|
|
#include "manager.h"
|
|
|
|
#include "sip/sipvoiplink.h"
|
|
#include "sip/sip_utils.h"
|
|
|
|
#include <atomic>
|
|
|
|
#include <thread>
|
|
class RAIIThread
|
|
{
|
|
public:
|
|
RAIIThread() = default;
|
|
|
|
RAIIThread(std::thread&& t) : thread_ {std::move(t)} {};
|
|
|
|
~RAIIThread() {
|
|
join();
|
|
}
|
|
|
|
void join() {
|
|
if (thread_.joinable())
|
|
thread_.join();
|
|
}
|
|
|
|
RAIIThread(RAIIThread&&) = default;
|
|
RAIIThread& operator=(RAIIThread&&) = default;
|
|
|
|
private:
|
|
std::thread thread_;
|
|
};
|
|
|
|
/*
|
|
* @file Test-sip.h
|
|
* @brief Regroups unitary tests related to the SIP module
|
|
*/
|
|
|
|
class test_SIP : public CppUnit::TestFixture
|
|
{
|
|
public:
|
|
//test_SIP() : CppUnit::TestCase("SIP module Tests") {}
|
|
|
|
/*
|
|
* Code factoring - Common resources can be initialized here.
|
|
* This method is called by unitcpp before each test
|
|
*/
|
|
void setUp();
|
|
|
|
/*
|
|
* Code factoring - Common resources can be released here.
|
|
* This method is called by unitcpp after each test
|
|
*/
|
|
void tearDown();
|
|
|
|
private:
|
|
// Create a simple IP call and test his state
|
|
void testSimpleOutgoingIpCall(void);
|
|
|
|
// Receive a new incoming call and test his state
|
|
void testSimpleIncomingIpCall(void);
|
|
|
|
// Test with multiple outgoing calls
|
|
void testMultipleOutgoingIpCall(void);
|
|
|
|
// TODO this test bug, the new calls are sometimes
|
|
// put in hold
|
|
void testMultipleIncomingIpCall(void);
|
|
|
|
// Test the hold state
|
|
void testHoldIpCall(void);
|
|
|
|
void testSIPURI(void);
|
|
|
|
|
|
/**
|
|
* Use cppunit library macros to add unit test to the factory
|
|
*/
|
|
CPPUNIT_TEST_SUITE(test_SIP);
|
|
CPPUNIT_TEST ( testSIPURI );
|
|
/*CPPUNIT_TEST ( testHoldIpCall );
|
|
CPPUNIT_TEST ( testSimpleOutgoingIpCall );
|
|
CPPUNIT_TEST ( testMultipleOutgoingIpCall );
|
|
CPPUNIT_TEST ( testSimpleIncomingIpCall );*/
|
|
//CPPUNIT_TEST ( testMultipleIncomingIpCall );
|
|
CPPUNIT_TEST_SUITE_END();
|
|
|
|
RAIIThread eventLoop_;
|
|
std::atomic_bool running_;
|
|
};
|