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
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
00091