Testing out implementation for skipping unsupported test
authorMarkus Kauppila <markus.kauppila@gmail.com>
Mon, 18 Jul 2011 22:26:26 +0300
changeset 5772 a6c404e897af
parent 5771 3f908b34b645
child 5773 a610795fd8fe
Testing out implementation for skipping unsupported test automatically.
include/SDL_revision.h
test/test-automation/Makefile.am
test/test-automation/SDL_test.h
test/test-automation/runner.c
test/test-automation/support.c
test/test-automation/support.h
test/test-automation/testaudio/testaudio.c
--- a/include/SDL_revision.h	Mon Jul 18 17:16:38 2011 +0300
+++ b/include/SDL_revision.h	Mon Jul 18 22:26:26 2011 +0300
@@ -1,2 +1,2 @@
-#define SDL_REVISION "hg-5546:cd2167525827"
-#define SDL_REVISION_NUMBER 5546
+#define SDL_REVISION "hg-5659:3f908b34b645"
+#define SDL_REVISION_NUMBER 5659
--- a/test/test-automation/Makefile.am	Mon Jul 18 17:16:38 2011 +0300
+++ b/test/test-automation/Makefile.am	Mon Jul 18 22:26:26 2011 +0300
@@ -3,7 +3,7 @@
 SUBDIRS = testdummy testrect testplatform testaudio testsurface
 
 bin_PROGRAMS = runner
-runner_SOURCES = runner.c SDL_test.c xml_logger.c plain_logger.c xml.c logger_helpers.c
+runner_SOURCES = runner.c SDL_test.c xml_logger.c plain_logger.c xml.c logger_helpers.c support.c
 runner_CLAGS = -W -Wall -Wextra -g `sdl-config --cflags` -DSDL_NO_COMPAT
 runner_LDFLAGS = `sdl-config --libs` 
 
--- a/test/test-automation/SDL_test.h	Mon Jul 18 17:16:38 2011 +0300
+++ b/test/test-automation/SDL_test.h	Mon Jul 18 22:26:26 2011 +0300
@@ -21,8 +21,6 @@
 #ifndef _SDL_TEST_H
 #define _SDL_TEST_H
 
-#include <SDL/SDL.h>
-
 #include "logger.h"
 
 #include "common/common.h"
@@ -39,6 +37,7 @@
 #define TEST_ENABLED  1
 #define TEST_DISABLED 0
 
+//! Definition of all the possible test results
 #define TEST_RESULT_PASS			0
 #define TEST_RESULT_FAILURE			1
 #define TEST_RESULT_NO_ASSERT		2
@@ -46,6 +45,9 @@
 #define TEST_RESULT_KILLED			4
 #define TEST_RESULT_SETUP_FAILURE	5
 
+//! Definitions for test requirements
+#define TEST_REQUIRES_AUDIO 1
+
 /*!
  * Holds information about a test case
  */
--- a/test/test-automation/runner.c	Mon Jul 18 17:16:38 2011 +0300
+++ b/test/test-automation/runner.c	Mon Jul 18 22:26:26 2011 +0300
@@ -35,6 +35,7 @@
 #include "plain_logger.h"
 #include "xml_logger.h"
 #include "logger.h"
+#include "support.h"
 
 //!< Function pointer to a test case function
 typedef void (*TestCaseFp)(void *arg);
@@ -438,6 +439,12 @@
 		}
 	}
 
+	if(testReference->requirements & TEST_REQUIRES_AUDIO) {
+		//printf("Debug: checking for audio support.\n");
+		retVal = PlatformSupportsAudio();
+		//printf("Debug: Audio support: %d\n", retVal);
+	}
+
 	return retVal;
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/test-automation/support.c	Mon Jul 18 22:26:26 2011 +0300
@@ -0,0 +1,51 @@
+/*
+  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 "support.h"
+
+#include <SDL/SDL_config.h>
+
+int
+PlatformSupportsAudio()
+{
+	int retValue = 0;
+
+#ifdef SDL_AUDIO_DRIVER_COREAUDIO
+	retValue = 1;
+#endif
+#ifdef SDL_AUDIO_DRIVER_OSS
+	retValue = 1;
+#endif
+
+	return retValue;
+}
+
+/*
+int
+PlatformSupportsOpenGL() {
+	int retValue = 0;
+#define SDL_VIDEO_OPENGL
+	retValue = 1;
+#endif
+
+	return retValue;
+}
+
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/test-automation/support.h	Mon Jul 18 22:26:26 2011 +0300
@@ -0,0 +1,31 @@
+/*
+  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.
+*/
+
+#ifndef _SUPPORT_H
+#define _SUPPORT_H
+
+/*!
+ * Checks if platform supports audio.
+ *
+ * \return 1 if audio is supported, otherwise 0
+ */
+int PlatformSupportsAudio();
+
+#endif
--- a/test/test-automation/testaudio/testaudio.c	Mon Jul 18 17:16:38 2011 +0300
+++ b/test/test-automation/testaudio/testaudio.c	Mon Jul 18 22:26:26 2011 +0300
@@ -8,18 +8,18 @@
 
 #include "../SDL_test.h"
 
-/* Test casess */
+/* Test cases */
 static const TestCaseReference test1 =
-		(TestCaseReference){ "audio_printOutputDevices", "Checks available output (non-capture) device names.", TEST_ENABLED, 0, 0};
+		(TestCaseReference){ "audio_printOutputDevices", "Checks available output (non-capture) device names.", TEST_ENABLED, TEST_REQUIRES_AUDIO, 0};
 
 static const TestCaseReference test2 =
-		(TestCaseReference){ "audio_printInputDevices", "Checks available input (capture) device names.", TEST_ENABLED, 0, 0};
+		(TestCaseReference){ "audio_printInputDevices", "Checks available input (capture) device names.", TEST_ENABLED, TEST_REQUIRES_AUDIO, 0};
 
 static const TestCaseReference test3 =
-		(TestCaseReference){ "audio_printAudioDrivers", "Checks available audio driver names.", TEST_ENABLED, 0, 0};
+		(TestCaseReference){ "audio_printAudioDrivers", "Checks available audio driver names.", TEST_ENABLED, TEST_REQUIRES_AUDIO, 0};
 
 static const TestCaseReference test4 =
-		(TestCaseReference){ "audio_printCurrentAudioDriver", "Checks current audio driver name with initialized audio.", TEST_ENABLED, 0, 0};
+		(TestCaseReference){ "audio_printCurrentAudioDriver", "Checks current audio driver name with initialized audio.", TEST_ENABLED, TEST_REQUIRES_AUDIO, 0};
 
 /* Test suite */
 extern const TestCaseReference *testSuite[] =  {