6 #include <boost/test/auto_unit_test.hpp>
8 #include "zypp/base/Logger.h"
9 #include "zypp/base/Exception.h"
10 #include "zypp/ZYppFactory.h"
11 #include "zypp/Digest.h"
12 #include "zypp/ZYpp.h"
15 using boost::unit_test::test_case;
19 void chksumtest( const std::string & type_r, const std::string & sum_r )
21 BOOST_CHECK_EQUAL( type_r, CheckSum( sum_r ).type() ); // autodetect type
22 BOOST_CHECK_EQUAL( type_r, CheckSum( type_r, sum_r ).type() );
23 BOOST_CHECK_EQUAL( sum_r, Digest::digest( type_r, "" ) );
24 for ( const std::string & t : { "md5", "sha1", "sha224", "sha256", "sha384", "sha512", } )
28 BOOST_CHECK_THROW( CheckSum( t, sum_r ), Exception ); // wrong type/size
33 // most frequently you implement test cases as a free functions
34 BOOST_AUTO_TEST_CASE(checksum_test)
37 BOOST_CHECK( e.empty() );
38 BOOST_CHECK( e.type().empty() );
39 BOOST_CHECK( e.checksum().empty() );
41 // md5 32 d41d8cd98f00b204e9800998ecf8427e
42 // 1 40 da39a3ee5e6b4b0d3255bfef95601890afd80709
43 // 224 56 d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f
44 // 256 64 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
45 // 384 96 38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b
46 // 512 128 cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
47 chksumtest( CheckSum::md5Type(), "d41d8cd98f00b204e9800998ecf8427e" );
48 chksumtest( CheckSum::sha1Type(), "da39a3ee5e6b4b0d3255bfef95601890afd80709" );
49 chksumtest( CheckSum::sha224Type(), "d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f" );
50 chksumtest( CheckSum::sha256Type(), "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" );
51 chksumtest( CheckSum::sha384Type(), "38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b" );
52 chksumtest( CheckSum::sha512Type(), "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e" );