Added audio suite.
authorMarkus Kauppila <markus.kauppila@gmail.com>
Tue, 05 Jul 2011 22:11:12 +0300
changeset 5745 b7808df4148d
parent 5744 a5b70cefd30e
child 5746 b7a0b33b08f4
Added audio suite.
test/test-automation/Makefile.am
test/test-automation/build-scripts/install-tests.sh
test/test-automation/configure.ac
test/test-automation/testaudio/Makefile.am
test/test-automation/testaudio/testaudio.c
--- a/test/test-automation/Makefile.am	Tue Jul 05 21:27:35 2011 +0300
+++ b/test/test-automation/Makefile.am	Tue Jul 05 22:11:12 2011 +0300
@@ -1,6 +1,6 @@
 ACLOCAL_AMFLAGS = -I acinclude -I build-scripts
 
-SUBDIRS = testdummy testrect testplatform
+SUBDIRS = testdummy testrect testplatform testaudio
 
 bin_PROGRAMS = runner
 runner_SOURCES = runner.c SDL_test.c logger.c xml_logger.c plain_logger.c xml.c logger_helpers.c
--- a/test/test-automation/build-scripts/install-tests.sh	Tue Jul 05 21:27:35 2011 +0300
+++ b/test/test-automation/build-scripts/install-tests.sh	Tue Jul 05 22:11:12 2011 +0300
@@ -16,7 +16,7 @@
 fi
 
 # TODO: put the test in an array
-for suite in "testdummy" "testplatform" "testrect"
+for suite in "testdummy" "testplatform" "testrect" "testaudio"
 do
 	cp -f "$suite/.libs/lib$suite.$EXT" $DIRECTORY
 done
--- a/test/test-automation/configure.ac	Tue Jul 05 21:27:35 2011 +0300
+++ b/test/test-automation/configure.ac	Tue Jul 05 22:11:12 2011 +0300
@@ -35,7 +35,8 @@
 AC_CONFIG_FILES([Makefile
 				 testdummy/Makefile 
 				 testrect/Makefile
-				 testplatform/Makefile])
+				 testplatform/Makefile
+				 testaudio/Makefile])
 AC_OUTPUT
 
 echo ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/test-automation/testaudio/Makefile.am	Tue Jul 05 22:11:12 2011 +0300
@@ -0,0 +1,4 @@
+lib_LTLIBRARIES = libtestaudio.la
+libtestaudio_la_SOURCES = testaudio.c ../SDL_test.c ../logger.c ../logger_helpers.c ../plain_logger.c ../xml_logger.c ../xml.c
+libtestaudio_la_CLAGS = -fPIC -g
+libtestaudio_la_LDFLAGS = `sdl-config --libs`
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/test-automation/testaudio/testaudio.c	Tue Jul 05 22:11:12 2011 +0300
@@ -0,0 +1,156 @@
+/*
+  Copyright (C) 2011 Markus Kauppila <markus.kauppila@gmail.com>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+#include <stdio.h>
+
+#include <SDL/SDL.h>
+
+#include "../SDL_test.h"
+
+/* Test casess */
+static const TestCaseReference test1 =
+		(TestCaseReference){ "audio_printOutputDevices", "Checks available output (non-capture) device names.", TEST_ENABLED, 0, 0};
+
+static const TestCaseReference test2 =
+		(TestCaseReference){ "audio_printInputDevices", "Checks available input (capture) device names.", TEST_ENABLED, 0, 0};
+
+static const TestCaseReference test3 =
+		(TestCaseReference){ "audio_printAudioDrivers", "Checks available audio driver names.", TEST_ENABLED, 0, 0};
+
+static const TestCaseReference test4 =
+		(TestCaseReference){ "audio_printCurrentAudioDriver", "Checks current audio driver name with initialized audio.", TEST_ENABLED, 0, 0};
+
+/* Test suite */
+extern const TestCaseReference *testSuite[] =  {
+	&test1, &test2, &test3, &test4, NULL
+};
+
+
+TestCaseReference **QueryTestSuite() {
+	return (TestCaseReference **)testSuite;
+}
+
+/* Test case functions */
+
+/**
+ * @brief Checks available output (non-capture) device names.
+ */
+int audio_printOutputDevices()
+{
+   int ret;
+   int i, n;
+   char *name;
+
+   /* Start SDL. */
+   ret = SDL_Init( SDL_INIT_AUDIO );
+   AssertTrue(ret==0, "SDL_Init(SDL_INIT_AUDIO): %s", SDL_GetError());
+
+   /* Get number of devices. */
+   n = SDL_GetNumAudioDevices(0);
+   AssertTrue(n>=0, "Number of output devices < 0, reported as %i", n);
+   
+   /* List devices. */
+   if (n>0)
+   {
+      for (i=0; i<n; i++) {
+         name = SDL_GetAudioDeviceName(i, 0);
+         AssertTrue(name != NULL, "name != NULL");
+         AssertTrue(strlen(name)>0, "name blank");
+      }
+   }
+
+   /* Quit SDL. */
+   SDL_Quit();
+}
+
+/**
+ * @brief Checks available input (capture) device names.
+ */
+int audio_printInputDevices()
+{
+   int ret;
+   int i, n;
+   char *name;
+
+   /* Start SDL. */
+   ret = SDL_Init( SDL_INIT_AUDIO );
+   AssertTrue(ret==0, "SDL_Init(SDL_INIT_AUDIO): %s", SDL_GetError());
+
+   /* Get number of devices. */
+   n = SDL_GetNumAudioDevices(1);
+   AssertTrue(n>=0, "Number of input devices < 0, reported as %i", n);
+   
+   /* List devices. */
+   if (n>0)
+   {
+      for (i=0; i<n; i++) {
+         name = SDL_GetAudioDeviceName(i, 1);
+         AssertTrue(name != NULL, "name != NULL");
+         AssertTrue(strlen(name)>0, "name empty");
+      }
+   }
+
+   /* Quit SDL. */
+   SDL_Quit();
+}
+
+/**
+ * @brief Checks available audio driver names.
+ */
+int audio_printAudioDrivers()
+{
+   int i, n;
+   char *name;
+
+   /* Get number of drivers */
+   n = SDL_GetNumAudioDrivers();
+   AssertTrue(n>=0, "Number of audio drivers >= 0");
+   
+   /* List drivers. */
+   if (n>0)
+   {
+      for (i=0; i<n; i++) {
+         name = SDL_GetAudioDriver(i);
+         AssertTrue(name != NULL, "name != NULL");
+         AssertTrue(strlen(name)>0, "name empty");
+      }
+   }
+}
+
+/**
+ * @brief Checks current audio driver name with initialized audio.
+ */
+int audio_printCurrentAudioDriver()
+{
+   int ret;
+   char *name;
+
+   /* Start SDL. */
+   ret = SDL_Init(SDL_INIT_AUDIO);
+   AssertTrue(ret==0, "SDL_Init(SDL_INIT_AUDIO): %s", SDL_GetError());
+
+   /* Check current audio driver */
+   name = SDL_GetCurrentAudioDriver();
+   AssertTrue(name != NULL, "name != NULL");
+   AssertTrue(strlen(name)>0, "name empty");
+   
+   /* Quit SDL. */
+   SDL_Quit();   
+}