Sha256: 1fa034f9ceb38dda8beca0b1011e18dce249d0bffb655b06006e96a5720390f5

Contents?: true

Size: 1.97 KB

Versions: 35

Compression:

Stored size: 1.97 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

35 entries across 35 versions & 1 rubygems

Version Path
commonmarker-0.16.8 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.16.7 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.16.6 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.16.5 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.16.4 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.16.1 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.16.2 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.16.3 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.16.0 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.15.0 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.14.15 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.14.14 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.14.13 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.14.12 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.14.11 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.14.9 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.14.8 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.14.7 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.14.6 ext/commonmarker/cmark/api_test/harness.c
commonmarker-0.14.5 ext/commonmarker/cmark/api_test/harness.c