X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fmake_digest_test.cc;h=98792e62910a8da286a5638ef1a4dcc3567891da;hb=6518f7e4e8b02a1d78b6121c2032fa27c50ddc78;hp=b7e18a127f2be5987d580e2eefb5a371ebca98f1;hpb=4b8c626b7e66ab1d4d69606e10316542c8873842;p=libdcp.git diff --git a/test/make_digest_test.cc b/test/make_digest_test.cc index b7e18a12..98792e62 100644 --- a/test/make_digest_test.cc +++ b/test/make_digest_test.cc @@ -1,46 +1,67 @@ /* - Copyright (C) 2016 Carl Hetherington + Copyright (C) 2016-2021 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of libdcp. + + libdcp is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + libdcp is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with libdcp. If not, see . + + In addition, as a special exception, the copyright holders give + permission to link the code of portions of this program with the + OpenSSL library under certain conditions as described in each + individual source file, and distribute linked combinations + including the two. + You must obey the GNU General Public License in all respects + for all of the code used other than OpenSSL. If you modify + file(s) with this exception, you may extend this exception to your + version of the file(s), but you are not obligated to do so. If you + do not wish to do so, delete this exception statement from your + version. If you delete this exception statement from all source + files in the program, then also delete it here. */ -#include "data.h" + +#include "array_data.h" #include "util.h" #include +#include #include #include + void progress (float) { } + /** Check SHA1 digests */ BOOST_AUTO_TEST_CASE (make_digest_test) { /* Make a big file with some random data */ - srand (1); + + boost::random::mt19937 rng(1); + boost::random::uniform_int_distribution<> dist(0, 255); + int const N = 256 * 1024 * 1024; - dcp::Data data (N); - uint8_t* p = data.data().get(); + dcp::ArrayData data (N); + auto p = data.data(); for (int i = 0; i < N; ++i) { - *p++ = rand() & 0xff; + *p++ = dist(rng); } data.write ("build/test/random"); /* Hash it */ - BOOST_CHECK_EQUAL (dcp::make_digest ("build/test/random", boost::bind (&progress, _1)), "GKbk/V3fcRtP5MaPdSmAGNbKkaU="); + BOOST_CHECK_EQUAL (dcp::make_digest("build/test/random", boost::bind(&progress, _1)), "HayqPBWBRKqLNgfuo4XSajc+D5s="); }