add test 3022: test ILC for non-infinite values
authorAdam Megacz <adam.megacz@sun.com>
Mon, 24 Nov 2008 18:00:40 +0000 (18:00 +0000)
committerAdam Megacz <adam.megacz@sun.com>
Mon, 24 Nov 2008 18:00:40 +0000 (18:00 +0000)
testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java

index ea11778..88ef81a 100644 (file)
@@ -1568,6 +1568,27 @@ public class MarinaTest {
         prln("End recvPath");
     }
 
+    private void testILC(Marina marina) {
+        prln("Begin testILC");
+        adjustIndent(2);
+
+        for(int bit=0; bit<6; bit++) {
+            int ilc = bit<0 ? 0 : (1<<bit);
+
+            prln("set ilc="+ilc);
+            marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.InnerLoopCounter,ilc));
+
+            prln("send data");
+            marina.instrIn.fill(SEND_DATA);
+
+            List<BitVector> dataItems = marina.data.drainMany();
+            fatal(dataItems.size()!=ilc, "Expected "+ilc+" data item(s) to emerge but got: "+dataItems.size()+" data items");
+        }
+
+        adjustIndent(-2);
+        prln("End testILC");
+    }
+
     private void sendTorpedo(Marina marina) {
        prln("Begin sendTorpedo");
        adjustIndent(2);
@@ -1808,6 +1829,7 @@ public class MarinaTest {
                 case 3019: setOlcFromDataLatch(marina); break;
                 case 3020: setIlcFromDataLatch(marina); break;
                 case 3021: recvPath(marina); break;
+                case 3022: testILC(marina); break;
 
                default:
                        fatal(true, "Test number: "+testNum+" doesn't exist.");