From c9ead39bcd0ff7bcc3c43e5d059a20bcd27e0c78 Mon Sep 17 00:00:00 2001 From: "Wesley W. Terpstra" <w.terpstra@gsi.de> Date: Fri, 10 Feb 2012 08:56:59 +0000 Subject: [PATCH] Test address compaction of writes --- api/v2/test/loopback.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/api/v2/test/loopback.cpp b/api/v2/test/loopback.cpp index 4beb89c..14d2fb8 100644 --- a/api/v2/test/loopback.cpp +++ b/api/v2/test/loopback.cpp @@ -71,13 +71,13 @@ struct Record { Record::Record() : address(random()), data(random()) { + static address_t prev = 0; long seed = random(); address = (address << 1) | (seed&1); seed >>= 1; data = (data << 1) | (seed&1); seed >>= 1; - // !!! make it likely to do fifo/seq switch (seed & 3) { case 0: type = READ_BUS; break; @@ -101,6 +101,13 @@ Record::Record() } else { error = (address & 3) == 1; } + + /* Introduce a high chance for FIFO/seq access */ + if ((seed&3) != 3 && (type == WRITE_BUS || type == WRITE_CFG)) { + address = prev & 0x7FFF; + } else { + prev = address; + } } list<Record> expect; @@ -240,7 +247,7 @@ void test_query(Device device, int len, int requests) { ++serial; #if 0 - if (serial == 128854) { + if (serial == 13043) { printf("Enabling debug\n"); loud = true; } -- GitLab