Sha256: d0baf94e9e9082f640060edaccdf433d2a8551b28d8629e9d99730da8c3bc921

Contents?: true

Size: 1.88 KB

Versions: 12

Compression:

Stored size: 1.88 KB

Contents

#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "harness.h"

test_batch_runner*
test_batch_runner_new()
{
	return (test_batch_runner *)calloc(1, sizeof(test_batch_runner));
}

static void
test_result(test_batch_runner *runner, int cond, const char *msg, va_list ap)
{
	++runner->test_num;

	if (cond) {
		++runner->num_passed;
	}
	else {
		fprintf(stderr, "FAILED test %d: ", runner->test_num);
		vfprintf(stderr, msg, ap);
		fprintf(stderr, "\n");
		++runner->num_failed;
	}
}

void
SKIP(test_batch_runner *runner, int num_tests)
{
	runner->test_num    += num_tests;
	runner->num_skipped += num_tests;
}

void
OK(test_batch_runner *runner, int cond, const char *msg, ...)
{
	va_list ap;
	va_start(ap, msg);
	test_result(runner, cond, msg, ap);
	va_end(ap);
}

void
INT_EQ(test_batch_runner *runner, int got, int expected, const char *msg, ...)
{
	int cond = got == expected;

	va_list ap;
	va_start(ap, msg);
	test_result(runner, cond, msg, ap);
	va_end(ap);

	if (!cond) {
		fprintf(stderr, "  Got:      %d\n", got);
		fprintf(stderr, "  Expected: %d\n", expected);
	}
}

void
STR_EQ(test_batch_runner *runner, const char *got, const char *expected,
       const char *msg, ...)
{
	int cond = strcmp(got, expected) == 0;

	va_list ap;
	va_start(ap, msg);
	test_result(runner, cond, msg, ap);
	va_end(ap);

	if (!cond) {
		fprintf(stderr, "  Got:      \"%s\"\n", got);
		fprintf(stderr, "  Expected: \"%s\"\n", expected);
	}
}

int
test_ok(test_batch_runner *runner)
{
	return runner->num_failed == 0;
}

void
test_print_summary(test_batch_runner *runner)
{
	int num_passed  = runner->num_passed;
	int num_skipped = runner->num_skipped;
	int num_failed  = runner->num_failed;

	fprintf(stderr, "%d tests passed, %d failed, %d skipped\n",
		num_passed, num_failed, num_skipped);

	if (test_ok(runner)) {
		fprintf(stderr, "PASS\n");
	}
	else {
		fprintf(stderr, "FAIL\n");
	}
}

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
commonmarker-0.5.1 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.5.0 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.4.1 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.4.0 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.3.0 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.2.1 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.2.0 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.1.3 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.1.2 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.1.1 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.1.0 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.0.1 ext/commonmarker/cmark/api_test/harness.c