[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