@@ -49,6 +49,8 @@ size_t T_strlen(const char *s)
49
49
int T_strcmp (const char * s1 , const char * s2 )
50
50
__attribute__((nonnull (1 , 2 )));
51
51
52
+ void T_bzero (void * s , size_t n );
53
+
52
54
#else
53
55
54
56
#define T_memcpy memcpy
@@ -59,6 +61,7 @@ int T_strcmp(const char *s1, const char *s2)
59
61
#define T_stpcpy stpcpy
60
62
#define T_strlen strlen
61
63
#define T_strcmp strcmp
64
+ #define T_bzero bzero
62
65
63
66
#endif
64
67
@@ -439,6 +442,35 @@ int mempcpy_test(void) {
439
442
return 0 ;
440
443
}
441
444
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
+
442
474
int run_tests (void ) {
443
475
int ret = 0 ;
444
476
/* boot_asprintf */
@@ -464,6 +496,10 @@ int run_tests(void) {
464
496
ret = mempcpy_test ();
465
497
if (ret != 0 ) { return ret ; }
466
498
499
+ /* bzero */
500
+ ret = bzero_test ();
501
+ if (ret != 0 ) { return ret ; }
502
+
467
503
return 0 ;
468
504
}
469
505
0 commit comments