Increasing max FIFO size for feature request 5875, adapting tests

Change-Id: Iae76d87cf436c80c005a2f8fce5a30f74f7e4545
This commit is contained in:
Christoph Lauter 2023-01-26 09:45:45 -07:00
parent ad15cf4397
commit 632517011d
3 changed files with 130 additions and 117 deletions

View File

@ -4,7 +4,7 @@
#include <stddef.h>
#define BYTES_PER_FRAME 32
#define FRAMES_PER_FIFO 800
#define FRAMES_PER_FIFO 1792
struct frame_fifo {
uint8_t *next_in; /* where to write next input into FIFO */

View File

@ -11,6 +11,16 @@
static void *g_e1d_ctx;
static uint32_t init_next_out_fn;
#define FN_ABS_TO_REL(fn) ((int) (((int64_t) (fn)) - ((int64_t) init_next_out_fn)))
#define ABS_DECISION(depth) (((long long int) ((depth))) <= \
((long long int) (FRAMES_PER_FIFO / 2)))
#define DEPTH_ABS_TO_REL(depth) ((ABS_DECISION((depth))) ? ((int) (depth)) : \
(((int) (depth)) - (FRAMES_PER_FIFO - 1)))
#define ABS_DEPTH_STR(depth) ((ABS_DECISION((depth))) ? ("") : \
("FRAMES_PER_FIFO - 1 + "))
#define ABS_DEPTH_PRINT(depth) ABS_DEPTH_STR((depth)), DEPTH_ABS_TO_REL((depth))
#define FN_PRINT(fn) ABS_DEPTH_PRINT(FN_ABS_TO_REL((fn)))
static void rifo_init(struct frame_rifo *rifo)
{
frame_rifo_init(rifo);
@ -21,9 +31,10 @@ static void rifo_init(struct frame_rifo *rifo)
static void rifo_in(struct frame_rifo *rifo, uint8_t *frame, uint32_t fn)
{
int rc = frame_rifo_in(rifo, frame, fn);
printf("RIFO_IN(%s, %u)=%d [depth=%u, frames=%u]\n",
osmo_hexdump_nospc(frame, BYTES_PER_FRAME), fn, rc,
frame_rifo_depth(rifo), frame_rifo_frames(rifo));
unsigned int depth = frame_rifo_depth(rifo);
printf("RIFO_IN(%s, start fn + %s%d)=%d [depth=%s%d, frames=%u]\n",
osmo_hexdump_nospc(frame, BYTES_PER_FRAME), FN_PRINT(fn), rc,
ABS_DEPTH_PRINT(depth), frame_rifo_frames(rifo));
}
static int rifo_out(struct frame_rifo *rifo, uint8_t *out)
@ -108,17 +119,18 @@ static void too_old_frames(void)
printf("\nTEST: %s, starting at FN: %u\n", __func__, init_next_out_fn);
// Put 10 frames at absolute frame numbers 850-860
// (to get outside of the 800 frame buffer)
// Put 10 frames at absolute frame numbers FRAMES_PER_FIFO+50
// to FRAMES_PER_FIFO+60 (to get outside of the
// FRAMES_PER_FIFO frame buffer)
const uint8_t in[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for (int i = 0; i < sizeof(in); i++) {
uint8_t frame[32];
memset(frame, in[i], sizeof(frame));
rifo_in(&rifo, frame, init_next_out_fn + in[i] + 850);
rifo_in(&rifo, frame, init_next_out_fn + in[i] + FRAMES_PER_FIFO + 50);
}
// Skip the first 850 frames
for (int i = 0; i < 850; i++) {
// Skip the first FRAMES_PER_FIFO + 50 frames
for (int i = 0; i < FRAMES_PER_FIFO + 50; i++) {
uint8_t frame[32];
memset(frame, 0xff, sizeof(frame));
// Note: frame_rifo_out instead of rifo_out
@ -147,19 +159,20 @@ static void bound_check(void)
frame_rifo_in(&rifo, frame, init_next_out_fn);
frame_rifo_out(&rifo, frame);
// Put 11 frames at absolute frame numbers 791-801
// Put 11 frames at absolute frame numbers FRAMES_PER_FIFO -
// 10 + 1 to FRAMES_PER_FIFO + 1
const uint8_t in[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int i = 0; i < sizeof(in); i++) {
memset(frame, in[i], sizeof(frame));
rifo_in(&rifo, frame, init_next_out_fn + in[i] + 791);
rifo_in(&rifo, frame, init_next_out_fn + in[i] + FRAMES_PER_FIFO - 10 + 1);
}
// Add frame at start offset
memset(frame, 0xa5, sizeof(frame));
rifo_in(&rifo, frame, init_next_out_fn);
// Skip the first 790 frames
for (int i = 0; i < 790; i++) {
// Skip the first FRAMES_PER_FIFO - 10 frames
for (int i = 0; i < FRAMES_PER_FIFO - 10; i++) {
memset(frame, 0xff, sizeof(frame));
// Note: frame_rifo_out instead of rifo_out
// (just to ignore the output)

View File

@ -1,10 +1,10 @@
TEST: missing_frames, starting at FN: 0
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 0)=0 [depth=1, frames=1]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 2)=0 [depth=3, frames=2]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 4)=0 [depth=5, frames=3]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 6)=0 [depth=7, frames=4]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 8)=0 [depth=9, frames=5]
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + 0)=0 [depth=1, frames=1]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + 2)=0 [depth=3, frames=2]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + 4)=0 [depth=5, frames=3]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + 6)=0 [depth=7, frames=4]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + 8)=0 [depth=9, frames=5]
RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 [depth=8, frames=4]
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-1 [depth=7, frames=4]
RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 [depth=6, frames=3]
@ -17,11 +17,11 @@ RIFO_OUT(0808080808080808080808080808080808080808080808080808080808080808)=0 [de
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 [depth=0, frames=0]
TEST: missing_frames, starting at FN: 0
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 1)=0 [depth=2, frames=1]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 3)=0 [depth=4, frames=2]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 5)=0 [depth=6, frames=3]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 7)=0 [depth=8, frames=4]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 9)=0 [depth=10, frames=5]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + 1)=0 [depth=2, frames=1]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + 3)=0 [depth=4, frames=2]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + 5)=0 [depth=6, frames=3]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + 7)=0 [depth=8, frames=4]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + 9)=0 [depth=10, frames=5]
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-1 [depth=9, frames=5]
RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 [depth=8, frames=4]
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-1 [depth=7, frames=4]
@ -34,16 +34,16 @@ RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-1 [d
RIFO_OUT(0909090909090909090909090909090909090909090909090909090909090909)=0 [depth=0, frames=0]
TEST: reordered_in, starting at FN: 0
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 0)=0 [depth=1, frames=1]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 1)=0 [depth=2, frames=2]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 4)=0 [depth=5, frames=3]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 3)=0 [depth=4, frames=4]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 5)=0 [depth=6, frames=5]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 2)=0 [depth=3, frames=6]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 6)=0 [depth=7, frames=7]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 7)=0 [depth=8, frames=8]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 8)=0 [depth=9, frames=9]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 9)=0 [depth=10, frames=10]
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + 0)=0 [depth=1, frames=1]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + 1)=0 [depth=2, frames=2]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + 4)=0 [depth=5, frames=3]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + 3)=0 [depth=4, frames=4]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + 5)=0 [depth=6, frames=5]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + 2)=0 [depth=3, frames=6]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + 6)=0 [depth=7, frames=7]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + 7)=0 [depth=8, frames=8]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + 8)=0 [depth=9, frames=9]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + 9)=0 [depth=10, frames=10]
RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 [depth=9, frames=9]
RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 [depth=8, frames=8]
RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 [depth=7, frames=7]
@ -56,16 +56,16 @@ RIFO_OUT(0808080808080808080808080808080808080808080808080808080808080808)=0 [de
RIFO_OUT(0909090909090909090909090909090909090909090909090909090909090909)=0 [depth=0, frames=0]
TEST: correct_order, starting at FN: 0
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 0)=0 [depth=1, frames=1]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 1)=0 [depth=2, frames=2]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 2)=0 [depth=3, frames=3]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 3)=0 [depth=4, frames=4]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 4)=0 [depth=5, frames=5]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 5)=0 [depth=6, frames=6]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 6)=0 [depth=7, frames=7]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 7)=0 [depth=8, frames=8]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 8)=0 [depth=9, frames=9]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 9)=0 [depth=10, frames=10]
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + 0)=0 [depth=1, frames=1]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + 1)=0 [depth=2, frames=2]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + 2)=0 [depth=3, frames=3]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + 3)=0 [depth=4, frames=4]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + 4)=0 [depth=5, frames=5]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + 5)=0 [depth=6, frames=6]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + 6)=0 [depth=7, frames=7]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + 7)=0 [depth=8, frames=8]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + 8)=0 [depth=9, frames=9]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + 9)=0 [depth=10, frames=10]
RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 [depth=9, frames=9]
RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 [depth=8, frames=8]
RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 [depth=7, frames=7]
@ -78,16 +78,16 @@ RIFO_OUT(0808080808080808080808080808080808080808080808080808080808080808)=0 [de
RIFO_OUT(0909090909090909090909090909090909090909090909090909090909090909)=0 [depth=0, frames=0]
TEST: too_old_frames, starting at FN: 0
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 850)=-34 [depth=0, frames=0]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 851)=-34 [depth=0, frames=0]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 852)=-34 [depth=0, frames=0]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 853)=-34 [depth=0, frames=0]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 854)=-34 [depth=0, frames=0]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 855)=-34 [depth=0, frames=0]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 856)=-34 [depth=0, frames=0]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 857)=-34 [depth=0, frames=0]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 858)=-34 [depth=0, frames=0]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 859)=-34 [depth=0, frames=0]
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + FRAMES_PER_FIFO - 1 + 51)=-34 [depth=0, frames=0]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + FRAMES_PER_FIFO - 1 + 52)=-34 [depth=0, frames=0]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + FRAMES_PER_FIFO - 1 + 53)=-34 [depth=0, frames=0]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + FRAMES_PER_FIFO - 1 + 54)=-34 [depth=0, frames=0]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + FRAMES_PER_FIFO - 1 + 55)=-34 [depth=0, frames=0]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + FRAMES_PER_FIFO - 1 + 56)=-34 [depth=0, frames=0]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + FRAMES_PER_FIFO - 1 + 57)=-34 [depth=0, frames=0]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + FRAMES_PER_FIFO - 1 + 58)=-34 [depth=0, frames=0]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + FRAMES_PER_FIFO - 1 + 59)=-34 [depth=0, frames=0]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + FRAMES_PER_FIFO - 1 + 60)=-34 [depth=0, frames=0]
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 [depth=0, frames=0]
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 [depth=0, frames=0]
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 [depth=0, frames=0]
@ -100,18 +100,18 @@ RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 [d
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 [depth=0, frames=0]
TEST: bound_check, starting at FN: 0
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 791)=0 [depth=791, frames=1]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 792)=0 [depth=792, frames=2]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 793)=0 [depth=793, frames=3]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 794)=0 [depth=794, frames=4]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 795)=0 [depth=795, frames=5]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 796)=0 [depth=796, frames=6]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 797)=0 [depth=797, frames=7]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 798)=0 [depth=798, frames=8]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 799)=0 [depth=799, frames=9]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 800)=0 [depth=800, frames=10]
RIFO_IN(0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a, 801)=-34 [depth=800, frames=10]
RIFO_IN(a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5, 0)=-34 [depth=800, frames=10]
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + FRAMES_PER_FIFO - 1 + -8)=0 [depth=FRAMES_PER_FIFO - 1 + -8, frames=1]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + FRAMES_PER_FIFO - 1 + -7)=0 [depth=FRAMES_PER_FIFO - 1 + -7, frames=2]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + FRAMES_PER_FIFO - 1 + -6)=0 [depth=FRAMES_PER_FIFO - 1 + -6, frames=3]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + FRAMES_PER_FIFO - 1 + -5)=0 [depth=FRAMES_PER_FIFO - 1 + -5, frames=4]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + FRAMES_PER_FIFO - 1 + -4)=0 [depth=FRAMES_PER_FIFO - 1 + -4, frames=5]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + FRAMES_PER_FIFO - 1 + -3)=0 [depth=FRAMES_PER_FIFO - 1 + -3, frames=6]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + FRAMES_PER_FIFO - 1 + -2)=0 [depth=FRAMES_PER_FIFO - 1 + -2, frames=7]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + FRAMES_PER_FIFO - 1 + -1)=0 [depth=FRAMES_PER_FIFO - 1 + -1, frames=8]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + FRAMES_PER_FIFO - 1 + 0)=0 [depth=FRAMES_PER_FIFO - 1 + 0, frames=9]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + FRAMES_PER_FIFO - 1 + 1)=0 [depth=FRAMES_PER_FIFO - 1 + 1, frames=10]
RIFO_IN(0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a, start fn + FRAMES_PER_FIFO - 1 + 2)=-34 [depth=FRAMES_PER_FIFO - 1 + 1, frames=10]
RIFO_IN(a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5, start fn + 0)=-34 [depth=FRAMES_PER_FIFO - 1 + 1, frames=10]
RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 [depth=9, frames=9]
RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 [depth=8, frames=8]
RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 [depth=7, frames=7]
@ -124,11 +124,11 @@ RIFO_OUT(0808080808080808080808080808080808080808080808080808080808080808)=0 [de
RIFO_OUT(0909090909090909090909090909090909090909090909090909090909090909)=0 [depth=0, frames=0]
TEST: missing_frames, starting at FN: 4294967290
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 4294967290)=0 [depth=1, frames=1]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 4294967292)=0 [depth=3, frames=2]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 4294967294)=0 [depth=5, frames=3]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 0)=0 [depth=7, frames=4]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 2)=0 [depth=9, frames=5]
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + 0)=0 [depth=1, frames=1]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + 2)=0 [depth=3, frames=2]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + 4)=0 [depth=5, frames=3]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + 6)=0 [depth=7, frames=4]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + 8)=0 [depth=9, frames=5]
RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 [depth=8, frames=4]
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-1 [depth=7, frames=4]
RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 [depth=6, frames=3]
@ -141,11 +141,11 @@ RIFO_OUT(0808080808080808080808080808080808080808080808080808080808080808)=0 [de
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 [depth=0, frames=0]
TEST: missing_frames, starting at FN: 4294967290
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 4294967291)=0 [depth=2, frames=1]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 4294967293)=0 [depth=4, frames=2]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 4294967295)=0 [depth=6, frames=3]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 1)=0 [depth=8, frames=4]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 3)=0 [depth=10, frames=5]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + 1)=0 [depth=2, frames=1]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + 3)=0 [depth=4, frames=2]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + 5)=0 [depth=6, frames=3]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + 7)=0 [depth=8, frames=4]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + 9)=0 [depth=10, frames=5]
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-1 [depth=9, frames=5]
RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 [depth=8, frames=4]
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-1 [depth=7, frames=4]
@ -158,16 +158,16 @@ RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-1 [d
RIFO_OUT(0909090909090909090909090909090909090909090909090909090909090909)=0 [depth=0, frames=0]
TEST: reordered_in, starting at FN: 4294967290
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 4294967290)=0 [depth=1, frames=1]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 4294967291)=0 [depth=2, frames=2]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 4294967294)=0 [depth=5, frames=3]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 4294967293)=0 [depth=4, frames=4]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 4294967295)=0 [depth=6, frames=5]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 4294967292)=0 [depth=3, frames=6]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 0)=0 [depth=7, frames=7]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 1)=0 [depth=8, frames=8]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 2)=0 [depth=9, frames=9]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 3)=0 [depth=10, frames=10]
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + 0)=0 [depth=1, frames=1]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + 1)=0 [depth=2, frames=2]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + 4)=0 [depth=5, frames=3]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + 3)=0 [depth=4, frames=4]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + 5)=0 [depth=6, frames=5]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + 2)=0 [depth=3, frames=6]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + 6)=0 [depth=7, frames=7]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + 7)=0 [depth=8, frames=8]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + 8)=0 [depth=9, frames=9]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + 9)=0 [depth=10, frames=10]
RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 [depth=9, frames=9]
RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 [depth=8, frames=8]
RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 [depth=7, frames=7]
@ -180,16 +180,16 @@ RIFO_OUT(0808080808080808080808080808080808080808080808080808080808080808)=0 [de
RIFO_OUT(0909090909090909090909090909090909090909090909090909090909090909)=0 [depth=0, frames=0]
TEST: correct_order, starting at FN: 4294967290
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 4294967290)=0 [depth=1, frames=1]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 4294967291)=0 [depth=2, frames=2]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 4294967292)=0 [depth=3, frames=3]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 4294967293)=0 [depth=4, frames=4]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 4294967294)=0 [depth=5, frames=5]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 4294967295)=0 [depth=6, frames=6]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 0)=0 [depth=7, frames=7]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 1)=0 [depth=8, frames=8]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 2)=0 [depth=9, frames=9]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 3)=0 [depth=10, frames=10]
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + 0)=0 [depth=1, frames=1]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + 1)=0 [depth=2, frames=2]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + 2)=0 [depth=3, frames=3]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + 3)=0 [depth=4, frames=4]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + 4)=0 [depth=5, frames=5]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + 5)=0 [depth=6, frames=6]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + 6)=0 [depth=7, frames=7]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + 7)=0 [depth=8, frames=8]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + 8)=0 [depth=9, frames=9]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + 9)=0 [depth=10, frames=10]
RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 [depth=9, frames=9]
RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 [depth=8, frames=8]
RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 [depth=7, frames=7]
@ -202,16 +202,16 @@ RIFO_OUT(0808080808080808080808080808080808080808080808080808080808080808)=0 [de
RIFO_OUT(0909090909090909090909090909090909090909090909090909090909090909)=0 [depth=0, frames=0]
TEST: too_old_frames, starting at FN: 4294967290
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 844)=-34 [depth=0, frames=0]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 845)=-34 [depth=0, frames=0]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 846)=-34 [depth=0, frames=0]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 847)=-34 [depth=0, frames=0]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 848)=-34 [depth=0, frames=0]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 849)=-34 [depth=0, frames=0]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 850)=-34 [depth=0, frames=0]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 851)=-34 [depth=0, frames=0]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 852)=-34 [depth=0, frames=0]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 853)=-34 [depth=0, frames=0]
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + FRAMES_PER_FIFO - 1 + 51)=-34 [depth=0, frames=0]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + FRAMES_PER_FIFO - 1 + 52)=-34 [depth=0, frames=0]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + FRAMES_PER_FIFO - 1 + 53)=-34 [depth=0, frames=0]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + FRAMES_PER_FIFO - 1 + 54)=-34 [depth=0, frames=0]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + FRAMES_PER_FIFO - 1 + 55)=-34 [depth=0, frames=0]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + FRAMES_PER_FIFO - 1 + 56)=-34 [depth=0, frames=0]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + FRAMES_PER_FIFO - 1 + 57)=-34 [depth=0, frames=0]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + FRAMES_PER_FIFO - 1 + 58)=-34 [depth=0, frames=0]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + FRAMES_PER_FIFO - 1 + 59)=-34 [depth=0, frames=0]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + FRAMES_PER_FIFO - 1 + 60)=-34 [depth=0, frames=0]
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 [depth=0, frames=0]
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 [depth=0, frames=0]
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 [depth=0, frames=0]
@ -224,18 +224,18 @@ RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 [d
RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 [depth=0, frames=0]
TEST: bound_check, starting at FN: 4294967290
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 785)=0 [depth=791, frames=1]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 786)=0 [depth=792, frames=2]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 787)=0 [depth=793, frames=3]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 788)=0 [depth=794, frames=4]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 789)=0 [depth=795, frames=5]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 790)=0 [depth=796, frames=6]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 791)=0 [depth=797, frames=7]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 792)=0 [depth=798, frames=8]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 793)=0 [depth=799, frames=9]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 794)=0 [depth=800, frames=10]
RIFO_IN(0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a, 795)=-34 [depth=800, frames=10]
RIFO_IN(a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5, 4294967290)=-34 [depth=800, frames=10]
RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + FRAMES_PER_FIFO - 1 + -8)=0 [depth=FRAMES_PER_FIFO - 1 + -8, frames=1]
RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + FRAMES_PER_FIFO - 1 + -7)=0 [depth=FRAMES_PER_FIFO - 1 + -7, frames=2]
RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + FRAMES_PER_FIFO - 1 + -6)=0 [depth=FRAMES_PER_FIFO - 1 + -6, frames=3]
RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + FRAMES_PER_FIFO - 1 + -5)=0 [depth=FRAMES_PER_FIFO - 1 + -5, frames=4]
RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + FRAMES_PER_FIFO - 1 + -4)=0 [depth=FRAMES_PER_FIFO - 1 + -4, frames=5]
RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + FRAMES_PER_FIFO - 1 + -3)=0 [depth=FRAMES_PER_FIFO - 1 + -3, frames=6]
RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + FRAMES_PER_FIFO - 1 + -2)=0 [depth=FRAMES_PER_FIFO - 1 + -2, frames=7]
RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + FRAMES_PER_FIFO - 1 + -1)=0 [depth=FRAMES_PER_FIFO - 1 + -1, frames=8]
RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + FRAMES_PER_FIFO - 1 + 0)=0 [depth=FRAMES_PER_FIFO - 1 + 0, frames=9]
RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + FRAMES_PER_FIFO - 1 + 1)=0 [depth=FRAMES_PER_FIFO - 1 + 1, frames=10]
RIFO_IN(0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a, start fn + FRAMES_PER_FIFO - 1 + 2)=-34 [depth=FRAMES_PER_FIFO - 1 + 1, frames=10]
RIFO_IN(a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5, start fn + 0)=-34 [depth=FRAMES_PER_FIFO - 1 + 1, frames=10]
RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 [depth=9, frames=9]
RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 [depth=8, frames=8]
RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 [depth=7, frames=7]