Ejemplo n.º 1
0
static void fail(int t_no, char *frmt, ...)
{
    char buf[10];
    size_t bufsz = sizeof(buf);
    va_list va;

    THR_MTX_LOCK(tc_mutex);

    va_start(va, frmt);
#if HAVE_VSNPRINTF
    vsnprintf(err_buf, ERR_BUF_SZ, frmt, va);
#else
    vsprintf(err_buf, frmt, va);
#endif
    va_end(va);

    tc_failed = 1;

    if (enif_getenv("ERL_ABORT_ON_FAILURE", buf, &bufsz) == 0
	&& strcmp("true", buf) == 0) {
	fprintf(stderr, "Testcase \"%s\" failed: %s\n",
		testcase_name(), err_buf);
	abort();
    }

    exit_thread(t_no, 0);
}
Ejemplo n.º 2
0
ErlDrvData
testcase_drv_start(ErlDrvPort port, char *command)
{
    InternalTestCaseState_t *itcs = (InternalTestCaseState_t *)
	driver_alloc(sizeof(InternalTestCaseState_t));
    if (!itcs) {
	return ERL_DRV_ERROR_GENERAL;
    }

    itcs->visible.testcase_name = testcase_name();
    itcs->visible.extra = NULL;
    itcs->port = port;
    itcs->result = TESTCASE_FAILED;
    itcs->comment = "";

    return (ErlDrvData) itcs;
}