@@ -49,6 +49,8 @@ size_t T_strlen(const char *s)
4949int T_strcmp (const char * s1 , const char * s2 )
5050 __attribute__((nonnull (1 , 2 )));
5151
52+ void T_bzero (void * s , size_t n );
53+
5254#else
5355
5456#define T_memcpy memcpy
@@ -59,6 +61,7 @@ int T_strcmp(const char *s1, const char *s2)
5961#define T_stpcpy stpcpy
6062#define T_strlen strlen
6163#define T_strcmp strcmp
64+ #define T_bzero bzero
6265
6366#endif
6467
@@ -439,6 +442,35 @@ int mempcpy_test(void) {
439442 return 0 ;
440443}
441444
445+ int bzero_test (void ) {
446+ char truth [32 ];
447+ char data [32 ];
448+ T_memset (data , 0x8F , sizeof (data ));
449+ T_memset (& truth [ 0 ], 0x8F , 8 );
450+ T_memset (& truth [ 2 ], 0x00 , 1 );
451+ T_memset (& truth [ 8 ], 0x00 , 17 );
452+ T_memset (& truth [25 ], 0x8F , 7 );
453+ T_bzero (& data [2 ], 0 );
454+ T_bzero (& data [2 ], 1 );
455+ if (T_strlen (& data [0 ]) != 2 ) {
456+ return __LINE__ ;
457+ }
458+ if (T_strlen (& data [1 ]) != 1 ) {
459+ return __LINE__ ;
460+ }
461+ if (T_strlen (& data [2 ]) != 0 ) {
462+ return __LINE__ ;
463+ }
464+ T_bzero (NULL , 0 );
465+ T_bzero (& data [8 ], 17 );
466+ int cmp = T_memcmp (data , truth , 32 );
467+ if (cmp != 0 ) {
468+ printf ("cmp: %d\n" , cmp );
469+ return __LINE__ ;
470+ }
471+ return 0 ;
472+ }
473+
442474int run_tests (void ) {
443475 int ret = 0 ;
444476 /* boot_asprintf */
@@ -464,6 +496,10 @@ int run_tests(void) {
464496 ret = mempcpy_test ();
465497 if (ret != 0 ) { return ret ; }
466498
499+ /* bzero */
500+ ret = bzero_test ();
501+ if (ret != 0 ) { return ret ; }
502+
467503 return 0 ;
468504}
469505
0 commit comments