summaryrefslogtreecommitdiff
path: root/boost/predef/detail/test_def.h
diff options
context:
space:
mode:
Diffstat (limited to 'boost/predef/detail/test_def.h')
-rw-r--r--boost/predef/detail/test_def.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/boost/predef/detail/test_def.h b/boost/predef/detail/test_def.h
new file mode 100644
index 0000000000..c2f195bfd6
--- /dev/null
+++ b/boost/predef/detail/test_def.h
@@ -0,0 +1,71 @@
+/*
+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 <boost/predef.h>
+
+#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 <boost/predef.h>
+
+#undef BOOST_PREDEF_DECLARE_TEST
+#define BOOST_PREDEF_DECLARE_TEST(x,s) predef_entry_##x();
+void create_predef_entries()
+{
+#include <boost/predef.h>
+}
+
+#ifdef __cplusplus
+#include <cstring>
+#include <cstdio>
+#include <cstdlib>
+using namespace std;
+#else
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#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);
+}