/* Copyright Rene Rivera 2011-2015 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #include #define BOOST_PREDEF_INTERNAL_GENERATE_TESTS void * add_predef_entry(const char * name, const char * description, unsigned value); #undef BOOST_PREDEF_DECLARE_TEST #define BOOST_PREDEF_DECLARE_TEST(x,s) void predef_entry_##x() { add_predef_entry(#x, s, x); } #include #undef BOOST_PREDEF_DECLARE_TEST #define BOOST_PREDEF_DECLARE_TEST(x,s) predef_entry_##x(); void create_predef_entries() { #include } #ifdef __cplusplus #include #include #include using namespace std; #else #include #include #include #endif typedef struct predef_info { const char * name; const char * description; unsigned value; } predef_info; #ifdef __cplusplus using namespace std; #endif unsigned generated_predef_info_count = 0; predef_info* generated_predef_info = 0; void * add_predef_entry(const char * name, const char * description, unsigned value) { if (0 == generated_predef_info_count) { generated_predef_info_count = 1; generated_predef_info = (predef_info*)malloc(sizeof(predef_info)); } else { generated_predef_info_count += 1; generated_predef_info = (predef_info*)realloc(generated_predef_info, generated_predef_info_count*sizeof(predef_info)); } generated_predef_info[generated_predef_info_count-1].name = name; generated_predef_info[generated_predef_info_count-1].description = description; generated_predef_info[generated_predef_info_count-1].value = value; return 0; } int predef_info_compare(const void * a, const void * b) { const predef_info * i = (const predef_info *)a; const predef_info * j = (const predef_info *)b; return strcmp(i->name,j->name); }