public virtual void testThreads() { q.setAutomated(true); q.removeChildren(ElementName.QUEUEENTRY, null, null); q.setMaxCompletedEntries(999999999); for (int i = 0; i < 10; i++) { QueueTestThread queueTestThread = new QueueTestThread(); Thread runThread = new Thread(new ThreadStart(queueTestThread.Run)); runThread.Name = "Test Thread_" + i; runThread.Start(); } // now also zapp some... for (int j = 0; j < 100; j++) { JDFQueueEntry qex = q.getNextExecutableQueueEntry(); if (qex != null) { qex.setQueueEntryStatus(EnumQueueEntryStatus.Running); qex.setQueueEntryStatus(EnumQueueEntryStatus.Completed); } } while (iThread > 0) { StatusCounter.sleep(100); // wait for threads to be over } Assert.AreEqual(q.getQueueSize(), 1000); VElement v = q.getQueueEntryVector(); JDFQueueEntry qeLast = null; for (int i = 0; i < v.Count; i++) { JDFQueueEntry qe = (JDFQueueEntry)v[i]; Console.WriteLine(qe.getPriority() + " " + qe.getQueueEntryID() + " " + qe.getQueueEntryStatus()); Assert.IsTrue(qe.CompareTo(qeLast) >= 0); qeLast = qe; } v = q.getQueueEntryVector(new JDFAttributeMap(AttributeName.STATUS, "Completed"), null); Assert.AreEqual(100, v.Count); v = q.getQueueEntryVector(new JDFAttributeMap(AttributeName.STATUS, "Running"), null); Assert.IsNull(v); v = q.getQueueEntryVector(new JDFAttributeMap(AttributeName.STATUS, "Held"), null); Assert.AreEqual(500, v.Count); v = q.getQueueEntryVector(new JDFAttributeMap(AttributeName.STATUS, "Waiting"), null); Assert.AreEqual(400, v.Count); }
public virtual void testSetQueueEntryStatus() { JDFQueueEntry qe = q.getQueueEntry("qe2"); Assert.AreEqual(q.getQueueEntryPos("qe2"), 1); q.setAutomated(true); Assert.AreEqual(EnumQueueStatus.Running, q.getQueueStatus()); q.setMaxRunningEntries(3); q.setMaxCompletedEntries(9999); int l = q.numEntries(null); qe.setQueueEntryStatus(EnumQueueEntryStatus.Completed); Assert.AreEqual(l, q.numEntries(null)); Assert.IsTrue(qe.hasAttribute(AttributeName.ENDTIME)); Assert.AreEqual(3, q.getQueueEntryPos("qe2")); Assert.AreEqual(EnumQueueStatus.Waiting, q.getQueueStatus(), "3 is max"); qe.setQueueEntryStatus(EnumQueueEntryStatus.Running); Assert.AreEqual(EnumQueueStatus.Waiting, q.getQueueStatus(), "3 is max"); Assert.AreEqual(l, q.numEntries(null)); Assert.AreEqual(0, q.getQueueEntryPos("qe2")); qe = q.getQueueEntry("qe1"); qe.setQueueEntryStatus(EnumQueueEntryStatus.Running); Assert.AreEqual(EnumQueueStatus.Running, q.getQueueStatus(), "3 is max"); Assert.AreEqual(l, q.numEntries(null)); Assert.AreEqual(1, q.getQueueEntryPos("qe1")); qe = q.getQueueEntry("qe5"); qe.setQueueEntryStatus(EnumQueueEntryStatus.Aborted); Assert.AreEqual(EnumQueueStatus.Waiting, q.getQueueStatus(), "3 is max"); Assert.AreEqual(l, q.numEntries(null)); Assert.AreEqual(4, q.getQueueEntryPos("qe5")); qe = q.getQueueEntry("qe1"); qe.setQueueEntryStatus(EnumQueueEntryStatus.Aborted); Assert.AreEqual(EnumQueueStatus.Waiting, q.getQueueStatus(), "3 is max"); Assert.AreEqual(l, q.numEntries(null)); Assert.AreEqual(3, q.getQueueEntryPos("qe1")); qe.setQueueEntryStatus(EnumQueueEntryStatus.Removed); Assert.AreEqual(EnumQueueStatus.Waiting, q.getQueueStatus(), "3 is max"); Assert.AreEqual(l - 1, q.numEntries(null)); Assert.AreEqual(-1, q.getQueueEntryPos("qe1")); Assert.IsNull(q.getQueueEntry("qe1")); }