/* See LICENSE file for copyright and license details. */ #include "common.h" #ifndef TEST int liblog_init_context(struct liblog_context *ctx) { if (!ctx) { errno = EINVAL; return -1; } ctx->internal_state = NULL; ctx->outputs = NULL; ctx->noutputs = 0; ctx->logmask = 0; liblog_apply_env_mask(ctx); return 0; } #else int main(void) { struct liblog_context ctx; char *nullenv[] = {NULL}; environ = nullenv; errno = 0; ASSERT_EQ_INT(liblog_init_context(NULL), -1); ASSERT_EQ_INT(errno, EINVAL); ASSERT_ZERO(liblog_init_context(&ctx)); ASSERT_IS_NULL(ctx.internal_state); ASSERT_IS_NULL(ctx.outputs); ASSERT_ZERO(ctx.noutputs); ASSERT_EQ_UINT(ctx.logmask, ((1U << 9) - 1U) ^ ((1U << ((int)LIBLOG_WARNING / LOGLEVEL_DELTA + 1)) - 1U)); return 0; } #endif