void Chaser_Test::quickChaser() { Fixture* fxi = new Fixture(m_doc); fxi->setAddress(0); fxi->setUniverse(0); fxi->setChannels(1); m_doc->addFixture(fxi); Chaser* c = new Chaser(m_doc); // A really quick chaser c->setDuration(0); m_doc->addFunction(c); Scene* s1 = new Scene(m_doc); s1->setValue(fxi->id(), 0, 255); m_doc->addFunction(s1); c->addStep(s1->id()); Scene* s2 = new Scene(m_doc); s2->setValue(fxi->id(), 0, 127); m_doc->addFunction(s2); c->addStep(s2->id()); MasterTimer timer(m_doc); QVERIFY(c->isRunning() == false); QVERIFY(c->stopped() == true); c->start(&timer, FunctionParent::master()); timer.timerTick(); for (uint i = 0; i < 12; ++i) { timer.timerTick(); QVERIFY(c->isRunning() == true); QVERIFY(c->stopped() == false); // always one function running while the other is not QVERIFY(s1->isRunning() == true || s2->isRunning() == true); QVERIFY(s1->stopped() == true || s2->stopped() == true); } c->stop(FunctionParent::master()); timer.timerTick(); QVERIFY(c->isRunning() == false); QVERIFY(c->stopped() == true); QVERIFY(s1->isRunning() == false); QVERIFY(s1->stopped() == true); QVERIFY(s2->isRunning() == false); QVERIFY(s2->stopped() == true); }
void Chaser_Test::postRun() { Chaser* c = new Chaser(m_doc); m_doc->addFunction(c); UniverseArray ua(512); MasterTimerStub timer(m_doc, ua); c->preRun(&timer); QCOMPARE(c->isRunning(), true); // The chaser has no steps so ChaserRunner::postrun() shouldn't do much c->postRun(&timer, &ua); QCOMPARE(c->isRunning(), false); // Make sure Function::postRun() is called }
void Chaser_Test::postRun() { Chaser* c = new Chaser(m_doc); m_doc->addFunction(c); QList<Universe*> ua; ua.append(new Universe(0, new GrandMaster())); MasterTimerStub timer(m_doc, ua); c->preRun(&timer); QCOMPARE(c->isRunning(), true); // The chaser has no steps so ChaserRunner::postrun() shouldn't do much c->postRun(&timer, ua); QCOMPARE(c->isRunning(), false); // Make sure Function::postRun() is called }
void Chaser_Test::write() { Fixture* fxi = new Fixture(m_doc); fxi->setAddress(0); fxi->setUniverse(0); fxi->setChannels(1); m_doc->addFixture(fxi); Chaser* c = new Chaser(m_doc); c->setDuration(MasterTimer::tick() * 10); m_doc->addFunction(c); Scene* s1 = new Scene(m_doc); s1->setValue(fxi->id(), 0, 255); m_doc->addFunction(s1); c->addStep(s1->id()); Scene* s2 = new Scene(m_doc); s2->setValue(fxi->id(), 0, 127); m_doc->addFunction(s2); c->addStep(s2->id()); MasterTimer timer(m_doc); QVERIFY(c->isRunning() == false); QVERIFY(c->stopped() == true); c->start(&timer); timer.timerTick(); for (uint i = MasterTimer::tick(); i < c->duration(); i += MasterTimer::tick()) { timer.timerTick(); QVERIFY(c->isRunning() == true); QVERIFY(c->stopped() == false); QVERIFY(s1->isRunning() == true); QVERIFY(s2->isRunning() == false); } for (uint i = 0; i < c->duration(); i += MasterTimer::tick()) { timer.timerTick(); QVERIFY(c->isRunning() == true); QVERIFY(c->stopped() == false); QVERIFY(s1->isRunning() == false); QVERIFY(s2->isRunning() == true); } }
void Chaser_Test::preRun() { Chaser* c = new Chaser(m_doc); m_doc->addFunction(c); UniverseArray ua(512); MasterTimerStub timer(m_doc, ua); c->m_stop = true; c->preRun(&timer); QVERIFY(c->m_runner != NULL); QCOMPARE(c->isRunning(), true); // Make sure Function::preRun() is called QCOMPARE(c->m_runner->m_elapsed, uint(0)); // Make sure ChaserRunner::reset() is called c->postRun(&timer, &ua); }
void Chaser_Test::preRun() { Chaser* c = new Chaser(m_doc); m_doc->addFunction(c); QList<Universe*> ua; ua.append(new Universe(0, new GrandMaster())); MasterTimerStub timer(m_doc, ua); c->m_stop = true; c->preRun(&timer); QVERIFY(c->m_runner != NULL); QCOMPARE(c->isRunning(), true); // Make sure Function::preRun() is called QCOMPARE(c->m_runner->m_elapsed, uint(0)); // Make sure ChaserRunner::reset() is called c->postRun(&timer, ua); }