summaryrefslogtreecommitdiffstats
path: root/src/tests/string_test.c
diff options
context:
space:
mode:
authorSimon Rettberg2026-01-28 12:53:53 +0100
committerSimon Rettberg2026-01-28 12:53:53 +0100
commit8e82785c584dc13e20f9229decb95bd17bbe9cd1 (patch)
treea8b359e59196be5b2e3862bed189107f4bc9975f /src/tests/string_test.c
parentMerge branch 'master' into openslx (diff)
parent[prefix] Make unlzma.S compatible with 386 class CPUs (diff)
downloadipxe-openslx.tar.gz
ipxe-openslx.tar.xz
ipxe-openslx.zip
Merge branch 'master' into openslxopenslx
Diffstat (limited to 'src/tests/string_test.c')
-rw-r--r--src/tests/string_test.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/tests/string_test.c b/src/tests/string_test.c
index 3afb8deb2..6662848d3 100644
--- a/src/tests/string_test.c
+++ b/src/tests/string_test.c
@@ -38,6 +38,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#include <stdio.h>
#include <string.h>
#include <strings.h>
+#include <wchar.h>
#include <ipxe/string.h>
#include <ipxe/test.h>
@@ -204,6 +205,24 @@ static void string_test_exec ( void ) {
free ( dup );
}
+ /* Test stpcpy() */
+ {
+ const char longer[12] = "duplicateme";
+ const char shorter[6] = "hello";
+ char dest[12];
+ char *dnul;
+
+ dnul = stpcpy ( dest, longer );
+ ok ( *dnul == '\0' );
+ ok ( dnul == &dest[11] );
+ ok ( memcmp ( dest, longer, 12 ) == 0 );
+ dnul = stpcpy ( dest, shorter );
+ ok ( *dnul == '\0' );
+ ok ( dnul == &dest[5] );
+ ok ( memcmp ( dest, shorter, 6 ) == 0 );
+ ok ( memcmp ( ( dest + 6 ), ( longer + 6 ), 6 ) == 0 );
+ }
+
/* Test strcpy() */
{
const char longer[7] = "copyme";
@@ -304,6 +323,23 @@ static void string_test_exec ( void ) {
+ 17 ) * 26 + 10 ) );
ok ( endp == &string[6] );
}
+
+ /* Test wcslen() */
+ ok ( wcslen ( L"" ) == 0 );
+ ok ( wcslen ( L"Helloo" ) == 6 );
+ ok ( wcslen ( L"Helloo woorld!" ) == 14 );
+ ok ( wcslen ( L"Helloo\0woorld!" ) == 6 );
+
+ /* Test wcsnlen() */
+ ok ( wcsnlen ( L"", 0 ) == 0 );
+ ok ( wcsnlen ( L"", 10 ) == 0 );
+ ok ( wcsnlen ( L"Helloo", 0 ) == 0 );
+ ok ( wcsnlen ( L"Helloo", 3 ) == 3 );
+ ok ( wcsnlen ( L"Helloo", 5 ) == 5 );
+ ok ( wcsnlen ( L"Helloo", 16 ) == 6 );
+ ok ( wcsnlen ( L"Helloo woorld!", 5 ) == 5 );
+ ok ( wcsnlen ( L"Helloo woorld!", 11 ) == 11 );
+ ok ( wcsnlen ( L"Helloo woorld!", 16 ) == 14 );
}
/** String self-test */