// Copyright 2017, 2018 Peter Dimov. // Distributed under the Boost Software License, Version 1.0. // https://www.boost.org/LICENSE_1_0.txt #include #include #include #include #include #include #include #include #include #include template void test() { char const * s = "xxxx"; { H h; h.update( s, 4 ); h.result(); unsigned char const * p = reinterpret_cast( &h ); std::size_t n = sizeof( h ); BOOST_TEST_EQ( std::search( p, p + n, s, s + 4 ) - p, n ); } { H h; unsigned char buffer[ 1024 ] = {}; h.update( buffer, 1024 ); h.update( s, 4 ); h.result(); unsigned char const * p = reinterpret_cast( &h ); std::size_t n = sizeof( h ); BOOST_TEST_EQ( std::search( p, p + n, s, s + 4 ) - p, n ); } { H h( reinterpret_cast( s ), 4 ); unsigned char const * p = reinterpret_cast( &h ); std::size_t n = sizeof( h ); BOOST_TEST_EQ( std::search( p, p + n, s, s + 4 ) - p, n ); } } int main() { test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); return boost::report_errors(); }