124#define TEST_FUNCTION(name) \
125 template <class T> int name (T) { function_called = 0; return 0; } \
126 typedef void rw_unused_typedef
164get_bitmask (
int mask,
char *
str)
166 char *str_save =
str;
169 if (mask & bit_ ## bit) { \
170 for (const char *s = #bit; *s; ++s, ++str) \
200#define LETTER(bits) bit_alpha | bit_alnum | bit_print | bit_graph | bits
593# error unknown character set (neither ASCII nor EBCDIC)
602 rw_info (0, 0, 0,
"behavior of <cctype> functions in the \"C\" locale");
605 char missing_str [80];
607 for (
int i = 0;
i != 256; ++
i) {
609 typedef unsigned char UChar;
627 const int extra_bits = mask & ~char_mask [
i];
628 const int missing_bits = ~mask & char_mask [
i];
631 "%#c mask%{?} missing bits %s (%#x)%{;}"
632 "%{?} extra bits %s (%#x)%{;}",
635 get_bitmask (missing_bits, missing_str), missing_bits,
637 get_bitmask (extra_bits, extra_str), extra_bits);
643static int rw_opt_no_behavior;
649 rw_info (0, 0, 0,
"checking for the absence of masking macros");
660#define TEST(function) \
662 rw_info (0, 0, 0, "%s(int) definition", #function); \
663 function (function_called = 1); \
664 rw_assert (1 == function_called, 0, __LINE__, \
665 "%s (int) not defined", #function); \
677 TEST (std::isxdigit);
682 if (rw_opt_no_behavior)
683 rw_note (0, 0, 0,
"behavior test disabled (use --test-behavior)");
692int main (
int argc,
char *argv[])
694 return rw_test (argc, argv, __FILE__,
698 "|-no-behavior#0-1 ",
699 &rw_opt_no_behavior);
#define TEST_FUNCTION(name)
const char *const cctype_macros[]
void run_test(const ForwardIterator &dummy, T *, Predicate *pred)
#define _RWSTD_NAMESPACE(name)
_TEST_EXPORT int rw_test(int argc, char *argv[], const char *filename, const char *clause, const char *comment, int(*testfun)(int, char **), const char *optspec,...)
_TEST_EXPORT int rw_info(int, const char *, int, const char *,...)
_TEST_EXPORT int rw_note(int, const char *, int, const char *,...)
_TEST_EXPORT int rw_assert(int, const char *, int, const char *,...)