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

Function SubVerifyUint64Int8

Test/SubVerify.cpp:4436–4492  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4434};
4435
4436void SubVerifyUint64Int8()
4437{
4438 size_t i;
4439
4440 for( i = 0; i < COUNTOF(uint64_int8); ++i )
4441 {
4442 std::uint64_t ret;
4443 if( SafeSubtract(uint64_int8[i].x, uint64_int8[i].y, ret) != uint64_int8[i].fExpected )
4444 {
4445 cerr << "Error in case uint64_int8: ";
4446 cerr << hex << setw(16) << setfill('0') << uint64_int8[i].x << ", ";
4447 cerr << hex << setw(2) << setfill('0') << (0xFF & (int)uint64_int8[i].y) << ", ";
4448 cerr << "expected = " << uint64_int8[i].fExpected << endl;
4449 }
4450
4451 // Now test throwing version
4452 bool fSuccess = true;
4453 try
4454 {
4455 SafeInt<std::uint64_t> si(uint64_int8[i].x);
4456 si -= (std::int8_t)uint64_int8[i].y;
4457 }
4458 catch(...)
4459 {
4460 fSuccess = false;
4461 }
4462
4463 if( fSuccess != uint64_int8[i].fExpected )
4464 {
4465 cerr << "Error in case uint64_int8 throw (1): ";
4466 cerr << hex << setw(16) << setfill('0') << uint64_int8[i].x << ", ";
4467 cerr << hex << setw(2) << setfill('0') << (0xFF & (int)uint64_int8[i].y) << ", ";
4468 cerr << "expected = " << uint64_int8[i].fExpected << endl;
4469 }
4470
4471 // Also need to test the version that assigns back out
4472 // to a plain int, as it has different logic
4473 fSuccess = true;
4474 try
4475 {
4476 std::uint64_t x(uint64_int8[i].x);
4477 x -= SafeInt<std::int8_t>(uint64_int8[i].y);
4478 }
4479 catch(...)
4480 {
4481 fSuccess = false;
4482 }
4483
4484 if( fSuccess != uint64_int8[i].fExpected )
4485 {
4486 cerr << "Error in case uint64_int8 throw (2): ";
4487 cerr << hex << setw(16) << setfill('0') << uint64_int8[i].x << ", ";
4488 cerr << hex << setw(2) << setfill('0') << (0xFF & (int)uint64_int8[i].y) << ", ";
4489 cerr << "expected = " << uint64_int8[i].fExpected << endl;
4490 }
4491 }
4492}
4493

Callers 1

SubVerifyFunction · 0.70

Calls 1

SafeSubtractFunction · 0.50

Tested by

no test coverage detected