LexLeo 0.0.0-dev+f8e5087-dirty
Technical documentation
Loading...
Searching...
No Matches
unit_tests_logger_default.c File Reference

Unit tests implementation for the logger_default adapter. More...

Include dependency graph for unit_tests_logger_default.c:

Go to the source code of this file.

Enumerations

enum  logger_default_create_logger_scenario_t {
  LOGGER_DEFAULT_CREATE_LOGGER_SCENARIO_OK = 0 , LOGGER_DEFAULT_CREATE_LOGGER_SCENARIO_OUT_NULL , LOGGER_DEFAULT_CREATE_LOGGER_SCENARIO_CFG_NULL , LOGGER_DEFAULT_CREATE_LOGGER_SCENARIO_ENV_NULL ,
  LOGGER_DEFAULT_CREATE_LOGGER_SCENARIO_OOM
}
 Scenarios for logger_default_create_logger(). More...
 
enum  logger_default_log_scenario_t {
  LOGGER_DEFAULT_LOG_SCENARIO_OK_NO_NEWLINE = 0 , LOGGER_DEFAULT_LOG_SCENARIO_MESSAGE_NULL , LOGGER_DEFAULT_LOG_SCENARIO_OK_APPEND_NEWLINE , LOGGER_DEFAULT_LOG_SCENARIO_STREAM_WRITE_FAIL ,
  LOGGER_DEFAULT_LOG_SCENARIO_TIME_OPS_FAIL
}
 Scenarios for logger_default_log(). More...
 

Functions

static void test_logger_default_default_cfg (void **state)
 Test logger_default_default_cfg().
 
static void test_logger_default_default_env (void **state)
 Test logger_default_default_env().
 
static void test_logger_default_destroy (void **state)
 Test logger_default_destroy().
 

Detailed Description

This file implements unit-level validation of the logger_default adapter contracts.

Covered surfaces:

See also:

Definition in file unit_tests_logger_default.c.

Enumeration Type Documentation

◆ logger_default_create_logger_scenario_t

logger_status_t logger_default_create_logger( logger_t **out, const logger_default_cfg_t *cfg, const logger_default_env_t *env);

Doubles:

  • fake_stream
  • fake_time
  • fake_memory

Isolation:

  • the public stream port wrapper is not doubled
  • stream runtime behavior is controlled through fake_stream

See also:

The scenarios below define the test oracle for logger_default_create_logger().

Enumerator
LOGGER_DEFAULT_CREATE_LOGGER_SCENARIO_OK 

WHEN logger_default_create_logger(out, cfg, env) is called with valid arguments EXPECT:

  • returns LOGGER_STATUS_OK
  • stores a non-NULL logger handle in *out
LOGGER_DEFAULT_CREATE_LOGGER_SCENARIO_OUT_NULL 

WHEN out == NULL EXPECT:

  • returns LOGGER_STATUS_INVALID
LOGGER_DEFAULT_CREATE_LOGGER_SCENARIO_CFG_NULL 

WHEN cfg == NULL and out != NULL EXPECT:

  • returns LOGGER_STATUS_INVALID
  • leaves *out unchanged
LOGGER_DEFAULT_CREATE_LOGGER_SCENARIO_ENV_NULL 

WHEN env == NULL and out != NULL EXPECT:

  • returns LOGGER_STATUS_INVALID
  • leaves *out unchanged
LOGGER_DEFAULT_CREATE_LOGGER_SCENARIO_OOM 

WHEN allocation required by logger_default_create_logger() fails EXPECT:

  • returns LOGGER_STATUS_OOM
  • leaves *out unchanged

Notes:

  • This scenario is exercised by configuring fake_memory to fail the allocation performed during logger creation.

Definition at line 149 of file unit_tests_logger_default.c.

◆ logger_default_log_scenario_t

static logger_status_t logger_default_log(void *backend, const char *message);

This private callback is exercised through the public logger_log() API on loggers created by logger_default_create_logger().

Doubles:

  • fake_stream
  • fake_time
  • fake_memory

Isolation:

  • the callback is not called directly
  • behavior is exercised through the public logger API

See also:

The scenarios below define the test oracle for logger_default_log().

Enumerator
LOGGER_DEFAULT_LOG_SCENARIO_OK_NO_NEWLINE 
LOGGER_DEFAULT_LOG_SCENARIO_MESSAGE_NULL 
LOGGER_DEFAULT_LOG_SCENARIO_OK_APPEND_NEWLINE 
LOGGER_DEFAULT_LOG_SCENARIO_STREAM_WRITE_FAIL 
LOGGER_DEFAULT_LOG_SCENARIO_TIME_OPS_FAIL 

Definition at line 449 of file unit_tests_logger_default.c.

Function Documentation

◆ test_logger_default_default_cfg()

static void test_logger_default_default_cfg ( void **  state)
static

logger_default_cfg_t logger_default_default_cfg(void);

Success:

Failure:

  • None.

See also:

Definition at line 62 of file unit_tests_logger_default.c.

◆ test_logger_default_default_env()

static void test_logger_default_default_env ( void **  state)
static

◆ test_logger_default_destroy()

static void test_logger_default_destroy ( void **  state)
static

static void logger_default_destroy(void *backend);

This private callback is exercised through the public logger_destroy() lifecycle entry point on a logger created by logger_default_create_logger().

Success:

  • backend-owned resources are released during logger_destroy()
  • the public logger handle is destroyed and set to NULL

Failure:

  • None.

Doubles:

  • fake_stream
  • fake_time
  • fake_memory

See also:

Definition at line 694 of file unit_tests_logger_default.c.