Lines Matching refs:ctx

84 static void run_internal(idn_testsuite_t ctx, char *titles[]);
87 static void put_failure_message(idn_testsuite_t ctx, const char *msg,
93 idn_testsuite_t ctx = NULL;
97 ctx = (idn_testsuite_t) malloc(sizeof(struct idn_testsuite));
98 if (ctx == NULL)
101 ctx->testcases = NULL;
102 ctx->ntestcases = 0;
103 ctx->testcase_size = 0;
104 ctx->npassed = 0;
105 ctx->nfailed = 0;
106 ctx->nskipped = 0;
107 ctx->current_testcase = NULL;
108 ctx->current_status = idn_teststatus_pass;
109 ctx->msgproc = NULL;
110 ctx->verbose = 0;
112 ctx->testcases = (idn_testcase_t) malloc(sizeof(struct idn_testcase)
114 if (ctx->testcases == NULL)
116 ctx->testcase_size = INITIAL_TESTCASE_SIZE;
118 *ctxp = ctx;
122 if (ctx != NULL)
123 free(ctx->testcases);
124 free(ctx);
129 idn_testsuite_destroy(idn_testsuite_t ctx) {
132 assert(ctx != NULL);
134 for (i = 0; i < ctx->ntestcases; i++)
135 free(ctx->testcases[i].title);
137 free(ctx->testcases);
138 free(ctx);
142 idn_testsuite_addtestcase(idn_testsuite_t ctx, const char *title,
149 assert(ctx != NULL && title != NULL && proc != NULL);
156 if (ctx->ntestcases == ctx->testcase_size) {
157 new_size = ctx->testcase_size + INITIAL_TESTCASE_SIZE;
159 realloc(ctx->testcases,
163 ctx->testcases = new_buffer;
164 ctx->testcase_size = new_size;
167 new_testcase = ctx->testcases + ctx->ntestcases;
170 ctx->ntestcases++;
180 idn_testsuite_ntestcases(idn_testsuite_t ctx) {
181 assert(ctx != NULL);
182 return (ctx->ntestcases);
186 idn_testsuite_setverbose(idn_testsuite_t ctx) {
187 assert(ctx != NULL);
188 ctx->verbose = 1;
192 idn_testsuite_unsetverbose(idn_testsuite_t ctx) {
193 assert(ctx != NULL);
194 ctx->verbose = 0;
198 run_internal(idn_testsuite_t ctx, char *titles[]) {
203 assert(ctx != NULL);
205 ctx->npassed = 0;
206 ctx->nfailed = 0;
207 ctx->nskipped = 0;
209 for (i = 0; i < ctx->ntestcases; i++) {
210 ctx->current_testcase = ctx->testcases + i;
211 ctx->current_status = idn_teststatus_pass;
218 if (strcmp(ctx->current_testcase->title,
227 ctx->nskipped++;
230 if (ctx->verbose) {
232 ctx->testcases[i].title);
234 (ctx->testcases[i].proc)(ctx);
235 status = idn_teststatus_tostring(ctx->current_status);
236 if (ctx->verbose) {
241 switch (ctx->current_status) {
243 ctx->npassed++;
246 ctx->nfailed++;
249 ctx->nskipped++;
256 idn_testsuite_runall(idn_testsuite_t ctx) {
257 assert(ctx != NULL);
258 run_internal(ctx, NULL);
262 idn_testsuite_run(idn_testsuite_t ctx, char *titles[]) {
263 assert(ctx != NULL && titles != NULL);
264 run_internal(ctx, titles);
268 idn_testsuite_npassed(idn_testsuite_t ctx) {
269 assert(ctx != NULL);
270 return (ctx->npassed);
274 idn_testsuite_nfailed(idn_testsuite_t ctx) {
275 assert(ctx != NULL);
276 return (ctx->nfailed);
280 idn_testsuite_nskipped(idn_testsuite_t ctx) {
281 assert(ctx != NULL);
282 return (ctx->nskipped);
286 idn_testsuite_getstatus(idn_testsuite_t ctx) {
287 assert(ctx != NULL);
288 return (ctx->current_status);
292 idn_testsuite_setstatus(idn_testsuite_t ctx, idn_teststatus_t status) {
293 assert(ctx != NULL);
298 ctx->current_status = status;
323 idn_testsuite_assert(idn_testsuite_t ctx, const char *msg,
325 assert(ctx != NULL && msg != NULL && file != NULL);
327 if (idn_testsuite_getstatus(ctx) != idn_teststatus_pass)
329 idn_testsuite_setstatus(ctx, idn_teststatus_fail);
330 put_failure_message(ctx, msg, file, lineno);
334 idn_testsuite_assertint(idn_testsuite_t ctx, int gotten, int expected,
338 assert(ctx != NULL && file != NULL);
340 if (idn_testsuite_getstatus(ctx) != idn_teststatus_pass)
344 idn_testsuite_setstatus(ctx, idn_teststatus_fail);
347 put_failure_message(ctx, msg, file, lineno);
351 idn_testsuite_assertstring(idn_testsuite_t ctx,
358 assert(ctx != NULL && gotten != NULL && expected != NULL &&
361 if (idn_testsuite_getstatus(ctx) != idn_teststatus_pass)
365 idn_testsuite_setstatus(ctx, idn_teststatus_fail);
377 put_failure_message(ctx, msg, file, lineno);
385 idn_testsuite_assertptr(idn_testsuite_t ctx, const void *gotten,
389 assert(ctx != NULL && file != NULL);
391 if (idn_testsuite_getstatus(ctx) != idn_teststatus_pass)
395 idn_testsuite_setstatus(ctx, idn_teststatus_fail);
403 put_failure_message(ctx, msg, file, lineno);
407 idn_testsuite_assertptrne(idn_testsuite_t ctx,
412 assert(ctx != NULL && file != NULL);
414 if (idn_testsuite_getstatus(ctx) != idn_teststatus_pass)
418 idn_testsuite_setstatus(ctx, idn_teststatus_fail);
426 put_failure_message(ctx, msg, file, lineno);
430 idn_testsuite_assertresult(idn_testsuite_t ctx,
435 assert(ctx != NULL && file != NULL);
437 if (idn_testsuite_getstatus(ctx) != idn_teststatus_pass)
441 idn_testsuite_setstatus(ctx, idn_teststatus_fail);
445 put_failure_message(ctx, msg, file, lineno);
449 idn_testsuite_assertucs4string(idn_testsuite_t ctx,
457 assert(ctx != NULL && gotten != NULL && expected != NULL &&
460 if (idn_testsuite_getstatus(ctx) != idn_teststatus_pass)
464 idn_testsuite_setstatus(ctx, idn_teststatus_fail);
477 put_failure_message(ctx, msg, file, lineno);
554 put_failure_message(idn_testsuite_t ctx, const char *msg, const char *file,
560 proc = (ctx->msgproc == NULL) ?
561 idn_testsuite_msgtostderr : ctx->msgproc;
562 title = (ctx->current_testcase != NULL &&
563 ctx->current_testcase->title != NULL) ?
564 ctx->current_testcase->title : "anonymous";