static void test_mem_get();
static void test_mem_get_zero();
+static void test_mem_resize();
+static void test_mem_resize_zero();
+static void test_mem_clone();
static void test_mem_free();
test_mem_get();
test_mem_get_zero();
+ test_mem_resize();
+ test_mem_resize_zero();
+ test_mem_clone();
test_mem_free();
fprintf( stderr, "Done\n\n" );
size_t len = 1000000000;
char *pt = mem_get( len );
- mem_free( pt );
+ mem_free( ( void * ) &pt );
fprintf( stderr, "OK\n" );
}
assert( pt[ i ] == '\0' );
}
- mem_free( pt );
+ mem_free( ( void * ) &pt );
+
+ fprintf( stderr, "OK\n" );
+}
+
+
+void test_mem_resize()
+{
+ fprintf( stderr, " Testing mem_resize ... " );
+
+ char *pt0 = "foo";
+ char *pt1 = NULL;
+
+ pt1 = mem_get( 3 + 1 );
+
+ memcpy( pt1, pt0, 3 );
+
+ pt1 = mem_resize( pt1, 1 );
+
+ mem_free( ( void * ) &pt1 );
+
+ fprintf( stderr, "OK\n" );
+}
+
+
+void test_mem_resize_zero()
+{
+ fprintf( stderr, " Testing mem_resize_zero ... " );
+
+ size_t i;
+ size_t size_before = 10;
+ size_t size_after = 100000;
+
+ char *pt = NULL;
+
+ pt = mem_get( size_before );
+
+ memset( pt, '1', size_before );
+
+ assert( strlen( pt ) == size_before );
+
+ pt = mem_resize_zero( pt, size_before, size_after );
+
+ assert( strlen( pt ) == size_before );
+
+ for ( i = size_before; i <= size_after; i++ ) {
+ assert( pt[ i ] == '\0' );
+ }
+
+ mem_free( ( void * ) &pt );
+
+ fprintf( stderr, "OK\n" );
+}
+
+
+void test_mem_clone()
+{
+ fprintf( stderr, " Testing mem_clone ... " );
+
+ char *pt;
+ char *pt_clone;
+ size_t pt_size = 10000;
+ size_t i;
+
+ pt = mem_get( pt_size );
+
+ memset( pt, 'X', pt_size );
+
+ pt_clone = mem_clone( pt, pt_size );
+
+ assert( pt_clone != pt );
+ assert( &pt_clone != &pt );
+
+ for ( i = 0; i < pt_size; i++ ) {
+ assert( pt[ i ] == pt_clone[ i ] );
+ }
+
+ mem_free( ( void * ) &pt );
+ mem_free( ( void * ) &pt_clone );
fprintf( stderr, "OK\n" );
}
{
fprintf( stderr, " Testing mem_free ... " );
- void *pt = mem_get( 100 );
+ char *pt0 = "foo";
+ void *pt1 = NULL;
+ char *pt2 = NULL;
+
+ assert( pt0 != NULL );
+ assert( pt1 == NULL );
+ assert( pt2 == NULL );
+
+ pt1 = mem_get( 100 );
+ pt2 = mem_get( 100 );
+
+ assert( pt1 != NULL );
+ assert( pt2 != NULL );
- mem_free( pt );
+ memcpy( pt2, pt0, 3 );
- printf( "pt: %s\n", ( char * ) pt );
+ mem_free( &pt1 );
+ mem_free( &pt1 );
+ mem_free( ( void * ) &pt1 );
+ mem_free( ( void * ) &pt2 );
- assert( pt == NULL );
+ assert( pt1 == NULL );
+ assert( pt2 == NULL );
fprintf( stderr, "OK\n" );
}