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

Function DivVerifyUint64Int32

Test/DivVerify.cpp:898–946  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

896};
897
898void DivVerifyUint64Int32()
899{
900 size_t i;
901
902 for( i = 0; i < sizeof(uint64_int32)/sizeof(uint64_int32[0]); ++i )
903 {
904 std::uint64_t ret;
905 if( SafeDivide(uint64_int32[i].x, uint64_int32[i].y, ret) != uint64_int32[i].fExpected )
906 {
907 //assert(false);
908 printf("Error in case uint64_int64: %I64X, %I64X, expected = %s\n", uint64_int32[i].x, uint64_int32[i].y, uint64_int32[i].fExpected ? "true" : "false");
909 }
910
911 // Now test throwing version
912 bool fSuccess = true;
913 try
914 {
915 SafeInt<std::uint64_t> si(uint64_int32[i].x);
916 si /= uint64_int32[i].y;
917 }
918 catch(...)
919 {
920 fSuccess = false;
921 }
922
923 if( fSuccess != uint64_int32[i].fExpected )
924 {
925 printf("Error in case uint64_int32 throw: %I64X, %X, expected = %s\n", uint64_int32[i].x, uint64_int32[i].y, uint64_int32[i].fExpected ? "true" : "false");
926 }
927
928 // Also need to test the version that assigns back out
929 // to a plain int, as it has different logic
930 fSuccess = true;
931 try
932 {
933 std::uint64_t x(uint64_int32[i].x);
934 x /= SafeInt<std::int64_t>(uint64_int32[i].y);
935 }
936 catch(...)
937 {
938 fSuccess = false;
939 }
940
941 if( fSuccess != uint64_int32[i].fExpected )
942 {
943 printf("Error in case uint64_int64 throw: %I64X, %X, expected = %s\n", uint64_int32[i].x, uint64_int32[i].y, uint64_int32[i].fExpected ? "true" : "false");
944 }
945 }
946}
947
948DivTest< std::int32_t, std::uint64_t > int32_uint64_2[] =
949{

Callers 1

DivVerifyFunction · 0.70

Calls 1

SafeDivideFunction · 0.50

Tested by

no test coverage detected