Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(232)

Unified Diff: base/numerics/safe_numerics_unittest.cc

Issue 2529413002: Loosen restrictions on CheckedNumeric bitwise operators (Closed)
Patch Set: more tests Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/numerics/safe_math_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/numerics/safe_numerics_unittest.cc
diff --git a/base/numerics/safe_numerics_unittest.cc b/base/numerics/safe_numerics_unittest.cc
index dbab88316147ef3b40acd14da33102e76ff7259c..8ced4bdb7b244e0637dc18f8c2f296d84d49f671 100644
--- a/base/numerics/safe_numerics_unittest.cc
+++ b/base/numerics/safe_numerics_unittest.cc
@@ -222,18 +222,24 @@ static void TestSpecializedArithmetic(
TEST_EXPECTED_VALUE(0,
CheckedNumeric<Dst>(1) >> (sizeof(Dst) * CHAR_BIT - 1));
TEST_EXPECTED_FAILURE(CheckedNumeric<Dst>(1) >> negative_one);
- TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(1) & static_cast<Dst>(1));
- TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(1) & static_cast<Dst>(0));
- TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(0) & static_cast<Dst>(1));
- TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(1) & static_cast<Dst>(0));
- TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(1) | static_cast<Dst>(1));
- TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(1) | static_cast<Dst>(0));
- TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(0) | static_cast<Dst>(1));
- TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(0) | static_cast<Dst>(0));
- TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(1) ^ static_cast<Dst>(1));
- TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(1) ^ static_cast<Dst>(0));
- TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(0) ^ static_cast<Dst>(1));
- TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(0) ^ static_cast<Dst>(0));
+ TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(1) & 1);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(1) & 0);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(0) & 1);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(1) & 0);
+ TEST_EXPECTED_VALUE(std::numeric_limits<Dst>::max(),
+ CheckNum(DstLimits::max()) & -1);
+ TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(1) | 1);
+ TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(1) | 0);
+ TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(0) | 1);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(0) | 0);
+ TEST_EXPECTED_VALUE(std::numeric_limits<Dst>::max(),
+ CheckedNumeric<Dst>(0) | static_cast<Dst>(-1));
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(1) ^ 1);
+ TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(1) ^ 0);
+ TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(0) ^ 1);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(0) ^ 0);
+ TEST_EXPECTED_VALUE(std::numeric_limits<Dst>::max(),
+ CheckedNumeric<Dst>(0) ^ static_cast<Dst>(-1));
TEST_EXPECTED_VALUE(DstLimits::max(), ~CheckedNumeric<Dst>(0));
}
« no previous file with comments | « base/numerics/safe_math_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698