boost::escaped_list_separator<char> els ("", " ", "\"\'");
boost::tokenizer<boost::escaped_list_separator<char> > tok (cmd, els);
- char** argv = new char*[256];
+ std::vector<char*> argv(256);
int argc = 0;
for (boost::tokenizer<boost::escaped_list_separator<char> >::iterator i = tok.begin(); i != tok.end(); ++i) {
argv[argc++] = strdup (i->c_str());
}
- CreateCLI cc (argc, argv);
+ CreateCLI cc (argc, argv.data());
for (int i = 0; i < argc; ++i) {
free (argv[i]);
}
- delete[] argv;
-
return cc;
}
cc = run ("dcpomatic2_create x --still-length 42");
BOOST_CHECK (!cc.error);
- BOOST_CHECK_EQUAL (cc.still_length, 42);
+ BOOST_CHECK_EQUAL(cc.still_length.get_value_or(0), 42);
cc = run ("dcpomatic2_create x --standard SMPTE");
BOOST_CHECK (!cc.error);
BOOST_CHECK (!cc.error);
BOOST_REQUIRE (cc.config_dir);
BOOST_CHECK_EQUAL (*cc.config_dir, "foo/bar");
- BOOST_CHECK_EQUAL (cc.still_length, 42);
+ BOOST_CHECK_EQUAL(cc.still_length.get_value_or(0), 42);
BOOST_REQUIRE (cc.output_dir);
BOOST_CHECK_EQUAL (*cc.output_dir, "flaps");
BOOST_REQUIRE_EQUAL (cc.content.size(), 3U);
BOOST_CHECK_EQUAL (cc.content[1].frame_type, VideoFrameType::THREE_D_RIGHT);
BOOST_CHECK_EQUAL (cc.fourk, false);
+ cc = run ("dcpomatic2_create --twok foo.mp4");
+ BOOST_REQUIRE_EQUAL (cc.content.size(), 1U);
+ BOOST_CHECK_EQUAL (cc.content[0].path, "foo.mp4");
+ BOOST_CHECK_EQUAL (cc.twok, true);
+ BOOST_CHECK (!cc.error);
+
cc = run ("dcpomatic2_create --fourk foo.mp4");
BOOST_REQUIRE_EQUAL (cc.content.size(), 1U);
BOOST_CHECK_EQUAL (cc.content[0].path, "foo.mp4");
BOOST_CHECK_CLOSE (*cc.content[1].gain, -6, 0.001);
BOOST_CHECK_EQUAL (cc.content[2].path, "sheila.wav");
BOOST_CHECK_CLOSE (*cc.content[2].gain, 2, 0.001);
+
+ cc = run("dcpomatic2_create --cpl 123456-789-0 dcp");
+ BOOST_REQUIRE_EQUAL(cc.content.size(), 1U);
+ BOOST_CHECK_EQUAL(cc.content[0].path, "dcp");
+ BOOST_REQUIRE(static_cast<bool>(cc.content[0].cpl));
+ BOOST_CHECK_EQUAL(*cc.content[0].cpl, "123456-789-0");
+
+ cc = run("dcpomatic2_create -s SMPTE sheila.wav");
+ BOOST_CHECK(!cc.still_length);
+ BOOST_CHECK(cc.error);
}