Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Latest commit

 

History

History
150 lines (133 loc) · 3.16 KB

File metadata and controls

150 lines (133 loc) · 3.16 KB
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
* Common code for automated test suite.
*
* Written by Edgar Simo "bobbens"
*
* Released under Public Domain.
*/
/**
* @file SDL_at.h
*
* @brief Handles automatic testing functionality.
*
* You create a testsuite and then run multiple testcases within that suite.
* Syntax is similar to OpenGL. An example would be:
*
* @code
* int f;
* SDL_ATinit( "My testsuite" );
*
* SDL_ATbegin( "My first testcase" );
Jul 11, 2009
Jul 11, 2009
23
* if (!SDL_ATassert( (1+1)==2, "Trying '1+1=2'."))
Jul 1, 2009
Jul 1, 2009
24
* return;
25
26
*
* SDL_ATbegin( "My second testcase" );
Jul 11, 2009
Jul 11, 2009
27
* if (!SDL_ATassert( (4/2)==2, "Trying '4/2=2'."))
Jul 1, 2009
Jul 1, 2009
28
* return;
29
30
31
32
33
34
35
36
37
38
39
40
*
* f = SDL_ATend();
* @endcode
*
* @author Edgar Simo "bobbens"
*/
#ifndef _SDL_AT_H
# define _SDL_AT_H
Aug 2, 2009
Aug 2, 2009
41
42
43
44
45
46
47
enum {
SDL_AT_VERBOSE,
SDL_AT_QUIET
};
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
* Suite level actions.
*/
/**
* @brief Starts the testsuite.
*
* @param suite Name of the suite to start testing.
*/
void SDL_ATinit( const char *suite );
/**
* @brief Finishes the testsuite printing out global results if verbose.
*
* @param verbose Displays global results.
*/
Aug 2, 2009
Aug 2, 2009
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
int SDL_ATfinish (void);
/**
* @brief Sets a global property value.
*
* @param property Property to set.
* @param value Value to set property to.
*/
void SDL_ATseti( int property, int value );
/**
* @brief Gets a global property value.
*
* @param property Property to get.
* @param[out] value Value of the property.
*/
void SDL_ATgeti( int property, int *value );
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/*
* Testcase level actions.
*/
/**
* @brief Begins a testcase.
*
* @param testcase Name of the testcase to begin.
*/
void SDL_ATbegin( const char *testcase );
/**
* @brief Checks a condition in the testcase.
*
* Will automatically call SDL_ATend if the condition isn't met.
*
* @param condition Condition to make sure is true.
Jul 11, 2009
Jul 11, 2009
94
* @param msg Message to display for failure.
95
96
97
* @return Returns 1 if the condition isn't met.
*/
int SDL_ATassert( const char *msg, int condition );
Jul 11, 2009
Jul 11, 2009
98
99
100
101
102
103
104
105
106
107
/**
* @brief Checks a condition in the testcase.
*
* Will automatically call SDL_ATend if the condition isn't met.
*
* @param condition Condition to make sure is true.
* @param msg Message to display for failure with printf style formatting.
* @return Returns 1 if the condition isn't met.
*/
int SDL_ATvassert( int condition, const char *msg, ... );
108
109
110
111
112
113
114
115
116
/**
* @brief Ends a testcase.
*/
void SDL_ATend (void);
/*
* Misc functions.
*/
Aug 2, 2009
Aug 2, 2009
117
118
119
120
121
122
123
/**
* @brief Prints an error.
*
* @param msg printf formatted string to display.
* @return Number of character printed.
*/
int SDL_ATprintErr( const char *msg, ... );
124
125
126
127
128
129
/**
* @brief Prints some text.
*
* @param msg printf formatted string to display.
* @return Number of character printed.
*/
Aug 4, 2009
Aug 4, 2009
130
131
#define SDL_ATprint(msg, args...) \
SDL_ATprintVerbose( 0, msg, ## args)
Aug 2, 2009
Aug 2, 2009
132
133
134
/**
* @brief Prints some verbose text.
*
Aug 4, 2009
Aug 4, 2009
135
136
137
138
139
140
* Verbosity levels are as follows:
*
* - 0 standard stdout, enabled by default
* - 1 additional information
* - 2 detailed information (spammy)
*
Aug 2, 2009
Aug 2, 2009
141
142
143
144
145
* @param level Level of verbosity to print at.
* @param msg printf formatted string to display.
* @return Number of character printed.
*/
int SDL_ATprintVerbose( int level, const char *msg, ... );
146
147
148
#endif /* _SDL_AT_H */