Add test of strnlen().

This commit is contained in:
Sven Michael Klose 2021-12-25 09:13:43 +01:00 committed by mrdudz
parent 2c27c075a9
commit 34e03fd9ec
2 changed files with 36 additions and 0 deletions

View File

@ -160,6 +160,7 @@ EXELIST_c64 = \
scanf-test \
ser-test \
strdup-test \
strnlen \
stroserror-test \
strqtok-test \
tinyshell \
@ -190,6 +191,7 @@ EXELIST_vic20 = \
rename-test \
scanf-test \
strdup-test \
strnlen \
stroserror-test \
strqtok-test \
tinyshell \
@ -222,6 +224,7 @@ EXELIST_apple2 = \
seek \
ser-test \
strdup-test \
strnlen \
stroserror-test \
strqtok-test \
tinyshell \
@ -257,6 +260,7 @@ EXELIST_atari = \
seek \
ser-test \
strdup-test \
strnlen \
stroserror-test \
strqtok-test \
tinyshell \

32
targettest/strnlen.c Normal file
View File

@ -0,0 +1,32 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char * str = "0123456789";
void
check (size_t result, size_t expected)
{
if (result != expected) {
printf ("Expected strnlen() to return %d, got %d.\n",
expected, result);
exit (EXIT_FAILURE);
}
}
int
main (void)
{
size_t maxlen = strlen (str);
size_t result;
size_t expected;
for (expected = 0; expected < maxlen; expected++)
check (strnlen (str, expected), expected);
check (strnlen (str, maxlen << 1), maxlen);
printf ("strnlen() OK.\n");
return EXIT_SUCCESS;
}