mirror of
https://github.com/boostorg/utility.git
synced 2025-07-30 21:07:27 +02:00
Disabled random operators tests under UBSAN.
The tests use random input to various arithmetic and bitwise operators, which cause undefined behavior, such as shifting by more than the left operand capacity or signed integer overflows.
This commit is contained in:
@ -28,7 +28,6 @@
|
||||
|
||||
#include <iostream> // for std::cout (std::endl indirectly)
|
||||
|
||||
|
||||
namespace
|
||||
{
|
||||
// avoiding a template version of true_value so as to not confuse VC++
|
||||
@ -358,11 +357,11 @@ namespace
|
||||
test_multipliable_aux( y1, x1, y2, x2 );
|
||||
}
|
||||
|
||||
template <class A, class B>
|
||||
void test_value_equality(A a, B b)
|
||||
{
|
||||
BOOST_TEST(a.value() == b);
|
||||
}
|
||||
template <class A, class B>
|
||||
void test_value_equality(A a, B b)
|
||||
{
|
||||
BOOST_TEST(a.value() == b);
|
||||
}
|
||||
|
||||
#define TEST_OP_R(op) test_value_equality(x1 op y1, x2 op y2)
|
||||
#define TEST_OP_L(op) test_value_equality(y1 op x1, y2 op x2)
|
||||
@ -615,6 +614,8 @@ main()
|
||||
|
||||
cout << "Created point, and operated on it." << endl;
|
||||
|
||||
#if !defined(UBSAN)
|
||||
// Using random values produce UB in various tests, such as shifting by more than the left operand capacity or signed integer overflows
|
||||
for (int n = 0; n < 1000; ++n) // was 10,000 but took too long (Beman)
|
||||
{
|
||||
boost::detail::minstd_rand r;
|
||||
@ -640,6 +641,7 @@ main()
|
||||
}
|
||||
|
||||
cout << "Did random tester loop." << endl;
|
||||
#endif // !defined(UBSAN)
|
||||
|
||||
MyInt i1(1);
|
||||
MyInt i2(2);
|
||||
|
Reference in New Issue
Block a user