author | Andreas Schiffler <aschiffler@ferzkopp.net> |
Fri, 30 Nov 2012 23:25:34 -0800 | |
changeset 6717 | 2acd95060548 |
child 6721 | 53b71f45a53a |
permissions | -rw-r--r-- |
aschiffler@6717 | 1 |
/* |
aschiffler@6717 | 2 |
Simple DirectMedia Layer |
aschiffler@6717 | 3 |
Copyright (C) 1997-2012 Sam Lantinga <slouken@libsdl.org> |
aschiffler@6717 | 4 |
|
aschiffler@6717 | 5 |
This software is provided 'as-is', without any express or implied |
aschiffler@6717 | 6 |
warranty. In no event will the authors be held liable for any damages |
aschiffler@6717 | 7 |
arising from the use of this software. |
aschiffler@6717 | 8 |
|
aschiffler@6717 | 9 |
Permission is granted to anyone to use this software for any purpose, |
aschiffler@6717 | 10 |
including commercial applications, and to alter it and redistribute it |
aschiffler@6717 | 11 |
freely, subject to the following restrictions: |
aschiffler@6717 | 12 |
|
aschiffler@6717 | 13 |
1. The origin of this software must not be misrepresented; you must not |
aschiffler@6717 | 14 |
claim that you wrote the original software. If you use this software |
aschiffler@6717 | 15 |
in a product, an acknowledgment in the product documentation would be |
aschiffler@6717 | 16 |
appreciated but is not required. |
aschiffler@6717 | 17 |
2. Altered source versions must be plainly marked as such, and must not be |
aschiffler@6717 | 18 |
misrepresented as being the original software. |
aschiffler@6717 | 19 |
3. This notice may not be removed or altered from any source distribution. |
aschiffler@6717 | 20 |
*/ |
aschiffler@6717 | 21 |
|
aschiffler@6717 | 22 |
/** |
aschiffler@6717 | 23 |
* \file SDL_test_harness.h |
aschiffler@6717 | 24 |
* |
aschiffler@6717 | 25 |
* Include file for SDL test framework. |
aschiffler@6717 | 26 |
* |
aschiffler@6717 | 27 |
* This code is a part of the SDL2_test library, not the main SDL library. |
aschiffler@6717 | 28 |
*/ |
aschiffler@6717 | 29 |
|
aschiffler@6717 | 30 |
/* |
aschiffler@6717 | 31 |
Defines types for test case definitions and the test execution harness API. |
aschiffler@6717 | 32 |
|
aschiffler@6717 | 33 |
Based on original GSOC code by Markus Kauppila <markus.kauppila@gmail.com> |
aschiffler@6717 | 34 |
*/ |
aschiffler@6717 | 35 |
|
aschiffler@6717 | 36 |
#ifndef _SDL_test_harness_h |
aschiffler@6717 | 37 |
#define _SDL_test_harness_h |
aschiffler@6717 | 38 |
|
aschiffler@6717 | 39 |
#include "begin_code.h" |
aschiffler@6717 | 40 |
/* Set up for C function definitions, even when using C++ */ |
aschiffler@6717 | 41 |
#ifdef __cplusplus |
aschiffler@6717 | 42 |
/* *INDENT-OFF* */ |
aschiffler@6717 | 43 |
extern "C" { |
aschiffler@6717 | 44 |
/* *INDENT-ON* */ |
aschiffler@6717 | 45 |
#endif |
aschiffler@6717 | 46 |
|
aschiffler@6717 | 47 |
|
aschiffler@6717 | 48 |
//! Definitions for test case structures |
aschiffler@6717 | 49 |
#define TEST_ENABLED 1 |
aschiffler@6717 | 50 |
#define TEST_DISABLED 0 |
aschiffler@6717 | 51 |
|
aschiffler@6717 | 52 |
//! Definitions of assert results |
aschiffler@6717 | 53 |
#define ASSERT_PASS 1 |
aschiffler@6717 | 54 |
#define ASSERT_FAIL 0 |
aschiffler@6717 | 55 |
|
aschiffler@6717 | 56 |
//! Definition of all the possible test return values of the test case method |
aschiffler@6717 | 57 |
#define TEST_ABORTED -1 |
aschiffler@6717 | 58 |
#define TEST_COMPLETED 0 |
aschiffler@6717 | 59 |
#define TEST_SKIPPED 1 |
aschiffler@6717 | 60 |
|
aschiffler@6717 | 61 |
//! Definition of all the possible test results for the harness |
aschiffler@6717 | 62 |
#define TEST_RESULT_PASSED 0 |
aschiffler@6717 | 63 |
#define TEST_RESULT_FAILED 1 |
aschiffler@6717 | 64 |
#define TEST_RESULT_NO_ASSERT 2 |
aschiffler@6717 | 65 |
#define TEST_RESULT_SKIPPED 3 |
aschiffler@6717 | 66 |
#define TEST_RESULT_KILLED 4 |
aschiffler@6717 | 67 |
#define TEST_RESULT_SETUP_FAILURE 5 |
aschiffler@6717 | 68 |
|
aschiffler@6717 | 69 |
//!< Function pointer to a test case setup function (run before every test) |
aschiffler@6717 | 70 |
typedef void (*SDLTest_TestCaseSetUpFp)(void *arg); |
aschiffler@6717 | 71 |
|
aschiffler@6717 | 72 |
//!< Function pointer to a test case function |
aschiffler@6717 | 73 |
typedef void (*SDLTest_TestCaseFp)(void *arg); |
aschiffler@6717 | 74 |
|
aschiffler@6717 | 75 |
//!< Function pointer to a test case teardown function (run after every test) |
aschiffler@6717 | 76 |
typedef void (*SDLTest_TestCaseTearDownFp)(void *arg); |
aschiffler@6717 | 77 |
|
aschiffler@6717 | 78 |
/** |
aschiffler@6717 | 79 |
* Holds information about a single test case. |
aschiffler@6717 | 80 |
*/ |
aschiffler@6717 | 81 |
typedef struct SDLTest_TestCaseReference { |
aschiffler@6717 | 82 |
/*!< Func2Stress */ |
aschiffler@6717 | 83 |
SDLTest_TestCaseFp testCase; |
aschiffler@6717 | 84 |
/*!< Short name (or function name) "Func2Stress" */ |
aschiffler@6717 | 85 |
char *name; |
aschiffler@6717 | 86 |
/*!< Long name or full description "This test pushes func2() to the limit." */ |
aschiffler@6717 | 87 |
char *description; |
aschiffler@6717 | 88 |
/*!< Set to TEST_ENABLED or TEST_DISABLED (test won't be run) */ |
aschiffler@6717 | 89 |
int enabled; |
aschiffler@6717 | 90 |
} SDLTest_TestCaseReference; |
aschiffler@6717 | 91 |
|
aschiffler@6717 | 92 |
/** |
aschiffler@6717 | 93 |
* Holds information about a test suite (multiple test cases). |
aschiffler@6717 | 94 |
*/ |
aschiffler@6717 | 95 |
typedef struct TestSuiteReference { |
aschiffler@6717 | 96 |
/*!< "PlatformSuite" */ |
aschiffler@6717 | 97 |
char *name; |
aschiffler@6717 | 98 |
/*!< The function that is run before each test. NULL skips. */ |
aschiffler@6717 | 99 |
SDLTest_TestCaseSetUpFp testSetUp; |
aschiffler@6717 | 100 |
/*!< The test cases that are run as part of the suite. Last item should be NULL. */ |
aschiffler@6717 | 101 |
const SDLTest_TestCaseReference **testCases; |
aschiffler@6717 | 102 |
/*!< The function that is run after each test. NULL skips. */ |
aschiffler@6717 | 103 |
SDLTest_TestCaseTearDownFp testTearDown; |
aschiffler@6717 | 104 |
} TestSuiteReference; |
aschiffler@6717 | 105 |
|
aschiffler@6717 | 106 |
/* Ends C function definitions when using C++ */ |
aschiffler@6717 | 107 |
#ifdef __cplusplus |
aschiffler@6717 | 108 |
/* *INDENT-OFF* */ |
aschiffler@6717 | 109 |
} |
aschiffler@6717 | 110 |
/* *INDENT-ON* */ |
aschiffler@6717 | 111 |
#endif |
aschiffler@6717 | 112 |
#include "close_code.h" |
aschiffler@6717 | 113 |
|
aschiffler@6717 | 114 |
#endif /* _SDL_test_harness_h */ |
aschiffler@6717 | 115 |
|
aschiffler@6717 | 116 |
/* vi: set ts=4 sw=4 expandtab: */ |