void Security::init() { if( _initialized ) return; _initialized = true; #if defined(__linux__) || defined(__sunos__) _devrandom = new ifstream("/dev/urandom", ios::binary|ios::in); massert( 10353 , "can't open dev/urandom", _devrandom->is_open() ); #elif defined(_WIN32) srand(curTimeMicros()); #else srandomdev(); #endif #ifndef NDEBUG if ( do_md5_test() ) massert( 10354 , "md5 unit test fails", false); #endif }
NOINLINE_DECL void Security::init() { if( _initialized ) return; _initialized = true; #if defined(__linux__) || defined(__sunos__) || defined(__APPLE__) _devrandom = new ifstream("/dev/urandom", ios::binary|ios::in); massert( 10353 , "can't open dev/urandom", _devrandom->is_open() ); #elif defined(_WIN32) srand(curTimeMicros()); // perhaps not relevant for rand_s but we might want elsewhere anyway #else srandomdev(); #endif #ifndef NDEBUG if ( do_md5_test() ) massert( 10354 , "md5 unit test fails", false); #endif }
TEST( MD5, BuiltIn1 ) { ASSERT_TRUE( do_md5_test() == 0 ); }