fifo.c

Go to the documentation of this file.
00001 
00009 #include "ctl/ctldef.h"
00010 #include "ctl/fifo.h"
00011 #include "ctl/lifo.h"
00012 
00013 #ifndef CTL_UNIT
00014 
00015 #else /* CTL_UNIT */
00016 #include "unit/unit.h"
00017 
00018 
00023 void Test_FIFO(void)
00024 {
00025     FIFO_auto(int,32, fifo);
00026     Test_Error(FIFO_empty(int, fifo));
00027     Test_Error(!FIFO_full(int, fifo));
00028     {
00029         int i;
00030         for( i = 0; i < 32; ++i )
00031         {
00032             Test_Error(!FIFO_full(int, fifo));
00033             *FIFO_add(int, fifo) = i;
00034         }
00035     }
00036     Test_Error(FIFO_full(int, fifo));
00037     {
00038         int i;
00039         for( i = 0; i < 32; ++i )
00040         {
00041             Test_Error(!FIFO_empty(int, fifo));
00042             Test_Error(*FIFO_pop(int, fifo) == i);
00043         }
00044     }
00045     Test_Error(FIFO_empty(int, fifo));
00046     {
00047         int i;
00048         for( i = 0; i < 32; ++i )
00049         {
00050             Test_Error(!FIFO_full(int, fifo));
00051             *FIFO_add(int, fifo) = i;
00052         }
00053     }
00054     Test_Error(FIFO_full(int, fifo));
00055     {
00056         int i;
00057         for( i = 0; i < 32; ++i )
00058         {
00059             Test_Error(!FIFO_empty(int, fifo));
00060             Test_Error(*FIFO_pop(int, fifo) == i);
00061         }
00062     }
00063     Test_Error(FIFO_empty(int, fifo));
00064 }
00065 
00066 
00071 void Test_LIFO(void)
00072 {
00073     LIFO_auto(int, 32, lifo);
00074     Test_Error(LIFO_empty(int, lifo));
00075     Test_Error(!LIFO_full(int, lifo));
00076     {
00077         int i;
00078         for( i = 0; i < 32; ++i )
00079             *LIFO_push(int, lifo) = i;
00080     }
00081     Test_Error(LIFO_full(int, lifo));
00082     {
00083         int i;
00084         for( i = 31; i >= 0; --i )
00085             Test_Error(*LIFO_pop(int, lifo) == i);
00086     }
00087     Test_Error(LIFO_empty(int, lifo));
00088 }
00089 
00090 #endif /* CTL_UNIT */
00091 

Generated on Fri Jan 2 15:28:34 2009 for Squat by  doxygen 1.5.6