MCPcopy Create free account
hub / github.com/dcleblanc/SafeInt / DivVerifyUint64Int64

Function DivVerifyUint64Int64

Test/DivVerify.cpp:626–674  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

624};
625
626void DivVerifyUint64Int64()
627{
628 size_t i;
629
630 for( i = 0; i < sizeof(uint64_int64)/sizeof(uint64_int64[0]); ++i )
631 {
632 std::uint64_t ret;
633 if( SafeDivide(uint64_int64[i].x, uint64_int64[i].y, ret) != uint64_int64[i].fExpected )
634 {
635 //assert(false);
636 printf("Error in case uint64_int64: %I64X, %I64X, expected = %s\n", uint64_int64[i].x, uint64_int64[i].y, uint64_int64[i].fExpected ? "true" : "false");
637 }
638
639 // Now test throwing version
640 bool fSuccess = true;
641 try
642 {
643 SafeInt<std::uint64_t> si(uint64_int64[i].x);
644 si /= uint64_int64[i].y;
645 }
646 catch(...)
647 {
648 fSuccess = false;
649 }
650
651 if( fSuccess != uint64_int64[i].fExpected )
652 {
653 printf("Error in case uint64_int64 throw: %I64X, %I64X, expected = %s\n", uint64_int64[i].x, uint64_int64[i].y, uint64_int64[i].fExpected ? "true" : "false");
654 }
655
656 // Also need to test the version that assigns back out
657 // to a plain int, as it has different logic
658 fSuccess = true;
659 try
660 {
661 std::uint64_t x(uint64_int64[i].x);
662 x /= SafeInt<std::int64_t>(uint64_int64[i].y);
663 }
664 catch(...)
665 {
666 fSuccess = false;
667 }
668
669 if( fSuccess != uint64_int64[i].fExpected )
670 {
671 printf("Error in case uint64_int64 throw: %I64X, %I64X, expected = %s\n", uint64_int64[i].x, uint64_int64[i].y, uint64_int64[i].fExpected ? "true" : "false");
672 }
673 }
674}
675
676DivTest< std::int64_t, std::uint64_t > int64_uint64_2[] =
677{

Callers 1

DivVerifyFunction · 0.70

Calls 1

SafeDivideFunction · 0.50

Tested by

no test coverage detected