annotate test/automated/SDL_at.c @ 3746:be037e51f080 gsoc2009_unit_tests

Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
author Edgar Simo <bobbens@gmail.com>
date Tue, 04 Aug 2009 16:34:04 +0000
parents 808fad5fb593
children 9428ae743878
rev   line source
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
1 /*
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
2 * Common code for automated test suite.
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
3 *
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
4 * Written by Edgar Simo "bobbens"
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
5 *
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
6 * Released under Public Domain.
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
7 */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
8
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
9
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
10 #include "SDL_at.h"
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
11
3746
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
12 #include <stdio.h> /* printf/fprintf */
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
13 #include <stdarg.h> /* va_list */
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
14 #include <string.h> /* strdup */
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
15 #include <stdlib.h> /* free */
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
16
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
17
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
18 /*
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
19 * Internal usage SDL_AT variables.
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
20 */
3746
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
21 static char *at_suite_msg = NULL; /**< Testsuite message. */
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
22 static char *at_test_msg = NULL; /**< Testcase message. */
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
23 static int at_success = 0; /**< Number of successful testcases. */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
24 static int at_failure = 0; /**< Number of failed testcases. */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
25
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
26
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
27 /*
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
28 * Global properties.
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
29 */
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
30 static int at_verbose = 0; /**< Verbosity. */
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
31 static int at_quiet = 0; /**< Quietness. */
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
32
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
33
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
34 /**
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
35 * @brief Cleans up the automated testsuite state.
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
36 */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
37 static void SDL_ATcleanup (void)
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
38 {
3746
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
39 if (at_suite_msg != NULL)
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
40 free(at_suite_msg);
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
41 at_suite_msg = NULL;
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
42 if (at_test_msg != NULL)
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
43 free(at_test_msg);
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
44 at_test_msg = NULL;
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
45 at_success = 0;
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
46 at_failure = 0;
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
47 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
48
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
49
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
50 /**
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
51 * @brief Begin testsuite.
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
52 */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
53 void SDL_ATinit( const char *suite )
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
54 {
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
55 /* Do not open twice. */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
56 if (at_suite_msg) {
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
57 SDL_ATprintErr( "AT suite '%s' not closed before opening suite '%s'\n",
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
58 at_suite_msg, suite );
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
59 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
60 /* Must have a name. */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
61 if (suite == NULL) {
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
62 SDL_ATprintErr( "AT testsuite does not have a name.\n");
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
63 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
64 SDL_ATcleanup();
3746
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
65 at_suite_msg = strdup(suite);
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
66
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
67 /* Verbose message. */
3746
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
68 SDL_ATprintVerbose( 2, "--+---> Started Test Suite '%s'\n", at_suite_msg );
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
69 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
70
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
71
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
72 /**
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
73 * @brief Finish testsuite.
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
74 */
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
75 int SDL_ATfinish (void)
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
76 {
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
77 int failed;
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
78
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
79 /* Make sure initialized. */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
80 if (at_suite_msg == NULL) {
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
81 SDL_ATprintErr("Ended testcase without initializing.\n");
3722
d8772964e402 Added more strict warning flags.
Edgar Simo <bobbens@gmail.com>
parents: 3713
diff changeset
82 return 1;
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
83 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
84
3725
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
85 /* Finished without closing testcase. */
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
86 if (at_test_msg) {
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
87 SDL_ATprintErr( "AT suite '%s' finished without closing testcase '%s'\n",
3727
51900b161948 Fixed accidentle broken compile.
Edgar Simo <bobbens@gmail.com>
parents: 3725
diff changeset
88 at_suite_msg, at_test_msg );
3725
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
89 }
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
90
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
91 /* Verbose message. */
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
92 SDL_ATprintVerbose( 2, "<-+---- Finished Test Suite '%s'\n", at_suite_msg );
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
93
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
94 /* Display message if verbose on failed. */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
95 failed = at_failure;
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
96 if (at_failure > 0) {
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
97 SDL_ATprintErr( "%s : Failed %d out of %d testcases!\n",
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
98 at_suite_msg, at_failure, at_failure+at_success );
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
99 }
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
100 else {
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
101 SDL_ATprint( "%s : All tests successful (%d)\n",
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
102 at_suite_msg, at_success );
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
103 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
104
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
105 /* Clean up. */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
106 SDL_ATcleanup();
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
107
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
108 /* Return failed. */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
109 return failed;
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
110 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
111
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
112
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
113 /**
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
114 * @brief Sets a property.
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
115 */
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
116 void SDL_ATseti( int property, int value )
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
117 {
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
118 switch (property) {
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
119 case SDL_AT_VERBOSE:
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
120 at_verbose = value;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
121 break;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
122
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
123 case SDL_AT_QUIET:
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
124 at_quiet = value;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
125 break;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
126 }
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
127 }
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
128
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
129
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
130 /**
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
131 * @brief Gets a property.
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
132 */
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
133 void SDL_ATgeti( int property, int *value )
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
134 {
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
135 switch (property) {
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
136 case SDL_AT_VERBOSE:
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
137 *value = at_verbose;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
138 break;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
139
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
140 case SDL_AT_QUIET:
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
141 *value = at_quiet;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
142 break;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
143 }
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
144 }
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
145
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
146
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
147 /**
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
148 * @brief Begin testcase.
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
149 */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
150 void SDL_ATbegin( const char *testcase )
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
151 {
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
152 /* Do not open twice. */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
153 if (at_test_msg) {
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
154 SDL_ATprintErr( "AT testcase '%s' not closed before opening testcase '%s'\n",
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
155 at_test_msg, testcase );
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
156 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
157 /* Must have a name. */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
158 if (testcase == NULL) {
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
159 SDL_ATprintErr( "AT testcase does not have a name.\n");
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
160 }
3746
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
161 at_test_msg = strdup(testcase);
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
162
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
163 /* Verbose message. */
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
164 SDL_ATprintVerbose( 2, " +---> StartedTest Case '%s'\n", testcase );
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
165 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
166
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
167
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
168 /**
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
169 * @brief Ends the testcase with a succes or failure.
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
170 */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
171 static void SDL_ATendWith( int success )
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
172 {
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
173 /* Make sure initialized. */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
174 if (at_test_msg == NULL) {
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
175 SDL_ATprintErr("Ended testcase without initializing.\n");
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
176 return;
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
177 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
178
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
179 /* Mark as success or failure. */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
180 if (success)
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
181 at_success++;
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
182 else
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
183 at_failure++;
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
184
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
185 /* Verbose message. */
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
186 SDL_ATprintVerbose( 2, " +---- Finished Test Case '%s'\n", at_test_msg );
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
187
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
188 /* Clean up. */
3746
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
189 if (at_test_msg != NULL)
be037e51f080 Allocate memory for testsuite/testcase name so pointer doesn't get bashed.
Edgar Simo <bobbens@gmail.com>
parents: 3741
diff changeset
190 free(at_test_msg);
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
191 at_test_msg = NULL;
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
192 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
193
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
194
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
195 /**
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
196 * @brief Testcase test.
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
197 */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
198 int SDL_ATassert( const char *msg, int condition )
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
199 {
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
200 /* Condition failed. */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
201 if (!condition) {
3725
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
202 /* Print. */
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
203 SDL_ATprintErr( "%s [%s] : %s\n", at_suite_msg, at_test_msg, msg );
3725
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
204 /* End. */
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
205 SDL_ATendWith(0);
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
206 }
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
207 return !condition;
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
208 }
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
209
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
210
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
211 /**
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
212 * @brief Testcase test.
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
213 */
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
214 int SDL_ATvassert( int condition, const char *msg, ... )
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
215 {
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
216 va_list args;
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
217 char buf[256];
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
218
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
219 /* Condition failed. */
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
220 if (!condition) {
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
221 /* Get message. */
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
222 va_start( args, msg );
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
223 vsnprintf( buf, sizeof(buf), msg, args );
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
224 va_end( args );
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
225 /* Print. */
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
226 SDL_ATprintErr( "%s [%s] : %s\n", at_suite_msg, at_test_msg, buf );
3725
6eca2af6a86b Added SDL_ATvassert for printf style printing.
Edgar Simo <bobbens@gmail.com>
parents: 3722
diff changeset
227 /* End. */
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
228 SDL_ATendWith(0);
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
229 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
230 return !condition;
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
231 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
232
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
233
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
234 /**
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
235 * @brief End testcase.
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
236 */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
237 void SDL_ATend (void)
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
238 {
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
239 SDL_ATendWith(1);
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
240 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
241
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
242
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
243 /**
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
244 * @brief Displays an error.
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
245 */
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
246 int SDL_ATprintErr( const char *msg, ... )
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
247 {
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
248 va_list ap;
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
249 int ret;
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
250
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
251 /* Make sure there is something to print. */
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
252 if (msg == NULL)
3722
d8772964e402 Added more strict warning flags.
Edgar Simo <bobbens@gmail.com>
parents: 3713
diff changeset
253 return 0;
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
254 else {
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
255 va_start(ap, msg);
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
256 ret = vfprintf( stderr, msg, ap );
3711
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
257 va_end(ap);
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
258 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
259
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
260 return ret;
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
261 }
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
262
80839fc6b8e1 First revision of the automated test suite.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
263
3741
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
264 /**
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
265 * @brief Displays a message.
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
266 */
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
267 int SDL_ATprint( const char *msg, ... )
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
268 {
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
269 va_list ap;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
270 int ret;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
271
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
272 /* Only print if not quiet. */
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
273 if (at_quiet)
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
274 return 0;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
275
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
276 /* Make sure there is something to print. */
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
277 if (msg == NULL)
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
278 return 0;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
279 else {
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
280 va_start(ap, msg);
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
281 ret = vfprintf( stdout, msg, ap );
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
282 va_end(ap);
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
283 }
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
284
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
285 return ret;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
286 }
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
287
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
288
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
289 /**
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
290 * @brief Displays a verbose message.
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
291 */
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
292 int SDL_ATprintVerbose( int level, const char *msg, ... )
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
293 {
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
294 va_list ap;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
295 int ret;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
296
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
297 /* Only print if not quiet. */
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
298 if (at_quiet || (at_verbose < level))
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
299 return 0;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
300
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
301 /* Make sure there is something to print. */
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
302 if (msg == NULL)
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
303 return 0;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
304 else {
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
305 va_start(ap, msg);
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
306 ret = vfprintf( stdout, msg, ap );
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
307 va_end(ap);
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
308 }
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
309
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
310 return ret;
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
311 }
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
312
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
313
808fad5fb593 Added command line options.
Edgar Simo <bobbens@gmail.com>
parents: 3727
diff changeset
314