diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2016-01-19 08:32:44 +0100 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2016-01-20 13:33:45 +0100 |
commit | 7788892bfb8aaceaa67fccad1ea4aff325a5ac32 (patch) | |
tree | f86a2892629760037b1221cc1306ba6b703a2e70 /test/cachemanagertest.cc | |
parent | 189cce0e23dddaaaf4ab6e1cac387c9c954f22fa (diff) |
Split CacheManager into several AudioCache classes and refactored the lot of them. Unit tests added.
Diffstat (limited to 'test/cachemanagertest.cc')
-rw-r--r-- | test/cachemanagertest.cc | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/test/cachemanagertest.cc b/test/cachemanagertest.cc deleted file mode 100644 index d521f83..0000000 --- a/test/cachemanagertest.cc +++ /dev/null @@ -1,149 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - * cachemanagertest.cc - * - * Sun Apr 19 10:15:59 CEST 2015 - * Copyright 2015 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 General Public License as published by - * the Free Software Foundation; either version 2 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 General Public License for more details. - * - * You should have received a copy of the GNU 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/extensions/HelperMacros.h> - -#include <cachemanager.h> -#include <unistd.h> - -#define FRAMESIZE 1024 - -class test_cachemanager : public CppUnit::TestFixture -{ - CPPUNIT_TEST_SUITE(test_cachemanager); - CPPUNIT_TEST(singlechannel_nonthreaded); - CPPUNIT_TEST(singlechannel_threaded); - CPPUNIT_TEST(multichannel_nonthreaded); - CPPUNIT_TEST(multichannel_threaded); - CPPUNIT_TEST_SUITE_END(); - -public: - void setUp() {} - void tearDown() {} - - void testit(const char *filename, int channel, bool threaded) - { - - // Reference file: - AudioFile afref(filename, channel); - printf("afref.load\n"); - afref.load(ALL_SAMPLES); - - // Input file: - AudioFile af(filename, channel); - printf("af.load\n"); - //af.load(ALL_SAMPLES); - af.load(4096); - - CacheManager cm; - printf("cm.init\n"); - cm.init(100, threaded); - - cm.setFrameSize(FRAMESIZE); - - cacheid_t id; - // TODO: test 0 ... FRAMESIZE - 1 - size_t initial_samples_needed = (FRAMESIZE - 1) / 2; - - printf("open: initial_samples_needed: %d\n", initial_samples_needed); - sample_t *s = cm.open(&af, initial_samples_needed, channel, id); - size_t size = initial_samples_needed; - size_t offset = 0; - - // Test pre cache: - for(size_t i = 0; i < size; i++) { - CPPUNIT_ASSERT_EQUAL(afref.data[offset], s[i]); - offset++; - } - - // Test the rest - while(offset < afref.size) { - - if(threaded) { - usleep(1000000.0 / 44100.0 * FRAMESIZE); - //sleep(1); // sleep 1 second - } - - //printf("offset: %d\t", offset); - s = cm.next(id, size); - //printf("next -> size: %d\n", size); - for(size_t i = 0; (i < size) && (offset < afref.size); i++) { - /* - if(afref.data[offset] != s[i]) { - printf("offset: %d, size: %d, diff: %d\n", offset, afref.size, afref.size - offset); - } - */ - CPPUNIT_ASSERT_EQUAL(afref.data[offset], s[i]); - offset++; - } - } - - printf("done\n"); - } - - void singlechannel_nonthreaded() - { - printf("\nsinglechannel_nonthreaded()\n"); - const char filename[] = "kit/ride-single-channel.wav"; - int channel = 0; - bool threaded = false; - testit(filename, channel, threaded); - } - - void singlechannel_threaded() - { - printf("\nsinglechannel_threaded()\n"); - const char filename[] = "kit/ride-single-channel.wav"; - int channel = 0; - bool threaded = true; - testit(filename, channel, threaded); - } - - void multichannel_nonthreaded() - { - printf("\nmultichannel_nonthreaded()\n"); - const char filename[] = "kit/ride-multi-channel.wav"; - int channel = 0; - bool threaded = false; - testit(filename, channel, threaded); - } - - void multichannel_threaded() - { - printf("\nmultichannel_threaded()\n"); - const char filename[] = "kit/ride-multi-channel.wav"; - int channel = 0; - bool threaded = true; - testit(filename, channel, threaded); - } - -}; - -// Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(test_cachemanager); - - - |