aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Lauter <christoph.lauter@lip6.fr>2023-01-26 09:45:45 -0700
committerChristoph Lauter <christoph.lauter@lip6.fr>2023-01-26 09:45:45 -0700
commit632517011d756da5b0e5ddb38348df0454254621 (patch)
tree8513a9317c4acac7be8817b61e8e86486ff2652f
parentad15cf439755e4f217b383ad0eb1ed209f1d93ed (diff)
Increasing max FIFO size for feature request 5875, adapting tests
-rw-r--r--src/octoi/frame_fifo.h2
-rw-r--r--tests/rifo/rifo_test.c37
-rw-r--r--tests/rifo/rifo_test.ok208
3 files changed, 130 insertions, 117 deletions
diff --git a/src/octoi/frame_fifo.h b/src/octoi/frame_fifo.h
index ee9f079..c601b07 100644
--- a/src/octoi/frame_fifo.h
+++ b/src/octoi/frame_fifo.h
@@ -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 */
diff --git a/tests/rifo/rifo_test.c b/tests/rifo/rifo_test.c
index 4e7ae45..ec90ce7 100644
--- a/tests/rifo/rifo_test.c
+++ b/tests/rifo/rifo_test.c
@@ -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)
diff --git a/tests/rifo/rifo_test.ok b/tests/rifo/rifo_test.ok
index f705315..564acf3 100644
--- a/tests/rifo/rifo_test.ok
+++ b/tests/rifo/rifo_test.ok
@@ -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]