Add link with anl to fix Centos 8 build.
[dcpomatic.git] / test / torture_test.cc
index b941a5ade66c211034b5ddc6f6d4ec2fcf7f54d6..764491c0a63ea5d31af368d41411b660b8f56934 100644 (file)
@@ -19,7 +19,8 @@
 */
 
 /** @file  test/torture_test.cc
- *  @brief Entire projects that are programmatically created and checked.
+ *  @brief Tricky arrangements of content whose resulting DCPs are checked programmatically.
+ *  @ingroup completedcp
  */
 
 #include "lib/audio_content.h"
 #include <dcp/mono_picture_frame.h>
 #include <dcp/openjpeg_image.h>
 #include <boost/test/unit_test.hpp>
+#include <iostream>
 
 using std::list;
+using std::cout;
 using boost::shared_ptr;
 using boost::dynamic_pointer_cast;
+using namespace dcpomatic;
 
 /** Test start/end trim and positioning of some audio content */
 BOOST_AUTO_TEST_CASE (torture_test1)
@@ -52,37 +56,37 @@ BOOST_AUTO_TEST_CASE (torture_test1)
        film->set_container (Ratio::from_id ("185"));
        film->set_sequence (false);
 
-       /* Staircase at an offset of 2000 samples, trimmed both start and end, with a gain of 6dB */
-       shared_ptr<Content> staircase = content_factory(film, "test/data/staircase.wav").front ();
+       /* Staircase at an offset of 2000 samples, trimmed both start and end, with a gain of exactly 2 (linear) */
+       shared_ptr<Content> staircase = content_factory("test/data/staircase.wav").front ();
        film->examine_and_add_content (staircase);
-       wait_for_jobs ();
-       staircase->set_position (DCPTime::from_frames (2000, film->audio_frame_rate()));
+       BOOST_REQUIRE (!wait_for_jobs());
+       staircase->set_position (film, DCPTime::from_frames (2000, film->audio_frame_rate()));
        staircase->set_trim_start (ContentTime::from_frames (12, 48000));
        staircase->set_trim_end (ContentTime::from_frames (35, 48000));
        staircase->audio->set_gain (20 * log10(2));
 
-       /* And again at an offset of 50000 samples, trimmed both start and end, with a gain of 6dB */
-       staircase = content_factory(film, "test/data/staircase.wav").front ();
+       /* And again at an offset of 50000 samples, trimmed both start and end, with a gain of exactly 2 (linear) */
+       staircase = content_factory("test/data/staircase.wav").front ();
        film->examine_and_add_content (staircase);
-       wait_for_jobs ();
-       staircase->set_position (DCPTime::from_frames (50000, film->audio_frame_rate()));
+       BOOST_REQUIRE (!wait_for_jobs());
+       staircase->set_position (film, DCPTime::from_frames(50000, film->audio_frame_rate()));
        staircase->set_trim_start (ContentTime::from_frames (12, 48000));
        staircase->set_trim_end (ContentTime::from_frames (35, 48000));
        staircase->audio->set_gain (20 * log10(2));
 
        /* 1s of red at 5s in */
-       shared_ptr<Content> red = content_factory(film, "test/data/flat_red.png").front ();
+       shared_ptr<Content> red = content_factory("test/data/flat_red.png").front ();
        film->examine_and_add_content (red);
-       wait_for_jobs ();
-       red->set_position (DCPTime::from_seconds (5));
+       BOOST_REQUIRE (!wait_for_jobs());
+       red->set_position (film, DCPTime::from_seconds(5));
        red->video->set_length (24);
 
        film->set_video_frame_rate (24);
        film->write_metadata ();
        film->make_dcp ();
-       wait_for_jobs ();
+       BOOST_REQUIRE (!wait_for_jobs());
 
-       dcp::DCP dcp ("build/test/torture_test/" + film->dcp_name(false));
+       dcp::DCP dcp ("build/test/torture_test1/" + film->dcp_name(false));
        dcp.read ();
 
        list<shared_ptr<dcp::CPL> > cpls = dcp.cpls ();