Bump libdcp for enum class stuff.
[libsub.git] / test / stl_binary_reader_test.cc
index 2c301ee62db8b4bf91d30bf95463e32e197ca168..fd01c9cc8f78d193dd03fec6a02e3e7062ee1417 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2014 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2014-2020 Carl Hetherington <cth@carlh.net>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 
 */
 
-#include <boost/test/unit_test.hpp>
-#include <fstream>
 #include "stl_binary_reader.h"
 #include "subtitle.h"
 #include "test.h"
+#include "util.h"
+#include <boost/test/unit_test.hpp>
+#include <fstream>
 
-using std::list;
-using std::cout;
 using std::ifstream;
+using std::ofstream;
+using std::shared_ptr;
 
 /* Test reading of a binary STL file */
-BOOST_AUTO_TEST_CASE (stl_binary_reader_test)
+BOOST_AUTO_TEST_CASE (stl_binary_reader_test1)
 {
        if (private_test.empty ()) {
                return;
        }
 
-       boost::filesystem::path p = private_test / "Vampire_Academy_24fps_Reel_6_DE_FR.stl";
-       ifstream f (p.string().c_str ());
-       sub::STLBinaryReader r (f);
+       using boost::filesystem::path;
+
+       path stl = private_test / "VA_24fps_Reel_6_DE_FR.stl";
+       ifstream in (stl.string().c_str());
+       shared_ptr<sub::STLBinaryReader> r (new sub::STLBinaryReader(in));
+       path dump = path("build") / path("test") / path("VA_24fps_Reel_6_DE_FR.dump");
+       ofstream dump_stream (dump.string().c_str());
+       sub::dump (r, dump_stream);
+       dump_stream.close ();
+
+       check_file (private_test / "VA_24fps_Reel_6_DE_FR.dump", dump);
 }
 
+/* Test reading the same file but with the FILE* interface */
+BOOST_AUTO_TEST_CASE (stl_binary_reader_test2)
+{
+       if (private_test.empty ()) {
+               return;
+       }
+
+       using boost::filesystem::path;
+
+       path stl = private_test / "VA_24fps_Reel_6_DE_FR.stl";
+       FILE* in = fopen (stl.string().c_str(), "rb");
+       BOOST_REQUIRE (in);
+       shared_ptr<sub::STLBinaryReader> r (new sub::STLBinaryReader(in));
+       fclose (in);
+       path dump = path("build") / path("test") / path("VA_24fps_Reel_6_DE_FR.dump");
+       ofstream dump_stream (dump.string().c_str());
+       sub::dump (r, dump_stream);
+       dump_stream.close ();
+}