1#include <stddef.h> 2#include <string.h> 3#include "test.h" 4 5#define T(s, c, n) { \ 6 char *p = s; \ 7 char *q = c; \ 8 size_t r = strcspn(p, q); \ 9 if (r != n) \ 10 t_error("strcspn(%s,%s) returned %lu, wanted %lu\n", #s, #c, (unsigned long)r, (unsigned long)(n)); \ 11} 12 13int main(void) 14{ 15 int i; 16 char a[128]; 17 char s[256]; 18 19 for (i = 0; i < 128; i++) 20 a[i] = (i+1) & 127; 21 for (i = 0; i < 256; i++) 22 *((unsigned char*)s+i) = i+1; 23 24 T("", "", 0) 25 T("a", "", 1) 26 T("", "a", 0) 27 T("abc", "cde", 2) 28 T("abc", "ccc", 2) 29 T("abc", a, 0) 30 T("\xff\x80 abc", a, 2) 31 T(s, "\xff", 254) 32 33 return t_status; 34} 35