mirror of
https://git.jami.net/savoirfairelinux/jami-daemon.git
synced 2025-08-12 22:09:25 +08:00
test: refactoring test files
* moved unit-tests into the dedicated directory unitTest * removed no-more-used files * common code style for test and usage of test_runner.h everywhere * imported video_input changes by Olivier Grégoire (GSoC-2017) Change-Id: Ifbb5585caaa2618c4ab943681814c9afbfc76311 Reviewed-by: Olivier Soldano <olivier.soldano@savoirfairelinux.com>
This commit is contained in:
@ -6,7 +6,7 @@ SOURCES=
|
|||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
SUBDIRS = src ringtones man $(TESTS_DIR) doc bin test
|
SUBDIRS = src ringtones man doc bin test
|
||||||
|
|
||||||
EXTRA_DIST = m4/libtool.m4 \
|
EXTRA_DIST = m4/libtool.m4 \
|
||||||
m4/lt~obsolete.m4 \
|
m4/lt~obsolete.m4 \
|
||||||
|
@ -14,7 +14,7 @@ AC_CONFIG_MACRO_DIR([m4])
|
|||||||
AC_CANONICAL_BUILD
|
AC_CANONICAL_BUILD
|
||||||
AC_CANONICAL_HOST
|
AC_CANONICAL_HOST
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([-Wno-portability])
|
AM_INIT_AUTOMAKE([-Wno-portability subdir-objects])
|
||||||
m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) # required by automake 1.12
|
m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) # required by automake 1.12
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
|
|
||||||
@ -725,9 +725,8 @@ AC_CONFIG_FILES([Makefile \
|
|||||||
ringtones/Makefile \
|
ringtones/Makefile \
|
||||||
test/Makefile\
|
test/Makefile\
|
||||||
test/sip/Makefile \
|
test/sip/Makefile \
|
||||||
test/base64/Makefile \
|
test/unitTest/Makefile \
|
||||||
test/media/Makefile \
|
|
||||||
test/media/video/Makefile \
|
|
||||||
man/Makefile \
|
man/Makefile \
|
||||||
doc/Makefile \
|
doc/Makefile \
|
||||||
doc/doxygen/Makefile])
|
doc/doxygen/Makefile])
|
||||||
|
5
test/.gitignore
vendored
5
test/.gitignore
vendored
@ -1,7 +1,12 @@
|
|||||||
*.o
|
*.o
|
||||||
|
|
||||||
|
# test binaries
|
||||||
|
ut_*
|
||||||
|
test_*
|
||||||
|
|
||||||
# test result files
|
# test result files
|
||||||
*.log
|
*.log
|
||||||
*.trs
|
*.trs
|
||||||
|
|
||||||
.dirstamp
|
.dirstamp
|
||||||
|
dring-sample.yml.bak
|
@ -1,3 +1,2 @@
|
|||||||
SUBDIRS=sip
|
SUBDIRS = sip
|
||||||
SUBDIRS+=base64
|
SUBDIRS += unitTest
|
||||||
SUBDIRS+=media
|
|
||||||
|
10
test/base64/.gitignore
vendored
10
test/base64/.gitignore
vendored
@ -1,10 +0,0 @@
|
|||||||
*.o
|
|
||||||
|
|
||||||
# test result files
|
|
||||||
*.log
|
|
||||||
*.trs
|
|
||||||
|
|
||||||
#test binaries
|
|
||||||
sip
|
|
||||||
|
|
||||||
base64
|
|
@ -1,41 +0,0 @@
|
|||||||
include $(top_srcdir)/globals.mk
|
|
||||||
|
|
||||||
AM_CXXFLAGS=-I$(top_srcdir)/src/media/video -I$(top_srcdir)/src
|
|
||||||
check_PROGRAMS=
|
|
||||||
|
|
||||||
#
|
|
||||||
# base64 testsuite
|
|
||||||
#
|
|
||||||
check_PROGRAMS+= base64
|
|
||||||
base64_SOURCES= base64.cpp
|
|
||||||
base64_LDADD= $(CPPUNIT_LIBS) $(top_builddir)/src/libring.la
|
|
||||||
|
|
||||||
#
|
|
||||||
# video_input testsuite
|
|
||||||
#
|
|
||||||
#check_PROGRAMS+= test_video_input
|
|
||||||
#test_video_input_SOURCES= media/video/test_video_input.cpp media/video/test_video_input.h
|
|
||||||
#test_video_input_LDADD= $(top_builddir)/src/libring.la $(top_builddir)/src/media/video/libvideo.la $(YAML_LIBS)
|
|
||||||
|
|
||||||
##################
|
|
||||||
# EXCLUDED_TEST SUITES #
|
|
||||||
##################
|
|
||||||
# test_video_rtp
|
|
||||||
# reason: compilation fails
|
|
||||||
# test_video_rtp.cpp:38:19: error: no matching function for call to ‘ring::video::VideoRtpSession::start()’
|
|
||||||
#
|
|
||||||
# test_video_rtp_SOURCES= media/video/test_video_rtp.cpp
|
|
||||||
# test_video_rtp_LDADD= $(top_builddir)/src/libring.la $(top_builddir)/src/media/video/libvideo.la $(YAML_LIBS)
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# test_shm (compilation fails, include file not in repository?)
|
|
||||||
# reason: compilation fails, include file not in repository:
|
|
||||||
# test_video_input.cpp.cpp:21:22: fatal error: shm_sink.h: No such file or directory
|
|
||||||
#
|
|
||||||
# if HAVE_LINUX
|
|
||||||
# test_shm_SOURCES= media/video/test_shm.cpp media/video/shm_src.cpp media/video/shm_src.h
|
|
||||||
# test_shm_LDADD= $(top_builddir)/src/libring.la $(top_builddir)/src/media/video/libvideo.la $(YAML_LIBS) -lrt
|
|
||||||
# test_shm_CXXFLAGS=$(AM_CXXFLAGS)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
TESTS= $(check_PROGRAMS)
|
|
@ -1,53 +0,0 @@
|
|||||||
#include <cppunit/TestAssert.h>
|
|
||||||
#include <cppunit/TestFixture.h>
|
|
||||||
#include <cppunit/extensions/HelperMacros.h>
|
|
||||||
|
|
||||||
#include "test_runner.hpp"
|
|
||||||
#include "base64.h"
|
|
||||||
|
|
||||||
namespace ring_test {
|
|
||||||
class Base64Test : public CppUnit::TestFixture {
|
|
||||||
public:
|
|
||||||
static std::string name() { return "base64"; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
void encodingTest();
|
|
||||||
void decodingTestSuccess();
|
|
||||||
void decodingTestFail();
|
|
||||||
|
|
||||||
CPPUNIT_TEST_SUITE(Base64Test);
|
|
||||||
CPPUNIT_TEST(encodingTest);
|
|
||||||
CPPUNIT_TEST(decodingTestSuccess);
|
|
||||||
CPPUNIT_TEST(decodingTestFail);
|
|
||||||
CPPUNIT_TEST_SUITE_END();
|
|
||||||
|
|
||||||
const std::vector<uint8_t> test_bytes = { 23, 45, 67, 87, 89, 34, 2, 45, 9, 10 };
|
|
||||||
const std::string test_base64 = "Fy1DV1kiAi0JCg==";
|
|
||||||
const std::string test_invalid_base64 = "ERSAÄÖöädt4-++asd==";
|
|
||||||
};
|
|
||||||
|
|
||||||
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Base64Test, Base64Test::name());
|
|
||||||
|
|
||||||
void Base64Test::encodingTest()
|
|
||||||
{
|
|
||||||
const std::string output = ring::base64::encode(test_bytes);
|
|
||||||
CPPUNIT_ASSERT(test_base64.compare(output) == 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Base64Test::decodingTestSuccess()
|
|
||||||
{
|
|
||||||
const std::vector<uint8_t> output = ring::base64::decode(test_base64);
|
|
||||||
CPPUNIT_ASSERT(std::equal(test_bytes.begin(), test_bytes.end(), output.begin()));
|
|
||||||
}
|
|
||||||
|
|
||||||
void Base64Test::decodingTestFail()
|
|
||||||
{
|
|
||||||
// Currently, the input is not validated, i.e. the function most not throw an
|
|
||||||
// exception if decoding fails to make sure calling code not expecting any
|
|
||||||
// is no broken. (Some validation should be implemented sometimes later, though.
|
|
||||||
ring::base64::decode(test_invalid_base64);
|
|
||||||
CPPUNIT_ASSERT(true);
|
|
||||||
}
|
|
||||||
} // namespace tests
|
|
||||||
|
|
||||||
RING_TEST_RUNNER(ring_test::Base64Test::name())
|
|
@ -1,3 +0,0 @@
|
|||||||
include $(top_srcdir)/globals.mk
|
|
||||||
|
|
||||||
SUBDIRS= video
|
|
1
test/media/video/.gitignore
vendored
1
test/media/video/.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
test_video_input
|
|
@ -1,11 +0,0 @@
|
|||||||
include $(top_srcdir)/globals.mk
|
|
||||||
|
|
||||||
check_PROGRAMS=
|
|
||||||
#
|
|
||||||
# video_input testsuite
|
|
||||||
#
|
|
||||||
check_PROGRAMS+= test_video_input
|
|
||||||
test_video_input_SOURCES= test_video_input.cpp test_video_input.h
|
|
||||||
test_video_input_LDADD= $(top_builddir)/src/libring.la
|
|
||||||
|
|
||||||
TESTS= $(check_PROGRAMS)
|
|
@ -1 +0,0 @@
|
|||||||
c++ shm_src.cpp shmclient.cpp -o shmclient `pkg-config --cflags --libs clutter-1.0` -lrt -pthread -O2
|
|
@ -1,33 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2011-2017 Savoir-faire Linux Inc.
|
|
||||||
*
|
|
||||||
* Author: Tristan Matthews <tristan.matthews@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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _VIDEO_INPUT_TEST_
|
|
||||||
#define _VIDEO_INPUT_TEST_
|
|
||||||
|
|
||||||
namespace ring { namespace video { namespace test {
|
|
||||||
|
|
||||||
class VideoInputTest {
|
|
||||||
public:
|
|
||||||
void testInput();
|
|
||||||
};
|
|
||||||
|
|
||||||
}}} // namespace ring::video::test
|
|
||||||
|
|
||||||
#endif // _VIDEO_INPUT_TEST_
|
|
@ -1,8 +1,10 @@
|
|||||||
# Rules for the test code (use `make check` to execute)
|
# Rules for the test code (use `make check` to execute)
|
||||||
include $(top_srcdir)/globals.mk
|
include $(top_srcdir)/globals.mk
|
||||||
TESTS = sip
|
|
||||||
check_PROGRAMS = $(TESTS)
|
AM_CXXFLAGS = -I$(top_srcdir)/src
|
||||||
sip_LDADD = $(top_builddir)/src/libring.la
|
AM_LDFLAGS = $(CPPUNIT_LIBS) $(top_builddir)/src/libring.la
|
||||||
sip_SOURCES = sip.cpp test_SIP.h test_SIP.cpp ../../manager.h
|
|
||||||
sip_CXXFLAGS = $(CPPUNIT_CFLAGS)
|
check_PROGRAMS = test_sip
|
||||||
sip_LDFLAGS = $(CPPUNIT_LIBS) -ldl
|
test_sip_SOURCES = sip.cpp test_SIP.h test_SIP.cpp
|
||||||
|
|
||||||
|
TESTS = $(check_PROGRAMS)
|
||||||
|
22
test/unitTest/Makefile.am
Normal file
22
test/unitTest/Makefile.am
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# Rules for the test code (use `make check` to execute)
|
||||||
|
include $(top_srcdir)/globals.mk
|
||||||
|
|
||||||
|
AM_CXXFLAGS = -I$(top_srcdir)/src
|
||||||
|
AM_LDFLAGS = $(CPPUNIT_LIBS) $(top_builddir)/src/libring.la
|
||||||
|
check_PROGRAMS =
|
||||||
|
|
||||||
|
####### Unit Test ########
|
||||||
|
|
||||||
|
#
|
||||||
|
# base64
|
||||||
|
#
|
||||||
|
check_PROGRAMS += ut_base64
|
||||||
|
ut_base64_SOURCES = base64/base64.cpp
|
||||||
|
|
||||||
|
#
|
||||||
|
# video_input testsuite
|
||||||
|
#
|
||||||
|
check_PROGRAMS += ut_video_input
|
||||||
|
ut_video_input_SOURCES = media/video/testVideo_input.cpp
|
||||||
|
|
||||||
|
TESTS = $(check_PROGRAMS)
|
79
test/unitTest/base64/base64.cpp
Normal file
79
test/unitTest/base64/base64.cpp
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2011-2017 Savoir-faire Linux Inc.
|
||||||
|
*
|
||||||
|
* Author: florian Wiesweg <florian.wiesweg@campus.tu-berlin.de>
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <cppunit/TestAssert.h>
|
||||||
|
#include <cppunit/TestFixture.h>
|
||||||
|
#include <cppunit/extensions/HelperMacros.h>
|
||||||
|
|
||||||
|
#include "test_runner.h"
|
||||||
|
|
||||||
|
#include "base64.h"
|
||||||
|
|
||||||
|
namespace ring { namespace test {
|
||||||
|
|
||||||
|
class Base64Test : public CppUnit::TestFixture {
|
||||||
|
public:
|
||||||
|
static std::string name() { return "base64"; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
void encodingTest();
|
||||||
|
void decodingTestSuccess();
|
||||||
|
void decodingTestFail();
|
||||||
|
|
||||||
|
CPPUNIT_TEST_SUITE(Base64Test);
|
||||||
|
CPPUNIT_TEST(encodingTest);
|
||||||
|
CPPUNIT_TEST(decodingTestSuccess);
|
||||||
|
CPPUNIT_TEST(decodingTestFail);
|
||||||
|
CPPUNIT_TEST_SUITE_END();
|
||||||
|
|
||||||
|
const std::vector<uint8_t> test_bytes = { 23, 45, 67, 87, 89, 34, 2, 45, 9, 10 };
|
||||||
|
const std::string test_base64 = "Fy1DV1kiAi0JCg==";
|
||||||
|
const std::string test_invalid_base64 = "ERSAÄÖöädt4-++asd==";
|
||||||
|
};
|
||||||
|
|
||||||
|
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Base64Test, Base64Test::name());
|
||||||
|
|
||||||
|
void
|
||||||
|
Base64Test::encodingTest()
|
||||||
|
{
|
||||||
|
const std::string output = ring::base64::encode(test_bytes);
|
||||||
|
CPPUNIT_ASSERT(test_base64.compare(output) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Base64Test::decodingTestSuccess()
|
||||||
|
{
|
||||||
|
const std::vector<uint8_t> output = ring::base64::decode(test_base64);
|
||||||
|
CPPUNIT_ASSERT(std::equal(test_bytes.begin(), test_bytes.end(), output.begin()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Base64Test::decodingTestFail()
|
||||||
|
{
|
||||||
|
// Currently, the input is not validated, i.e. the function most not throw an
|
||||||
|
// exception if decoding fails to make sure calling code not expecting any
|
||||||
|
// is no broken. (Some validation should be implemented sometimes later, though.
|
||||||
|
ring::base64::decode(test_invalid_base64);
|
||||||
|
CPPUNIT_ASSERT(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}} // namespace ring::test
|
||||||
|
|
||||||
|
RING_TEST_RUNNER(ring::test::Base64Test::name());
|
@ -2,6 +2,7 @@
|
|||||||
* Copyright (C) 2011-2017 Savoir-faire Linux Inc.
|
* Copyright (C) 2011-2017 Savoir-faire Linux Inc.
|
||||||
*
|
*
|
||||||
* Author: Tristan Matthews <tristan.matthews@savoirfairelinux.com>
|
* Author: Tristan Matthews <tristan.matthews@savoirfairelinux.com>
|
||||||
|
* Author: Olivier Gregoire <olivier.gregoire@savoirfairelinux.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -18,30 +19,53 @@
|
|||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "test_video_input.h"
|
#include <cppunit/TestAssert.h>
|
||||||
|
#include <cppunit/TestFixture.h>
|
||||||
|
#include <cppunit/extensions/HelperMacros.h>
|
||||||
|
|
||||||
|
#include "test_runner.h"
|
||||||
|
|
||||||
#include "media/video/video_input.h"
|
#include "media/video/video_input.h"
|
||||||
#include "media_const.h"
|
#include "media_const.h"
|
||||||
|
#include "dring.h"
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
namespace ring { namespace video { namespace test {
|
namespace ring { namespace test {
|
||||||
|
|
||||||
void VideoInputTest::testInput()
|
class VideoInputTest : public CppUnit::TestFixture {
|
||||||
|
public:
|
||||||
|
static std::string name() { return "video_input"; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
void testInput();
|
||||||
|
void init_daemon();
|
||||||
|
|
||||||
|
CPPUNIT_TEST_SUITE(VideoInputTest);
|
||||||
|
CPPUNIT_TEST(init_daemon);
|
||||||
|
CPPUNIT_TEST(testInput);
|
||||||
|
CPPUNIT_TEST_SUITE_END();
|
||||||
|
};
|
||||||
|
|
||||||
|
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(VideoInputTest, VideoInputTest::name());
|
||||||
|
|
||||||
|
void
|
||||||
|
VideoInputTest::init_daemon()
|
||||||
|
{
|
||||||
|
DRing::init(DRing::InitFlag(DRing::DRING_FLAG_DEBUG | DRing::DRING_FLAG_CONSOLE_LOG));
|
||||||
|
DRing::start("dring-sample.yml");
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
VideoInputTest::testInput()
|
||||||
{
|
{
|
||||||
static const std::string sep = DRing::Media::VideoProtocolPrefix::SEPARATOR;
|
static const std::string sep = DRing::Media::VideoProtocolPrefix::SEPARATOR;
|
||||||
std::string resource = DRing::Media::VideoProtocolPrefix::DISPLAY + sep + std::string(getenv("DISPLAY") ? : ":0.0");
|
std::string resource = DRing::Media::VideoProtocolPrefix::DISPLAY + sep + std::string(getenv("DISPLAY") ? : ":0.0");
|
||||||
VideoInput video;
|
video::VideoInput video;
|
||||||
video.switchInput(resource);
|
video.switchInput(resource);
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(10));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}}} // namespace ring::video::test
|
}} // namespace ring::test
|
||||||
|
|
||||||
int main ()
|
RING_TEST_RUNNER(ring::test::VideoInputTest::name());
|
||||||
{
|
|
||||||
for (int i = 0; i < 20; ++i) {
|
|
||||||
ring::video::test::VideoInputTest test;
|
|
||||||
test.testInput();
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
Reference in New Issue
Block a user