Blame src/general/string_strcspn.c

nsz 49b23c
#include <stddef.h>
nsz 49b23c
#include <string.h>
nsz 49b23c
#include "test.h"
nsz 49b23c
nsz 49b23c
#define T(s, c, n) { \
nsz 49b23c
	char *p = s; \
nsz 49b23c
	char *q = c; \
nsz 49b23c
	size_t r = strcspn(p, q); \
nsz 49b23c
	if (r != n) \
nsz 49b23c
		error("strcspn(%s,%s) returned %lu, wanted %lu\n", #s, #c, (unsigned long)r, (unsigned long)(n)); \
nsz 49b23c
}
nsz 49b23c
nsz 49b23c
int main(void)
nsz 49b23c
{
nsz 49b23c
	int i;
nsz 49b23c
	char a[128];
nsz 49b23c
	char s[256];
nsz 49b23c
nsz 49b23c
	for (i = 0; i < 128; i++)
nsz 49b23c
		a[i] = (i+1) & 127;
nsz 49b23c
	for (i = 0; i < 256; i++)
nsz 49b23c
		*((unsigned char*)s+i) = i+1;
nsz 49b23c
nsz 49b23c
	T("", "", 0)
nsz 49b23c
	T("a", "", 1)
nsz 49b23c
	T("", "a", 0)
nsz 49b23c
	T("abc", "cde", 2)
nsz 49b23c
	T("abc", a, 0)
nsz 49b23c
	T("\xff\x80 abc", a, 2)
nsz 49b23c
	T(s, "\xff", 254)
nsz 49b23c
nsz 49b23c
	return test_status;
nsz 49b23c
}