diff --git a/api/v2/test/loopback.cpp b/api/v2/test/loopback.cpp index 4beb89cb178e601dfa855418e25ee245595d1982..14d2fb89ba28044ab622865857889ccd2ab6327e 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; }