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

Function SubVerifyInt8Uint8

Test/SubVerify.cpp:6840–6896  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6838};
6839
6840void SubVerifyInt8Uint8()
6841{
6842 size_t i;
6843
6844 for( i = 0; i < COUNTOF(int8_uint8); ++i )
6845 {
6846 std::int8_t ret;
6847 if( SafeSubtract(int8_uint8[i].x, int8_uint8[i].y, ret) != int8_uint8[i].fExpected )
6848 {
6849 cerr << "Error in case int8_uint8: ";
6850 cerr << hex << setw(2) << setfill('0') << (0xFF & (int)int8_uint8[i].x) << ", ";
6851 cerr << hex << setw(2) << setfill('0') << (0xFF & (int)int8_uint8[i].y) << ", ";
6852 cerr << "expected = " << int8_uint8[i].fExpected << endl;
6853 }
6854
6855 // Now test throwing version
6856 bool fSuccess = true;
6857 try
6858 {
6859 SafeInt<std::int8_t> si(int8_uint8[i].x);
6860 si -= int8_uint8[i].y;
6861 }
6862 catch(...)
6863 {
6864 fSuccess = false;
6865 }
6866
6867 if( fSuccess != int8_uint8[i].fExpected )
6868 {
6869 cerr << "Error in case int8_uint8 throw (1): ";
6870 cerr << hex << setw(2) << setfill('0') << (0xFF & (int)int8_uint8[i].x) << ", ";
6871 cerr << hex << setw(2) << setfill('0') << (0xFF & (int)int8_uint8[i].y) << ", ";
6872 cerr << "expected = " << int8_uint8[i].fExpected << endl;
6873 }
6874
6875 // Also need to test the version that assigns back out
6876 // to a plain int, as it has different logic
6877 fSuccess = true;
6878 try
6879 {
6880 std::int8_t x(int8_uint8[i].x);
6881 x -= SafeInt<std::uint8_t>(int8_uint8[i].y);
6882 }
6883 catch(...)
6884 {
6885 fSuccess = false;
6886 }
6887
6888 if( fSuccess != int8_uint8[i].fExpected )
6889 {
6890 cerr << "Error in case int8_uint8 throw (2): ";
6891 cerr << hex << setw(2) << setfill('0') << (0xFF & (int)int8_uint8[i].x) << ", ";
6892 cerr << hex << setw(2) << setfill('0') << (0xFF & (int)int8_uint8[i].y) << ", ";
6893 cerr << "expected = " << int8_uint8[i].fExpected << endl;
6894 }
6895 }
6896}
6897

Callers 1

SubVerifyFunction · 0.70

Calls 1

SafeSubtractFunction · 0.50

Tested by

no test coverage detected