1 /* Martin Asser Hansen (mail@maasha.dk) Copyright (C) 2008 - All right reserved */
6 //#define TEST_FILE "/Users/m.hansen/DATA/genomes/hg18/hg18.fna"
7 #define TEST_FILE "test/test_files/test.fna"
10 static void test_read_open();
11 static void test_write_open();
12 static void test_append_open();
13 static void test_close_stream();
14 static void test_file_read();
15 static void test_file_unlink();
16 static void test_file_rename();
17 static void test_buffer_new();
18 static void test_buffer_read();
19 static void test_buffer_getc();
20 static void test_buffer_ungetc();
21 static void test_buffer_gets();
22 static void test_buffer_ungets();
23 static void test_buffer_new_size();
24 static void test_buffer_resize();
25 static void test_buffer_move();
26 static void test_buffer_destroy();
27 static void test_buffer_print();
32 fprintf( stderr, "Running all tests for filesys.c\n" );
47 test_buffer_new_size();
50 test_buffer_destroy();
53 fprintf( stderr, "Done\n\n" );
61 fprintf( stderr, " Testing read_open ... " );
65 // fp = read_open( "/tmp/asdf" );
66 // fp = read_open( "/private/etc/ssh_host_rsa_key" );
67 fp = read_open( "/dev/null" );
71 fprintf( stderr, "OK\n" );
75 void test_write_open()
77 fprintf( stderr, " Testing write_open ... " );
81 // fp = write_open( "/tmp/asdf" );
82 // fp = write_open( "/private/etc/ssh_host_rsa_key" );
83 fp = write_open( "/dev/null" );
87 fprintf( stderr, "OK\n" );
91 void test_append_open()
93 fprintf( stderr, " Testing append_open ... " );
97 //fp = append_open( "/tmp/asdf" );
98 //fp = append_open( "/private/etc/ssh_host_rsa_key" );
99 fp = append_open( "/dev/null" );
103 fprintf( stderr, "OK\n" );
107 void test_close_stream()
109 fprintf( stderr, " Testing close_stream ... " );
113 fp = read_open( "/dev/null" );
117 fprintf( stderr, "OK\n" );
121 void test_file_read()
123 fprintf( stderr, " Testing file_read ... " );
125 char *file = "/tmp/test_file_read";
126 char *str1 = "MARTIN";
130 size_t len = strlen( str1 );
133 fp1 = write_open( file );
134 fprintf( fp1, str1 );
137 fp2 = read_open( file );
139 num = file_read( fp2, &str2, len );
143 assert( num == len );
144 assert( strcmp( str1, str2 ) == 0 );
146 fprintf( stderr, "OK\n" );
150 void test_file_unlink()
152 fprintf( stderr, " Testing file_unlink ... " );
154 char *test_file = "/tmp/test";
157 fp = write_open( test_file );
162 //file_unlink( "/dev/null" );
163 //file_unlink( "/tmp/" );
164 //file_unlink( "/private/etc/ssh_host_rsa_key" );
165 file_unlink( test_file );
167 fprintf( stderr, "OK\n" );
171 void test_file_rename()
173 fprintf( stderr, " Testing file_rename ... " );
175 char *file_before = "/tmp/before";
176 char *file_after = "/tmp/after";
180 fp = write_open( file_before );
184 //file_rename( file_after, file_after );
185 file_rename( file_before, file_before );
186 file_rename( file_before, file_after );
188 //file_unlink( file_before );
189 file_unlink( file_after );
191 fprintf( stderr, "OK\n" );
195 void test_buffer_new()
197 fprintf( stderr, " Testing buffer_new ... " );
199 char *file = "/tmp/test_buffer_new";
200 char *str = "MARTIN";
204 file_buffer *buffer = NULL;
206 fp = write_open( file );
210 num = buffer_new( file, &buffer, size );
212 assert( num == strlen( str ) );
213 assert( buffer->token_pos == 0 );
214 assert( buffer->buffer_pos == 0 );
215 assert( buffer->buffer_end == 6 );
216 assert( buffer->buffer_size == size );
217 assert( buffer->eof == TRUE );
218 assert( strcmp( str, buffer->str ) == 0 );
220 buffer_destroy( &buffer );
226 fprintf( stderr, "OK\n" );
230 void test_buffer_read()
232 fprintf( stderr, " Testing buffer_read ... " );
234 char *file = "/tmp/test_buffer_read";
235 char *str = "MARTIN";
239 file_buffer *buffer = NULL;
241 fp = write_open( file );
245 num = buffer_new( file, &buffer, size );
248 assert( buffer->token_pos == 0 );
249 assert( buffer->buffer_pos == 0 );
250 assert( buffer->buffer_end == 2 );
251 assert( buffer->buffer_size == size );
252 assert( buffer->eof == FALSE );
253 assert( strcmp( buffer->str, "MA" ) == 0 );
255 buffer->buffer_pos += 2;
257 num = buffer_read( &buffer );
260 assert( buffer->token_pos == 0 );
261 assert( buffer->buffer_pos == 2 );
262 assert( buffer->buffer_end == 4 );
263 assert( buffer->buffer_size == size );
264 assert( buffer->eof == FALSE );
265 assert( strcmp( buffer->str, "MART" ) == 0 );
267 buffer->buffer_pos += 2;
269 num = buffer_read( &buffer );
272 assert( buffer->token_pos == 0 );
273 assert( buffer->buffer_pos == 4 );
274 assert( buffer->buffer_end == 6 );
275 assert( buffer->buffer_size == size );
276 assert( buffer->eof == FALSE );
277 assert( strcmp( buffer->str, "MARTIN" ) == 0 );
279 buffer->buffer_pos += 2;
281 num = buffer_read( &buffer );
284 assert( buffer->token_pos == 0 );
285 assert( buffer->buffer_pos == 6 );
286 assert( buffer->buffer_end == 6 );
287 assert( buffer->buffer_size == size );
288 assert( buffer->eof == TRUE );
289 assert( strcmp( buffer->str, "MARTIN" ) == 0 );
291 buffer_destroy( &buffer );
296 fprintf( stderr, "OK\n" );
300 void test_buffer_getc()
302 fprintf( stderr, " Testing buffer_getc ... " );
304 char *file = "/tmp/test_buffer_getc";
305 char *str = "MARTIN";
307 size_t size = strlen( str );
310 file_buffer *buffer = NULL;
312 fp = write_open( file );
316 buffer_new( file, &buffer, size );
318 for ( i = 0; str[ i ]; i++ )
320 c = buffer_getc( buffer );
322 assert( str[ i ] == c );
325 buffer_destroy( &buffer );
331 fprintf( stderr, "OK\n" );
335 void test_buffer_ungetc()
337 fprintf( stderr, " Testing buffer_ungetc ... " );
339 char *file = "/tmp/test_buffer_ungetc";
340 char *str = "MARTIN";
344 file_buffer *buffer = NULL;
346 fp = write_open( file );
352 buffer_new( file, &buffer, TEST_SIZE );
354 c = buffer_getc( buffer );
358 buffer_ungetc( buffer );
362 while ( ( c = buffer_getc( buffer ) ) != EOF )
364 assert( c == str[ i ] );
371 buffer_ungetc( buffer );
373 c = buffer_getc( buffer );
377 buffer_destroy( &buffer );
383 fprintf( stderr, "OK\n" );
387 void test_buffer_gets()
389 fprintf( stderr, " Testing buffer_gets ... " );
391 char *file = "/tmp/test_buffer_gets";
392 char *out = "MARTIN\nASSER\nHANSEN\n";
397 file_buffer *buffer = NULL;
399 fp = write_open( file );
403 buffer_new( file, &buffer, size );
407 while( ( str = buffer_gets( buffer ) ) != NULL )
410 assert( strcmp( str, "MARTIN\n" ) == 0 );
411 } else if ( i == 1 ) {
412 assert( strcmp( str, "ASSER\n" ) == 0 );
413 } else if ( i == 2 ) {
414 assert( strcmp( str, "HANSEN\n" ) == 0 );
420 buffer_destroy( &buffer );
426 fprintf( stderr, "OK\n" );
430 void test_buffer_ungets()
432 fprintf( stderr, " Testing buffer_ungets ... " );
434 char *file = "/tmp/test_buffer_ungets";
435 char *out = "MARTIN\nASSER\nHANSEN\n";
440 file_buffer *buffer = NULL;
442 fp = write_open( file );
448 buffer_new( file, &buffer, size );
450 str1 = buffer_gets( buffer );
452 buffer_ungets( buffer );
454 str2 = buffer_gets( buffer );
456 assert( strcmp( str1, str2 ) == 0 );
458 while ( ( str1 = buffer_gets( buffer ) ) != NULL )
462 buffer_ungets( buffer );
464 str1 = buffer_gets( buffer );
466 assert( ( strcmp( str1, "HANSEN\n" ) ) == 0 );
468 buffer_destroy( &buffer );
474 fprintf( stderr, "OK\n" );
478 void test_buffer_new_size()
480 fprintf( stderr, " Testing buffer_new_size ... " );
482 char *file = "/tmp/test_buffer_new_size";
486 file_buffer *buffer = NULL;
488 fp = write_open( file );
492 buffer_new( file, &buffer, size );
494 buffer_new_size( buffer, 201048577 );
496 assert( buffer->buffer_size == 268435456 );
498 buffer_destroy( &buffer );
504 fprintf( stderr, "OK\n" );
508 void test_buffer_resize()
510 fprintf( stderr, " Testing buffer_resize ... " );
512 char *file = "/tmp/test_buffer_resize";
518 file_buffer *buffer = NULL;
520 fp = write_open( file );
524 buffer_new( file, &buffer, size );
528 while ( ( c = buffer_getc( buffer ) ) != EOF )
530 assert( c == str[ i ] );
534 buffer_destroy( &buffer );
540 fprintf( stderr, "OK\n" );
544 void test_buffer_move()
546 fprintf( stderr, " Testing buffer_move ... " );
548 char *file = "/tmp/test_buffer_move";
549 char *str = "ABCDEFG";
550 size_t size = strlen( str );
554 file_buffer *buffer = NULL;
556 fp = write_open( file );
562 buffer_new( file, &buffer, size );
564 new_size = buffer_move( buffer, size, move );
566 assert( new_size == strlen( buffer->str ) );
567 assert( strcmp( buffer->str, "DEFG" ) == 0 );
569 new_size = buffer_move( buffer, new_size, move );
571 assert( new_size == strlen( buffer->str ) );
572 assert( strcmp( buffer->str, "G" ) == 0 );
574 buffer_destroy( &buffer );
580 fprintf( stderr, "OK\n" );
584 void test_buffer_destroy()
586 fprintf( stderr, " Testing buffer_destroy ... " );
588 char *file = "/tmp/test_buffer_destroy";
591 file_buffer *buffer = NULL;
593 fp = write_open( file );
599 buffer_new( file, &buffer, TEST_SIZE );
601 buffer_destroy( &buffer );
605 fprintf( stderr, "OK\n" );
609 void test_buffer_print()
611 fprintf( stderr, " Testing buffer_print ... " );
613 file_buffer *buffer = NULL;
615 buffer_new( TEST_FILE, &buffer, TEST_SIZE );
617 // buffer_print( buffer );
619 buffer_destroy( &buffer );
623 fprintf( stderr, "OK\n" );