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

Function DivVerifyUint64Int16

Test/DivVerify.cpp:1093–1141  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1091};
1092
1093void DivVerifyUint64Int16()
1094{
1095 size_t i;
1096
1097 for( i = 0; i < sizeof(uint64_int16)/sizeof(uint64_int16[0]); ++i )
1098 {
1099 std::uint64_t ret;
1100 if( SafeDivide(uint64_int16[i].x, uint64_int16[i].y, ret) != uint64_int16[i].fExpected )
1101 {
1102 //assert(false);
1103 printf("Error in case uint64_int64: %I64X, %I64X, expected = %s\n", uint64_int16[i].x, uint64_int16[i].y, uint64_int16[i].fExpected ? "true" : "false");
1104 }
1105
1106 // Now test throwing version
1107 bool fSuccess = true;
1108 try
1109 {
1110 SafeInt<std::uint64_t> si(uint64_int16[i].x);
1111 si /= uint64_int16[i].y;
1112 }
1113 catch(...)
1114 {
1115 fSuccess = false;
1116 }
1117
1118 if( fSuccess != uint64_int16[i].fExpected )
1119 {
1120 printf("Error in case uint64_int32 throw: %I64X, %X, expected = %s\n", uint64_int16[i].x, uint64_int16[i].y, uint64_int16[i].fExpected ? "true" : "false");
1121 }
1122
1123 // Also need to test the version that assigns back out
1124 // to a plain int, as it has different logic
1125 fSuccess = true;
1126 try
1127 {
1128 std::uint64_t x(uint64_int16[i].x);
1129 x /= SafeInt<std::int64_t>(uint64_int16[i].y);
1130 }
1131 catch(...)
1132 {
1133 fSuccess = false;
1134 }
1135
1136 if( fSuccess != uint64_int16[i].fExpected )
1137 {
1138 printf("Error in case uint64_int16 throw: %I64X, %X, expected = %s\n", uint64_int16[i].x, uint64_int16[i].y, uint64_int16[i].fExpected ? "true" : "false");
1139 }
1140 }
1141}
1142
1143DivTest< std::int16_t, std::uint64_t > int16_uint64_2[] =
1144{

Callers 1

DivVerifyFunction · 0.70

Calls 1

SafeDivideFunction · 0.50

Tested by

no test coverage detected