4 //#define TEST_FILE "/Users/m.hansen/DATA/genomes/hg18/hg18.fna"
5 #define TEST_FILE "test/test_files/test.fna"
8 static void test_read_open();
9 static void test_write_open();
10 static void test_append_open();
11 static void test_close_stream();
12 static void test_file_read();
13 static void test_file_unlink();
14 static void test_file_rename();
15 static void test_buffer_new();
16 static void test_buffer_read();
17 static void test_buffer_getc();
18 static void test_buffer_ungetc();
19 static void test_buffer_gets();
20 static void test_buffer_ungets();
21 static void test_buffer_new_size();
22 static void test_buffer_resize();
23 static void test_buffer_move();
24 static void test_buffer_destroy();
25 static void test_buffer_print();
30 fprintf( stderr, "Running all tests for filesys.c\n" );
45 test_buffer_new_size();
48 test_buffer_destroy();
51 fprintf( stderr, "Done\n\n" );
59 fprintf( stderr, " Testing read_open ... " );
63 // fp = read_open( "/tmp/asdf" );
64 // fp = read_open( "/private/etc/ssh_host_rsa_key" );
65 fp = read_open( "/dev/null" );
69 fprintf( stderr, "OK\n" );
73 void test_write_open()
75 fprintf( stderr, " Testing write_open ... " );
79 // fp = write_open( "/tmp/asdf" );
80 // fp = write_open( "/private/etc/ssh_host_rsa_key" );
81 fp = write_open( "/dev/null" );
85 fprintf( stderr, "OK\n" );
89 void test_append_open()
91 fprintf( stderr, " Testing append_open ... " );
95 //fp = append_open( "/tmp/asdf" );
96 //fp = append_open( "/private/etc/ssh_host_rsa_key" );
97 fp = append_open( "/dev/null" );
101 fprintf( stderr, "OK\n" );
105 void test_close_stream()
107 fprintf( stderr, " Testing close_stream ... " );
111 fp = read_open( "/dev/null" );
115 fprintf( stderr, "OK\n" );
119 void test_file_read()
121 fprintf( stderr, " Testing file_read ... " );
123 char *file = "/tmp/test_file_read";
124 char *str1 = "MARTIN";
128 size_t len = strlen( str1 );
131 fp1 = write_open( file );
132 fprintf( fp1, str1 );
135 fp2 = read_open( file );
137 num = file_read( fp2, &str2, len );
141 assert( num == len );
142 assert( strcmp( str1, str2 ) == 0 );
144 fprintf( stderr, "OK\n" );
148 void test_file_unlink()
150 fprintf( stderr, " Testing file_unlink ... " );
152 char *test_file = "/tmp/test";
155 fp = write_open( test_file );
160 //file_unlink( "/dev/null" );
161 //file_unlink( "/tmp/" );
162 //file_unlink( "/private/etc/ssh_host_rsa_key" );
163 file_unlink( test_file );
165 fprintf( stderr, "OK\n" );
169 void test_file_rename()
171 fprintf( stderr, " Testing file_rename ... " );
173 char *file_before = "/tmp/before";
174 char *file_after = "/tmp/after";
178 fp = write_open( file_before );
182 //file_rename( file_after, file_after );
183 file_rename( file_before, file_before );
184 file_rename( file_before, file_after );
186 //file_unlink( file_before );
187 file_unlink( file_after );
189 fprintf( stderr, "OK\n" );
193 void test_buffer_new()
195 fprintf( stderr, " Testing buffer_new ... " );
197 char *file = "/tmp/test_buffer_new";
198 char *str = "MARTIN";
202 file_buffer *buffer = NULL;
204 fp = write_open( file );
208 num = buffer_new( file, &buffer, size );
210 assert( num == strlen( str ) );
211 assert( buffer->token_pos == 0 );
212 assert( buffer->buffer_pos == 0 );
213 assert( buffer->buffer_end == 6 );
214 assert( buffer->buffer_size == size );
215 assert( buffer->eof == TRUE );
216 assert( strcmp( str, buffer->str ) == 0 );
218 buffer_destroy( &buffer );
224 fprintf( stderr, "OK\n" );
228 void test_buffer_read()
230 fprintf( stderr, " Testing buffer_read ... " );
232 char *file = "/tmp/test_buffer_read";
233 char *str = "MARTIN";
237 file_buffer *buffer = NULL;
239 fp = write_open( file );
243 num = buffer_new( file, &buffer, size );
246 assert( buffer->token_pos == 0 );
247 assert( buffer->buffer_pos == 0 );
248 assert( buffer->buffer_end == 2 );
249 assert( buffer->buffer_size == size );
250 assert( buffer->eof == FALSE );
251 assert( strcmp( buffer->str, "MA" ) == 0 );
253 buffer->buffer_pos += 2;
255 num = buffer_read( &buffer );
258 assert( buffer->token_pos == 0 );
259 assert( buffer->buffer_pos == 2 );
260 assert( buffer->buffer_end == 4 );
261 assert( buffer->buffer_size == size );
262 assert( buffer->eof == FALSE );
263 assert( strcmp( buffer->str, "MART" ) == 0 );
265 buffer->buffer_pos += 2;
267 num = buffer_read( &buffer );
270 assert( buffer->token_pos == 0 );
271 assert( buffer->buffer_pos == 4 );
272 assert( buffer->buffer_end == 6 );
273 assert( buffer->buffer_size == size );
274 assert( buffer->eof == FALSE );
275 assert( strcmp( buffer->str, "MARTIN" ) == 0 );
277 buffer->buffer_pos += 2;
279 num = buffer_read( &buffer );
282 assert( buffer->token_pos == 0 );
283 assert( buffer->buffer_pos == 6 );
284 assert( buffer->buffer_end == 6 );
285 assert( buffer->buffer_size == size );
286 assert( buffer->eof == TRUE );
287 assert( strcmp( buffer->str, "MARTIN" ) == 0 );
289 buffer_destroy( &buffer );
294 fprintf( stderr, "OK\n" );
298 void test_buffer_getc()
300 fprintf( stderr, " Testing buffer_getc ... " );
302 char *file = "/tmp/test_buffer_getc";
303 char *str = "MARTIN";
305 size_t size = strlen( str );
308 file_buffer *buffer = NULL;
310 fp = write_open( file );
314 buffer_new( file, &buffer, size );
316 for ( i = 0; str[ i ]; i++ )
318 c = buffer_getc( buffer );
320 assert( str[ i ] == c );
323 buffer_destroy( &buffer );
329 fprintf( stderr, "OK\n" );
333 void test_buffer_ungetc()
335 fprintf( stderr, " Testing buffer_ungetc ... " );
337 char *file = "/tmp/test_buffer_ungetc";
338 char *str = "MARTIN";
342 file_buffer *buffer = NULL;
344 fp = write_open( file );
350 buffer_new( file, &buffer, TEST_SIZE );
352 c = buffer_getc( buffer );
356 buffer_ungetc( buffer );
360 while ( ( c = buffer_getc( buffer ) ) != EOF )
362 assert( c == str[ i ] );
369 buffer_ungetc( buffer );
371 c = buffer_getc( buffer );
375 buffer_destroy( &buffer );
381 fprintf( stderr, "OK\n" );
385 void test_buffer_gets()
387 fprintf( stderr, " Testing buffer_gets ... " );
389 char *file = "/tmp/test_buffer_gets";
390 char *out = "MARTIN\nASSER\nHANSEN\n";
395 file_buffer *buffer = NULL;
397 fp = write_open( file );
401 buffer_new( file, &buffer, size );
405 while( ( str = buffer_gets( buffer ) ) != NULL )
408 assert( strcmp( str, "MARTIN\n" ) == 0 );
409 } else if ( i == 1 ) {
410 assert( strcmp( str, "ASSER\n" ) == 0 );
411 } else if ( i == 2 ) {
412 assert( strcmp( str, "HANSEN\n" ) == 0 );
418 buffer_destroy( &buffer );
424 fprintf( stderr, "OK\n" );
428 void test_buffer_ungets()
430 fprintf( stderr, " Testing buffer_ungets ... " );
432 char *file = "/tmp/test_buffer_ungets";
433 char *out = "MARTIN\nASSER\nHANSEN\n";
438 file_buffer *buffer = NULL;
440 fp = write_open( file );
446 buffer_new( file, &buffer, size );
448 str1 = buffer_gets( buffer );
450 buffer_ungets( buffer );
452 str2 = buffer_gets( buffer );
454 assert( strcmp( str1, str2 ) == 0 );
456 while ( ( str1 = buffer_gets( buffer ) ) != NULL )
460 buffer_ungets( buffer );
462 str1 = buffer_gets( buffer );
464 assert( ( strcmp( str1, "HANSEN\n" ) ) == 0 );
466 buffer_destroy( &buffer );
472 fprintf( stderr, "OK\n" );
476 void test_buffer_new_size()
478 fprintf( stderr, " Testing buffer_new_size ... " );
480 char *file = "/tmp/test_buffer_new_size";
484 file_buffer *buffer = NULL;
486 fp = write_open( file );
490 buffer_new( file, &buffer, size );
492 buffer_new_size( buffer, 201048577 );
494 assert( buffer->buffer_size == 268435456 );
496 buffer_destroy( &buffer );
502 fprintf( stderr, "OK\n" );
506 void test_buffer_resize()
508 fprintf( stderr, " Testing buffer_resize ... " );
510 char *file = "/tmp/test_buffer_resize";
516 file_buffer *buffer = NULL;
518 fp = write_open( file );
522 buffer_new( file, &buffer, size );
526 while ( ( c = buffer_getc( buffer ) ) != EOF )
528 assert( c == str[ i ] );
532 buffer_destroy( &buffer );
538 fprintf( stderr, "OK\n" );
542 void test_buffer_move()
544 fprintf( stderr, " Testing buffer_move ... " );
546 char *file = "/tmp/test_buffer_move";
547 char *str = "ABCDEFG";
548 size_t size = strlen( str );
552 file_buffer *buffer = NULL;
554 fp = write_open( file );
560 buffer_new( file, &buffer, size );
562 new_size = buffer_move( buffer, size, move );
564 assert( new_size == strlen( buffer->str ) );
565 assert( strcmp( buffer->str, "DEFG" ) == 0 );
567 new_size = buffer_move( buffer, new_size, move );
569 assert( new_size == strlen( buffer->str ) );
570 assert( strcmp( buffer->str, "G" ) == 0 );
572 buffer_destroy( &buffer );
578 fprintf( stderr, "OK\n" );
582 void test_buffer_destroy()
584 fprintf( stderr, " Testing buffer_destroy ... " );
586 char *file = "/tmp/test_buffer_destroy";
589 file_buffer *buffer = NULL;
591 fp = write_open( file );
597 buffer_new( file, &buffer, TEST_SIZE );
599 buffer_destroy( &buffer );
603 fprintf( stderr, "OK\n" );
607 void test_buffer_print()
609 fprintf( stderr, " Testing buffer_print ... " );
611 file_buffer *buffer = NULL;
613 buffer_new( TEST_FILE, &buffer, TEST_SIZE );
615 // buffer_print( buffer );
617 buffer_destroy( &buffer );
621 fprintf( stderr, "OK\n" );