#pragma once #include #include #include #include #include #include #include "../honeysuckle.h" #include "colors.h" /* minunit testing macros modified from those at www.jera.com/techinfo/jtns/jtn002.html */ #define mu_assert(message, test) do { if (!(test)) return message; } while (0) #define mu_run_test(name, test) do { \ lua_State *L = luaL_newstate(); \ luaL_openlibs(L); \ const char *message = test(L); \ lua_close(L); \ tests_run++; \ if (message) { \ printf(RED " test '%s' failed: %s\n" RESET, name, message); \ tests_failed++; \ } \ } while (0) #define TEST(name) static const char* name(lua_State *L) extern int tests_run, tests_failed; void hs_type_to_string_tests(); void hs_parse_args_tests(); void hs_parse_overloaded_tests(); void hs_create_table_tests(); void hs_create_enum_tests(); void hs_process_table_tests(); void hs_throw_error_tests(); void hs_traceback_tests(); void hs_call_tests(); void hs_call_args_tests(); void hs_pushstring_tests(); void hs_rxx_tests(); /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * tests for hs_create_enum * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ #define check_value(string, value)