]>
jfr.im git - irc/quakenet/snircd.git/blob - ircd/test/ircd_chattr_t.c
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
]);