]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
random: extend generate_random_number() for all int types
authorCasey Bodley <cbodley@redhat.com>
Tue, 3 Oct 2017 19:47:32 +0000 (15:47 -0400)
committerCasey Bodley <cbodley@redhat.com>
Mon, 9 Oct 2017 14:42:24 +0000 (10:42 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/include/random.h
src/test/common/test_random.cc

index 2a42a5197630a01db0fa776d655dd8bb55fd82f2..45f0b33fa2c3aa928d1dc8d1a53cfc995082e8d6 100644 (file)
@@ -133,14 +133,14 @@ void randomize_rng()
   detail::randomize_rng<EngineT>();
 }
 
-template <int min = 0,
-          int max = std::numeric_limits<int>::max(), 
-          typename DistributionT = std::uniform_int_distribution<int>,
+template <typename IntegerT = int,
+          typename DistributionT = std::uniform_int_distribution<IntegerT>,
           typename EngineT = std::default_random_engine>
-int generate_random_number()
+IntegerT generate_random_number()
 {
-  return detail::generate_random_number<int, DistributionT, EngineT>
-          (min, max);
+  using limits = std::numeric_limits<IntegerT>;
+  return detail::generate_random_number<IntegerT, DistributionT, EngineT>
+          (limits::min(), limits::max());
 }
 
 template <typename IntegerT>
index d11744710ffd019fefb5312efc660b4a5c029c55..0b8b566af264ee54e6d5ffcafbc1048ce240b928 100644 (file)
@@ -83,9 +83,6 @@ TEST(util, test_random)
     /* Technically, this can still collide and cause a false negative, but let's 
     be optimistic: */
     if (std::numeric_limits<int>::max() > 32767) {
-       ASSERT_GT(a, -1);
-       ASSERT_GT(b, -1);
        ASSERT_NE(a, b);
      }
   }
@@ -104,7 +101,7 @@ TEST(util, test_random)
  
   for (auto n = 100000; n; --n) {
      constexpr int min = 0, max = 6;
-     int a = ceph::util::generate_random_number<min, max>();
+     int a = ceph::util::generate_random_number(min, max);
      ASSERT_GT(a, -1);
      ASSERT_LT(a, 7);
    }