2 * ircd_chattr_t.c - Test file for character attributes
4 #include "ircd_chattr.h"
5 /* #include <assert.h> -- not used here */
8 typedef int (*EvalFn)(char);
10 int eval_alnum(char c)
12 return (0 != IsAlnum(c));
15 int eval_alpha(char c)
17 return (0 != IsAlpha(c));
20 int eval_digit(char c)
22 return (0 != IsDigit(c));
25 int eval_lower(char c)
27 return (0 != IsLower(c));
30 int eval_space(char c)
32 return (0 != IsSpace(c));
35 int eval_upper(char c)
37 return (0 != IsUpper(c));
40 int eval_cntrl(char c)
42 return (0 != IsCntrl(c));
45 int eval_channel_char(char c)
47 return (0 != IsChannelChar(c));
50 int eval_channel_lower(char c)
52 return (0 != IsChannelLower(c));
55 int eval_channel_prefix(char c)
57 return (0 != IsChannelPrefix(c));
60 int eval_nick_char(char c)
62 return (0 != IsNickChar(c));
65 int eval_user_char(char c)
67 return (0 != IsUserChar(c));
70 int eval_host_char(char c)
72 return (0 != IsHostChar(c));
75 int eval_ip_char(char c)
77 return (0 != IsIPChar(c));
82 return (0 != IsEol(c));
85 int eval_ktime_char(char c)
87 return (0 != IsKTimeChar(c));
94 { "IsAlnum: ", eval_alnum },
95 { "IsAlpha: ", eval_alpha },
96 { "IsDigit: ", eval_digit },
97 { "IsLower: ", eval_lower },
98 { "IsSpace: ", eval_space },
99 { "IsUpper: ", eval_upper },
100 { "IsCntrl: ", eval_cntrl },
101 { "IsChannelChar: ", eval_channel_char },
102 { "IsChannelLower: ", eval_channel_lower },
103 { "IsChannelPrefix: ", eval_channel_prefix },
104 { "IsNickChar: ", eval_nick_char },
105 { "IsUserChar: ", eval_user_char },
106 { "IsHostChar: ", eval_host_char },
107 { "IsIPChar: ", eval_ip_char },
108 { "IsEol: ", eval_eol },
109 { "IsKTimeChar: ", eval_ktime_char }
112 #define TESTLIST_SIZE sizeof(testList) / sizeof(struct CharTest)
114 void print_char(unsigned char c)
118 case '\a': printf("\\a"); break;
119 case '\b': printf("\\b"); break;
120 case '\f': printf("\\f"); break;
121 case '\n': printf("\\n"); break;
122 case '\r': printf("\\r"); break;
123 case '\t': printf("\\t"); break;
124 case '\v': printf("\\v"); break;
126 printf("\\%x", c); break;
137 void print_char_attr(struct CharTest* test)
141 printf("%s", test->name);
143 for (i = 0; i < 256; ++i) {
144 if ((*test->evaluator)(i))
155 for (i = 0; i < TESTLIST_SIZE; ++i)
156 print_char_attr(&testList[i]);