summaryrefslogtreecommitdiff
path: root/test/cachemanagertest.cc
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2016-01-19 08:32:44 +0100
committerBent Bisballe Nyeng <deva@aasimon.org>2016-01-19 08:32:44 +0100
commit22b99e7d0379d1b347ea04c27e46b83ed40d057b (patch)
tree3b0daf93a9f953cf0b9c9e6ad05dff762b02315b /test/cachemanagertest.cc
parent2a9dda465230b3b129dc942095a7c8a99ef5fa50 (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.cc149
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);
-
-
-