Minor refactor to parsing and testing cleanup

This commit is contained in:
2022-11-15 22:57:25 -05:00
parent 086d6f9106
commit 1595a6310d
5 changed files with 81 additions and 117 deletions

View File

@@ -4,26 +4,48 @@
#include <unity.h>
#include "uclisp.h"
#include "utility.h"
#define TEST_ASSERT_OBJ_ERROR(obj) \
TEST_ASSERT_EQUAL(obj->type, UCL_TYPE_ERROR)
#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(obj->type, UCL_TYPE_SYMBOL)
#define TEST_ASSERT_OBJ_SYMBOL(obj) \
TEST_ASSERT_EQUAL_MESSAGE(UCL_TYPE_SYMBOL, (obj)->type, "Expected symbol type")
#define TEST_ASSERT_OBJ_STRING(obj) \
TEST_ASSERT_EQUAL(obj->type, UCL_TYPE_STRING)
#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_INT(obj) \
TEST_ASSERT_EQUAL(obj->type, UCL_TYPE_INT)
#define TEST_ASSERT_OBJ_STRING(obj) \
TEST_ASSERT_EQUAL_MESSAGE(UCL_TYPE_STRING, (obj)->type, "Expected string type")
#define TEST_ASSERT_OBJ_LIST(obj) \
TEST_ASSERT_EQUAL(obj->type, UCL_TYPE_CELL)
#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(ucl_list_length(list)->integer, len); \
TEST_ASSERT_EQUAL(len, ucl_list_length(list)->integer); \
} while(0)
#define TEST_ASSERT_NIL(obj) \