/* * Copyright (c) Camden Dixie O'Brien * SPDX-License-Identifier: AGPL-3.0-only */ #ifndef TESTING_H #define TESTING_H #include #include #include #define TESTING_BEGIN() fail_count = 0 #define TESTING_END() fail_count == 0 ? EXIT_SUCCESS : EXIT_FAILURE #define FAIL \ do { \ ++fail_count; \ printf("%s: FAIL @ %s:%d\n", __func__, __FILE__, __LINE__); \ return; \ } while (0) #define ASSERT_FALSE(p) \ do { \ if (p) \ FAIL; \ } while (0) #define ASSERT_TRUE(p) ASSERT_FALSE(!(p)) #define ASSERT_EQ(x, y) ASSERT_FALSE((x) != (y)) #define ASSERT_NE(x, y) ASSERT_FALSE((x) == (y)) #define ASSERT_NULL(p) ASSERT_FALSE(NULL != (p)) #define ASSERT_NOT_NULL(p) ASSERT_FALSE(NULL == (p)) #define ASSERT_MEM_EQ(p, q, n) ASSERT_FALSE(memcmp(p, q, n) != 0) extern int fail_count; #endif