gtest unsigned overflow

xiaoxiao2021-02-28  124

unsigned safeAdd(unsigned a, unsigned b) { if(a > ~b) throw "overflow...!"; return a + b; } TEST(TESTSAFEADD, CASE0) { EXPECT_ANY_THROW(safeAdd(1, 0xffffffff)); EXPECT_ANY_THROW(safeAdd(0xffffffff, 1)); EXPECT_ANY_THROW(safeAdd(0xffffffff - 4, 1 + 4)); EXPECT_ANY_THROW(safeAdd(1 + 10, 0xffffffff - 10)); srand(time(0)); for(int i = 0;i < 100;i++) { unsigned x = rand() % 1000; EXPECT_ANY_THROW(safeAdd(1 + x, 0xffffffff - x)); } for(int i = 0;i < 100;i++) { unsigned x = rand() % 1000; EXPECT_EQ(0xffffffff, safeAdd(x, 0xffffffff - x)); } }
转载请注明原文地址: https://www.6miu.com/read-43760.html

最新回复(0)