[svn] commit: r3846 - /trunk/src/lib/nsas/tests/random_number_generator_unittest.cc

BIND 10 source code commits bind10-changes at lists.isc.org
Wed Dec 15 00:31:43 UTC 2010


Author: jinmei
Date: Wed Dec 15 00:31:43 2010
New Revision: 3846

Log:
build test cases using the death test only when it's supported.  (it's not marked as "supported" for BSDs)
okayed in jabber.

Modified:
    trunk/src/lib/nsas/tests/random_number_generator_unittest.cc

Modified: trunk/src/lib/nsas/tests/random_number_generator_unittest.cc
==============================================================================
--- trunk/src/lib/nsas/tests/random_number_generator_unittest.cc (original)
+++ trunk/src/lib/nsas/tests/random_number_generator_unittest.cc Wed Dec 15 00:31:43 2010
@@ -52,62 +52,64 @@
     const static int max_ = 10;
 };
 
+// Some validation tests will incur performance penalty, so the tests are
+// made only in "debug" version with assert(). But if NDEBUG is defined
+// the tests will be failed since assert() is non-op in non-debug version.
+// The "#ifndef NDEBUG" is added to make the tests be performed only in
+// non-debug environment.
+// Note: the death test is not supported by all platforms.  We need to
+// compile tests using it selectively.
+#if !defined(NDEBUG) && defined(GTEST_HAS_DEATH_TEST)
+// Test of the constructor
+TEST_F(UniformRandomIntegerGeneratorTest, Constructor) {
+    // The range must be min<=max
+    ASSERT_DEATH(UniformRandomIntegerGenerator(3, 2), "");
+}
+#endif
+
+// Test of the generated integers are in the range [min, max]
+TEST_F(UniformRandomIntegerGeneratorTest, IntegerRange) {
+    vector<int> numbers;
+
+    // Generate a lot of random integers
+    for (int i = 0; i < max()*10; ++i) {
+        numbers.push_back(gen());
+    }
+
+    // Remove the duplicated values
+    sort(numbers.begin(), numbers.end());
+    vector<int>::iterator it = unique(numbers.begin(), numbers.end());
+
+    // make sure the numbers are in range [min, max]
+    ASSERT_EQ(it - numbers.begin(), max() - min() + 1); 
+}
+
+/// \brief Test Fixture Class for weighted random number generator
+class WeightedRandomIntegerGeneratorTest : public ::testing::Test {
+public:
+    WeightedRandomIntegerGeneratorTest()
+    { }
+
+    virtual ~WeightedRandomIntegerGeneratorTest()
+    { }
+};
+
+// Test of the weighted random number generator constructor
+TEST_F(WeightedRandomIntegerGeneratorTest, Constructor) {
+    vector<double> probabilities;
+
+    // If no probabilities is provided, the smallest integer will always be generated
+    WeightedRandomIntegerGenerator gen(probabilities, 123);
+    for (int i = 0; i < 100; ++i) {
+        ASSERT_EQ(gen(), 123);
+    }
+
 /// Some validation tests will incur performance penalty, so the tests are
 /// made only in "debug" version with assert(). But if NDEBUG is defined
 /// the tests will be failed since assert() is non-op in non-debug version.
 /// The "#ifndef NDEBUG" is added to make the tests be performed only in
 /// non-debug environment.
-#ifndef NDEBUG
-// Test of the constructor
-TEST_F(UniformRandomIntegerGeneratorTest, Constructor) {
-    // The range must be min<=max
-    ASSERT_DEATH(UniformRandomIntegerGenerator(3, 2), "");
-}
-#endif
-
-// Test of the generated integers are in the range [min, max]
-TEST_F(UniformRandomIntegerGeneratorTest, IntegerRange) {
-    vector<int> numbers;
-
-    // Generate a lot of random integers
-    for (int i = 0; i < max()*10; ++i) {
-        numbers.push_back(gen());
-    }
-
-    // Remove the duplicated values
-    sort(numbers.begin(), numbers.end());
-    vector<int>::iterator it = unique(numbers.begin(), numbers.end());
-
-    // make sure the numbers are in range [min, max]
-    ASSERT_EQ(it - numbers.begin(), max() - min() + 1); 
-}
-
-/// \brief Test Fixture Class for weighted random number generator
-class WeightedRandomIntegerGeneratorTest : public ::testing::Test {
-public:
-    WeightedRandomIntegerGeneratorTest()
-    { }
-
-    virtual ~WeightedRandomIntegerGeneratorTest()
-    { }
-};
-
-// Test of the weighted random number generator constructor
-TEST_F(WeightedRandomIntegerGeneratorTest, Constructor) {
-    vector<double> probabilities;
-
-    // If no probabilities is provided, the smallest integer will always be generated
-    WeightedRandomIntegerGenerator gen(probabilities, 123);
-    for (int i = 0; i < 100; ++i) {
-        ASSERT_EQ(gen(), 123);
-    }
-
-/// Some validation tests will incur performance penalty, so the tests are
-/// made only in "debug" version with assert(). But if NDEBUG is defined
-/// the tests will be failed since assert() is non-op in non-debug version.
-/// The "#ifndef NDEBUG" is added to make the tests be performed only in
-/// non-debug environment.
-#ifndef NDEBUG
+#if !defined(NDEBUG) && defined(GTEST_HAS_DEATH_TEST)
     //The probability must be >= 0
     probabilities.push_back(-0.1);
     probabilities.push_back(1.1);




More information about the bind10-changes mailing list