1 #include "internal.h"
\r
7 /****************************************************************************/
\r
8 int main( int argc, char **argv )
\r
10 enum lfds611_test_operation
\r
11 operation = UNKNOWN;
\r
17 assert( argc >= 1 );
\r
18 assert( argv != NULL );
\r
20 if( argc == 1 or argc >= 4 )
\r
23 if( operation == UNKNOWN )
\r
25 if( 0 == strcmp(*(argv+1), "test") )
\r
29 // TRD : sscanf() may fail, but iterations is initialised to 1, so it's okay
\r
31 sscanf( *(argv+2), "%u", &iterations );
\r
34 if( 0 == strcmp(*(argv+1), "benchmark") )
\r
36 operation = BENCHMARK;
\r
38 // TRD : sscanf() may fail, but iterations is initialised to 1, so it's okay
\r
40 sscanf( *(argv+2), "%u", &iterations );
\r
48 printf( "test [test|benchmark] [iterations]\n"
\r
49 " test : run the test suite\n"
\r
50 " benchmark : run the benchmark suite\n"
\r
51 " iterations : optional, default is 1\n" );
\r
55 for( loop = 1 ; loop < iterations+1 ; loop++ )
\r
58 "Test Iteration %02u\n"
\r
59 "=================\n", loop );
\r
61 test_lfds611_abstraction();
\r
62 test_lfds611_freelist();
\r
63 test_lfds611_queue();
\r
64 test_lfds611_ringbuffer();
\r
65 test_lfds611_slist();
\r
66 test_lfds611_stack();
\r
71 for( loop = 1 ; loop < iterations+1 ; loop++ )
\r
74 "Benchmark Iteration %02u\n"
\r
75 "========================\n", loop );
\r
77 benchmark_lfds611_freelist();
\r
78 benchmark_lfds611_queue();
\r
79 benchmark_lfds611_ringbuffer();
\r
80 benchmark_lfds611_stack();
\r
85 return( EXIT_SUCCESS );
\r