[linux-lvm] [PATCH 7/7] thin-provisioning-tools: test for old boost version
Mikulas Patocka
mpatocka at redhat.com
Tue Jan 13 19:51:13 UTC 2015
The file boost/random/uniform_int_distribution.hpp was introduced in boost
version 1.47. If we have older Boost, use random numbers from libc.
Signed-off-by: Mikulas Patocka <mpatocka at redhat.com>
---
unit-tests/bloom_filter_t.cc | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
Index: thin-provisioning-tools/unit-tests/bloom_filter_t.cc
===================================================================
--- thin-provisioning-tools.orig/unit-tests/bloom_filter_t.cc 2015-01-13 03:22:38.000000000 +0100
+++ thin-provisioning-tools/unit-tests/bloom_filter_t.cc 2015-01-13 04:20:36.000000000 +0100
@@ -5,8 +5,16 @@
#include "persistent-data/data-structures/array_block.h"
#include "test_utils.h"
+#include <boost/version.hpp>
+
+#if BOOST_VERSION >= 104700
+#define HAVE_RANDOM_UNIFORM_INT_DISTRIBUTION
+#endif
+
#include <boost/random/mersenne_twister.hpp>
+#ifdef HAVE_RANDOM_UNIFORM_INT_DISTRIBUTION
#include <boost/random/uniform_int_distribution.hpp>
+#endif
#include <utility>
#include <deque>
#include <vector>
@@ -40,10 +48,16 @@ namespace {
using namespace boost::random;
+#ifdef HAVE_RANDOM_UNIFORM_INT_DISTRIBUTION
boost::random::uniform_int_distribution<uint64_t> uniform_dist(0, max);
+#endif
while (r.size() < count) {
+#ifdef HAVE_RANDOM_UNIFORM_INT_DISTRIBUTION
block_address b = uniform_dist(rng_);
+#else
+ block_address b = random() % max;
+#endif
r.insert(b);
}
@@ -75,7 +89,9 @@ namespace {
space_map::ptr sm_;
transaction_manager tm_;
+#ifdef HAVE_RANDOM_UNIFORM_INT_DISTRIBUTION
boost::random::mt19937 rng_;
+#endif
};
}
@@ -312,3 +328,4 @@ TEST_F(BloomFilterTests, false_positives
}
//----------------------------------------------------------------
+
More information about the linux-lvm
mailing list