22
test/val/lib_common_strlen.c
Normal file
22
test/val/lib_common_strlen.c
Normal file
@@ -0,0 +1,22 @@
|
||||
#include <string.h>
|
||||
#include "unittest.h"
|
||||
|
||||
#define SHORT_STR "abcdefghijklmnopqrstuvwxyz"
|
||||
|
||||
#define MID_STR_LEN 700 /* Two pages and something */
|
||||
TEST
|
||||
{
|
||||
char *src;
|
||||
int i;
|
||||
|
||||
/* Long enough for the whole string */
|
||||
ASSERT_IsTrue(strlen("") == 0, "strlen(\"\") != 0");
|
||||
ASSERT_IsTrue(strlen(SHORT_STR) == 26, "strlen(\""SHORT_STR"\") != 26");
|
||||
|
||||
src = malloc(MID_STR_LEN+1);
|
||||
ASSERT_IsTrue(src != NULL, "Could not allocate source string");
|
||||
memset(src, 'a', MID_STR_LEN-1);
|
||||
src[MID_STR_LEN] = '\0';
|
||||
ASSERT_IsTrue(strlen(src) == MID_STR_LEN, "strlen(\"700 chars\") != 700");
|
||||
}
|
||||
ENDTEST
|
||||
60
test/val/lib_common_strndup.c
Normal file
60
test/val/lib_common_strndup.c
Normal file
@@ -0,0 +1,60 @@
|
||||
#include <string.h>
|
||||
#include "unittest.h"
|
||||
|
||||
#define SHORT_STR "abcdefghijklmnopqrstuvwxyz"
|
||||
|
||||
#define MID_STR_LEN 700 /* Two pages and something */
|
||||
#define LONG_STR_LEN 40000UL /* Two long to duplicate */
|
||||
TEST
|
||||
{
|
||||
char *dst;
|
||||
char *src;
|
||||
int i;
|
||||
|
||||
dst = strndup("", 0);
|
||||
ASSERT_IsTrue(dst != NULL, "strndup returned NULL")
|
||||
ASSERT_IsTrue(!strcmp(dst, ""), "strings differ");
|
||||
free(dst);
|
||||
|
||||
for (i = 0; i < 30; i+=10) {
|
||||
dst = strndup(SHORT_STR, i);
|
||||
ASSERT_IsTrue(dst != NULL, "strndup returned NULL");
|
||||
printf("strlen %s = %d (%d expected)\n", dst, strlen(dst), i);
|
||||
ASSERT_IsTrue(strlen(dst) == i, "string lengths differ");
|
||||
ASSERT_IsTrue(!strncmp(dst, SHORT_STR, i), "strings differ");
|
||||
free(dst);
|
||||
}
|
||||
|
||||
dst = strndup(SHORT_STR, 50);
|
||||
ASSERT_IsTrue(dst != NULL, "strndup returned NULL");
|
||||
printf("strlen %s = %d (%d expected)\n", dst, strlen(dst), i);
|
||||
ASSERT_IsTrue(strlen(dst) == 26, "string lengths differ");
|
||||
ASSERT_IsTrue(!strcmp(dst, SHORT_STR), "strings differ");
|
||||
free(dst);
|
||||
|
||||
|
||||
src = malloc(MID_STR_LEN+1);
|
||||
ASSERT_IsTrue(src != NULL, "Could not allocate source string");
|
||||
memset(src, 'a', MID_STR_LEN);
|
||||
src[MID_STR_LEN] = '\0';
|
||||
|
||||
for (i = 0; i < MID_STR_LEN -1; i+=10) {
|
||||
dst = strndup(src, i);
|
||||
ASSERT_IsTrue(dst != NULL, "strndup returned NULL");
|
||||
printf("strlen %s = %d (%d expected)\n", dst, strlen(dst), i);
|
||||
ASSERT_IsTrue(strlen(dst) == i, "string lengths differ");
|
||||
ASSERT_IsTrue(!strncmp(dst, src, i), "strings differ");
|
||||
free(dst);
|
||||
}
|
||||
|
||||
for (i = MID_STR_LEN; i < MID_STR_LEN * 2; i+=10) {
|
||||
dst = strndup(src, i);
|
||||
ASSERT_IsTrue(dst != NULL, "strndup returned NULL");
|
||||
printf("%d, strlen %s = %d (%d expected)\n", i, dst, strlen(dst), strlen(src));
|
||||
ASSERT_IsTrue(strlen(dst) == strlen(src), "string lengths differ");
|
||||
ASSERT_IsTrue(!strcmp(dst, src), "strings differ");
|
||||
free(dst);
|
||||
}
|
||||
|
||||
}
|
||||
ENDTEST
|
||||
29
test/val/lib_common_strnlen.c
Normal file
29
test/val/lib_common_strnlen.c
Normal file
@@ -0,0 +1,29 @@
|
||||
#include <string.h>
|
||||
#include "unittest.h"
|
||||
|
||||
#define SHORT_STR "abcdefghijklmnopqrstuvwxyz"
|
||||
|
||||
#define MID_STR_LEN 700 /* Two pages and something */
|
||||
TEST
|
||||
{
|
||||
char *src;
|
||||
int i;
|
||||
|
||||
/* Long enough for the whole string */
|
||||
ASSERT_IsTrue(strnlen("", 0) == 0, "strnlen(\"\", 0) != 0");
|
||||
ASSERT_IsTrue(strnlen("", 10) == 0, "strnlen(\"\", 10) != 0");
|
||||
ASSERT_IsTrue(strnlen(SHORT_STR, 0) == 0, "strnlen(\""SHORT_STR"\", 0) != 0");
|
||||
ASSERT_IsTrue(strnlen(SHORT_STR, 10) == 10, "strnlen(\""SHORT_STR"\", 10) != 10");
|
||||
ASSERT_IsTrue(strnlen(SHORT_STR, 26) == 26, "strnlen(\""SHORT_STR"\", 26) != 26");
|
||||
ASSERT_IsTrue(strnlen(SHORT_STR, 50) == 26, "strnlen(\""SHORT_STR"\", 50) != 26");
|
||||
|
||||
src = malloc(MID_STR_LEN+1);
|
||||
ASSERT_IsTrue(src != NULL, "Could not allocate source string");
|
||||
memset(src, 'a', MID_STR_LEN-1);
|
||||
src[MID_STR_LEN] = '\0';
|
||||
ASSERT_IsTrue(strnlen(src, 0) == 0, "strnlen(src, 0) != 0");
|
||||
ASSERT_IsTrue(strnlen(src, 10) == 10, "strnlen(src, 10) != 10");
|
||||
ASSERT_IsTrue(strnlen(src, 260) == 260, "strnlen(src, 260) != 260");
|
||||
ASSERT_IsTrue(strnlen(src, MID_STR_LEN+1) == MID_STR_LEN, "strnlen(src, MID_STR_LEN+1) != MID_STR_LEN");
|
||||
}
|
||||
ENDTEST
|
||||
Reference in New Issue
Block a user