[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