- #ifndef UT_H
- #define UT_H
-
- #include <kc.h>
- #include <kc_memory_entry.h>
-
- extern void suite_assert(void);
- extern void suite_dl(void);
- extern void suite_env(void);
- extern void suite_list_array(void);
- extern void suite_list_linked(void);
- extern void suite_lock_guard(void);
- extern void suite_map(void);
- extern void suite_memory_dump(void);
- extern void suite_memory_entry(void);
- extern void suite_memory_listener(void);
- extern void suite_memory_mark(void);
- extern void suite_memory(void);
- extern void suite_queue(void);
- extern void suite_socket(void);
- extern void suite_thread(void);
-
- ////////////////////////////////////////////////////////////////////////////////
- //
- // 以下、メモリ管理操作用
- //
-
- extern bool (*_UT_KcMemory_can_alloc)(
- KcMemoryEntry *entry, size_t alignment, size_t size,
- KcMemoryMark mark, const char *file, const char *func, int line);
-
- typedef bool (*UT_KcMemory_can_alloc_func)(
- KcMemoryEntry *entry, size_t alignment, size_t size,
- KcMemoryMark mark, const char *file, const char *func, int line);
-
- UT_KcMemory_can_alloc_func _ut_can_alloc_func(int counter);
-
- /**
- * ut_alloc_control(0)
- * {
- * // メモリ確保失敗させたい処理
- * }
- *
- * ut_alloc_control(1)
- * {
- * // 2回目にメモリ確保失敗させたい処理
- * }
- */
- #define ut_alloc_control(counter) \
- for (_UT_KcMemory_can_alloc = _ut_can_alloc_func(counter); _UT_KcMemory_can_alloc != NULL; _UT_KcMemory_can_alloc = NULL)
-
- #endif // UT_H