Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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"));
        }