1570af302Sopenharmony_ci#include <stddef.h> 2570af302Sopenharmony_ci#include <string.h> 3570af302Sopenharmony_ci#include "test.h" 4570af302Sopenharmony_ci 5570af302Sopenharmony_ci#define T(s, c, n) { \ 6570af302Sopenharmony_ci char *p = s; \ 7570af302Sopenharmony_ci char *q = c; \ 8570af302Sopenharmony_ci size_t r = strcspn(p, q); \ 9570af302Sopenharmony_ci if (r != n) \ 10570af302Sopenharmony_ci t_error("strcspn(%s,%s) returned %lu, wanted %lu\n", #s, #c, (unsigned long)r, (unsigned long)(n)); \ 11570af302Sopenharmony_ci} 12570af302Sopenharmony_ci 13570af302Sopenharmony_ciint main(void) 14570af302Sopenharmony_ci{ 15570af302Sopenharmony_ci int i; 16570af302Sopenharmony_ci char a[128]; 17570af302Sopenharmony_ci char s[256]; 18570af302Sopenharmony_ci 19570af302Sopenharmony_ci for (i = 0; i < 128; i++) 20570af302Sopenharmony_ci a[i] = (i+1) & 127; 21570af302Sopenharmony_ci for (i = 0; i < 256; i++) 22570af302Sopenharmony_ci *((unsigned char*)s+i) = i+1; 23570af302Sopenharmony_ci 24570af302Sopenharmony_ci T("", "", 0) 25570af302Sopenharmony_ci T("a", "", 1) 26570af302Sopenharmony_ci T("", "a", 0) 27570af302Sopenharmony_ci T("abc", "cde", 2) 28570af302Sopenharmony_ci T("abc", "ccc", 2) 29570af302Sopenharmony_ci T("abc", a, 0) 30570af302Sopenharmony_ci T("\xff\x80 abc", a, 2) 31570af302Sopenharmony_ci T(s, "\xff", 254) 32570af302Sopenharmony_ci 33570af302Sopenharmony_ci return t_status; 34570af302Sopenharmony_ci} 35