add fifo and improve test case