aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite
diff options
context:
space:
mode:
authorDaniel Jacobowitz <dan@codesourcery.com>2007-08-17 17:24:22 +0000
committerDaniel Jacobowitz <drow@gcc.gnu.org>2007-08-17 17:24:22 +0000
commiteb0619fe9ecacab67eeac90ef58c5235adb07c4c (patch)
treeb06a57946e3b75ff78e32fe8e365833f4c4b4d98 /libstdc++-v3/testsuite
parent4b364615027fdbc60d54936dd25e3748b27d252d (diff)
downloadgcc-eb0619fe9ecacab67eeac90ef58c5235adb07c4c.zip
gcc-eb0619fe9ecacab67eeac90ef58c5235adb07c4c.tar.gz
gcc-eb0619fe9ecacab67eeac90ef58c5235adb07c4c.tar.bz2
re PR testsuite/31884 (priority_queue_dijkstra.cc operates on deallocated memory)
PR testsuite/31884 * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc (main): Do not access deleted nodes. * testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc, testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc, testsuite/27_io/basic_filebuf/open/char/4.cc, testsuite/27_io/objects/char/9.cc: Use dg-require-fileio. * testsuite/ext/forced_exception_error/cons_virtual_derivation.cc, testsuite/ext/pb_ds/regression/hash_data_map_rand.cc, testsuite/ext/pb_ds/regression/trie_data_map_rand.cc, testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc, testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc, testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc, testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc, testsuite/ext/pb_ds/regression/priority_queue_rand.cc, testsuite/ext/pb_ds/regression/tree_data_map_rand.cc, testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc, testsuite/ext/throw_allocator/deallocate_global.cc, testsuite/ext/throw_allocator/check_delete.cc, testsuite/ext/throw_allocator/check_allocate_max_size.cc, testsuite/ext/throw_allocator/check_deallocate_null.cc, testsuite/ext/throw_allocator/check_new.cc, testsuite/ext/throw_allocator/deallocate_local.cc, testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/gen1.cc, testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc, testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/gen1.cc, testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/gen1.cc, testsuite/23_containers/list/modifiers/insert/25288.cc: Use dg-require-time. From-SVN: r127590
Diffstat (limited to 'libstdc++-v3/testsuite')
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.cc2
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc2
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc2
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/4.cc2
-rw-r--r--libstdc++-v3/testsuite/27_io/objects/char/9.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/forced_exception_error/cons_virtual_derivation.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc4
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/throw_allocator/check_allocate_max_size.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/throw_allocator/check_deallocate_null.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/throw_allocator/check_delete.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/throw_allocator/check_new.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/throw_allocator/deallocate_global.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/throw_allocator/deallocate_local.cc2
-rw-r--r--libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/gen1.cc2
-rw-r--r--libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/gen1.cc2
-rw-r--r--libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc2
-rw-r--r--libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/gen1.cc2
26 files changed, 54 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.cc b/libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.cc
index 340f336..4faaad6 100644
--- a/libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.cc
@@ -18,6 +18,8 @@
// 23.2.2.3 list modifiers [lib.list.modifiers]
+// { dg-require-time "" }
+
#include <list>
#include <testsuite_hooks.h>
#include <ext/throw_allocator.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc b/libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc
index 378583a..5e838f3 100644
--- a/libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc
@@ -24,6 +24,8 @@
#include <cstring>
#include <testsuite_hooks.h>
+// { dg-require-fileio "" }
+
// In the occasion of libstdc++/25482
void test01()
{
diff --git a/libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc b/libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc
index 682c515..4e81542 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc
@@ -23,6 +23,8 @@
#include <algorithm>
#include <testsuite_hooks.h>
+// { dg-require-fileio "" }
+
// In the occasion of libstdc++/25482
void test01()
{
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/4.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/4.cc
index dde8086..97200a6 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/4.cc
@@ -18,6 +18,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
+// { dg-require-fileio "" }
+
#include <fstream>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/27_io/objects/char/9.cc b/libstdc++-v3/testsuite/27_io/objects/char/9.cc
index 6ad7c47..4da987b 100644
--- a/libstdc++-v3/testsuite/27_io/objects/char/9.cc
+++ b/libstdc++-v3/testsuite/27_io/objects/char/9.cc
@@ -17,6 +17,8 @@
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
+
+// { dg-require-fileio "" }
#include <iostream>
#include <cstdio>
diff --git a/libstdc++-v3/testsuite/ext/forced_exception_error/cons_virtual_derivation.cc b/libstdc++-v3/testsuite/ext/forced_exception_error/cons_virtual_derivation.cc
index 4ce8c67..ae6ef0b 100644
--- a/libstdc++-v3/testsuite/ext/forced_exception_error/cons_virtual_derivation.cc
+++ b/libstdc++-v3/testsuite/ext/forced_exception_error/cons_virtual_derivation.cc
@@ -19,6 +19,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
+// { dg-require-time "" }
+
#include <ext/throw_allocator.h>
#include <testsuite_api.h>
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc
index 53a788d..5eb4549 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc
@@ -151,12 +151,16 @@ int main()
// node to the neighbor.
const size_t pot_dist = dist + a_a_edge_legnth[node_id][neighbor_i];
+ if (a_it[neighbor_i] == a_it[0])
+ continue;
+
// "Relax" the distance (if appropriate) through modify.
if (pot_dist < a_it[neighbor_i]->second)
p.modify(a_it[neighbor_i], pq_value(neighbor_i, pot_dist));
}
// Done with the node, so we pop it.
+ a_it[node_id] = a_it[0];
p.pop();
}
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc
index d82813e..9113508 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc
@@ -45,6 +45,8 @@
* Contains a random-operation test for maps and sets.
*/
+// { dg-require-time "" }
+
#include <regression/rand/assoc/rand_regression_test.hpp>
#include <regression/assoc/common_type.hpp>
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc
index 652774a..2c55313 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc
@@ -45,6 +45,8 @@
* Contains a random-operation test for maps and sets.
*/
+// { dg-require-time "" }
+
#include <regression/rand/assoc/rand_regression_test.hpp>
#include <regression/assoc/common_type.hpp>
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc
index 98bbf59..6849a02 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc
@@ -45,6 +45,8 @@
* Contains a random-operation test for maps and sets.
*/
+// { dg-require-time "" }
+
#include <regression/rand/assoc/rand_regression_test.hpp>
#include <regression/assoc/common_type.hpp>
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc
index 90e0de0..3320e42 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc
@@ -45,6 +45,8 @@
* Contains a random-operation test for maps and sets.
*/
+// { dg-require-time "" }
+
#include <regression/rand/assoc/rand_regression_test.hpp>
#include <regression/assoc/common_type.hpp>
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc
index 67e5b6f..3860e66 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc
@@ -45,6 +45,8 @@
* Contains a random-operation test for priority queues.
*/
+// { dg-require-time "" }
+
#include <regression/rand/priority_queue/rand_regression_test.hpp>
#include <regression/priority_queue/common_type.hpp>
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc
index 645d2ee..5a2a29c 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc
@@ -45,6 +45,8 @@
* Contains a random-operation test for maps and sets.
*/
+// { dg-require-time "" }
+
#include <regression/rand/assoc/rand_regression_test.hpp>
#include <regression/assoc/common_type.hpp>
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc
index 1e3a3db..22f00c4 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc
@@ -45,6 +45,8 @@
* Contains a random-operation test for maps and sets.
*/
+// { dg-require-time "" }
+
#include <regression/rand/assoc/rand_regression_test.hpp>
#include <regression/assoc/common_type.hpp>
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc
index 90e4fc6..61e72bc 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc
@@ -45,6 +45,8 @@
* Contains a random-operation test for maps and sets.
*/
+// { dg-require-time "" }
+
#include <regression/rand/assoc/rand_regression_test.hpp>
#include <regression/assoc/common_type.hpp>
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc
index cd1991e..1840ebf 100644
--- a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc
@@ -45,6 +45,8 @@
* Contains a random-operation test for maps and sets.
*/
+// { dg-require-time "" }
+
#include <regression/rand/assoc/rand_regression_test.hpp>
#include <regression/assoc/common_type.hpp>
diff --git a/libstdc++-v3/testsuite/ext/throw_allocator/check_allocate_max_size.cc b/libstdc++-v3/testsuite/ext/throw_allocator/check_allocate_max_size.cc
index 902361e..9e5c041 100644
--- a/libstdc++-v3/testsuite/ext/throw_allocator/check_allocate_max_size.cc
+++ b/libstdc++-v3/testsuite/ext/throw_allocator/check_allocate_max_size.cc
@@ -17,6 +17,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
+// { dg-require-time "" }
+
#include <ext/throw_allocator.h>
#include <testsuite_allocator.h>
diff --git a/libstdc++-v3/testsuite/ext/throw_allocator/check_deallocate_null.cc b/libstdc++-v3/testsuite/ext/throw_allocator/check_deallocate_null.cc
index 8e6e1a0..c49ed2d 100644
--- a/libstdc++-v3/testsuite/ext/throw_allocator/check_deallocate_null.cc
+++ b/libstdc++-v3/testsuite/ext/throw_allocator/check_deallocate_null.cc
@@ -17,6 +17,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
+// { dg-require-time "" }
+
#include <ext/throw_allocator.h>
#include <testsuite_allocator.h>
diff --git a/libstdc++-v3/testsuite/ext/throw_allocator/check_delete.cc b/libstdc++-v3/testsuite/ext/throw_allocator/check_delete.cc
index a8e7167..7dd7b1a 100644
--- a/libstdc++-v3/testsuite/ext/throw_allocator/check_delete.cc
+++ b/libstdc++-v3/testsuite/ext/throw_allocator/check_delete.cc
@@ -17,6 +17,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
+// { dg-require-time "" }
+
#include <cstdlib>
#include <ext/throw_allocator.h>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/ext/throw_allocator/check_new.cc b/libstdc++-v3/testsuite/ext/throw_allocator/check_new.cc
index 1b00412..55c1d2b 100644
--- a/libstdc++-v3/testsuite/ext/throw_allocator/check_new.cc
+++ b/libstdc++-v3/testsuite/ext/throw_allocator/check_new.cc
@@ -17,6 +17,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
+// { dg-require-time "" }
+
#include <cstdlib>
#include <ext/throw_allocator.h>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/ext/throw_allocator/deallocate_global.cc b/libstdc++-v3/testsuite/ext/throw_allocator/deallocate_global.cc
index c8bbe51..1eb90ab 100644
--- a/libstdc++-v3/testsuite/ext/throw_allocator/deallocate_global.cc
+++ b/libstdc++-v3/testsuite/ext/throw_allocator/deallocate_global.cc
@@ -17,6 +17,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
+// { dg-require-time "" }
+
#include <string>
#include <stdexcept>
#include <ext/throw_allocator.h>
diff --git a/libstdc++-v3/testsuite/ext/throw_allocator/deallocate_local.cc b/libstdc++-v3/testsuite/ext/throw_allocator/deallocate_local.cc
index 794232e..d6d57e7 100644
--- a/libstdc++-v3/testsuite/ext/throw_allocator/deallocate_local.cc
+++ b/libstdc++-v3/testsuite/ext/throw_allocator/deallocate_local.cc
@@ -17,6 +17,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
+// { dg-require-time "" }
+
#include <string>
#include <ext/throw_allocator.h>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/gen1.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/gen1.cc
index 3d47cd6..823e66e 100644
--- a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/gen1.cc
+++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/gen1.cc
@@ -21,6 +21,8 @@
// 5.1.4.1 class template linear_congruential [tr.rand.eng.lcong]
// 5.1.1 Table 16 line 3 template ctor(gen)
+// { dg-require-time "" }
+
#include <ctime>
#include <tr1/random>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/gen1.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/gen1.cc
index 7861954..5e4075d 100644
--- a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/gen1.cc
+++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/gen1.cc
@@ -21,6 +21,8 @@
// 5.1.4.2 class template mersenne_twister [tr.rand.eng.mers]
// 5.1.1 Table 16 line 3 Gen ctor
+// { dg-require-time "" }
+
#include <ctime>
#include <tr1/random>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc
index 5091445..ef583dd 100644
--- a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc
+++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc
@@ -21,6 +21,8 @@
// 5.1.4.3 class template subtract_with_carry [tr.rand.eng.sub]
// 5.1.1 Table 16 line 3 Gen ctor
+// { dg-require-time "" }
+
#include <ctime>
#include <tr1/random>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/gen1.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/gen1.cc
index 0a95397..d7a894b 100644
--- a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/gen1.cc
+++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/gen1.cc
@@ -21,6 +21,8 @@
// 5.1.4.4 class template subtract_with_carry_01 [tr.rand.eng.sub1]
// 5.1.1 Table 16 line 3 Gen ctor
+// { dg-require-time "" }
+
#include <ctime>
#include <tr1/random>
#include <testsuite_hooks.h>