diff options
author | Jelte Jansen <jelte@isc.org> | 2011-03-03 18:00:53 +0100 |
---|---|---|
committer | Jelte Jansen <jelte@isc.org> | 2011-03-03 18:00:53 +0100 |
commit | b723719cdad0da4db9b2099596c09f407dbdb135 (patch) | |
tree | 444fa34fd6572b5bab0cd0706b0c552a5943de20 /src/lib/asiolink/tests/qid_gen_unittest.cc | |
parent | [master] add asterisk for operation change; fix typo (diff) | |
download | kea-b723719cdad0da4db9b2099596c09f407dbdb135.tar.xz kea-b723719cdad0da4db9b2099596c09f407dbdb135.zip |
[trac583] Added a qid_gen for random qids
Simple uniform random number generator using boost.
At this moment, it is in asiolink, because that is where it is used. It should be moved to a lib/util (or something), together with the non-uniform nsas rng.
Also note that IOFetch now *sets* a random qid, but does not actually check it when it receives an answer.
Diffstat (limited to 'src/lib/asiolink/tests/qid_gen_unittest.cc')
-rw-r--r-- | src/lib/asiolink/tests/qid_gen_unittest.cc | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/lib/asiolink/tests/qid_gen_unittest.cc b/src/lib/asiolink/tests/qid_gen_unittest.cc new file mode 100644 index 0000000000..aa315828f7 --- /dev/null +++ b/src/lib/asiolink/tests/qid_gen_unittest.cc @@ -0,0 +1,63 @@ +// Copyright (C) 2011 Internet Systems Consortium, Inc. ("ISC") +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +// PERFORMANCE OF THIS SOFTWARE. + +// Copyright (C) 2011 Internet Systems Consortium, Inc. ("ISC") +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +// PERFORMANCE OF THIS SOFTWARE. + + +/// \brief Test of QidGenerator +/// + +#include <gtest/gtest.h> + +#include <asiolink/qid_gen.h> +#include <dns/message.h> + +// Tests the operation of the Qid generator + +// Check that getInstance returns a singleton +TEST(QidGenerator, singleton) { + asiolink::QidGenerator* g1 = asiolink::QidGenerator::getInstance(); + asiolink::QidGenerator* g2 = asiolink::QidGenerator::getInstance(); + + EXPECT_TRUE(g1 == g2); + + asiolink::QidGenerator::cleanInstance(); + // Is there any way to make sure a newly allocated one gets + // a new address? +} + +TEST(QidGenerator, generate) { + // We'll assume that boost's generator is 'good enough', and won't + // do full statistical checking here. Let's just call it the xkcd + // test (http://xkcd.com/221/), and check if three consecutive + // generates are not all the same. + isc::dns::qid_t one, two, three; + asiolink::QidGenerator* gen = asiolink::QidGenerator::getInstance(); + one = gen->generateQid(); + two = gen->generateQid(); + three = gen->generateQid(); + ASSERT_FALSE((one == two) && (one == three)); +} |