61 lines
2.6 KiB
C
61 lines
2.6 KiB
C
#ifndef _TESTING_HELPERS_H_
|
|
#define _TESTING_HELPERS_H_
|
|
|
|
#include <unity.h>
|
|
|
|
#include "uclisp.h"
|
|
#include "utility.h"
|
|
|
|
#define TEST_ASSERT_OBJ_ERROR(obj) \
|
|
TEST_ASSERT_EQUAL_MESSAGE(UCL_TYPE_ERROR, (obj)->type, "Expected error type")
|
|
|
|
#define TEST_ASSERT_OBJ_SYMBOL(obj) \
|
|
TEST_ASSERT_EQUAL_MESSAGE(UCL_TYPE_SYMBOL, (obj)->type, "Expected symbol type")
|
|
|
|
#define TEST_ASSERT_OBJ_SYMBOL_V(obj, value) \
|
|
do { \
|
|
TEST_ASSERT_NOT_NULL(obj); \
|
|
TEST_ASSERT_EQUAL_MESSAGE(UCL_TYPE_SYMBOL, (obj)->type, "Expected symbol type"); \
|
|
TEST_ASSERT_EQUAL_STRING((obj)->symbol, value); \
|
|
} while (0)
|
|
|
|
#define TEST_ASSERT_OBJ_STRING(obj) \
|
|
TEST_ASSERT_EQUAL_MESSAGE(UCL_TYPE_STRING, (obj)->type, "Expected string type")
|
|
|
|
#define TEST_ASSERT_OBJ_STRING_V(obj, value) \
|
|
do { \
|
|
TEST_ASSERT_NOT_NULL(obj); \
|
|
TEST_ASSERT_EQUAL_MESSAGE(UCL_TYPE_STRING, (obj)->type, "Expected string type"); \
|
|
TEST_ASSERT_EQUAL_STRING((obj)->string, value); \
|
|
} while (0)
|
|
|
|
#define TEST_ASSERT_OBJ_INT(obj) \
|
|
TEST_ASSERT_EQUAL_MESSAGE(UCL_TYPE_INT, (obj)->type, "Expected int type")
|
|
|
|
#define TEST_ASSERT_OBJ_INT_V(obj, value) \
|
|
do { \
|
|
TEST_ASSERT_NOT_NULL(obj); \
|
|
TEST_ASSERT_EQUAL_MESSAGE(UCL_TYPE_INT, (obj)->type, "Expected int type"); \
|
|
TEST_ASSERT_EQUAL(value, (obj)->integer); \
|
|
} while (0)
|
|
|
|
#define TEST_ASSERT_OBJ_LIST(obj) \
|
|
TEST_ASSERT_EQUAL_MESSAGE(UCL_TYPE_CELL, obj->type, "Expected cell type")
|
|
|
|
#define TEST_ASSERT_LIST_LEN(list, len) \
|
|
do { \
|
|
TEST_ASSERT_OBJ_LIST(list); \
|
|
TEST_ASSERT_EQUAL(len, ucl_list_length(list)->integer); \
|
|
} while(0)
|
|
|
|
#define TEST_ASSERT_NIL(obj) \
|
|
TEST_ASSERT_LIST_LEN(obj, 0)
|
|
|
|
#define TEST_ASSERT_T(obj) \
|
|
do { \
|
|
TEST_ASSERT_OBJ_SYMBOL(obj); \
|
|
TEST_ASSERT_EQUAL_STRING(obj->symbol, "t"); \
|
|
} while(0)
|
|
|
|
#endif
|