diff options
| -rw-r--r-- | configure.ac | 10 | ||||
| -rw-r--r-- | plugin/Makefile.mingw32.in | 1 | ||||
| -rw-r--r-- | src/memchecker.cc | 137 | ||||
| -rw-r--r-- | src/memchecker.h | 52 | ||||
| -rw-r--r-- | test/Makefile.am | 120 | ||||
| -rw-r--r-- | test/atomictest.cc | 94 | ||||
| -rw-r--r-- | test/audiocacheeventhandlertest.cc | 18 | ||||
| -rw-r--r-- | test/audiocachefiletest.cc | 50 | ||||
| -rw-r--r-- | test/audiocacheidmanagertest.cc | 50 | ||||
| -rw-r--r-- | test/audiocachetest.cc | 32 | ||||
| -rw-r--r-- | test/bytesizeparsertest.cc | 61 | ||||
| -rw-r--r-- | test/configtest.cc | 260 | ||||
| -rw-r--r-- | test/dgunit.h | 1 | ||||
| -rw-r--r-- | test/drumkitcreatortest.cc | 20 | ||||
| -rw-r--r-- | test/drumkitparsertest.cc | 4 | ||||
| -rw-r--r-- | test/enginetest.cc | 18 | ||||
| -rw-r--r-- | test/imagecachetest.cc | 44 | ||||
| -rw-r--r-- | test/instrumentparsertest.cc | 71 | ||||
| -rw-r--r-- | test/lv2.cc | 88 | ||||
| -rw-r--r-- | test/memcheckertest.cc | 121 | ||||
| -rw-r--r-- | test/notifiertest.cc | 28 | ||||
| -rw-r--r-- | test/paintertest.cc | 18 | ||||
| -rw-r--r-- | test/randomtest.cc | 40 | ||||
| -rw-r--r-- | test/resampler.cc | 141 | ||||
| -rw-r--r-- | test/resource_test.cc | 32 | ||||
| -rw-r--r-- | test/scopedfile.cc | 3 | ||||
| -rw-r--r-- | test/semaphoretest.cc | 25 | ||||
| -rw-r--r-- | test/syncedsettings.cc | 329 | ||||
| -rw-r--r-- | test/test.cc | 53 | 
29 files changed, 755 insertions, 1166 deletions
| diff --git a/configure.ac b/configure.ac index f60493c..456cb74 100644 --- a/configure.ac +++ b/configure.ac @@ -207,16 +207,6 @@ dnl ======================  AC_ARG_WITH([test],  	AS_HELP_STRING([--with-test], [Build unit tests])) -AS_IF([test x$with_test == xyes], -  [ -    AC_MSG_WARN([*** Building unittests!]) -    PKG_CHECK_MODULES([CPPUNIT], [ cppunit >= 1.9.6 ], [], -                      [ -                          AC_MSG_ERROR([$CPPUNIT_PKG_ERRORS]) -                      ]) -  ] -) -  AM_CONDITIONAL([ENABLE_TESTS], [test "x$with_test" = "xyes"])  dnl ====================== diff --git a/plugin/Makefile.mingw32.in b/plugin/Makefile.mingw32.in index d224bcf..3330e35 100644 --- a/plugin/Makefile.mingw32.in +++ b/plugin/Makefile.mingw32.in @@ -29,7 +29,6 @@ DG_SRC = \  	@top_srcdir@/src/instrument.cc \  	@top_srcdir@/src/instrumentparser.cc \  	@top_srcdir@/src/latencyfilter.cc \ -	@top_srcdir@/src/memchecker.cc \  	@top_srcdir@/src/midimapparser.cc \  	@top_srcdir@/src/midimapper.cc \  	@top_srcdir@/src/path.cc \ diff --git a/src/memchecker.cc b/src/memchecker.cc deleted file mode 100644 index ec0c9df..0000000 --- a/src/memchecker.cc +++ /dev/null @@ -1,137 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            memchecker.cc - * - *  Sat Jan 16 18:27:52 CET 2016 - *  Copyright 2016 André Nusser - *  andre.nusser@googlemail.com - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU Lesser General Public License as published by - *  the Free Software Foundation; either version 3 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo 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 Lesser General Public License for more details. - * - *  You should have received a copy of the GNU Lesser General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#include "memchecker.h" - -#include "platform.h" - -#if DG_PLATFORM == DG_PLATFORM_LINUX -#include <sys/sysinfo.h> -#elif DG_PLATFORM == DG_PLATFORM_OSX -#include <mach/vm_statistics.h> -#include <mach/mach_types.h> -#include <mach/mach_init.h> -#include <mach/mach_host.h> -#elif DG_PLATFORM == DG_PLATFORM_FREEBSD -#include <sys/types.h> -#include <sys/sysctl.h> -#include <sys/vmmeter.h> -#endif - -#include <sndfile.h> -#include <hugin.hpp> - -bool MemChecker::enoughFreeMemory(const DrumKit& drumkit) const -{ -	uint64_t free_memory = calcFreeMemory(); -	uint64_t needed_memory = calcNeededMemory(drumkit); - -	return free_memory >= needed_memory; -} - -uint64_t MemChecker::calcFreeMemory() const -{ -	uint64_t free_memory = 0; - -	// Platform specific calculation of the amount of free memory. -#if DG_PLATFORM == DG_PLATFORM_LINUX -	struct sysinfo sys_info; -	sysinfo(&sys_info); -	free_memory = (uint64_t)sys_info.freeram * (uint64_t)sys_info.mem_unit; -#elif DG_PLATFORM == DG_PLATFORM_WINDOWS -	MEMORYSTATUSEX status; -	status.dwLength = sizeof(status); -	GlobalMemoryStatusEx(&status); -	free_memory = status.ullAvailPhys; -#elif DG_PLATFORM == DG_PLATFORM_OSX -	vm_size_t page_size; -	vm_statistics64_data_t vm_stats; -	mach_port_t mach_port = mach_host_self(); -	mach_msg_type_number_t count = sizeof(vm_stats) / sizeof(natural_t); - -	if (KERN_SUCCESS == host_page_size(mach_port, &page_size) && -	    KERN_SUCCESS == host_statistics64(mach_port, HOST_VM_INFO, (host_info64_t)&vm_stats, &count)) -	{ -		free_memory = (uint64_t)vm_stats.free_count * (uint64_t)page_size; -	} -#elif DG_PLATFORM == DG_PLATFORM_FREEBSD -	u_int page_size; -	struct vmtotal vmt; -	size_t vmt_size, uint_size; - -	vmt_size = sizeof(vmt); -	uint_size = sizeof(page_size); - -	sysctlbyname("vm.vmtotal", &vmt, &vmt_size, NULL, 0); -	sysctlbyname("vm.stats.vm.v_page_size", &page_size, &uint_size, NULL, 0); - -	free_memory = vmt.t_free * (u_int64_t)page_size; -#elif DG_PLATFORM == DG_PLATFORM_UNIX -	// TODO -#endif - -	DEBUG(memchecker, "Calculated %" PRIu64 " free memory.\n", free_memory); - -	return free_memory; -} - -uint64_t MemChecker::calcNeededMemory(const DrumKit& drumkit) const -{ -	uint64_t needed_memory = 0; - -	// Calculate memory usage of all instruments of drumkit. -	for(auto& instr_ptr: drumkit.instruments) -	{ -		const auto& audiofiles = instr_ptr->audiofiles; - -		// Calculate memory usage of all audiofiles. -		for(auto& audiofile: audiofiles) -		{ -			needed_memory += calcBytesPerChannel(audiofile->filename); -		} -	} - -	DEBUG(memchecker, "Calculated %" PRIu64 " needed memory.\n", needed_memory); - -	return needed_memory; -} - -uint64_t MemChecker::calcBytesPerChannel(const std::string& filename) const -{ -	SF_INFO sf_info{}; - -	SNDFILE* f = sf_open(filename.c_str(), SFM_READ, &sf_info); -	if(!f) -	{ -		ERR(memchecker, "SNDFILE Error (%s): %s\n", -		    filename.c_str(), sf_strerror(f)); -		return 0; -	} - -	sf_close(f); - -	return sf_info.frames * sizeof(sample_t); -} diff --git a/src/memchecker.h b/src/memchecker.h deleted file mode 100644 index aeefb3a..0000000 --- a/src/memchecker.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            memchecker.h - * - *  Sat Jan 16 18:27:52 CET 2016 - *  Copyright 2016 André Nusser - *  andre.nusser@googlemail.com - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU Lesser General Public License as published by - *  the Free Software Foundation; either version 3 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo 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 Lesser General Public License for more details. - * - *  You should have received a copy of the GNU Lesser General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#pragma once - -#include "drumkit.h" - -#include <string> -// includes cstdint automatically and is needed for the PRIu64 macro -#include <cinttypes> - -class MemChecker -{ -public: -	//! Checks if there is enough memory left to load drumkit into RAM. -	//! \param drumkit The drumkit for which it is checked if there's enough memory left. -	//! \return True iff there is enough memory left. -	bool enoughFreeMemory(const DrumKit& drumkit) const; - -protected: -	// Computes how much RAM (in bytes) is left. -	uint64_t calcFreeMemory() const; - -	// Computes how much memory the drumkit takes when loaded into RAM (in bytes). -	uint64_t calcNeededMemory(const DrumKit& drumkit) const; - -	// Computes the number of bytes per channel of <filename> using libsnd. -	uint64_t calcBytesPerChannel(const std::string& filename) const; -}; diff --git a/test/Makefile.am b/test/Makefile.am index 56b7f72..6a7d244 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -15,23 +15,23 @@ endif  check_PROGRAMS = $(TESTS) -resource_CXXFLAGS = -DOUTPUT=\"resource\" $(CPPUNIT_CFLAGS) \ +resource_CXXFLAGS = -DOUTPUT=\"resource\" \  	-I$(top_srcdir)/src \  	-I$(top_srcdir)/hugin -resource_LDFLAGS = $(CPPUNIT_LIBS) $(SNDFILE_LIBS) +resource_LDFLAGS = $(SNDFILE_LIBS)  resource_SOURCES = \  	$(top_srcdir)/plugingui/resource.cc \  	$(top_srcdir)/plugingui/resource_data.cc \  	$(top_srcdir)/hugin/hugin.c \  	$(top_srcdir)/src/random.cc \ -	test.cc \ +	dgtest.cc \  	drumkit_creator.cc \  	resource_test.cc -audiocache_CXXFLAGS = -DOUTPUT=\"audiocache\" $(CPPUNIT_CFLAGS) \ +audiocache_CXXFLAGS = -DOUTPUT=\"audiocache\" \  	-I$(top_srcdir)/src -I$(top_srcdir)/include \  	-I$(top_srcdir)/hugin -DDISABLE_HUGIN $(PTHREAD_CFLAGS) $(SNDFILE_CFLAGS) -audiocache_LDFLAGS = $(PTHREAD_LIBS) $(CPPUNIT_LIBS) $(SNDFILE_LIBS) +audiocache_LDFLAGS = $(PTHREAD_LIBS) $(SNDFILE_LIBS)  audiocache_SOURCES = \  	$(top_srcdir)/src/audiocache.cc \  	$(top_srcdir)/src/audiocacheeventhandler.cc \ @@ -41,187 +41,187 @@ audiocache_SOURCES = \  	$(top_srcdir)/src/semaphore.cc \  	$(top_srcdir)/src/audiofile.cc \  	$(top_srcdir)/src/random.cc \ -	test.cc \ +	dgtest.cc \  	drumkit_creator.cc \  	audiocachetest.cc -audiocachefile_CXXFLAGS = -DOUTPUT=\"audiocachefile\" $(CPPUNIT_CFLAGS) \ +audiocachefile_CXXFLAGS = -DOUTPUT=\"audiocachefile\" \  	-I$(top_srcdir)/src -I$(top_srcdir)/include \  	-I$(top_srcdir)/hugin -DDISABLE_HUGIN $(PTHREAD_CFLAGS) $(SNDFILE_CFLAGS) -audiocachefile_LDFLAGS = $(PTHREAD_LIBS) $(CPPUNIT_LIBS) $(SNDFILE_LIBS) +audiocachefile_LDFLAGS = $(PTHREAD_LIBS) $(SNDFILE_LIBS)  audiocachefile_SOURCES = \  	$(top_srcdir)/src/audiocachefile.cc \  	$(top_srcdir)/src/thread.cc \  	$(top_srcdir)/src/semaphore.cc \  	$(top_srcdir)/src/audiofile.cc \  	$(top_srcdir)/src/random.cc \ -	test.cc \ +	dgtest.cc \  	drumkit_creator.cc \  	audiocachefiletest.cc  audiocacheidmanager_CXXFLAGS = -DOUTPUT=\"audiocacheidmanager\" \ -	$(CPPUNIT_CFLAGS) \ +	\  	-I$(top_srcdir)/src -I$(top_srcdir)/include \  	-I$(top_srcdir)/hugin -DDISABLE_HUGIN $(SNDFILE_CFLAGS) -audiocacheidmanager_LDFLAGS = $(CPPUNIT_LIBS) $(SNDFILE_LIBS) +audiocacheidmanager_LDFLAGS = $(SNDFILE_LIBS)  audiocacheidmanager_SOURCES = \  	$(top_srcdir)/src/audiocacheidmanager.cc \ -	test.cc \ +	dgtest.cc \  	audiocacheidmanagertest.cc  audiocacheeventhandler_CXXFLAGS = -DOUTPUT=\"audiocacheeventhandler\" \ -	$(CPPUNIT_CFLAGS) \ +	\  	-I$(top_srcdir)/src -I$(top_srcdir)/include \  	-I$(top_srcdir)/hugin -DDISABLE_HUGIN $(PTHREAD_CFLAGS) $(SNDFILE_CFLAGS) -audiocacheeventhandler_LDFLAGS = $(PTHREAD_LIBS) $(CPPUNIT_LIBS) $(SNDFILE_LIBS) +audiocacheeventhandler_LDFLAGS = $(PTHREAD_LIBS) $(SNDFILE_LIBS)  audiocacheeventhandler_SOURCES = \  	$(top_srcdir)/src/audiocacheeventhandler.cc \  	$(top_srcdir)/src/audiocacheidmanager.cc \  	$(top_srcdir)/src/audiocachefile.cc \  	$(top_srcdir)/src/thread.cc \  	$(top_srcdir)/src/semaphore.cc \ -	test.cc \ +	dgtest.cc \  	audiocacheeventhandlertest.cc -enginetest_CXXFLAGS = -DOUTPUT=\"enginetest\" $(CPPUNIT_CFLAGS) \ +enginetest_CXXFLAGS = -DOUTPUT=\"enginetest\" \  	-I$(top_srcdir)/src -I$(top_srcdir)/include \  	-I$(top_srcdir)/hugin $(PTHREAD_CFLAGS) -enginetest_LDFLAGS = $(CPPUNIT_LIBS) $(PTHREAD_LIBS) $(SNDFILE_LIBS) \ +enginetest_LDFLAGS = $(PTHREAD_LIBS) $(SNDFILE_LIBS) \  	 $(top_srcdir)/src/libdg.la  enginetest_SOURCES = \  	$(top_srcdir)/hugin/hugin.c \ -	test.cc \ +	dgtest.cc \  	drumkit_creator.cc \  	enginetest.cc -paintertest_CXXFLAGS = -DOUTPUT=\"paintertest\" $(CPPUNIT_CFLAGS) \ +paintertest_CXXFLAGS = -DOUTPUT=\"paintertest\" \  	-I$(top_srcdir)/src -I$(top_srcdir)/include -I$(top_srcdir)/plugingui \  	-I$(top_srcdir)/hugin $(PTHREAD_CFLAGS) -paintertest_LDFLAGS = $(CPPUNIT_LIBS) $(top_srcdir)/plugingui/libdggui.la +paintertest_LDFLAGS = $(top_srcdir)/plugingui/libdggui.la  paintertest_SOURCES = \  	$(top_srcdir)/hugin/hugin.c \ -	test.cc \ +	dgtest.cc \  	paintertest.cc -resampler_CXXFLAGS = -DOUTPUT=\"resampler\" $(CPPUNIT_CFLAGS) \ +resampler_CXXFLAGS = -DOUTPUT=\"resampler\" \  	$(ZITA_CXXFLAGS) $(SAMPLERATE_CFLAGS) \  	-I$(top_srcdir)/hugin -DDISABLE_HUGIN -resampler_LDFLAGS = $(ZITA_LIBS) $(SAMPLERATE_LIBS) $(CPPUNIT_LIBS) +resampler_LDFLAGS = $(ZITA_LIBS) $(SAMPLERATE_LIBS)  resampler_SOURCES = \  	$(top_srcdir)/src/chresampler.cc \ -	test.cc \ +	dgtest.cc \  	resampler.cc -lv2_CXXFLAGS = -DOUTPUT=\"lv2\" $(CPPUNIT_CFLAGS) \ +lv2_CXXFLAGS = -DOUTPUT=\"lv2\" \  	-I$(top_srcdir)/src \  	 `pkg-config --cflags serd-0` `pkg-config --cflags lilv-0` \  	-DLV2_PATH=\"@LV2DIR@\" -lv2_LDFLAGS = $(CPPUNIT_LIBS) `pkg-config --libs serd-0` \ +lv2_LDFLAGS = `pkg-config --libs serd-0` \  	`pkg-config --libs lilv-0` -lcrypto \  	$(SNDFILE_LIBS)  lv2_SOURCES = \  	$(top_srcdir)/src/random.cc \ -	test.cc \ +	dgtest.cc \  	drumkit_creator.cc \  	lv2_test_host.cc \  	lv2.cc -configfile_CXXFLAGS = -DOUTPUT=\"configfile\" $(CPPUNIT_CFLAGS) \ +configfile_CXXFLAGS = -DOUTPUT=\"configfile\" \  	-I$(top_srcdir)/hugin -configfile_LDFLAGS = $(CPPUNIT_LIBS) +configfile_LDFLAGS =  configfile_SOURCES = \  	$(top_srcdir)/src/configfile.cc \  	$(top_srcdir)/hugin/hugin.c \ -	test.cc \ +	dgtest.cc \  	configtest.cc -memchecker_CXXFLAGS = -DOUTPUT=\"memchecker\" $(CPPUNIT_CFLAGS) \ +memchecker_CXXFLAGS = -DOUTPUT=\"memchecker\" \  	-I$(top_srcdir)/src -I$(top_srcdir)/include \  	-I$(top_srcdir)/hugin $(PTHREAD_CFLAGS) -memchecker_LDFLAGS = $(CPPUNIT_LIBS) $(PTHREAD_LIBS) \ +memchecker_LDFLAGS = $(PTHREAD_LIBS) \  	$(top_srcdir)/src/libdg.la  memchecker_SOURCES = \  	$(top_srcdir)/hugin/hugin.c \ -	test.cc \ +	dgtest.cc \  	drumkit_creator.cc \  	memcheckertest.cc -randomtest_CXXFLAGS = -DOUTPUT=\"randomtest\" $(CPPUNIT_CFLAGS) \ +randomtest_CXXFLAGS = -DOUTPUT=\"randomtest\" \  	-I$(top_srcdir)/src \  	-I$(top_srcdir)/hugin -DDISABLE_HUGIN  randomtest_CFLAGS = -DDISABLE_HUGIN -randomtest_LDFLAGS = $(CPPUNIT_LIBS) +randomtest_LDFLAGS =  randomtest_SOURCES = \  	$(top_srcdir)/src/random.cc \ -	test.cc \ +	dgtest.cc \  	randomtest.cc -atomictest_CXXFLAGS = -DOUTPUT=\"atomictest\" $(CPPUNIT_CFLAGS) \ +atomictest_CXXFLAGS = -DOUTPUT=\"atomictest\" \  	-I$(top_srcdir)/src -I$(top_srcdir)/hugin -atomictest_LDFLAGS = $(CPPUNIT_LIBS) -atomictest_SOURCES = atomictest.cc test.cc +atomictest_LDFLAGS = +atomictest_SOURCES = atomictest.cc dgtest.cc  syncedsettingstest_CXXFLAGS = -DOUTPUT=\"syncedsettingstest\" \ -	$(CPPUNIT_CFLAGS) -I$(top_srcdir)/src -I$(top_srcdir)/hugin -syncedsettingstest_LDFLAGS = $(CPPUNIT_LIBS) -syncedsettingstest_SOURCES = syncedsettings.cc test.cc +	-I$(top_srcdir)/src -I$(top_srcdir)/hugin +syncedsettingstest_LDFLAGS = +syncedsettingstest_SOURCES = syncedsettings.cc dgtest.cc  EXTRA_DIST = \  	lv2_test_host.h \  	drumkit_creator.h -imagecachetest_CXXFLAGS = -DOUTPUT=\"imagecachetest\" $(CPPUNIT_CFLAGS) \ +imagecachetest_CXXFLAGS = -DOUTPUT=\"imagecachetest\" \  	-I$(top_srcdir)/src -I$(top_srcdir)/plugingui  -I$(top_srcdir)/hugin -imagecachetest_LDFLAGS = $(CPPUNIT_LIBS) $(top_srcdir)/plugingui/libdggui.la +imagecachetest_LDFLAGS = $(top_srcdir)/plugingui/libdggui.la  imagecachetest_SOURCES = \  	$(top_srcdir)/hugin/hugin.c \  	imagecachetest.cc \ -	test.cc +	dgtest.cc -semaphoretest_CXXFLAGS = -DOUTPUT=\"semaphoretest\" $(CPPUNIT_CFLAGS) \ +semaphoretest_CXXFLAGS = -DOUTPUT=\"semaphoretest\" \  	-I$(top_srcdir)/src -I$(top_srcdir)/hugin $(PTHREAD_CFLAGS) -semaphoretest_LDFLAGS = $(CPPUNIT_LIBS) $(PTHREAD_LIBS) +semaphoretest_LDFLAGS = $(PTHREAD_LIBS)  semaphoretest_SOURCES = \  	$(top_srcdir)/hugin/hugin.c \  	$(top_srcdir)/src/semaphore.cc \  	semaphoretest.cc \ -	test.cc +	dgtest.cc -drumkitcreatortest_CXXFLAGS = -DOUTPUT=\"drumkitcreatortest\" $(CPPUNIT_CFLAGS) \ +drumkitcreatortest_CXXFLAGS = -DOUTPUT=\"drumkitcreatortest\" \  	-I$(top_srcdir)/src \  	-I$(top_srcdir)/hugin -DDISABLE_HUGIN  drumkitcreatortest_CFLAGS = -DDISABLE_HUGIN -drumkitcreatortest_LDFLAGS = $(CPPUNIT_LIBS) $(SNDFILE_LIBS) +drumkitcreatortest_LDFLAGS = $(SNDFILE_LIBS)  drumkitcreatortest_SOURCES = \  	$(top_srcdir)/src/random.cc \ -	test.cc \ +	dgtest.cc \  	drumkit_creator.cc \  	drumkitcreatortest.cc -bytesizeparsertest_CXXFLAGS = -DOUTPUT=\"bytesizeparsertest\" $(CPPUNIT_CFLAGS) \ +bytesizeparsertest_CXXFLAGS = -DOUTPUT=\"bytesizeparsertest\" \  	-I$(top_srcdir)/src -bytesizeparsertest_LDFLAGS = $(CPPUNIT_LIBS) +bytesizeparsertest_LDFLAGS =  bytesizeparsertest_SOURCES = \  	$(top_srcdir)/src/bytesizeparser.cc \  	bytesizeparsertest.cc \ -	test.cc +	dgtest.cc -notifiertest_CXXFLAGS = -DOUTPUT=\"notifiertest\" $(CPPUNIT_CFLAGS) \ +notifiertest_CXXFLAGS = -DOUTPUT=\"notifiertest\" \  	-I$(top_srcdir)/src -notifiertest_LDFLAGS = $(CPPUNIT_LIBS) +notifiertest_LDFLAGS =  notifiertest_SOURCES = \  	notifiertest.cc \ -	test.cc +	dgtest.cc -instrumentparsertest_CXXFLAGS = -DOUTPUT=\"instrumentparsertest\" $(CPPUNIT_CFLAGS) \ +instrumentparsertest_CXXFLAGS = -DOUTPUT=\"instrumentparsertest\" \  	-I$(top_srcdir)/src -I$(top_srcdir)/include -instrumentparsertest_LDFLAGS = $(CPPUNIT_LIBS) \ +instrumentparsertest_LDFLAGS = \  	 $(top_srcdir)/src/libdg.la  instrumentparsertest_SOURCES = \  	$(top_srcdir)/hugin/hugin.c \  	instrumentparsertest.cc \  	scopedfile.cc \ -	test.cc +	dgtest.cc  drumkitparsertest_CXXFLAGS = -DOUTPUT=\"drumkitparsertest\" \  	-I$(top_srcdir)/src -I$(top_srcdir)/include diff --git a/test/atomictest.cc b/test/atomictest.cc index 9d2220c..223c6f3 100644 --- a/test/atomictest.cc +++ b/test/atomictest.cc @@ -24,48 +24,46 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include <atomic.h>  class AtomicTest -	: public CppUnit::TestFixture +	: public DGUnit  { -	CPPUNIT_TEST_SUITE(AtomicTest); -	CPPUNIT_TEST(podAtomicsUseStandardImpl); -	CPPUNIT_TEST(nonPodAtomicsUseOwnImpl); -	CPPUNIT_TEST(podAtomicCanBeDefaultInitialized); -	CPPUNIT_TEST(nonPodAtomicCanBeDefaultInitialized); -	CPPUNIT_TEST(podAtomicCanBeValueInitialized); -	CPPUNIT_TEST(nonPodAtomicCanBeValueInitialized); -	CPPUNIT_TEST(podAtomicCanBeValueAssigned); -	CPPUNIT_TEST(nonPodAtomicCanBeValueAssigned); -	CPPUNIT_TEST(podAtomicsAreLockFree); -	CPPUNIT_TEST_SUITE_END(); -  public: -	void setUp() {} -	void tearDown() {} +	AtomicTest() +	{ +		DGUNIT_TEST(AtomicTest::podAtomicsUseStandardImpl); +		DGUNIT_TEST(AtomicTest::nonPodAtomicsUseOwnImpl); +		DGUNIT_TEST(AtomicTest::podAtomicCanBeDefaultInitialized); +		DGUNIT_TEST(AtomicTest::nonPodAtomicCanBeDefaultInitialized); +		DGUNIT_TEST(AtomicTest::podAtomicCanBeValueInitialized); +		DGUNIT_TEST(AtomicTest::nonPodAtomicCanBeValueInitialized); +		DGUNIT_TEST(AtomicTest::podAtomicCanBeValueAssigned); +		DGUNIT_TEST(AtomicTest::nonPodAtomicCanBeValueAssigned); +		DGUNIT_TEST(AtomicTest::podAtomicsAreLockFree); +	}  	void podAtomicsUseStandardImpl()  	{ -		CPPUNIT_ASSERT(isUsingStandardImpl<bool>()); -		CPPUNIT_ASSERT(isUsingStandardImpl<unsigned short int>()); -		CPPUNIT_ASSERT(isUsingStandardImpl<short int>()); -		CPPUNIT_ASSERT(isUsingStandardImpl<unsigned int>()); -		CPPUNIT_ASSERT(isUsingStandardImpl<int>()); -		CPPUNIT_ASSERT(isUsingStandardImpl<unsigned long int>()); -		CPPUNIT_ASSERT(isUsingStandardImpl<long int>()); -		CPPUNIT_ASSERT(isUsingStandardImpl<unsigned long long int>()); -		CPPUNIT_ASSERT(isUsingStandardImpl<long long int>()); -		CPPUNIT_ASSERT(isUsingStandardImpl<float>()); -		CPPUNIT_ASSERT(isUsingStandardImpl<double>()); -		CPPUNIT_ASSERT(isUsingStandardImpl<long double>()); +		DGUNIT_ASSERT(isUsingStandardImpl<bool>()); +		DGUNIT_ASSERT(isUsingStandardImpl<unsigned short int>()); +		DGUNIT_ASSERT(isUsingStandardImpl<short int>()); +		DGUNIT_ASSERT(isUsingStandardImpl<unsigned int>()); +		DGUNIT_ASSERT(isUsingStandardImpl<int>()); +		DGUNIT_ASSERT(isUsingStandardImpl<unsigned long int>()); +		DGUNIT_ASSERT(isUsingStandardImpl<long int>()); +		DGUNIT_ASSERT(isUsingStandardImpl<unsigned long long int>()); +		DGUNIT_ASSERT(isUsingStandardImpl<long long int>()); +		DGUNIT_ASSERT(isUsingStandardImpl<float>()); +		DGUNIT_ASSERT(isUsingStandardImpl<double>()); +		DGUNIT_ASSERT(isUsingStandardImpl<long double>());  	}  	void nonPodAtomicsUseOwnImpl()  	{ -		CPPUNIT_ASSERT(!isUsingStandardImpl<std::string>()); +		DGUNIT_ASSERT(!isUsingStandardImpl<std::string>());  	}  	void podAtomicCanBeDefaultInitialized() @@ -78,52 +76,52 @@ public:  	void nonPodAtomicCanBeDefaultInitialized()  	{  		Atomic<std::string> s; -		CPPUNIT_ASSERT_EQUAL(s.load(), std::string{}); +		DGUNIT_ASSERT_EQUAL(s.load(), std::string{});  	}  	void podAtomicCanBeValueInitialized()  	{  		Atomic<int> i{5}; -		CPPUNIT_ASSERT_EQUAL(i.load(), 5); +		DGUNIT_ASSERT_EQUAL(i.load(), 5);  	}  	void nonPodAtomicCanBeValueInitialized()  	{  		Atomic<std::string> s{"hello world"}; -		CPPUNIT_ASSERT_EQUAL(s.load(), std::string{"hello world"}); +		DGUNIT_ASSERT_EQUAL(s.load(), std::string{"hello world"});  	}  	void podAtomicCanBeValueAssigned()  	{  		Atomic<int> i;  		i = 5; -		CPPUNIT_ASSERT_EQUAL(i.load(), 5); +		DGUNIT_ASSERT_EQUAL(i.load(), 5);  	}  	void nonPodAtomicCanBeValueAssigned()  	{  		Atomic<std::string> s;  		s = "hello world"; -		CPPUNIT_ASSERT_EQUAL(s.load(), std::string{"hello world"}); +		DGUNIT_ASSERT_EQUAL(s.load(), std::string{"hello world"});  	}  	void podAtomicsAreLockFree()  	{ -		CPPUNIT_ASSERT(isLockFree<bool>()); -		CPPUNIT_ASSERT(isLockFree<unsigned short int>()); -		CPPUNIT_ASSERT(isLockFree<short int>()); -		CPPUNIT_ASSERT(isLockFree<unsigned int>()); -		CPPUNIT_ASSERT(isLockFree<int>()); -		CPPUNIT_ASSERT(isLockFree<unsigned long int>()); -		CPPUNIT_ASSERT(isLockFree<long int>()); -		CPPUNIT_ASSERT(isLockFree<float>()); -		CPPUNIT_ASSERT(isLockFree<std::size_t>()); +		DGUNIT_ASSERT(isLockFree<bool>()); +		DGUNIT_ASSERT(isLockFree<unsigned short int>()); +		DGUNIT_ASSERT(isLockFree<short int>()); +		DGUNIT_ASSERT(isLockFree<unsigned int>()); +		DGUNIT_ASSERT(isLockFree<int>()); +		DGUNIT_ASSERT(isLockFree<unsigned long int>()); +		DGUNIT_ASSERT(isLockFree<long int>()); +		DGUNIT_ASSERT(isLockFree<float>()); +		DGUNIT_ASSERT(isLockFree<std::size_t>());  		// NOTE: Not lock free on small systems -		//CPPUNIT_ASSERT(isLockFree<unsigned long long int>()); -		//CPPUNIT_ASSERT(isLockFree<long long int>()); -		//CPPUNIT_ASSERT(isLockFree<double>()); -		//CPPUNIT_ASSERT(isLockFree<long double>()); +		//DGUNIT_ASSERT(isLockFree<unsigned long long int>()); +		//DGUNIT_ASSERT(isLockFree<long long int>()); +		//DGUNIT_ASSERT(isLockFree<double>()); +		//DGUNIT_ASSERT(isLockFree<long double>());  	}  private: @@ -142,4 +140,4 @@ private:  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(AtomicTest); +static AtomicTest test; diff --git a/test/audiocacheeventhandlertest.cc b/test/audiocacheeventhandlertest.cc index 0b408e0..a2639fb 100644 --- a/test/audiocacheeventhandlertest.cc +++ b/test/audiocacheeventhandlertest.cc @@ -24,20 +24,22 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include <audiocacheeventhandler.h>  class AudioCacheEventHandlerTest -	: public CppUnit::TestFixture +	: public DGUnit  { -	CPPUNIT_TEST_SUITE(AudioCacheEventHandlerTest); -	CPPUNIT_TEST(threadedTest); -	CPPUNIT_TEST_SUITE_END(); +public: +	AudioCacheEventHandlerTest() +	{ +		DGUNIT_TEST(AudioCacheEventHandlerTest::threadedTest); +	}  public: -	void setUp() {} -	void tearDown() {} +	void setup() override {} +	void teardown() override {}  	void threadedTest()  	{ @@ -49,4 +51,4 @@ public:  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(AudioCacheEventHandlerTest); +static AudioCacheEventHandlerTest test; diff --git a/test/audiocachefiletest.cc b/test/audiocachefiletest.cc index 83aece8..267d787 100644 --- a/test/audiocachefiletest.cc +++ b/test/audiocachefiletest.cc @@ -24,7 +24,7 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include <cstring> @@ -53,20 +53,18 @@ public:  };  class AudioCacheFileTest -	: public CppUnit::TestFixture +	: public DGUnit  { -	CPPUNIT_TEST_SUITE(AudioCacheFileTest); -	CPPUNIT_TEST(refTest); -	CPPUNIT_TEST(readTest); -	CPPUNIT_TEST(noFileTest); -	CPPUNIT_TEST_SUITE_END(); +public: +	AudioCacheFileTest() +	{ +		DGUNIT_TEST(AudioCacheFileTest::refTest); +		DGUNIT_TEST(AudioCacheFileTest::readTest); +		DGUNIT_TEST(AudioCacheFileTest::noFileTest); +	}  	DrumkitCreator drumkit_creator; -public: -	void setUp() {} -	void tearDown() {} -  	void refTest()  	{  		// Create the audio file @@ -74,19 +72,19 @@ public:  		// Conduct tests  		TestableAudioCacheFiles audiofiles; -		CPPUNIT_ASSERT_EQUAL(-1, audiofiles.getRef(filename)); +		DGUNIT_ASSERT_EQUAL(-1, audiofiles.getRef(filename));  		audiofiles.getFile(filename); -		CPPUNIT_ASSERT_EQUAL(1, audiofiles.getRef(filename)); +		DGUNIT_ASSERT_EQUAL(1, audiofiles.getRef(filename));  		audiofiles.getFile(filename); -		CPPUNIT_ASSERT_EQUAL(2, audiofiles.getRef(filename)); +		DGUNIT_ASSERT_EQUAL(2, audiofiles.getRef(filename));  		audiofiles.releaseFile(filename); -		CPPUNIT_ASSERT_EQUAL(1, audiofiles.getRef(filename)); +		DGUNIT_ASSERT_EQUAL(1, audiofiles.getRef(filename));  		audiofiles.releaseFile(filename); -		CPPUNIT_ASSERT_EQUAL(-1, audiofiles.getRef(filename)); +		DGUNIT_ASSERT_EQUAL(-1, audiofiles.getRef(filename));  	}  	void readTestHelper(size_t buffer_size) @@ -107,8 +105,8 @@ public:  		std::vector<sample_t> read_buffer;  		AudioCacheFile file(filename, read_buffer); -		CPPUNIT_ASSERT_EQUAL(filename, file.getFilename()); -		CPPUNIT_ASSERT_EQUAL(13, (int)file.getChannelCount()); // Sanity check +		DGUNIT_ASSERT_EQUAL(filename, file.getFilename()); +		DGUNIT_ASSERT_EQUAL(13, (int)file.getChannelCount()); // Sanity check  		CacheChannels channels; @@ -152,7 +150,7 @@ public:  			for(size_t c = 0; c < 13; ++c)  			{ -				CPPUNIT_ASSERT_EQUAL(true, ready[c]?true:false); +				DGUNIT_ASSERT_EQUAL(true, ready[c]?true:false);  			}  			sample_t diff[13] = {0.0}; @@ -166,7 +164,7 @@ public:  			for(int c = 0; c < 13; ++c)  			{ -				CPPUNIT_ASSERT_EQUAL((sample_t)0.0, diff[c]); +				DGUNIT_ASSERT_EQUAL((sample_t)0.0, diff[c]);  			}  		} @@ -205,9 +203,9 @@ public:  		std::vector<sample_t> read_buffer;  		AudioCacheFile file(filename, read_buffer); -		CPPUNIT_ASSERT_EQUAL(filename, file.getFilename()); -		CPPUNIT_ASSERT_EQUAL(0u, (unsigned int)file.getSize()); -		CPPUNIT_ASSERT_EQUAL(0u, (unsigned int)file.getChannelCount()); +		DGUNIT_ASSERT_EQUAL(filename, file.getFilename()); +		DGUNIT_ASSERT_EQUAL(0u, (unsigned int)file.getSize()); +		DGUNIT_ASSERT_EQUAL(0u, (unsigned int)file.getChannelCount());  		CacheChannels channels; @@ -239,18 +237,18 @@ public:  		for(size_t c = 0; c < 13; ++c)  		{ -			CPPUNIT_ASSERT_EQUAL(false, ready[c]?true:false); +			DGUNIT_ASSERT_EQUAL(false, ready[c]?true:false);  		}  		for(size_t c = 0; c < 13; ++c)  		{  			for(size_t i = 0; i < buffer_size; ++i)  			{ -				CPPUNIT_ASSERT_EQUAL(42.0f, samples[c][i]); +				DGUNIT_ASSERT_EQUAL(42.0f, samples[c][i]);  			}  		}  	}  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(AudioCacheFileTest); +static AudioCacheFileTest test; diff --git a/test/audiocacheidmanagertest.cc b/test/audiocacheidmanagertest.cc index 74aaaf6..75a7c51 100644 --- a/test/audiocacheidmanagertest.cc +++ b/test/audiocacheidmanagertest.cc @@ -24,7 +24,7 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include <audiocacheidmanager.h> @@ -39,15 +39,13 @@ public:  };  class AudioCacheIDManagerTest -	: public CppUnit::TestFixture +	: public DGUnit  { -	CPPUNIT_TEST_SUITE(AudioCacheIDManagerTest); -	CPPUNIT_TEST(registerReleaseTest); -	CPPUNIT_TEST_SUITE_END(); -  public: -	void setUp() {} -	void tearDown() {} +	AudioCacheIDManagerTest() +	{ +		DGUNIT_TEST(AudioCacheIDManagerTest::registerReleaseTest); +	}  	void registerReleaseTest()  	{ @@ -56,46 +54,46 @@ public:  		cache_t c1; c1.afile = (AudioCacheFile*)1;  		auto id1 = manager.registerID(c1); -		CPPUNIT_ASSERT(id1 != CACHE_DUMMYID); -		CPPUNIT_ASSERT(id1 != CACHE_NOID); -		CPPUNIT_ASSERT_EQUAL(1, manager.getAvailableIDs()); +		DGUNIT_ASSERT(id1 != CACHE_DUMMYID); +		DGUNIT_ASSERT(id1 != CACHE_NOID); +		DGUNIT_ASSERT_EQUAL(1, manager.getAvailableIDs());  		cache_t c2; c2.afile = (AudioCacheFile*)2;  		auto id2 = manager.registerID(c2); -		CPPUNIT_ASSERT(id2 != CACHE_DUMMYID); -		CPPUNIT_ASSERT(id2 != CACHE_NOID); -		CPPUNIT_ASSERT_EQUAL(0, manager.getAvailableIDs()); +		DGUNIT_ASSERT(id2 != CACHE_DUMMYID); +		DGUNIT_ASSERT(id2 != CACHE_NOID); +		DGUNIT_ASSERT_EQUAL(0, manager.getAvailableIDs());  		cache_t c3; c3.afile = (AudioCacheFile*)3;  		auto id3 = manager.registerID(c3); -		CPPUNIT_ASSERT(id3 == CACHE_DUMMYID); -		CPPUNIT_ASSERT_EQUAL(0, manager.getAvailableIDs()); +		DGUNIT_ASSERT(id3 == CACHE_DUMMYID); +		DGUNIT_ASSERT_EQUAL(0, manager.getAvailableIDs());  		cache_t& tc1 = manager.getCache(id1); -		CPPUNIT_ASSERT_EQUAL(c1.afile, tc1.afile); +		DGUNIT_ASSERT_EQUAL(c1.afile, tc1.afile);  		cache_t& tc2 = manager.getCache(id2); -		CPPUNIT_ASSERT_EQUAL(c2.afile, tc2.afile); +		DGUNIT_ASSERT_EQUAL(c2.afile, tc2.afile);  		manager.releaseID(id1); -		CPPUNIT_ASSERT_EQUAL(1, manager.getAvailableIDs()); +		DGUNIT_ASSERT_EQUAL(1, manager.getAvailableIDs());  		cache_t c4; c4.afile = (AudioCacheFile*)4;  		auto id4 = manager.registerID(c4); -		CPPUNIT_ASSERT(id4 != CACHE_DUMMYID); -		CPPUNIT_ASSERT(id4 != CACHE_NOID); -		CPPUNIT_ASSERT_EQUAL(0, manager.getAvailableIDs()); +		DGUNIT_ASSERT(id4 != CACHE_DUMMYID); +		DGUNIT_ASSERT(id4 != CACHE_NOID); +		DGUNIT_ASSERT_EQUAL(0, manager.getAvailableIDs());  		cache_t& tc4 = manager.getCache(id4); -		CPPUNIT_ASSERT_EQUAL(c4.afile, tc4.afile); +		DGUNIT_ASSERT_EQUAL(c4.afile, tc4.afile);  		manager.releaseID(id2); -		CPPUNIT_ASSERT_EQUAL(1, manager.getAvailableIDs()); +		DGUNIT_ASSERT_EQUAL(1, manager.getAvailableIDs());  		manager.releaseID(id4); -		CPPUNIT_ASSERT_EQUAL(2, manager.getAvailableIDs()); +		DGUNIT_ASSERT_EQUAL(2, manager.getAvailableIDs());  	}  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(AudioCacheIDManagerTest); +static AudioCacheIDManagerTest test; diff --git a/test/audiocachetest.cc b/test/audiocachetest.cc index c03bee4..9f5a858 100644 --- a/test/audiocachetest.cc +++ b/test/audiocachetest.cc @@ -24,7 +24,7 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include <thread>  #include <chrono> @@ -38,21 +38,19 @@  #define FRAMESIZE 64  class AudioCacheTest -	: public CppUnit::TestFixture +	: public DGUnit  { -	CPPUNIT_TEST_SUITE(AudioCacheTest); -	CPPUNIT_TEST(singleChannelNonThreaded); -	CPPUNIT_TEST(singleChannelThreaded); -	CPPUNIT_TEST(multiChannelNonThreaded); -	CPPUNIT_TEST(multiChannelThreaded); -	CPPUNIT_TEST_SUITE_END(); +public: +	AudioCacheTest() +	{ +		DGUNIT_TEST(AudioCacheTest::singleChannelNonThreaded); +		DGUNIT_TEST(AudioCacheTest::singleChannelThreaded); +		DGUNIT_TEST(AudioCacheTest::multiChannelNonThreaded); +		DGUNIT_TEST(AudioCacheTest::multiChannelThreaded); +	}  	DrumkitCreator drumkit_creator; -public: -	void setUp() {} -	void tearDown() {} -  	//! Test runner.  	//! \param filename The name of the file to read.  	//! \param channel The channel number to do comparison on. @@ -97,7 +95,7 @@ public:  			// Test pre cache:  			for(size_t i = 0; i < size; ++i)  			{ -				CPPUNIT_ASSERT_EQUAL(audio_file_ref.data[offset], samples[i]); +				DGUNIT_ASSERT_EQUAL(audio_file_ref.data[offset], samples[i]);  				++offset;  			} @@ -113,14 +111,14 @@ public:  						std::this_thread::sleep_for(std::chrono::milliseconds(1));  						if(--timeout == 0)  						{ -							CPPUNIT_ASSERT(false); // timeout +							DGUNIT_ASSERT(false); // timeout  						}  					}  				}  				samples = audio_cache.next(id, size); -				CPPUNIT_ASSERT_EQUAL(std::size_t(0), settings.number_of_underruns.load()); +				DGUNIT_ASSERT_EQUAL(std::size_t(0), settings.number_of_underruns.load());  				for(size_t i = 0; (i < size) && (offset < audio_file_ref.size); ++i)  				{ @@ -132,7 +130,7 @@ public:  						       (int)(audio_file_ref.size - offset),  						       (int)i, (int)size, (int)(size - i));  					} -					CPPUNIT_ASSERT_EQUAL(audio_file_ref.data[offset], samples[i]); +					DGUNIT_ASSERT_EQUAL(audio_file_ref.data[offset], samples[i]);  					++offset;  				}  			} @@ -202,4 +200,4 @@ public:  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(AudioCacheTest); +static AudioCacheTest test; diff --git a/test/bytesizeparsertest.cc b/test/bytesizeparsertest.cc index e4776fe..ea082e2 100644 --- a/test/bytesizeparsertest.cc +++ b/test/bytesizeparsertest.cc @@ -24,25 +24,22 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include "bytesizeparser.h"  class ByteSizeParserTest -	: public CppUnit::TestFixture +	: public DGUnit  { -	CPPUNIT_TEST_SUITE(ByteSizeParserTest); -	CPPUNIT_TEST(suffixTest); -	CPPUNIT_TEST(falseSuffixTest); -	CPPUNIT_TEST(falseNumberTest); -	CPPUNIT_TEST(tooBigNumberTest); -	CPPUNIT_TEST_SUITE_END(); -  public: -	void setUp() {} - -	void tearDown() {} +	ByteSizeParserTest() +	{ +		DGUNIT_TEST(ByteSizeParserTest::suffixTest); +		DGUNIT_TEST(ByteSizeParserTest::falseSuffixTest); +		DGUNIT_TEST(ByteSizeParserTest::falseNumberTest); +		DGUNIT_TEST(ByteSizeParserTest::tooBigNumberTest); +	}  	void suffixTest()  	{ @@ -50,78 +47,78 @@ public:  		std::size_t kilo = 1024, mega = kilo * 1024, giga = mega * 1024;  		computed_size = byteSizeParser("3");  		expected_size = 3; -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  		computed_size = byteSizeParser("3k");  		expected_size = 3 * kilo; -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  		computed_size = byteSizeParser("3M");  		expected_size = 3 * mega; -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  		computed_size = byteSizeParser("3G");  		expected_size = 3 * giga; -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  	}  	void falseSuffixTest()  	{  		std::size_t computed_size, expected_size = 0;  		computed_size = byteSizeParser("3K"); -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  		computed_size = byteSizeParser("3m"); -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  		computed_size = byteSizeParser("3g"); -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  		computed_size = byteSizeParser("3ddDD"); -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  	}  	void falseNumberTest()  	{  		std::size_t computed_size, expected_size = 0;  		computed_size = byteSizeParser("K3k"); -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  		computed_size = byteSizeParser("-3"); -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  		computed_size = byteSizeParser("-3k"); -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  		computed_size = byteSizeParser("-3M"); -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  		computed_size = byteSizeParser("-3G"); -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  		computed_size = byteSizeParser("3-"); -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  		computed_size = byteSizeParser("3-k"); -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  		computed_size = byteSizeParser("k-3"); -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  		computed_size = byteSizeParser("3-1"); -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  		computed_size = byteSizeParser("   -3"); -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  	}  	void tooBigNumberTest()  	{  		std::size_t computed_size, expected_size = 0;  		computed_size = byteSizeParser("999999999999999999999999999999999999G"); -		CPPUNIT_ASSERT_EQUAL(expected_size, computed_size); +		DGUNIT_ASSERT_EQUAL(expected_size, computed_size);  	}  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(ByteSizeParserTest); +static ByteSizeParserTest test; diff --git a/test/configtest.cc b/test/configtest.cc index 1b8b265..a4d5228 100644 --- a/test/configtest.cc +++ b/test/configtest.cc @@ -24,196 +24,196 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include <unistd.h>  #include <stdio.h>  #include "../src/configfile.h" -class TestConfigFile : public ConfigFile { +class TestConfigFile +	: public ConfigFile {  public: -  TestConfigFile() : ConfigFile("") {} +	TestConfigFile() +		: ConfigFile("") +	{ +	}  protected: -  // Overload the built-in open method to use local file instead of homedir. -  virtual bool open(std::string mode) -  { -    fp = fopen("test.conf", mode.c_str()); -    return fp != NULL; -  } +	// Overload the built-in open method to use local file instead of homedir. +	virtual bool open(std::string mode) +	{ +		fp = fopen("test.conf", mode.c_str()); +		return fp != NULL; +	}  }; -class test_configtest : public CppUnit::TestFixture +class test_configtest +	: public DGUnit  { -  CPPUNIT_TEST_SUITE(test_configtest); -	CPPUNIT_TEST(loading_no_newline); -	CPPUNIT_TEST(loading_equal_sign); -	CPPUNIT_TEST(loading_newline); -	CPPUNIT_TEST(loading_padding_space); -	CPPUNIT_TEST(loading_padding_space_newline); -	CPPUNIT_TEST(loading_padding_tab); -	CPPUNIT_TEST(loading_padding_tab_newline); -	CPPUNIT_TEST(loading_comment); -	CPPUNIT_TEST(loading_inline_comment); -	CPPUNIT_TEST(loading_single_quoted_string); -	CPPUNIT_TEST(loading_double_quoted_string); -	CPPUNIT_TEST(loading_error_no_key); -	CPPUNIT_TEST(loading_error_no_value); -	CPPUNIT_TEST(loading_error_string_not_terminated_single); -	CPPUNIT_TEST(loading_error_string_not_terminated_double); -	CPPUNIT_TEST_SUITE_END(); -  public: -	void setUp() -  { -  } +	test_configtest() +	{ +		DGUNIT_TEST(test_configtest::loading_no_newline); +		DGUNIT_TEST(test_configtest::loading_equal_sign); +		DGUNIT_TEST(test_configtest::loading_newline); +		DGUNIT_TEST(test_configtest::loading_padding_space); +		DGUNIT_TEST(test_configtest::loading_padding_space_newline); +		DGUNIT_TEST(test_configtest::loading_padding_tab); +		DGUNIT_TEST(test_configtest::loading_padding_tab_newline); +		DGUNIT_TEST(test_configtest::loading_comment); +		DGUNIT_TEST(test_configtest::loading_inline_comment); +		DGUNIT_TEST(test_configtest::loading_single_quoted_string); +		DGUNIT_TEST(test_configtest::loading_double_quoted_string); +		DGUNIT_TEST(test_configtest::loading_error_no_key); +		DGUNIT_TEST(test_configtest::loading_error_no_value); +		DGUNIT_TEST(test_configtest::loading_error_string_not_terminated_single); +		DGUNIT_TEST(test_configtest::loading_error_string_not_terminated_double); +	} -	void tearDown() -  { -    unlink("test.conf"); -  } +	void teardown() override +	{ +		unlink("test.conf"); +	} -  void writeFile(const char* str) -  { -    FILE* fp = fopen("test.conf", "w"); -    fprintf(fp, "%s", str); -    fclose(fp); -  } +	void writeFile(const char* str) +	{ +		FILE* fp = fopen("test.conf", "w"); +		fprintf(fp, "%s", str); +		fclose(fp); +	} -  void loading_no_newline() -  { -    writeFile("a:b"); +	void loading_no_newline() +	{ +		writeFile("a:b"); -    TestConfigFile cf; -    CPPUNIT_ASSERT_EQUAL(true, cf.load()); -    CPPUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a")); +		TestConfigFile cf; +		DGUNIT_ASSERT_EQUAL(true, cf.load()); +		DGUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a"));  	} -  void loading_equal_sign() -  { -    writeFile(" a =\tb\t\n"); +	void loading_equal_sign() +	{ +		writeFile(" a =\tb\t\n"); -    TestConfigFile cf; -    CPPUNIT_ASSERT_EQUAL(true, cf.load()); -    CPPUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a")); +		TestConfigFile cf; +		DGUNIT_ASSERT_EQUAL(true, cf.load()); +		DGUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a"));  	} -  void loading_newline() -  { -    writeFile("a:b\n"); +	void loading_newline() +	{ +		writeFile("a:b\n"); -    TestConfigFile cf; -    CPPUNIT_ASSERT_EQUAL(true, cf.load()); -    CPPUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a")); +		TestConfigFile cf; +		DGUNIT_ASSERT_EQUAL(true, cf.load()); +		DGUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a"));  	} -  void loading_padding_space() -  { -    writeFile(" a : b "); +	void loading_padding_space() +	{ +		writeFile(" a : b "); -    TestConfigFile cf; -    CPPUNIT_ASSERT_EQUAL(true, cf.load()); -    CPPUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a")); +		TestConfigFile cf; +		DGUNIT_ASSERT_EQUAL(true, cf.load()); +		DGUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a"));  	} -  void loading_padding_tab() -  { -    writeFile("\ta\t:\tb\t"); +	void loading_padding_tab() +	{ +		writeFile("\ta\t:\tb\t"); -    TestConfigFile cf; -    CPPUNIT_ASSERT_EQUAL(true, cf.load()); -    CPPUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a")); +		TestConfigFile cf; +		DGUNIT_ASSERT_EQUAL(true, cf.load()); +		DGUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a"));  	} -  void loading_padding_space_newline() -  { -    writeFile(" a : b \n"); +	void loading_padding_space_newline() +	{ +		writeFile(" a : b \n"); -    TestConfigFile cf; -    CPPUNIT_ASSERT_EQUAL(true, cf.load()); -    CPPUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a")); +		TestConfigFile cf; +		DGUNIT_ASSERT_EQUAL(true, cf.load()); +		DGUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a"));  	} -  void loading_padding_tab_newline() -  { -    writeFile("\ta\t:\tb\t\n"); +	void loading_padding_tab_newline() +	{ +		writeFile("\ta\t:\tb\t\n"); -    TestConfigFile cf; -    CPPUNIT_ASSERT_EQUAL(true, cf.load()); -    CPPUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a")); +		TestConfigFile cf; +		DGUNIT_ASSERT_EQUAL(true, cf.load()); +		DGUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a"));  	} -  void loading_comment() -  { -    writeFile("# comment\na:b\n"); +	void loading_comment() +	{ +		writeFile("# comment\na:b\n"); -    TestConfigFile cf; -    CPPUNIT_ASSERT_EQUAL(true, cf.load()); -    CPPUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a")); +		TestConfigFile cf; +		DGUNIT_ASSERT_EQUAL(true, cf.load()); +		DGUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a"));  	} -  void loading_inline_comment() -  { -    writeFile("a:b #comment\n"); +	void loading_inline_comment() +	{ +		writeFile("a:b #comment\n"); -    TestConfigFile cf; -    CPPUNIT_ASSERT_EQUAL(true, cf.load()); -    CPPUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a")); +		TestConfigFile cf; +		DGUNIT_ASSERT_EQUAL(true, cf.load()); +		DGUNIT_ASSERT_EQUAL(std::string("b"), cf.getValue("a"));  	} -  void loading_single_quoted_string() -  { -    writeFile("a: '#\"b\" ' \n"); +	void loading_single_quoted_string() +	{ +		writeFile("a: '#\"b\" ' \n"); -    TestConfigFile cf; -    CPPUNIT_ASSERT_EQUAL(true, cf.load()); -    CPPUNIT_ASSERT_EQUAL(std::string("#\"b\" "), cf.getValue("a")); +		TestConfigFile cf; +		DGUNIT_ASSERT(cf.load()); +		DGUNIT_ASSERT_EQUAL(std::string("#\"b\" "), cf.getValue("a"));  	} -  void loading_double_quoted_string() -  { -    writeFile("a: \"#'b' \" \n"); +	void loading_double_quoted_string() +	{ +		writeFile("a: \"#'b' \" \n"); -    TestConfigFile cf; -    CPPUNIT_ASSERT_EQUAL(true, cf.load()); -    CPPUNIT_ASSERT_EQUAL(std::string("#'b' "), cf.getValue("a")); +		TestConfigFile cf; +		DGUNIT_ASSERT_EQUAL(true, cf.load()); +		DGUNIT_ASSERT_EQUAL(std::string("#'b' "), cf.getValue("a"));  	} -  void loading_error_no_key() -  { -    writeFile(":foo"); +	void loading_error_no_key() +	{ +		writeFile(":foo"); -    TestConfigFile cf; -    CPPUNIT_ASSERT_EQUAL(false, cf.load()); +		TestConfigFile cf; +		DGUNIT_ASSERT_EQUAL(false, cf.load());  	} -  void loading_error_no_value() -  { -    writeFile("key"); +	void loading_error_no_value() +	{ +		writeFile("key"); -    TestConfigFile cf; -    CPPUNIT_ASSERT_EQUAL(false, cf.load()); +		TestConfigFile cf; +		DGUNIT_ASSERT_EQUAL(false, cf.load());  	} -  void loading_error_string_not_terminated_single() -  { -    writeFile("a:'b\n"); +	void loading_error_string_not_terminated_single() +	{ +		writeFile("a:'b\n"); -    TestConfigFile cf; -    CPPUNIT_ASSERT_EQUAL(false, cf.load()); +		TestConfigFile cf; +		DGUNIT_ASSERT_EQUAL(false, cf.load());  	} -  void loading_error_string_not_terminated_double() -  { -    writeFile("a:\"b\n"); +	void loading_error_string_not_terminated_double() +	{ +		writeFile("a:\"b\n"); -    TestConfigFile cf; -    CPPUNIT_ASSERT_EQUAL(false, cf.load()); +		TestConfigFile cf; +		DGUNIT_ASSERT_EQUAL(false, cf.load());  	}  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(test_configtest); - - +static test_configtest test; diff --git a/test/dgunit.h b/test/dgunit.h index 5bb47bb..a010092 100644 --- a/test/dgunit.h +++ b/test/dgunit.h @@ -98,6 +98,7 @@ public:  					result.id = test_num;  					result.func = test.second;  					failed_tests.push_back(result); +					++failed;  					continue;  				}  				catch(...) diff --git a/test/drumkitcreatortest.cc b/test/drumkitcreatortest.cc index 1b6321b..bde58ef 100644 --- a/test/drumkitcreatortest.cc +++ b/test/drumkitcreatortest.cc @@ -24,28 +24,20 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include "drumkit_creator.h"  class DrumkitcreatorTest -	: public CppUnit::TestFixture +	: public DGUnit  { -	CPPUNIT_TEST_SUITE(DrumkitcreatorTest); -	CPPUNIT_TEST(testTest); -	CPPUNIT_TEST_SUITE_END(); - -	DrumkitCreator drumkit_creator; -  public: -	void setUp() +	DrumkitcreatorTest()  	{ +		DGUNIT_TEST(DrumkitcreatorTest::testTest);  	} -	void tearDown() -	{ -	 -	} +	DrumkitCreator drumkit_creator;  	//! This just creates some drumkit.  	void testTest() @@ -55,4 +47,4 @@ public:  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(DrumkitcreatorTest); +static DrumkitcreatorTest test; diff --git a/test/drumkitparsertest.cc b/test/drumkitparsertest.cc index e2d30fc..10ffeb3 100644 --- a/test/drumkitparsertest.cc +++ b/test/drumkitparsertest.cc @@ -36,9 +36,7 @@ class DrumkitParserTest  {  public:  	DrumkitParserTest() -		: DGUnit()  	{ -		std::cout << __PRETTY_FUNCTION__ << "\n";  		DGUNIT_TEST(DrumkitParserTest::testTest);  	} @@ -134,4 +132,4 @@ public:  };  // Registers the fixture into the 'registry' -DrumkitParserTest drumkit_parser_test; +static DrumkitParserTest test; diff --git a/test/enginetest.cc b/test/enginetest.cc index ad4315d..cb21609 100644 --- a/test/enginetest.cc +++ b/test/enginetest.cc @@ -24,7 +24,7 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include <thread>  #include <chrono> @@ -67,18 +67,16 @@ public:  	bool isFreewheeling() const { return true; }  }; -class test_engine : public CppUnit::TestFixture +class test_engine : public DGUnit  { -	CPPUNIT_TEST_SUITE(test_engine); -	CPPUNIT_TEST(loading); -	CPPUNIT_TEST_SUITE_END(); +public: +	test_engine() +	{ +		DGUNIT_TEST(test_engine::loading); +	}  	DrumkitCreator drumkit_creator; -public: -	void setUp() {} -	void tearDown() {} -  	void loading()  	{  		Settings settings; @@ -119,4 +117,4 @@ public:  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(test_engine); +static test_engine test; diff --git a/test/imagecachetest.cc b/test/imagecachetest.cc index 9321cf0..ea2c99d 100644 --- a/test/imagecachetest.cc +++ b/test/imagecachetest.cc @@ -24,7 +24,7 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include <cassert> @@ -49,50 +49,48 @@ public:  };  class ImageCacheTest -	: public CppUnit::TestFixture +	: public DGUnit  { -	CPPUNIT_TEST_SUITE(ImageCacheTest); -	CPPUNIT_TEST(refCountTest); -	CPPUNIT_TEST_SUITE_END(); -  public: -	void setUp() {} -	void tearDown() {} +	ImageCacheTest() +	{ +		DGUNIT_TEST(ImageCacheTest::refCountTest); +	}  	void refCountTest()  	{  		TestableImageCache imageCache; -		CPPUNIT_ASSERT_EQUAL(imageCache.count("foo"), std::size_t(0u)); -		CPPUNIT_ASSERT_EQUAL(imageCache.count("bar"), std::size_t(0u)); +		DGUNIT_ASSERT_EQUAL(imageCache.count("foo"), std::size_t(0u)); +		DGUNIT_ASSERT_EQUAL(imageCache.count("bar"), std::size_t(0u));  		{  			auto image1{imageCache.getImage("foo")};  			(void)image1; -			CPPUNIT_ASSERT_EQUAL(imageCache.count("foo"), std::size_t(1u)); -			CPPUNIT_ASSERT_EQUAL(imageCache.count("bar"), std::size_t(0u)); +			DGUNIT_ASSERT_EQUAL(imageCache.count("foo"), std::size_t(1u)); +			DGUNIT_ASSERT_EQUAL(imageCache.count("bar"), std::size_t(0u));  			auto image2 = imageCache.getImage("bar"); -			CPPUNIT_ASSERT_EQUAL(imageCache.count("foo"), std::size_t(1u)); -			CPPUNIT_ASSERT_EQUAL(imageCache.count("bar"), std::size_t(1u)); +			DGUNIT_ASSERT_EQUAL(imageCache.count("foo"), std::size_t(1u)); +			DGUNIT_ASSERT_EQUAL(imageCache.count("bar"), std::size_t(1u));  			auto image3 = imageCache.getImage("foo"); -			CPPUNIT_ASSERT_EQUAL(imageCache.count("foo"), std::size_t(2u)); -			CPPUNIT_ASSERT_EQUAL(imageCache.count("bar"), std::size_t(1u)); +			DGUNIT_ASSERT_EQUAL(imageCache.count("foo"), std::size_t(2u)); +			DGUNIT_ASSERT_EQUAL(imageCache.count("bar"), std::size_t(1u));  			{  				auto image4 = imageCache.getImage("foo"); -				CPPUNIT_ASSERT_EQUAL(imageCache.count("foo"), std::size_t(3u)); -				CPPUNIT_ASSERT_EQUAL(imageCache.count("bar"), std::size_t(1u)); +				DGUNIT_ASSERT_EQUAL(imageCache.count("foo"), std::size_t(3u)); +				DGUNIT_ASSERT_EQUAL(imageCache.count("bar"), std::size_t(1u));  			} -			CPPUNIT_ASSERT_EQUAL(imageCache.count("foo"), std::size_t(2u)); -			CPPUNIT_ASSERT_EQUAL(imageCache.count("bar"), std::size_t(1u)); +			DGUNIT_ASSERT_EQUAL(imageCache.count("foo"), std::size_t(2u)); +			DGUNIT_ASSERT_EQUAL(imageCache.count("bar"), std::size_t(1u));  		} -		CPPUNIT_ASSERT_EQUAL(imageCache.count("foo"), std::size_t(0u)); -		CPPUNIT_ASSERT_EQUAL(imageCache.count("bar"), std::size_t(0u)); +		DGUNIT_ASSERT_EQUAL(imageCache.count("foo"), std::size_t(0u)); +		DGUNIT_ASSERT_EQUAL(imageCache.count("bar"), std::size_t(0u));  	}  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(ImageCacheTest); +static ImageCacheTest test; diff --git a/test/instrumentparsertest.cc b/test/instrumentparsertest.cc index 44011e1..2fb81d0 100644 --- a/test/instrumentparsertest.cc +++ b/test/instrumentparsertest.cc @@ -24,29 +24,22 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include <instrumentparser.h>  #include "scopedfile.h"  class InstrumentParserTest -	: public CppUnit::TestFixture +	: public DGUnit  { -	CPPUNIT_TEST_SUITE(InstrumentParserTest); -	CPPUNIT_TEST(testTest); -	CPPUNIT_TEST_SUITE_END(); - -	Settings settings; -	Random rand; -  public: -	void setUp() +	InstrumentParserTest()  	{ +		DGUNIT_TEST(InstrumentParserTest::testTest);  	} -	void tearDown() -	{ -	} +	Settings settings; +	Random rand;  	//! This just creates some drumkit.  	void testTest() @@ -71,45 +64,45 @@ public:  			"</instrument>");  		Instrument instrument(settings, rand);  		InstrumentParser parser(instrument, settings); -		CPPUNIT_ASSERT_EQUAL(0, parser.parseFile(scoped_file.filename())); +		DGUNIT_ASSERT_EQUAL(0, parser.parseFile(scoped_file.filename())); -		CPPUNIT_ASSERT_EQUAL(std::string(""), instrument._group); -		CPPUNIT_ASSERT_EQUAL(std::string("Snare"), instrument._name); -		CPPUNIT_ASSERT_EQUAL(std::string(""), instrument._description); +		DGUNIT_ASSERT_EQUAL(std::string(""), instrument._group); +		DGUNIT_ASSERT_EQUAL(std::string("Snare"), instrument._name); +		DGUNIT_ASSERT_EQUAL(std::string(""), instrument._description); -		CPPUNIT_ASSERT(VersionStr("2.0.0") == instrument.version); +		DGUNIT_ASSERT(VersionStr("2.0.0") == instrument.version);  		// NOTE: instrument.samples are the sample map belonging to version 1.0 -		CPPUNIT_ASSERT_EQUAL(std::size_t(2), instrument.samplelist.size()); +		DGUNIT_ASSERT_EQUAL(std::size_t(2), instrument.samplelist.size());  		{  			const auto& sample = *instrument.samplelist[0]; -			CPPUNIT_ASSERT_EQUAL(std::string("Snare-1"), sample.name); -			CPPUNIT_ASSERT_EQUAL(0.00985718f, sample.power); -			CPPUNIT_ASSERT_EQUAL(std::size_t(4), sample.audiofiles.size()); +			DGUNIT_ASSERT_EQUAL(std::string("Snare-1"), sample.name); +			DGUNIT_ASSERT_EQUAL(0.00985718f, sample.power); +			DGUNIT_ASSERT_EQUAL(std::size_t(4), sample.audiofiles.size());  			for(const auto& audiofile : sample.audiofiles)  			{ -				CPPUNIT_ASSERT_EQUAL(std::string("/tmp/1-Snare.wav"), audiofile.second->filename); +				DGUNIT_ASSERT_EQUAL(std::string("/tmp/1-Snare.wav"), audiofile.second->filename);  				switch(audiofile.second->filechannel)  				{  					// NOTE: Channel numbers are zero based - they are 1 based in the xml  				case 0: -					CPPUNIT_ASSERT_EQUAL(std::string("AmbLeft"), +					DGUNIT_ASSERT_EQUAL(std::string("AmbLeft"),  					                     audiofile.second->instrument_channel->name);  					break;  				case 1: -					CPPUNIT_ASSERT_EQUAL(std::string("AmbRight"), +					DGUNIT_ASSERT_EQUAL(std::string("AmbRight"),  					                     audiofile.second->instrument_channel->name);  					break;  				case 11: -					CPPUNIT_ASSERT_EQUAL(std::string("SnareBottom"), +					DGUNIT_ASSERT_EQUAL(std::string("SnareBottom"),  					                     audiofile.second->instrument_channel->name);  					break;  				case 12: -					CPPUNIT_ASSERT_EQUAL(std::string("SnareTop"), +					DGUNIT_ASSERT_EQUAL(std::string("SnareTop"),  					                     audiofile.second->instrument_channel->name);  					break;  				default: -					CPPUNIT_ASSERT(false); +					DGUNIT_ASSERT(false);  					break;  				}  			} @@ -117,39 +110,39 @@ public:  		{  			const auto& sample = *instrument.samplelist[1]; -			CPPUNIT_ASSERT_EQUAL(std::string("Snare-2"), sample.name); -			CPPUNIT_ASSERT_EQUAL(0.0124808f, sample.power); -			CPPUNIT_ASSERT_EQUAL(std::size_t(4), sample.audiofiles.size()); +			DGUNIT_ASSERT_EQUAL(std::string("Snare-2"), sample.name); +			DGUNIT_ASSERT_EQUAL(0.0124808f, sample.power); +			DGUNIT_ASSERT_EQUAL(std::size_t(4), sample.audiofiles.size());  			for(const auto& audiofile : sample.audiofiles)  			{ -				CPPUNIT_ASSERT_EQUAL(std::string("/tmp/2-Snare.wav"), audiofile.second->filename); +				DGUNIT_ASSERT_EQUAL(std::string("/tmp/2-Snare.wav"), audiofile.second->filename);  				switch(audiofile.second->filechannel)  				{  					// NOTE: Channel numbers are zero based - they are 1 based in the xml  				case 0: -					CPPUNIT_ASSERT_EQUAL(std::string("AmbLeft"), +					DGUNIT_ASSERT_EQUAL(std::string("AmbLeft"),  					                     audiofile.second->instrument_channel->name);  					break;  				case 1: -					CPPUNIT_ASSERT_EQUAL(std::string("AmbRight"), +					DGUNIT_ASSERT_EQUAL(std::string("AmbRight"),  					                     audiofile.second->instrument_channel->name);  					break;  				case 11: -					CPPUNIT_ASSERT_EQUAL(std::string("SnareBottom"), +					DGUNIT_ASSERT_EQUAL(std::string("SnareBottom"),  					                     audiofile.second->instrument_channel->name);  					break;  				case 12: -					CPPUNIT_ASSERT_EQUAL(std::string("SnareTop"), +					DGUNIT_ASSERT_EQUAL(std::string("SnareTop"),  					                     audiofile.second->instrument_channel->name);  					break;  				default: -					CPPUNIT_ASSERT(false); +					DGUNIT_ASSERT(false);  					break;  				}  			}  		} -//CPPUNIT_ASSERT(ref.samples.values == instrument.samples.values); +//DGUNIT_ASSERT(ref.samples.values == instrument.samples.values);  		//std::vector<Sample*> samplelist;  		//std::deque<InstrumentChannel> instrument_channels;  		// @@ -162,4 +155,4 @@ public:  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(InstrumentParserTest); +static InstrumentParserTest test; diff --git a/test/lv2.cc b/test/lv2.cc index a386b7d..0f80dea 100644 --- a/test/lv2.cc +++ b/test/lv2.cc @@ -24,7 +24,7 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include <thread>  #include <chrono> @@ -54,21 +54,19 @@ enum class Ports {   * - Run with buffer size a prime number (and thereby not power of 2)   * - Run with HUGE number of midi events in one buffer (10000)   */ -class test_lv2 : public CppUnit::TestFixture +class test_lv2 : public DGUnit  { -	CPPUNIT_TEST_SUITE(test_lv2); -	CPPUNIT_TEST(open_and_verify); -	CPPUNIT_TEST(run_no_ports_connected); -	CPPUNIT_TEST(run_no_output_ports_connected); -	CPPUNIT_TEST(test1); -	CPPUNIT_TEST_SUITE_END(); +public: +	test_lv2() +	{ +		DGUNIT_TEST(test_lv2::open_and_verify); +		DGUNIT_TEST(test_lv2::run_no_ports_connected); +		DGUNIT_TEST(test_lv2::run_no_output_ports_connected); +		DGUNIT_TEST(test_lv2::test1); +	}  	DrumkitCreator drumkit_creator; -public: -	void setUp() {} -	void tearDown() {} -  	void open_and_verify()  	{  		int res; @@ -76,13 +74,13 @@ public:  		LV2TestHost h(LV2_PATH);  		res = h.open(DG_URI); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		res = h.verify(); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		res = h.close(); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  	}  	void run_no_ports_connected() @@ -92,13 +90,13 @@ public:  		LV2TestHost h(LV2_PATH);  		res = h.open(DG_URI); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		res = h.verify(); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		res = h.createInstance(44100); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		const char config_fmt[] =  			"<config>\n" @@ -167,21 +165,21 @@ public:  		        latency_regain);  		res = h.loadConfig(config, strlen(config)); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		// run for 1 samples to trigger kit loading  		res = h.run(1); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		std::this_thread::sleep_for(std::chrono::milliseconds(1)); // wait for kit to get loaded (async),  		res = h.run(100); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		res = h.destroyInstance(); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		res = h.close(); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  	}  	void run_no_output_ports_connected() @@ -191,13 +189,13 @@ public:  		LV2TestHost h(LV2_PATH);  		res = h.open(DG_URI); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		res = h.verify(); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		res = h.createInstance(44100); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		const char config_fmt[] =  			"<config>\n" @@ -266,7 +264,7 @@ public:  		        latency_regain);  		res = h.loadConfig(config, strlen(config)); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		// Port buffers:  		char sequence_buffer[4096]; @@ -277,22 +275,22 @@ public:  		LV2TestHost::Sequence seq(sequence_buffer, sizeof(sequence_buffer));  		res = h.connectPort((int)Ports::MidiPort, seq.data()); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		// run for 1 samples to trigger kit loading  		res = h.run(1); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		std::this_thread::sleep_for(std::chrono::milliseconds(1)); // wait for kit to get loaded (async),  		seq.addMidiNote(5, 1, 127);  		res = h.run(100); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		res = h.destroyInstance(); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		res = h.close(); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  	}  	void test1() @@ -302,13 +300,13 @@ public:  		LV2TestHost h(LV2_PATH);  		res = h.open(DG_URI); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		res = h.verify(); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		res = h.createInstance(44100); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		const char config_fmt[] =  			"<config>\n" @@ -377,7 +375,7 @@ public:  		        latency_regain);  		res = h.loadConfig(config, strlen(config)); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		// Port buffers:  		char sequence_buffer[4096]; @@ -389,7 +387,7 @@ public:  		LV2TestHost::Sequence seq(sequence_buffer, sizeof(sequence_buffer));  		res = h.connectPort((int)Ports::MidiPort, seq.data()); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		for(int i = 0; i < 16; ++i)  		{ @@ -399,11 +397,11 @@ public:  			}  			res += h.connectPort((int)Ports::AudioPortOffset + i, pcm_buffer[i]);  		} -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		// run for 1 samples to trigger kit loading  		res = h.run(1); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		std::this_thread::sleep_for(std::chrono::seconds(1));  // wait for kit to get loaded (async),  		seq.addMidiNote(5, 1, 127); @@ -411,7 +409,7 @@ public:  		{  			res = h.run(10);  			std::this_thread::sleep_for(std::chrono::milliseconds(1)); -			CPPUNIT_ASSERT_EQUAL(0, res); +			DGUNIT_ASSERT_EQUAL(0, res);  			//printf("Iteration:\n");  			//for(int k = 0; k < 16; k++) { @@ -428,7 +426,7 @@ public:  		seq.addMidiNote(5, 1, 127);  		res = h.run(10);  		std::this_thread::sleep_for(std::chrono::milliseconds(1)); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		/*  		printf("Iteration:\n"); @@ -451,18 +449,18 @@ public:  		{  			for(int j = 0; j < 10; j++)  			{ -				CPPUNIT_ASSERT_EQUAL(((j==5)?comp_val.f:0), pcm_buffer[k][j]); +				DGUNIT_ASSERT_EQUAL(((j==5)?comp_val.f:0), pcm_buffer[k][j]);  			}  		}  		seq.clear();  		res = h.destroyInstance(); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  		res = h.close(); -		CPPUNIT_ASSERT_EQUAL(0, res); +		DGUNIT_ASSERT_EQUAL(0, res);  	}  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(test_lv2); +static test_lv2 test; diff --git a/test/memcheckertest.cc b/test/memcheckertest.cc deleted file mode 100644 index da5eae6..0000000 --- a/test/memcheckertest.cc +++ /dev/null @@ -1,121 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            memcheckertest.cc - * - *  Mon Jan 18 15:08:31 CET 2016 - *  Copyright 2016 André Nusser - *  andre.nusser@googlemail.com - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU Lesser General Public License as published by - *  the Free Software Foundation; either version 3 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo 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 Lesser General Public License for more details. - * - *  You should have received a copy of the GNU Lesser General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ - -// This test should include: -// ------------------------- -// * Load a small drumkit and check that the memchecker doesn't warn. -//	-> this assumes that the system is not already swapping which is sane imo. -// * Load a huge drumkit and check that the memchecker does warn. -// * Load a kit where we exactly know the size of the audio files and check if it's correct. -// * Check if the amount of free ram is in a realistic range. -// -// NOTE: This test will fail if your system is currently swapping or has an extremely small amount of RAM. - -#include <cppunit/extensions/HelperMacros.h> - -#include "../src/memchecker.h" -#include "../src/drumkit.h" -#include "../src/drumkitparser.h" - -#include "drumkit_creator.h" - -class MemCheckerTest -	: public CppUnit::TestFixture -	, public MemChecker -{ -	CPPUNIT_TEST_SUITE(MemCheckerTest); -	CPPUNIT_TEST(small_drumkit); -	CPPUNIT_TEST(huge_drumkit); -	CPPUNIT_TEST(correct_size); -	CPPUNIT_TEST(check_free_ram); -	CPPUNIT_TEST_SUITE_END(); -private: -	Settings settings; -	DrumKit kit; -	Random random; -	DrumkitCreator drumkit_creator; - -	const std::string small_kit_path = drumkit_creator.createSmallKit("small_kit"); -	const std::string huge_kit_path = drumkit_creator.createHugeKit("huge_kit"); -	const std::string audiofile = drumkit_creator.createMultiChannelWav("multi_channel.wav"); -public: -	void setUp() -	{ -		// just to be sure -		kit.clear(); -	} - -	void tearDown() -	{} - -	void small_drumkit() -	{ -		// load the small kit -		DrumKitParser parser(settings, kit, random); -		CPPUNIT_ASSERT(!parser.parseFile(small_kit_path)); - -		// check if the memchecker thinks it fits into memory -		CPPUNIT_ASSERT(enoughFreeMemory(kit)); -	} - -	void huge_drumkit() -	{ -		// load the huge kit -		DrumKitParser parser(settings, kit, random); -		CPPUNIT_ASSERT(!parser.parseFile(huge_kit_path)); - -		// check if the memchecker thinks it doesn't fit into memory -		CPPUNIT_ASSERT(!enoughFreeMemory(kit)); -	} - -	void correct_size() -	{ -		// check if the memchecker reports the right audiofile size -		uint64_t bytes_per_channel = 2199332; -		CPPUNIT_ASSERT_EQUAL(bytes_per_channel, calcBytesPerChannel(audiofile)); - -		// load the huge kit -		DrumKitParser parser(settings, kit, random); -		CPPUNIT_ASSERT(!parser.parseFile(huge_kit_path)); - -		// check if the protected method of the memchecker reports the correct size -		uint64_t needed_memory = 71478290000; -		CPPUNIT_ASSERT_EQUAL(needed_memory, calcNeededMemory(kit)); -	} - -	void check_free_ram() -	{ -		// check if the protected method reports a sane value of free ram -		uint64_t free_memory = calcFreeMemory(); -		uint64_t min_free_memory = 1000; -		uint64_t max_free_memory = 50000000000; -		CPPUNIT_ASSERT(free_memory >= min_free_memory && free_memory <= max_free_memory); -	} -}; - -// Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(MemCheckerTest); diff --git a/test/notifiertest.cc b/test/notifiertest.cc index 2b2e92e..fe00597 100644 --- a/test/notifiertest.cc +++ b/test/notifiertest.cc @@ -24,7 +24,7 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include <vector> @@ -48,15 +48,13 @@ public:  };  class NotifierTest -	: public CppUnit::TestFixture +	: public DGUnit  { -	CPPUNIT_TEST_SUITE(NotifierTest); -	CPPUNIT_TEST(testTest); -	CPPUNIT_TEST_SUITE_END(); -  public: -	void setUp() { } -	void tearDown() { } +	NotifierTest() +	{ +		DGUNIT_TEST(NotifierTest::testTest); +	}  	//! This just creates some drumkit.  	void testTest() @@ -73,9 +71,9 @@ public:  			std::vector<Probe*> ref;  			ref.push_back(&foo1);  			ref.push_back(&foo2); -			CPPUNIT_ASSERT_EQUAL(ref.size(), triggers.size()); -			CPPUNIT_ASSERT_EQUAL(ref[0], triggers[0]); -			CPPUNIT_ASSERT_EQUAL(ref[1], triggers[1]); +			DGUNIT_ASSERT_EQUAL(ref.size(), triggers.size()); +			DGUNIT_ASSERT_EQUAL(ref[0], triggers[0]); +			DGUNIT_ASSERT_EQUAL(ref[1], triggers[1]);  			notifier.disconnect(&foo1);  			notifier.disconnect(&foo2);  			triggers.clear(); @@ -88,9 +86,9 @@ public:  			std::vector<Probe*> ref;  			ref.push_back(&foo2);  			ref.push_back(&foo1); -			CPPUNIT_ASSERT_EQUAL(ref.size(), triggers.size()); -			CPPUNIT_ASSERT_EQUAL(ref[0], triggers[0]); -			CPPUNIT_ASSERT_EQUAL(ref[1], triggers[1]); +			DGUNIT_ASSERT_EQUAL(ref.size(), triggers.size()); +			DGUNIT_ASSERT_EQUAL(ref[0], triggers[0]); +			DGUNIT_ASSERT_EQUAL(ref[1], triggers[1]);  			notifier.disconnect(&foo1);  			notifier.disconnect(&foo2);  			triggers.clear(); @@ -100,4 +98,4 @@ public:  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(NotifierTest); +static NotifierTest test; diff --git a/test/paintertest.cc b/test/paintertest.cc index 75f97fa..c6e8615 100644 --- a/test/paintertest.cc +++ b/test/paintertest.cc @@ -24,7 +24,7 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include "../plugingui/canvas.h"  #include "../plugingui/painter.h" @@ -49,16 +49,14 @@ private:  };  class PainterTest -	: public CppUnit::TestFixture +	: public DGUnit  { -	CPPUNIT_TEST_SUITE(PainterTest); -	CPPUNIT_TEST(testDrawImage); -	CPPUNIT_TEST(testDrawText); -	CPPUNIT_TEST_SUITE_END(); -  public: -	void setUp() {} -	void tearDown() {} +	PainterTest() +	{ +		DGUNIT_TEST(PainterTest::testDrawImage); +		DGUNIT_TEST(PainterTest::testDrawText); +	}  	void testDrawImage()  	{ @@ -158,4 +156,4 @@ public:  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(PainterTest); +static PainterTest test; diff --git a/test/randomtest.cc b/test/randomtest.cc index 16a16c4..bc79432 100644 --- a/test/randomtest.cc +++ b/test/randomtest.cc @@ -24,7 +24,7 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include <random.h> @@ -32,22 +32,14 @@  #include <cmath>  class RandomTest -	: public CppUnit::TestFixture +	: public DGUnit  { -	CPPUNIT_TEST_SUITE(RandomTest); -	CPPUNIT_TEST(rangeTest); -	CPPUNIT_TEST(normalTest); -	CPPUNIT_TEST(chooseTest); -	CPPUNIT_TEST_SUITE_END(); -  public: -	void setUp() +	RandomTest()  	{ -	} - -	void tearDown() -	{ -	 +		DGUNIT_TEST(RandomTest::rangeTest); +		DGUNIT_TEST(RandomTest::normalTest); +		DGUNIT_TEST(RandomTest::chooseTest);  	}  	void rangeTest() @@ -63,16 +55,16 @@ public:  		{  			float rand_float = rand.floatInRange(float_lb, float_ub);  			float rand_int = rand.intInRange(int_lb, int_ub); -			CPPUNIT_ASSERT(rand_float >= float_lb && rand_float <= float_ub); -			CPPUNIT_ASSERT(rand_int >= int_lb && rand_int <= int_ub); +			DGUNIT_ASSERT(rand_float >= float_lb && rand_float <= float_ub); +			DGUNIT_ASSERT(rand_int >= int_lb && rand_int <= int_ub);  		} -		 +  		// check if the series of random numbers is the one we expect  		// for a certain seed.  		rand = Random(666); -		CPPUNIT_ASSERT_EQUAL(0, rand.intInRange(0,100)); -		CPPUNIT_ASSERT_EQUAL(61, rand.intInRange(0,100)); -		CPPUNIT_ASSERT_EQUAL(23, rand.intInRange(0,100)); +		DGUNIT_ASSERT_EQUAL(0, rand.intInRange(0,100)); +		DGUNIT_ASSERT_EQUAL(61, rand.intInRange(0,100)); +		DGUNIT_ASSERT_EQUAL(23, rand.intInRange(0,100));  	}  	void normalTest() @@ -97,8 +89,8 @@ public:  		float estimated_stddev = sqrt(sum_of_squares/nr_of_samples - estimated_mean*estimated_mean);  		float epsilon = 0.1; -		CPPUNIT_ASSERT(estimated_mean >= real_mean-epsilon && estimated_mean <= real_mean+epsilon); -		CPPUNIT_ASSERT(estimated_stddev >= real_stddev-epsilon && estimated_stddev <= real_stddev+epsilon); +		DGUNIT_ASSERT(estimated_mean >= real_mean-epsilon && estimated_mean <= real_mean+epsilon); +		DGUNIT_ASSERT(estimated_stddev >= real_stddev-epsilon && estimated_stddev <= real_stddev+epsilon);  	}  	void chooseTest() @@ -110,10 +102,10 @@ public:  		for (int i=0; i<nr_of_samples; i++)  		{ -			CPPUNIT_ASSERT_EQUAL(42, rand.choose(vec)); +			DGUNIT_ASSERT_EQUAL(42, rand.choose(vec));  		}  	}  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(RandomTest); +static RandomTest test; diff --git a/test/resampler.cc b/test/resampler.cc index 2b6862d..12732c1 100644 --- a/test/resampler.cc +++ b/test/resampler.cc @@ -24,7 +24,7 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include "../src/chresampler.h" @@ -32,80 +32,79 @@  static float round(float a) { return a<0.5?0:1; } -class test_resampler : public CppUnit::TestFixture +class test_resampler +	: public DGUnit  { -  CPPUNIT_TEST_SUITE(test_resampler); -	CPPUNIT_TEST(resampling); -	CPPUNIT_TEST(resampling_buffer_sizes); -	CPPUNIT_TEST_SUITE_END(); -  public: -	void setUp() {} -	void tearDown() {} - -  void resampling() -  { -    CHResampler r; -    CPPUNIT_ASSERT_EQUAL(1.0, r.getRatio()); -     -    r.setup(44100, 48000); -    CPPUNIT_ASSERT_EQUAL(44100.0/48000.0, r.getRatio()); - -    float in[BUFSZ]; -    for(int i = 0; i < BUFSZ; i++) in[i] = 0;//(float)i/(float)BUFSZ; -    in[100] = 1.0; - -    float out[BUFSZ]; -    r.setInputSamples(in, sizeof(in) / sizeof(float)); -    r.setOutputSamples(out, sizeof(out) / sizeof(float)); -    r.process(); -    CPPUNIT_ASSERT_EQUAL((size_t)0, r.getInputSampleCount()); - -    //    CPPUNIT_ASSERT_EQUAL(, r.getOutputSampleCount()); - -    int outidx = -1; -    int inidx = -1; -    for(int i = 0; i < BUFSZ - (int)r.getOutputSampleCount(); i++) { -      if(in[i] == 1.0) inidx = i; -      if(round(out[i]) == 1.0) outidx = i; -      //printf("in[% 4d]\t= %f\t", i, in[i]); -      //printf("out[% 4d]\t= %f\n", i, out[i]); -    } - -    CPPUNIT_ASSERT(inidx != -1); -    CPPUNIT_ASSERT(outidx != -1); - -    //printf("inidx: %d - outidx: %d\n", inidx, outidx); -    //CPPUNIT_ASSERT_EQUAL(71, inidx - outidx); // This does not make sense... +	test_resampler() +	{ +		DGUNIT_TEST(test_resampler::resampling); +		DGUNIT_TEST(test_resampler::resampling_buffer_sizes);  	} -  void resampling_buffer_sizes() -  { -    CHResampler r; -    CPPUNIT_ASSERT_EQUAL(1.0, r.getRatio()); -     -    double infs = 24000; -    double outfs = 48000; -    r.setup(infs, outfs); -    CPPUNIT_ASSERT_EQUAL(infs / outfs, r.getRatio()); - -    float in[BUFSZ]; -    float out[(int)(BUFSZ / r.getRatio())]; - -    // Preload resampler -    r.setOutputSamples(out, 1); -    while(r.getOutputSampleCount()) { -      r.setInputSamples(in, 1); -      r.process(); -    } - -    r.setInputSamples(in, sizeof(in) / sizeof(float)); -    r.setOutputSamples(out, sizeof(out) / sizeof(float)); -    r.process(); -    CPPUNIT_ASSERT_EQUAL((size_t)0, r.getInputSampleCount()); -    CPPUNIT_ASSERT_EQUAL((size_t)0, r.getOutputSampleCount()); -  } +	void resampling() +	{ +		CHResampler r; +		DGUNIT_ASSERT_EQUAL(1.0, r.getRatio()); + +		r.setup(44100, 48000); +		DGUNIT_ASSERT_EQUAL(44100.0/48000.0, r.getRatio()); + +		float in[BUFSZ]; +		for(int i = 0; i < BUFSZ; i++) in[i] = 0;//(float)i/(float)BUFSZ; +		in[100] = 1.0; + +		float out[BUFSZ]; +		r.setInputSamples(in, sizeof(in) / sizeof(float)); +		r.setOutputSamples(out, sizeof(out) / sizeof(float)); +		r.process(); +		DGUNIT_ASSERT_EQUAL((size_t)0, r.getInputSampleCount()); + +		//    DGUNIT_ASSERT_EQUAL(, r.getOutputSampleCount()); + +		int outidx = -1; +		int inidx = -1; +		for(int i = 0; i < BUFSZ - (int)r.getOutputSampleCount(); i++) { +			if(in[i] == 1.0) inidx = i; +			if(round(out[i]) == 1.0) outidx = i; +			//printf("in[% 4d]\t= %f\t", i, in[i]); +			//printf("out[% 4d]\t= %f\n", i, out[i]); +		} + +		DGUNIT_ASSERT(inidx != -1); +		DGUNIT_ASSERT(outidx != -1); + +		//printf("inidx: %d - outidx: %d\n", inidx, outidx); +		//DGUNIT_ASSERT_EQUAL(71, inidx - outidx); // This does not make sense... +	} + +	void resampling_buffer_sizes() +	{ +		CHResampler r; +		DGUNIT_ASSERT_EQUAL(1.0, r.getRatio()); + +		double infs = 24000; +		double outfs = 48000; +		r.setup(infs, outfs); +		DGUNIT_ASSERT_EQUAL(infs / outfs, r.getRatio()); + +		float in[BUFSZ]; +		float out[(int)(BUFSZ / r.getRatio())]; + +		// Preload resampler +		r.setOutputSamples(out, 1); +		while(r.getOutputSampleCount()) { +			r.setInputSamples(in, 1); +			r.process(); +		} + +		r.setInputSamples(in, sizeof(in) / sizeof(float)); +		r.setOutputSamples(out, sizeof(out) / sizeof(float)); +		r.process(); +		DGUNIT_ASSERT_EQUAL((size_t)0, r.getInputSampleCount()); +		DGUNIT_ASSERT_EQUAL((size_t)0, r.getOutputSampleCount()); +	}  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(test_resampler); +static test_resampler test; diff --git a/test/resource_test.cc b/test/resource_test.cc index 93dae8b..2e88c45 100644 --- a/test/resource_test.cc +++ b/test/resource_test.cc @@ -24,7 +24,7 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include "../plugingui/resource.h" @@ -42,37 +42,35 @@ public:  	}  }; -class ResourceTest : public CppUnit::TestFixture +class ResourceTest : public DGUnit  { -	CPPUNIT_TEST_SUITE(ResourceTest); -	CPPUNIT_TEST(externalReadTest); -	CPPUNIT_TEST(internalReadTest); -	CPPUNIT_TEST_SUITE_END(); +public: +	ResourceTest() +	{ +		DGUNIT_TEST(ResourceTest::externalReadTest); +		DGUNIT_TEST(ResourceTest::internalReadTest); +	}  	DrumkitCreator drumkit_creator; -public: -	void setUp() {} -	void tearDown() {} -  	void externalReadTest()  	{  		auto filename = drumkit_creator.create0000Wav("0000.wav");  		ResourceTester rc(filename); -		CPPUNIT_ASSERT(!rc.probeIsInternal()); -		CPPUNIT_ASSERT(rc.valid()); -		CPPUNIT_ASSERT_EQUAL((size_t)46, rc.size()); +		DGUNIT_ASSERT(!rc.probeIsInternal()); +		DGUNIT_ASSERT(rc.valid()); +		DGUNIT_ASSERT_EQUAL((size_t)46, rc.size());  	}  	void internalReadTest()  	{  		ResourceTester rc(":resources/bg.png"); -		CPPUNIT_ASSERT(rc.probeIsInternal()); -		CPPUNIT_ASSERT(rc.valid()); -		CPPUNIT_ASSERT_EQUAL((size_t)1123, rc.size()); +		DGUNIT_ASSERT(rc.probeIsInternal()); +		DGUNIT_ASSERT(rc.valid()); +		DGUNIT_ASSERT_EQUAL((size_t)1123, rc.size());  	}  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(ResourceTest); +static ResourceTest test; diff --git a/test/scopedfile.cc b/test/scopedfile.cc index 02af3f8..e63972e 100644 --- a/test/scopedfile.cc +++ b/test/scopedfile.cc @@ -43,7 +43,8 @@ ScopedFile::ScopedFile(const std::string& data)  	char templ[] = "/tmp/dg-scoped-file-XXXXXX"; // buffer for filename  	pimpl->fd = mkstemp(templ);  	pimpl->filename = templ; -	write(pimpl->fd, data.data(), data.size()); +	auto sz = write(pimpl->fd, data.data(), data.size()); +	(void)sz;  	close(pimpl->fd);  } diff --git a/test/semaphoretest.cc b/test/semaphoretest.cc index 1c137c4..c99e9a6 100644 --- a/test/semaphoretest.cc +++ b/test/semaphoretest.cc @@ -24,7 +24,7 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include <cassert> @@ -45,16 +45,15 @@ std::chrono::nanoseconds dist(const std::chrono::duration<float>& a,  }  class SemaphoreTest -	: public CppUnit::TestFixture +	: public DGUnit  { -	CPPUNIT_TEST_SUITE(SemaphoreTest); -	CPPUNIT_TEST(timeoutTest); -	CPPUNIT_TEST_SUITE_END(); -  public: -	void setUp() {} -	void tearDown() {} +	SemaphoreTest() +	{ +		DGUNIT_TEST(SemaphoreTest::timeoutTest); +	} +public:  	void timeoutTest()  	{  		Semaphore sem(0); @@ -62,26 +61,26 @@ public:  		{ // 1000ms timeout  			auto start = std::chrono::steady_clock::now();  			bool res = sem.wait(std::chrono::milliseconds(1000)); -			CPPUNIT_ASSERT(!res); // false means timeout +			DGUNIT_ASSERT(!res); // false means timeout  			auto stop = std::chrono::steady_clock::now();  			// Allow +/-1ms skew -			CPPUNIT_ASSERT(dist((stop - start), std::chrono::milliseconds(1000)) +			DGUNIT_ASSERT(dist((stop - start), std::chrono::milliseconds(1000))  			               < std::chrono::milliseconds(60));  		}  		{ // 100ms timeout  			auto start = std::chrono::steady_clock::now();  			bool res = sem.wait(std::chrono::milliseconds(100)); -			CPPUNIT_ASSERT(!res); // false means timeout +			DGUNIT_ASSERT(!res); // false means timeout  			auto stop = std::chrono::steady_clock::now();  			// Allow +/-1ms skew -			CPPUNIT_ASSERT(dist((stop - start), std::chrono::milliseconds(100)) +			DGUNIT_ASSERT(dist((stop - start), std::chrono::milliseconds(100))  			               < std::chrono::milliseconds(60));  		}  	}  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(SemaphoreTest); +static SemaphoreTest test; diff --git a/test/syncedsettings.cc b/test/syncedsettings.cc index 1d8e102..5e1e2fd 100644 --- a/test/syncedsettings.cc +++ b/test/syncedsettings.cc @@ -24,180 +24,189 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h"  #include <syncedsettings.h>  class SyncedSettingsTest -	: public CppUnit::TestFixture { -		 -	CPPUNIT_TEST_SUITE(SyncedSettingsTest); -	CPPUNIT_TEST(groupCanBeDefaultInitialized); -	CPPUNIT_TEST(groupDataCanBeCopied); -	 -	CPPUNIT_TEST(accessorCanGetFields); -	CPPUNIT_TEST(accessorCanSetFields); -	 -	CPPUNIT_TEST(groupHasCopyCtor); -	CPPUNIT_TEST(groupHasMoveCtor); -	CPPUNIT_TEST(groupHasCopyAssignOp); -	CPPUNIT_TEST(groupHasMoveAssignOp); -	 -	CPPUNIT_TEST(mimicRealUse); -	CPPUNIT_TEST_SUITE_END(); -	 -	private: -		struct TestData { -			float foo; -			bool bar; -			std::string msg; -		}; -	 -	public: -		void setUp() {} -		void tearDown() {} -		 -		void groupCanBeDefaultInitialized() { -			Group<TestData> data; -		} -		 -		void groupDataCanBeCopied() { -			Group<TestData> data; -			(TestData)data; // copies +	: public DGUnit +{ +public: +	SyncedSettingsTest() +	{ +		DGUNIT_TEST(SyncedSettingsTest::groupCanBeDefaultInitialized); +		DGUNIT_TEST(SyncedSettingsTest::groupDataCanBeCopied); + +		DGUNIT_TEST(SyncedSettingsTest::accessorCanGetFields); +		DGUNIT_TEST(SyncedSettingsTest::accessorCanSetFields); + +		DGUNIT_TEST(SyncedSettingsTest::groupHasCopyCtor); +		DGUNIT_TEST(SyncedSettingsTest::groupHasMoveCtor); +		DGUNIT_TEST(SyncedSettingsTest::groupHasCopyAssignOp); +		DGUNIT_TEST(SyncedSettingsTest::groupHasMoveAssignOp); + +		DGUNIT_TEST(SyncedSettingsTest::mimicRealUse); +	} + +private: +	struct TestData +	{ +		float foo; +		bool bar; +		std::string msg; +	}; + +public: +	void groupCanBeDefaultInitialized() +	{ +		Group<TestData> data; +	} + +	void groupDataCanBeCopied() +	{ +		Group<TestData> data; +		(TestData)data; // copies +	} + +	void accessorCanSetFields() +	{ +		Group<TestData> data; +		{ +			Accessor<TestData> a{data}; +			a.data.foo = 3.f; +			a.data.bar = false; +			a.data.msg = "hello";  		} -		 -		void accessorCanSetFields() { -			Group<TestData> data; -			{ -				Accessor<TestData> a{data}; -				a.data.foo = 3.f; -				a.data.bar = false; -				a.data.msg = "hello"; -			} -			TestData copy = data; -			CPPUNIT_ASSERT_EQUAL(copy.foo, 3.f); -			CPPUNIT_ASSERT_EQUAL(copy.bar, false); -			CPPUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); +		TestData copy = data; +		DGUNIT_ASSERT_EQUAL(copy.foo, 3.f); +		DGUNIT_ASSERT_EQUAL(copy.bar, false); +		DGUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); +	} + +	void accessorCanGetFields() +	{ +		Group<TestData> data; +		{ +			Accessor<TestData> a{data}; +			a.data.foo = 3.f; +			a.data.bar = false; +			a.data.msg = "hello";  		} -		 -		void accessorCanGetFields() { -			Group<TestData> data; -			{ -				Accessor<TestData> a{data}; -				a.data.foo = 3.f; -				a.data.bar = false; -				a.data.msg = "hello"; -			} -			// now read -			{ -				Accessor<TestData> a{data}; -				CPPUNIT_ASSERT_EQUAL(a.data.foo, 3.f); -				CPPUNIT_ASSERT_EQUAL(a.data.bar, false); -				CPPUNIT_ASSERT_EQUAL(a.data.msg, std::string{"hello"}); -			} +		// now read +		{ +			Accessor<TestData> a{data}; +			DGUNIT_ASSERT_EQUAL(a.data.foo, 3.f); +			DGUNIT_ASSERT_EQUAL(a.data.bar, false); +			DGUNIT_ASSERT_EQUAL(a.data.msg, std::string{"hello"});  		} -		 -		void groupHasCopyCtor() { -			Group<TestData> tmp; -			{ -				Accessor<TestData> a{tmp}; -				a.data.foo = 3.f; -				a.data.bar = false; -				a.data.msg = "hello"; -			} -			Group<TestData> data{tmp}; -			TestData copy = data; -			CPPUNIT_ASSERT_EQUAL(copy.foo, 3.f); -			CPPUNIT_ASSERT_EQUAL(copy.bar, false); -			CPPUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); +	} + +	void groupHasCopyCtor() +	{ +		Group<TestData> tmp; +		{ +			Accessor<TestData> a{tmp}; +			a.data.foo = 3.f; +			a.data.bar = false; +			a.data.msg = "hello";  		} -		 -		void groupHasMoveCtor() { -			Group<TestData> tmp; -			{ -				Accessor<TestData> a{tmp}; -				a.data.foo = 3.f; -				a.data.bar = false; -				a.data.msg = "hello"; -			} -			Group<TestData> data{std::move(tmp)}; -			TestData copy = data; -			CPPUNIT_ASSERT_EQUAL(copy.foo, 3.f); -			CPPUNIT_ASSERT_EQUAL(copy.bar, false); -			CPPUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); +		Group<TestData> data{tmp}; +		TestData copy = data; +		DGUNIT_ASSERT_EQUAL(copy.foo, 3.f); +		DGUNIT_ASSERT_EQUAL(copy.bar, false); +		DGUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); +	} + +	void groupHasMoveCtor() +	{ +		Group<TestData> tmp; +		{ +			Accessor<TestData> a{tmp}; +			a.data.foo = 3.f; +			a.data.bar = false; +			a.data.msg = "hello";  		} -		 -		void groupHasCopyAssignOp() { -			Group<TestData> tmp; -			{ -				Accessor<TestData> a{tmp}; -				a.data.foo = 3.f; -				a.data.bar = false; -				a.data.msg = "hello"; -			} -			Group<TestData> data = tmp; -			TestData copy = data; -			CPPUNIT_ASSERT_EQUAL(copy.foo, 3.f); -			CPPUNIT_ASSERT_EQUAL(copy.bar, false); -			CPPUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); +		Group<TestData> data{std::move(tmp)}; +		TestData copy = data; +		DGUNIT_ASSERT_EQUAL(copy.foo, 3.f); +		DGUNIT_ASSERT_EQUAL(copy.bar, false); +		DGUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); +	} + +	void groupHasCopyAssignOp() +	{ +		Group<TestData> tmp; +		{ +			Accessor<TestData> a{tmp}; +			a.data.foo = 3.f; +			a.data.bar = false; +			a.data.msg = "hello";  		} -		 -		void groupHasMoveAssignOp() { -			Group<TestData> tmp; -			{ -				Accessor<TestData> a{tmp}; -				a.data.foo = 3.f; -				a.data.bar = false; -				a.data.msg = "hello"; -			} -			Group<TestData> data = std::move(tmp); -			TestData copy = data; -			CPPUNIT_ASSERT_EQUAL(copy.foo, 3.f); -			CPPUNIT_ASSERT_EQUAL(copy.bar, false); -			CPPUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); +		Group<TestData> data = tmp; +		TestData copy = data; +		DGUNIT_ASSERT_EQUAL(copy.foo, 3.f); +		DGUNIT_ASSERT_EQUAL(copy.bar, false); +		DGUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); +	} + +	void groupHasMoveAssignOp() +	{ +		Group<TestData> tmp; +		{ +			Accessor<TestData> a{tmp}; +			a.data.foo = 3.f; +			a.data.bar = false; +			a.data.msg = "hello";  		} -		 -		void mimicRealUse() { -			struct Settings { -				struct Foo { -					float a{5}; -					float b{3}; -					bool enabled{true}; -				}; -				struct Bar { -					std::string label{"empty"}; -					float bla{0.f}; -				}; -				 -				Group<Foo> foo; -				Group<Bar> bar; +		Group<TestData> data = std::move(tmp); +		TestData copy = data; +		DGUNIT_ASSERT_EQUAL(copy.foo, 3.f); +		DGUNIT_ASSERT_EQUAL(copy.bar, false); +		DGUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); +	} + +	void mimicRealUse() +	{ +		struct Settings +		{ +			struct Foo { +				float a{5}; +				float b{3}; +				bool enabled{true};  			}; -			 -			Settings s; -			 -			// set bar settings -			{ -				Accessor<Settings::Bar> tmp{s.bar}; -				tmp.data.label = "hello world"; -				tmp.data.bla = 3.14f; -			} -			 -			// read foo settings -			{ -				Accessor<Settings::Foo> tmp{s.foo}; -				if (tmp.data.enabled) { -					// do some while locked -				} -			} -			// or: -			Settings::Foo copy = s.foo; -			if (copy.enabled) { -				// do some stuff without locking +			struct Bar { +				std::string label{"empty"}; +				float bla{0.f}; +			}; + +			Group<Foo> foo; +			Group<Bar> bar; +		}; + +		Settings s; + +		// set bar settings +		{ +			Accessor<Settings::Bar> tmp{s.bar}; +			tmp.data.label = "hello world"; +			tmp.data.bla = 3.14f; +		} + +		// read foo settings +		{ +			Accessor<Settings::Foo> tmp{s.foo}; +			if (tmp.data.enabled) { +				// do some while locked  			} -			CPPUNIT_ASSERT(copy.enabled);  		} +		// or: +		Settings::Foo copy = s.foo; +		if (copy.enabled) { +			// do some stuff without locking +		} +		DGUNIT_ASSERT(copy.enabled); +	}  };  // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(SyncedSettingsTest); - +static SyncedSettingsTest test; diff --git a/test/test.cc b/test/test.cc deleted file mode 100644 index 925a938..0000000 --- a/test/test.cc +++ /dev/null @@ -1,53 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            test.cc - * - *  Fri Nov 29 17:45:40 CET 2013 - *  Copyright 2013 Bent Bisballe Nyeng - *  deva@aasimon.org - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU Lesser General Public License as published by - *  the Free Software Foundation; either version 3 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo 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 Lesser General Public License for more details. - * - *  You should have received a copy of the GNU Lesser General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#include <cppunit/XmlOutputter.h> -#include <cppunit/extensions/TestFactoryRegistry.h> -#include <cppunit/ui/text/TestRunner.h> - -#include <fstream> - -int main(int argc, char* argv[]) -{ -  // Get the top level suite from the registry -  CppUnit::Test *suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest(); - -  // Adds the test to the list of test to run -  CppUnit::TextUi::TestRunner runner; -  runner.addTest( suite ); - -  std::ofstream myfile; -  myfile.open("result_" OUTPUT ".xml"); -  runner.setOutputter(new CppUnit::XmlOutputter(&runner.result(), myfile)); - -  // Run the tests. -  bool wasSucessful = runner.run(); - -  myfile.close(); - -  // Return error code 1 if the one of test failed. -  return wasSucessful ? 0 : 1; -} | 
