High level test: render 1 frame of dot generator
| 241 | |
| 242 | ///High level test: render 1 frame of dot generator |
| 243 | TEST_F(BaseTest, GenerateDot) |
| 244 | { |
| 245 | ///create the generator |
| 246 | NodePtr generator = createNode(_generatorPluginID); |
| 247 | |
| 248 | ///create the writer and set its output filename |
| 249 | NodePtr writer = createNode(_writeOIIOPluginID); |
| 250 | |
| 251 | ASSERT_TRUE( bool(generator) && bool(writer) ); |
| 252 | |
| 253 | KnobIPtr frameRange = generator->getApp()->getProject()->getKnobByName("frameRange"); |
| 254 | ASSERT_TRUE( bool(frameRange) ); |
| 255 | KnobInt* knob = dynamic_cast<KnobInt*>( frameRange.get() ); |
| 256 | ASSERT_TRUE(knob); |
| 257 | knob->setValue(1, ViewSpec::all(), 0); |
| 258 | knob->setValue(1, ViewSpec::all(), 1); |
| 259 | |
| 260 | Format f(0, 0, 200, 200, "toto", 1.); |
| 261 | generator->getApp()->getProject()->setOrAddProjectFormat(f); |
| 262 | |
| 263 | const QString& binPath = appPTR->getApplicationBinaryPath(); |
| 264 | QString filePath = binPath + QString::fromUtf8("/test_dot_generator.jpg"); |
| 265 | writer->setOutputFilesForWriter( filePath.toStdString() ); |
| 266 | |
| 267 | ///attempt to connect the 2 nodes together |
| 268 | connectNodes(generator, writer, 0, true); |
| 269 | |
| 270 | ///and start rendering. This call is blocking. |
| 271 | std::list<AppInstance::RenderWork> works; |
| 272 | AppInstance::RenderWork w; |
| 273 | w.writer = dynamic_cast<OutputEffectInstance*>( writer->getEffectInstance().get() ); |
| 274 | assert(w.writer); |
| 275 | w.firstFrame = INT_MIN; |
| 276 | w.lastFrame = INT_MAX; |
| 277 | w.frameStep = INT_MIN; |
| 278 | w.useRenderStats = false; |
| 279 | works.push_back(w); |
| 280 | getApp()->startWritersRendering(false, works); |
| 281 | |
| 282 | EXPECT_TRUE( QFile::exists(filePath) ); |
| 283 | QFile::remove(filePath); |
| 284 | } |
| 285 | |
| 286 | TEST_F(BaseTest, SetValues) |
| 287 | { |
nothing calls this directly
no test coverage detected