aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2003-01-14 04:56:56 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2003-01-14 04:56:56 +0000
commit8d59b2301899ee7cc32bce79d766ce0618ffa2f4 (patch)
tree1e8b2a72bf64356353b23acf94b44346988a9d2e /libstdc++-v3
parentfd371a93fb81f1db3af0711b4764742f81930de1 (diff)
downloadgcc-8d59b2301899ee7cc32bce79d766ce0618ffa2f4.zip
gcc-8d59b2301899ee7cc32bce79d766ce0618ffa2f4.tar.gz
gcc-8d59b2301899ee7cc32bce79d766ce0618ffa2f4.tar.bz2
Renames, namespaces for testsuite utilities.
2003-01-12 Benjamin Kosnik <bkoz@redhat.com> Renames, namespaces for testsuite utilities. * testsuite/testsuite_hooks.h: Put into namespace __gnu_cxx_test. (gnu_allocator_tracker): Rename to allocation_tracker. (gnu_new_allocator): Rename to tracker_alloc. (__set_testsuite_memlimit): Rename to set_memory_limits. (gnu_assignment_operator): Rename to assignment_operator. (gnu_destructor): Rename to destructor. (gnu_copy_tracker): Rename to copy_tracker. (gnu_char, gnu_int, gnu_long): Rename to pod_char, pod_int, pod_long. (run_tests_wrapped_locale): New. (run_tests_wrapped_env): New. * testsuite/testsuite_hooks.cc: Same. (class locale_data): Add. (class enviornment_variable): Add. (class not_found): Add. * testsuite/testsuite_allocator.h: Same. * testsuite/testsuite_allocator.cc: Same. * testsuite/23_containers/deque_ctor.cc (test_copy_ctor_exception_safety): Change gnu_allocator_tracker to allocation_tracker. Change gnu_new_allocator to tracker_alloc. Change gnu_counting_struct to counter. Change gnu_copy_tracker to copy_tracker. Change gnu_copy_constructor to copy_constructor. Change gnu_assignment_operator to assignment_operator. Inject. * testsuite/23_containers/vector_capacity.cc: Same. * testsuite/23_containers/vector_ctor.cc (test01): Same. * testsuite/23_containers/list_modifiers.cc: Change gnu_copy_tracker to copy_tracker. * testsuite/21_strings/ctor_copy_dtor.cc (main): Change __set_testsuite_memlimit to set_memory_limits. * testsuite/21_strings/insert.cc (main): Same. * testsuite/27_io/filebuf.cc: Change gnu_char to pod_char. * testsuite/27_io/stringstream.cc: Same. * testsuite/27_io/stringbuf.cc: Same. * testsuite/27_io/streambuf.cc: Same. * testsuite/27_io/ostream.cc: Same. * testsuite/27_io/istream.cc: Same. * testsuite/27_io/fstream.cc: Same. * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-list-sourcefiles): Additionally handle files two and three levels deeper in glob patterns. From-SVN: r61261
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog46
-rw-r--r--libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc4
-rw-r--r--libstdc++-v3/testsuite/21_strings/insert.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque_ctor.cc92
-rw-r--r--libstdc++-v3/testsuite/23_containers/list_modifiers.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector_capacity.cc36
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector_ctor.cc280
-rw-r--r--libstdc++-v3/testsuite/27_io/filebuf.cc5
-rw-r--r--libstdc++-v3/testsuite/27_io/fstream.cc5
-rw-r--r--libstdc++-v3/testsuite/27_io/istream.cc5
-rw-r--r--libstdc++-v3/testsuite/27_io/ostream.cc5
-rw-r--r--libstdc++-v3/testsuite/27_io/streambuf.cc5
-rw-r--r--libstdc++-v3/testsuite/27_io/stringbuf.cc5
-rw-r--r--libstdc++-v3/testsuite/27_io/stringstream.cc5
-rw-r--r--libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp2
-rw-r--r--libstdc++-v3/testsuite/testsuite_allocator.cc15
-rw-r--r--libstdc++-v3/testsuite/testsuite_allocator.h152
-rw-r--r--libstdc++-v3/testsuite/testsuite_hooks.cc114
-rw-r--r--libstdc++-v3/testsuite/testsuite_hooks.h345
19 files changed, 652 insertions, 477 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 4111699..d67b56e 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,49 @@
+2003-01-12 Benjamin Kosnik <bkoz@redhat.com>
+
+ Renames, namespaces for testsuite utilities.
+ * testsuite/testsuite_hooks.h: Put into namespace __gnu_cxx_test.
+ (gnu_allocator_tracker): Rename to allocation_tracker.
+ (gnu_new_allocator): Rename to tracker_alloc.
+ (__set_testsuite_memlimit): Rename to set_memory_limits.
+ (gnu_assignment_operator): Rename to assignment_operator.
+ (gnu_destructor): Rename to destructor.
+ (gnu_copy_tracker): Rename to copy_tracker.
+ (gnu_char, gnu_int, gnu_long): Rename to pod_char, pod_int, pod_long.
+ (run_tests_wrapped_locale): New.
+ (run_tests_wrapped_env): New.
+ * testsuite/testsuite_hooks.cc: Same.
+ (class locale_data): Add.
+ (class enviornment_variable): Add.
+ (class not_found): Add.
+ * testsuite/testsuite_allocator.h: Same.
+ * testsuite/testsuite_allocator.cc: Same.
+ * testsuite/23_containers/deque_ctor.cc
+ (test_copy_ctor_exception_safety): Change gnu_allocator_tracker to
+ allocation_tracker.
+ Change gnu_new_allocator to tracker_alloc.
+ Change gnu_counting_struct to counter.
+ Change gnu_copy_tracker to copy_tracker.
+ Change gnu_copy_constructor to copy_constructor.
+ Change gnu_assignment_operator to assignment_operator.
+ Inject.
+ * testsuite/23_containers/vector_capacity.cc: Same.
+ * testsuite/23_containers/vector_ctor.cc (test01): Same.
+ * testsuite/23_containers/list_modifiers.cc: Change
+ gnu_copy_tracker to copy_tracker.
+ * testsuite/21_strings/ctor_copy_dtor.cc (main): Change
+ __set_testsuite_memlimit to set_memory_limits.
+ * testsuite/21_strings/insert.cc (main): Same.
+ * testsuite/27_io/filebuf.cc: Change gnu_char to pod_char.
+ * testsuite/27_io/stringstream.cc: Same.
+ * testsuite/27_io/stringbuf.cc: Same.
+ * testsuite/27_io/streambuf.cc: Same.
+ * testsuite/27_io/ostream.cc: Same.
+ * testsuite/27_io/istream.cc: Same.
+ * testsuite/27_io/fstream.cc: Same.
+ * testsuite/lib/libstdc++-v3-dg.exp
+ (libstdc++-v3-list-sourcefiles): Additionally handle files two and
+ three levels deeper in glob patterns.
+
2003-01-11 Phil Edwards <pme@gcc.gnu.org>
* docs/doxygen/tables.html: Finished now.
diff --git a/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc b/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc
index c45e66a..28e9d8e 100644
--- a/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc
+++ b/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc
@@ -1,6 +1,6 @@
// 1999-06-04 bkoz
-// Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -230,7 +230,7 @@ void test05()
int main()
{
- __set_testsuite_memlimit();
+ __gnu_cxx_test::set_memory_limits();
test01();
test02();
test03();
diff --git a/libstdc++-v3/testsuite/21_strings/insert.cc b/libstdc++-v3/testsuite/21_strings/insert.cc
index e6140ac..5e1eda8 100644
--- a/libstdc++-v3/testsuite/21_strings/insert.cc
+++ b/libstdc++-v3/testsuite/21_strings/insert.cc
@@ -1,6 +1,6 @@
// 1999-06-03 bkoz
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -246,7 +246,7 @@ int test02(void)
int main()
{
- __set_testsuite_memlimit();
+ __gnu_cxx_test::set_memory_limits();
test01();
test02();
return 0;
diff --git a/libstdc++-v3/testsuite/23_containers/deque_ctor.cc b/libstdc++-v3/testsuite/23_containers/deque_ctor.cc
index 7df1034..50a8133 100644
--- a/libstdc++-v3/testsuite/23_containers/deque_ctor.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque_ctor.cc
@@ -1,6 +1,6 @@
// 2001-12-27 pme
//
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -26,7 +26,15 @@
#include <testsuite_allocator.h>
#include <testsuite_hooks.h>
-typedef std::deque<gnu_counting_struct> gdeque;
+using __gnu_cxx_test::copy_tracker;
+using __gnu_cxx_test::allocation_tracker;
+using __gnu_cxx_test::tracker_alloc;
+using __gnu_cxx_test::copy_constructor;
+using __gnu_cxx_test::assignment_operator;
+using __gnu_cxx_test::counter;
+using __gnu_cxx_test::destructor;
+
+typedef std::deque<counter> gdeque;
bool test = true;
@@ -133,10 +141,10 @@ void
defaultConstructorCheck()
{
// setup
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// run test
const X u;
@@ -171,7 +179,7 @@ void
copyConstructorCheck()
{
// setup
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
const int copyBaseSize = 17; // arbitrary
@@ -179,7 +187,7 @@ copyConstructorCheck()
X a;
for (int i = 0; i < copyBaseSize; ++i)
a.push_back(i);
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// assert preconditions
VERIFY(!a.empty());
@@ -192,7 +200,7 @@ copyConstructorCheck()
// assert postconditions
VERIFY(u == a);
- VERIFY(copyBaseSize == gnu_copy_constructor::count());
+ VERIFY(copyBaseSize == copy_constructor::count());
// teardown
}
@@ -212,20 +220,20 @@ void
fillConstructorCheck()
{
// setup
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
const X::size_type n(23);
const X::value_type t(111);
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// run test
X a(n, t);
// assert postconditions
VERIFY(n == a.size());
- VERIFY(n == gnu_copy_constructor::count());
+ VERIFY(n == copy_constructor::count());
// teardown
}
@@ -239,18 +247,18 @@ fillConstructorCheck()
void
fillConstructorCheck2()
{
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
const int f = 23;
const int l = 111;
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
X a(f, l);
VERIFY(f == a.size());
- VERIFY(f == gnu_copy_constructor::count());
+ VERIFY(f == copy_constructor::count());
}
@@ -265,7 +273,7 @@ void
rangeConstructorCheckForwardIterator()
{
// setup
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
const X::size_type n(726);
@@ -275,14 +283,14 @@ rangeConstructorCheckForwardIterator()
X::iterator j = source.end();
X::size_type rangeSize = std::distance(i, j);
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// test
X a(i, j);
// assert postconditions
VERIFY(rangeSize == a.size());
- VERIFY(gnu_copy_constructor::count() <= rangeSize);
+ VERIFY(copy_constructor::count() <= rangeSize);
}
@@ -295,7 +303,7 @@ rangeConstructorCheckForwardIterator()
void
rangeConstructorCheckInputIterator()
{
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
std::istringstream ibuf("1234567890123456789");
@@ -303,12 +311,12 @@ rangeConstructorCheckInputIterator()
std::istream_iterator<char> i(ibuf);
std::istream_iterator<char> j;
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
X a(i, j);
VERIFY(rangeSize == a.size());
- VERIFY(gnu_copy_constructor::count() <= (2 * rangeSize));
+ VERIFY(copy_constructor::count() <= (2 * rangeSize));
}
@@ -316,7 +324,7 @@ rangeConstructorCheckInputIterator()
void
copyAssignmentCheck()
{
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
const X::size_type n(18);
@@ -324,12 +332,12 @@ copyAssignmentCheck()
X a(n, t);
X r;
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
r = a;
VERIFY(r == a);
- VERIFY(n == gnu_copy_constructor::count());
+ VERIFY(n == copy_constructor::count());
}
@@ -343,7 +351,7 @@ copyAssignmentCheck()
void
fillAssignmentCheck()
{
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
const X::size_type starting_size(10);
@@ -352,7 +360,7 @@ fillAssignmentCheck()
const X::value_type t(111);
X a(starting_size, starting_value);
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// preconditions
VERIFY(starting_size == a.size());
@@ -362,8 +370,8 @@ fillAssignmentCheck()
// postconditions
VERIFY(n == a.size());
- VERIFY(n == (gnu_copy_constructor::count() + gnu_assignment_operator::count()));
- VERIFY(starting_size == (gnu_destructor::count() + gnu_assignment_operator::count()));
+ VERIFY(n == (copy_constructor::count() + assignment_operator::count()));
+ VERIFY(starting_size == (destructor::count() + assignment_operator::count()));
}
@@ -391,7 +399,7 @@ fillAssignmentCheck()
void
rangeAssignmentCheck()
{
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
const X::size_type source_size(726);
@@ -407,13 +415,13 @@ rangeAssignmentCheck()
X a(starting_size, starting_value);
VERIFY(starting_size == a.size());
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
a.assign(i, j);
VERIFY(source == a);
- VERIFY(rangeSize == (gnu_copy_constructor::count() + gnu_assignment_operator::count()));
- VERIFY(starting_size == (gnu_destructor::count() + gnu_assignment_operator::count()));
+ VERIFY(rangeSize == (copy_constructor::count() + assignment_operator::count()));
+ VERIFY(starting_size == (destructor::count() + assignment_operator::count()));
}
@@ -423,7 +431,7 @@ void
rangeAssignmentCheckWithException()
{
// setup
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
// test
@@ -436,7 +444,7 @@ void
fillAssignmentCheck2()
{
// setup
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
// test
@@ -449,12 +457,12 @@ void
test_default_ctor_exception_safety()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::deque<T, gnu_new_allocator<T> > X;
+ typedef copy_tracker T;
+ typedef std::deque<T, tracker_alloc<T> > X;
T::reset();
- gnu_copy_constructor::throw_on(3);
- gnu_allocator_tracker::resetCounts();
+ copy_constructor::throw_on(3);
+ allocation_tracker::resetCounts();
// test
try
@@ -467,7 +475,7 @@ test_default_ctor_exception_safety()
}
// assert postconditions
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
}
@@ -477,14 +485,14 @@ void
test_copy_ctor_exception_safety()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::deque<T, gnu_new_allocator<T> > X;
+ typedef copy_tracker T;
+ typedef std::deque<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(7);
T::reset();
- gnu_copy_constructor::throw_on(3);
+ copy_constructor::throw_on(3);
// test
@@ -499,7 +507,7 @@ test_copy_ctor_exception_safety()
}
// assert postconditions
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
}
diff --git a/libstdc++-v3/testsuite/23_containers/list_modifiers.cc b/libstdc++-v3/testsuite/23_containers/list_modifiers.cc
index 14b5365..213fc41 100644
--- a/libstdc++-v3/testsuite/23_containers/list_modifiers.cc
+++ b/libstdc++-v3/testsuite/23_containers/list_modifiers.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -21,7 +21,7 @@
#include <list>
#include <testsuite_hooks.h>
-typedef gnu_copy_tracker T;
+typedef __gnu_cxx_test::copy_tracker T;
bool test = true;
diff --git a/libstdc++-v3/testsuite/23_containers/vector_capacity.cc b/libstdc++-v3/testsuite/23_containers/vector_capacity.cc
index 50740ba..b6e347d 100644
--- a/libstdc++-v3/testsuite/23_containers/vector_capacity.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector_capacity.cc
@@ -1,7 +1,7 @@
// 1999-05-07
// bkoz
-// Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -26,6 +26,13 @@
#include <testsuite_allocator.h>
#include <testsuite_hooks.h>
+using __gnu_cxx_test::copy_tracker;
+using __gnu_cxx_test::allocation_tracker;
+using __gnu_cxx_test::tracker_alloc;
+using __gnu_cxx_test::copy_constructor;
+using __gnu_cxx_test::assignment_operator;
+using __gnu_cxx_test::destructor;
+
template<typename T>
struct A { };
@@ -58,7 +65,6 @@ void test01()
void test02()
{
bool test = true;
-
{
std::vector<int> array;
const std::size_t size = array.max_size();
@@ -104,10 +110,11 @@ void test02()
void
test_reserve()
{
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(3);
const X::size_type old_size = a.size();
@@ -121,11 +128,11 @@ test_reserve()
VERIFY(new_capacity <= a.capacity());
// [23.2.4.1 (3)]
VERIFY(old_size == a.size());
- VERIFY(gnu_copy_constructor::count() <= old_size);
- VERIFY(gnu_destructor::count() <= old_size);
+ VERIFY(copy_constructor::count() <= old_size);
+ VERIFY(destructor::count() <= old_size);
}
// check for memory leaks
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
}
// Verifies that reserve() with reallocation offers the strong
@@ -133,17 +140,18 @@ test_reserve()
void
test_reserve_exception_guarantee()
{
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(7);
const X::size_type old_size = a.size();
const X::size_type old_capacity = a.capacity();
const X::size_type new_capacity = old_capacity + 10;
T::reset();
- gnu_copy_constructor::throw_on(3);
+ copy_constructor::throw_on(3);
try
{
@@ -155,9 +163,9 @@ test_reserve_exception_guarantee()
}
VERIFY(old_capacity == a.capacity());
- VERIFY(gnu_copy_constructor::count() == gnu_destructor::count()+1);
+ VERIFY(copy_constructor::count() == destructor::count()+1);
}
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
}
int main()
diff --git a/libstdc++-v3/testsuite/23_containers/vector_ctor.cc b/libstdc++-v3/testsuite/23_containers/vector_ctor.cc
index d8789f57..8b93207 100644
--- a/libstdc++-v3/testsuite/23_containers/vector_ctor.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector_ctor.cc
@@ -1,6 +1,6 @@
// 1999-06-29 bkoz
-// Copyright (C) 1999-2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999-2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -25,6 +25,12 @@
#include <testsuite_allocator.h>
#include <testsuite_hooks.h>
+using __gnu_cxx_test::copy_tracker;
+using __gnu_cxx_test::allocation_tracker;
+using __gnu_cxx_test::tracker_alloc;
+using __gnu_cxx_test::copy_constructor;
+using __gnu_cxx_test::assignment_operator;
+
template<typename T>
struct A { };
@@ -32,7 +38,6 @@ struct B { };
void test01()
{
-
// 1
bool test = true;
std::vector< A<B> > vec01;
@@ -62,22 +67,22 @@ void test02()
void
test03()
{
- const int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};
- const int B[] = {7, 7, 7, 7, 7};
- const int N = sizeof(A) / sizeof(int);
- const int M = sizeof(B) / sizeof(int);
- bool test = true;
-
- std::vector<int> v3(A, A + N);
- VERIFY(std::equal(v3.begin(), v3.end(), A));
-
- std::vector<int> v4(v3.begin(), v3.end());
- VERIFY(std::equal(v4.begin(), v4.end(), A));
-
- std::vector<int> v5(M, 7);
- VERIFY(std::equal(v5.begin(), v5.end(), B));
- VERIFY(std::equal(B, B + M, v5.begin()));
-
+ bool test = true;
+ const int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};
+ const int B[] = {7, 7, 7, 7, 7};
+ const int N = sizeof(A) / sizeof(int);
+ const int M = sizeof(B) / sizeof(int);
+
+ std::vector<int> v3(A, A + N);
+ VERIFY(std::equal(v3.begin(), v3.end(), A));
+
+ std::vector<int> v4(v3.begin(), v3.end());
+ VERIFY(std::equal(v4.begin(), v4.end(), A));
+
+ std::vector<int> v5(M, 7);
+ VERIFY(std::equal(v5.begin(), v5.end(), B));
+ VERIFY(std::equal(B, B + M, v5.begin()));
+
#ifdef DEBUG_ASSERT
assert(test);
#endif
@@ -105,12 +110,13 @@ void
test_default_ctor_exception_gurantee()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_copy_tracker::reset();
- gnu_copy_constructor::throw_on(3);
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ copy_constructor::throw_on(3);
+ allocation_tracker::resetCounts();
// run test
try
@@ -124,7 +130,7 @@ test_default_ctor_exception_gurantee()
// assert postconditions
VERIFY(("memory leak detected:",
- gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal()));
+ allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal()));
// teardown
}
@@ -137,14 +143,15 @@ void
test_copy_ctor_exception_gurantee()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(7);
- gnu_copy_tracker::reset();
- gnu_copy_constructor::throw_on(3);
+ copy_tracker::reset();
+ copy_constructor::throw_on(3);
// run test
try
@@ -158,11 +165,11 @@ test_copy_ctor_exception_gurantee()
}
// assert postconditions
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
// operator=()
@@ -175,13 +182,14 @@ void
test_assignment_operator_1()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
X r(9);
X a(r.size() - 2);
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
// preconditions
VERIFY(r.size() > a.size());
@@ -191,25 +199,26 @@ test_assignment_operator_1()
// assert postconditions
VERIFY(r == a);
- VERIFY(gnu_allocator_tracker::allocationTotal() == 0);
+ VERIFY(allocation_tracker::allocationTotal() == 0);
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_assignment_operator_2()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
X r(1);
r.reserve(17);
X a(r.size() + 7);
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
// preconditions
VERIFY(r.size() < a.size());
@@ -220,25 +229,26 @@ test_assignment_operator_2()
// assert postconditions
VERIFY(r == a);
- VERIFY(gnu_allocator_tracker::allocationTotal() == 0);
+ VERIFY(allocation_tracker::allocationTotal() == 0);
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_assignment_operator_3()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X r(1);
X a(r.capacity() + 7);
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// preconditions
VERIFY(r.capacity() < a.size());
@@ -249,26 +259,27 @@ test_assignment_operator_3()
// assert postconditions
VERIFY(r == a);
}
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_assignment_operator_3_exception_guarantee()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X r(1);
X a(r.capacity() + 7);
- gnu_copy_tracker::reset();
- gnu_copy_constructor::throw_on(3);
+ copy_tracker::reset();
+ copy_constructor::throw_on(3);
// preconditions
VERIFY(r.capacity() < a.size());
@@ -285,11 +296,11 @@ test_assignment_operator_3_exception_guarantee()
}
// assert postconditions
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
// fill assign()
@@ -304,35 +315,37 @@ void
test_fill_assign_1()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
X a(7);
X::size_type old_size = a.size();
X::size_type new_size = old_size - 2;
const T t;
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
// run test
a.assign(new_size, t);
// assert postconditions
VERIFY(a.size() == new_size);
- VERIFY(gnu_allocator_tracker::allocationTotal() == 0);
+ VERIFY(allocation_tracker::allocationTotal() == 0);
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_fill_assign_2()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
X a(7);
a.reserve(11);
@@ -341,8 +354,8 @@ test_fill_assign_2()
X::size_type new_size = old_size + 2;
const T t;
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
// assert preconditions
VERIFY(old_size < new_size);
@@ -353,21 +366,22 @@ test_fill_assign_2()
// assert postconditions
VERIFY(a.size() == new_size);
- VERIFY(gnu_allocator_tracker::allocationTotal() == 0);
+ VERIFY(allocation_tracker::allocationTotal() == 0);
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_fill_assign_3()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(7);
X::size_type old_size = a.size();
@@ -375,7 +389,7 @@ test_fill_assign_3()
X::size_type new_size = old_capacity + 4;
const T t;
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// assert preconditions
VERIFY(new_size > old_capacity);
@@ -387,22 +401,23 @@ test_fill_assign_3()
VERIFY(a.size() == new_size);
}
- VERIFY(gnu_allocator_tracker::allocationTotal() > 0);
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() > 0);
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_fill_assign_3_exception_guarantee()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(7);
X::size_type old_size = a.size();
@@ -410,8 +425,8 @@ test_fill_assign_3_exception_guarantee()
X::size_type new_size = old_capacity + 4;
const T t;
- gnu_copy_tracker::reset();
- gnu_copy_constructor::throw_on(3);
+ copy_tracker::reset();
+ copy_constructor::throw_on(3);
// assert preconditions
VERIFY(new_size > old_capacity);
@@ -431,39 +446,40 @@ test_fill_assign_3_exception_guarantee()
VERIFY(a.capacity() == old_capacity);
}
- VERIFY(gnu_allocator_tracker::allocationTotal() > 0);
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() > 0);
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_fill_assign_4()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
X a(7);
X::size_type old_size = a.size();
X::size_type new_size = old_size - 2;
X::size_type new_value = 117;
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
// run test
a.assign(new_size, new_value);
// assert postconditions
VERIFY(a.size() == new_size);
- VERIFY(gnu_allocator_tracker::allocationTotal() == 0);
+ VERIFY(allocation_tracker::allocationTotal() == 0);
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
// range assign()
@@ -486,15 +502,16 @@ void
test_range_assign_2()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
X a(7);
X b(3);
X::size_type old_size = a.size();
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
// assert preconditions
VERIFY(b.size() < a.capacity());
@@ -505,27 +522,28 @@ test_range_assign_2()
// assert postconditions
VERIFY(a.size() == b.size());
VERIFY(a == b);
- VERIFY(gnu_allocator_tracker::allocationTotal() == 0);
+ VERIFY(allocation_tracker::allocationTotal() == 0);
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_range_assign_3()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
X a(7);
a.reserve(a.size() + 7);
X b(a.size() + 3);
X::size_type old_size = a.size();
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
// assert preconditions
VERIFY(a.size() < b.size());
@@ -537,27 +555,28 @@ test_range_assign_3()
// assert postconditions
VERIFY(a.size() == b.size());
VERIFY(a == b);
- VERIFY(gnu_allocator_tracker::allocationTotal() == 0);
+ VERIFY(allocation_tracker::allocationTotal() == 0);
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_range_assign_4()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(7);
X b(a.capacity() + 7);
X::size_type old_size = a.size();
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// assert preconditions
VERIFY(b.size() > a.capacity());
@@ -569,29 +588,30 @@ test_range_assign_4()
VERIFY(a.size() == b.size());
VERIFY(a == b);
}
- VERIFY(gnu_allocator_tracker::allocationTotal() > 0);
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() > 0);
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_range_assign_4_exception_guarantee()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(7);
X b(a.capacity() + 7);
X::size_type old_size = a.size();
- gnu_copy_tracker::reset();
- gnu_copy_constructor::throw_on(3);
+ copy_tracker::reset();
+ copy_constructor::throw_on(3);
// assert preconditions
VERIFY(b.size() > a.capacity());
@@ -608,12 +628,12 @@ test_range_assign_4_exception_guarantee()
}
// assert postconditions
- VERIFY(gnu_allocator_tracker::allocationTotal() > 0);
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() > 0);
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
diff --git a/libstdc++-v3/testsuite/27_io/filebuf.cc b/libstdc++-v3/testsuite/27_io/filebuf.cc
index e72f2ca..ab873be 100644
--- a/libstdc++-v3/testsuite/27_io/filebuf.cc
+++ b/libstdc++-v3/testsuite/27_io/filebuf.cc
@@ -1,6 +1,6 @@
// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -45,9 +45,10 @@ void test01()
namespace test
{
using namespace std;
+ using __gnu_cxx_test::pod_char;
typedef short type_t;
template class basic_filebuf<type_t, char_traits<type_t> >;
- template class basic_filebuf<gnu_char, char_traits<gnu_char> >;
+ template class basic_filebuf<pod_char, char_traits<pod_char> >;
} // test
diff --git a/libstdc++-v3/testsuite/27_io/fstream.cc b/libstdc++-v3/testsuite/27_io/fstream.cc
index 276294d..c37be6b 100644
--- a/libstdc++-v3/testsuite/27_io/fstream.cc
+++ b/libstdc++-v3/testsuite/27_io/fstream.cc
@@ -1,6 +1,6 @@
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -50,9 +50,10 @@ void test01()
namespace test
{
using namespace std;
+ using __gnu_cxx_test::pod_char;
typedef short type_t;
template class basic_fstream<type_t, char_traits<type_t> >;
- template class basic_fstream<gnu_char, char_traits<gnu_char> >;
+ template class basic_fstream<pod_char, char_traits<pod_char> >;
} // test
int main()
diff --git a/libstdc++-v3/testsuite/27_io/istream.cc b/libstdc++-v3/testsuite/27_io/istream.cc
index 6cec904..c8146ea 100644
--- a/libstdc++-v3/testsuite/27_io/istream.cc
+++ b/libstdc++-v3/testsuite/27_io/istream.cc
@@ -1,6 +1,6 @@
// 1999-09-20 bkoz
-// Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -50,9 +50,10 @@ void test01()
namespace test
{
using namespace std;
+ using __gnu_cxx_test::pod_char;
typedef short type_t;
template class basic_istream<type_t, char_traits<type_t> >;
- template class basic_istream<gnu_char, char_traits<gnu_char> >;
+ template class basic_istream<pod_char, char_traits<pod_char> >;
} // test
int main()
diff --git a/libstdc++-v3/testsuite/27_io/ostream.cc b/libstdc++-v3/testsuite/27_io/ostream.cc
index ee764f9..7efd653 100644
--- a/libstdc++-v3/testsuite/27_io/ostream.cc
+++ b/libstdc++-v3/testsuite/27_io/ostream.cc
@@ -1,6 +1,6 @@
// 1999-09-20 bkoz
-// Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -50,9 +50,10 @@ void test01()
namespace test
{
using namespace std;
+ using __gnu_cxx_test::pod_char;
typedef short type_t;
template class basic_ostream<type_t, char_traits<type_t> >;
- template class basic_ostream<gnu_char, char_traits<gnu_char> >;
+ template class basic_ostream<pod_char, char_traits<pod_char> >;
} // test
int main()
diff --git a/libstdc++-v3/testsuite/27_io/streambuf.cc b/libstdc++-v3/testsuite/27_io/streambuf.cc
index 102ff60..29c771b90 100644
--- a/libstdc++-v3/testsuite/27_io/streambuf.cc
+++ b/libstdc++-v3/testsuite/27_io/streambuf.cc
@@ -1,6 +1,6 @@
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -50,9 +50,10 @@ void test01()
namespace test
{
using namespace std;
+ using __gnu_cxx_test::pod_char;
typedef short type_t;
template class basic_streambuf<type_t, char_traits<type_t> >;
- template class basic_streambuf<gnu_char, char_traits<gnu_char> >;
+ template class basic_streambuf<pod_char, char_traits<pod_char> >;
} // test
int main()
diff --git a/libstdc++-v3/testsuite/27_io/stringbuf.cc b/libstdc++-v3/testsuite/27_io/stringbuf.cc
index 3cfd5af..a91deab 100644
--- a/libstdc++-v3/testsuite/27_io/stringbuf.cc
+++ b/libstdc++-v3/testsuite/27_io/stringbuf.cc
@@ -1,6 +1,6 @@
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -50,9 +50,10 @@ void test01()
namespace test
{
using namespace std;
+ using __gnu_cxx_test::pod_char;
typedef short type_t;
template class basic_stringbuf<type_t, char_traits<type_t> >;
- template class basic_stringbuf<gnu_char, char_traits<gnu_char> >;
+ template class basic_stringbuf<pod_char, char_traits<pod_char> >;
} // test
int main()
diff --git a/libstdc++-v3/testsuite/27_io/stringstream.cc b/libstdc++-v3/testsuite/27_io/stringstream.cc
index cb9e39d..576b72d 100644
--- a/libstdc++-v3/testsuite/27_io/stringstream.cc
+++ b/libstdc++-v3/testsuite/27_io/stringstream.cc
@@ -1,6 +1,6 @@
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -50,9 +50,10 @@ void test01()
namespace test
{
using namespace std;
+ using __gnu_cxx_test::pod_char;
typedef short type_t;
template class basic_stringstream<type_t, char_traits<type_t> >;
- template class basic_stringstream<gnu_char, char_traits<gnu_char> >;
+ template class basic_stringstream<pod_char, char_traits<pod_char> >;
} // test
int main()
diff --git a/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp b/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp
index 92f3d2f..89cb349 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp
@@ -233,7 +233,7 @@ proc libstdc++-v3-list-sourcefiles { } {
set f [open $files_file "w"]
set where_we_were [pwd]
cd $srcdir
- foreach s [lsort [glob -nocomplain "{,*/}*/*.cc"]] {
+ foreach s [lsort [glob -nocomplain "*/*.cc" "*/*/*.cc" "{,*/}*/*/*/*.cc" ]] {
lappend sfiles ${srcdir}/${s}
puts $f $s
}
diff --git a/libstdc++-v3/testsuite/testsuite_allocator.cc b/libstdc++-v3/testsuite/testsuite_allocator.cc
index a4f287e..775b253 100644
--- a/libstdc++-v3/testsuite/testsuite_allocator.cc
+++ b/libstdc++-v3/testsuite/testsuite_allocator.cc
@@ -1,5 +1,7 @@
+// -*- C++ -*-
+// Testing allocator for the C++ library testsuite.
//
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -28,8 +30,11 @@
#include <testsuite_allocator.h>
-gnu_allocator_tracker::size_type gnu_allocator_tracker::allocationTotal_ = 0;
-gnu_allocator_tracker::size_type gnu_allocator_tracker::deallocationTotal_ = 0;
-int gnu_allocator_tracker::constructCount_ = 0;
-int gnu_allocator_tracker::destructCount_ = 0;
+namespace __gnu_cxx_test
+{
+ allocation_tracker::size_type allocation_tracker::allocationTotal_ = 0;
+ allocation_tracker::size_type allocation_tracker::deallocationTotal_ = 0;
+ int allocation_tracker::constructCount_ = 0;
+ int allocation_tracker::destructCount_ = 0;
+}; // namespace __cxx_test
diff --git a/libstdc++-v3/testsuite/testsuite_allocator.h b/libstdc++-v3/testsuite/testsuite_allocator.h
index 1387b5a..3c77260 100644
--- a/libstdc++-v3/testsuite/testsuite_allocator.h
+++ b/libstdc++-v3/testsuite/testsuite_allocator.h
@@ -1,6 +1,7 @@
+// -*- C++ -*-
// Testing allocator for the C++ library testsuite.
//
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -37,71 +38,66 @@
#include <cstddef>
#include <limits>
-class gnu_allocator_tracker
+namespace __gnu_cxx_test
{
- public:
- typedef std::size_t size_type;
-
- static void*
- allocate(size_type blocksize)
+ class allocation_tracker
{
- allocationTotal_ += blocksize;
- return ::operator new(blocksize);
- }
-
- static void
- construct()
- { constructCount_++; }
-
- static void
- destroy()
- { destructCount_++; }
-
- static void
- deallocate(void* p, size_type blocksize)
- {
- ::operator delete(p);
- deallocationTotal_ += blocksize;
- }
-
- static size_type
- allocationTotal()
- { return allocationTotal_; }
+ public:
+ typedef std::size_t size_type;
+
+ static void*
+ allocate(size_type blocksize)
+ {
+ allocationTotal_ += blocksize;
+ return ::operator new(blocksize);
+ }
+
+ static void
+ construct() { constructCount_++; }
- static size_type
- deallocationTotal()
- { return deallocationTotal_; }
+ static void
+ destroy() { destructCount_++; }
- static int
- constructCount()
- { return constructCount_; }
+ static void
+ deallocate(void* p, size_type blocksize)
+ {
+ ::operator delete(p);
+ deallocationTotal_ += blocksize;
+ }
+
+ static size_type
+ allocationTotal() { return allocationTotal_; }
+
+ static size_type
+ deallocationTotal() { return deallocationTotal_; }
+
+ static int
+ constructCount() { return constructCount_; }
- static int
- destructCount()
- { return destructCount_; }
+ static int
+ destructCount() { return destructCount_; }
- static void
- resetCounts()
- {
- allocationTotal_ = 0;
- deallocationTotal_ = 0;
- constructCount_ = 0;
+ static void
+ resetCounts()
+ {
+ allocationTotal_ = 0;
+ deallocationTotal_ = 0;
+ constructCount_ = 0;
destructCount_ = 0;
- }
+ }
private:
- static size_type allocationTotal_;
- static size_type deallocationTotal_;
- static int constructCount_;
- static int destructCount_;
-};
-
-// A simple basic allocator that just forwards to the
-// gnu_allocator_tracker to fulfill memory requests. This class is
-// templated on the target object type, but gnu_allocator_tracker
-// isn't.
-template<class T>
- class gnu_new_allocator
+ static size_type allocationTotal_;
+ static size_type deallocationTotal_;
+ static int constructCount_;
+ static int destructCount_;
+ };
+
+ // A simple basic allocator that just forwards to the
+ // allocation_tracker to fulfill memory requests. This class is
+ // templated on the target object type, but tracker isn't.
+ template<class T>
+ class tracker_alloc
{
public:
typedef T value_type;
@@ -112,7 +108,7 @@ template<class T>
typedef std::size_t size_type;
typedef std::ptrdiff_t difference_type;
- template<class U> struct rebind { typedef gnu_new_allocator<U> other; };
+ template<class U> struct rebind { typedef tracker_alloc<U> other; };
pointer
address(reference value) const
@@ -122,17 +118,17 @@ template<class T>
address(const_reference value) const
{ return &value; }
- gnu_new_allocator() throw()
+ tracker_alloc() throw()
{ }
- gnu_new_allocator(const gnu_new_allocator&) throw()
+ tracker_alloc(const tracker_alloc&) throw()
{ }
template<class U>
- gnu_new_allocator(const gnu_new_allocator<U>&) throw()
+ tracker_alloc(const tracker_alloc<U>&) throw()
{ }
- ~gnu_new_allocator() throw()
+ ~tracker_alloc() throw()
{ }
size_type
@@ -140,42 +136,40 @@ template<class T>
{ return std::numeric_limits<std::size_t>::max() / sizeof(T); }
pointer
- allocate(size_type num, const void* = 0)
+ allocate(size_type n, const void* = 0)
{
- return static_cast<pointer>(gnu_allocator_tracker::allocate(num *
- sizeof(T)));
+ return static_cast<pointer>(allocation_tracker::allocate(n * sizeof(T)));
}
void
construct(pointer p, const T& value)
{
new (p) T(value);
- gnu_allocator_tracker::construct();
+ allocation_tracker::construct();
}
void
destroy(pointer p)
{
p->~T();
- gnu_allocator_tracker::destroy();
+ allocation_tracker::destroy();
}
void
deallocate(pointer p, size_type num)
- { gnu_allocator_tracker::deallocate(p, num * sizeof(T)); }
+ { allocation_tracker::deallocate(p, num * sizeof(T)); }
};
-template<class T1, class T2>
- bool
- operator==(const gnu_new_allocator<T1>&,
- const gnu_new_allocator<T2>&) throw()
- { return true; }
-
-template<class T1, class T2>
- bool
- operator!=(const gnu_new_allocator<T1>&,
- const gnu_new_allocator<T2>&) throw()
- { return false; }
+ template<class T1, class T2>
+ bool
+ operator==(const tracker_alloc<T1>&, const tracker_alloc<T2>&) throw()
+ { return true; }
+
+ template<class T1, class T2>
+ bool
+ operator!=(const tracker_alloc<T1>&, const tracker_alloc<T2>&) throw()
+ { return false; }
+}; // namespace __gnu_cxx_test
#endif // _GLIBCPP_TESTSUITE_ALLOCATOR_H
diff --git a/libstdc++-v3/testsuite/testsuite_hooks.cc b/libstdc++-v3/testsuite/testsuite_hooks.cc
index 931dd37..4e714fa 100644
--- a/libstdc++-v3/testsuite/testsuite_hooks.cc
+++ b/libstdc++-v3/testsuite/testsuite_hooks.cc
@@ -1,6 +1,7 @@
-// Utility subroutines for the C++ library testsuite.
+// -*- C++ -*-
+// Utility subroutines for the C++ library testsuite.
//
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -33,14 +34,22 @@
#include <unistd.h>
#include <sys/time.h>
#include <sys/resource.h>
+#endif
+#include <list>
+#include <string>
+#include <stdexcept>
+#include <clocale>
+#include <locale>
-void
-__set_testsuite_memlimit(float __size)
+namespace __gnu_cxx_test
{
+#ifdef _GLIBCPP_MEM_LIMITS
+ void
+ set_memory_limits(float size)
+ {
struct rlimit r;
// Cater to the absence of rlim_t.
- __typeof__ (r.rlim_cur) limit
- = (__typeof__ (r.rlim_cur))(__size * 1048576);
+ __typeof__ (r.rlim_cur) limit = (__typeof__ (r.rlim_cur))(size * 1048576);
// Heap size, seems to be common.
#if _GLIBCPP_HAVE_MEMLIMIT_DATA
@@ -69,19 +78,90 @@ __set_testsuite_memlimit(float __size)
r.rlim_cur = limit;
setrlimit(RLIMIT_AS, &r);
#endif
-}
+ }
+
#else
-void
-__set_testsuite_memlimit(float) { }
-#endif /* _GLIBCPP_MEM_LIMITS */
+ void
+ set_memory_limits(float) { }
+#endif
+
+ // Useful exceptions.
+ class locale_data : public std::runtime_error
+ {
+ public:
+ explicit
+ locale_data(const std::string& __arg) : runtime_error(__arg) { }
+ };
+ class environment_variable: public std::runtime_error
+ {
+ public:
+ explicit
+ environment_variable(const std::string& __arg) : runtime_error(__arg) { }
+ };
-gnu_counting_struct::size_type gnu_counting_struct::count = 0;
+ class not_found : public std::runtime_error
+ {
+ public:
+ explicit
+ not_found(const std::string& __arg) : runtime_error(__arg) { }
+ };
-unsigned int gnu_copy_constructor::count_ = 0;
-unsigned int gnu_copy_constructor::throw_on_ = 0;
-unsigned int gnu_assignment_operator::count_ = 0;
-unsigned int gnu_assignment_operator::throw_on_ = 0;
-unsigned int gnu_destructor::count_ = 0;
-int gnu_copy_tracker::next_id_ = 0;
+ void
+ run_tests_wrapped_locale(const char* name, const func_callback& l)
+ {
+ using namespace std;
+ bool test = true;
+
+ // Set the global locale.
+ locale loc_name(name);
+ locale orig = locale::global(loc_name);
+
+ const char* res = setlocale(LC_ALL, name);
+ if (res != NULL)
+ {
+ string preLC_ALL = res;
+ for (func_callback::const_iterator i = l.begin(); i != l.end(); ++i)
+ (*i)();
+ string postLC_ALL= setlocale(LC_ALL, NULL);
+ VERIFY( preLC_ALL == postLC_ALL );
+ }
+ else
+ throw environment_variable(string("LC_ALL for") + string(name));
+ }
+
+ void
+ run_tests_wrapped_env(const char* name, const char* env,
+ const func_callback& l)
+ {
+ using namespace std;
+ bool test = true;
+
+#ifdef _GLIBCPP_HAVE_SETENV
+ // Set the global locale.
+ locale loc_name(name);
+ locale orig = locale::global(loc_name);
+
+ // Set environment variable env to value in name.
+ const char* oldENV = getenv(env);
+ if (!setenv(env, name, 1))
+ {
+ for (func_callback::const_iterator i = l.begin(); i != l.end(); ++i)
+ (*i)();
+ setenv(env, oldENV ? oldENV : "", 1);
+ }
+ else
+ throw environment_variable(string(env) + string(" to ") + string(name));
+#else
+ throw not_found("setenv");
+#endif
+ }
+ counter::size_type counter::count = 0;
+ unsigned int copy_constructor::count_ = 0;
+ unsigned int copy_constructor::throw_on_ = 0;
+ unsigned int assignment_operator::count_ = 0;
+ unsigned int assignment_operator::throw_on_ = 0;
+ unsigned int destructor::_M_count = 0;
+ int copy_tracker::next_id_ = 0;
+}; // namespace __cxx_test
diff --git a/libstdc++-v3/testsuite/testsuite_hooks.h b/libstdc++-v3/testsuite/testsuite_hooks.h
index 9f89b03..cd05443 100644
--- a/libstdc++-v3/testsuite/testsuite_hooks.h
+++ b/libstdc++-v3/testsuite/testsuite_hooks.h
@@ -1,6 +1,7 @@
-// Utility subroutines for the C++ library testsuite.
+// -*- C++ -*-
+// Utility subroutines for the C++ library testsuite.
//
-// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -34,25 +35,25 @@
// #define(able) assert() behavior for debugging/testing. It may be
// a suitable location for other furry woodland creatures as well.
//
-// 2) __set_testsuite_memlimit()
-// __set_testsuite_memlimit() uses setrlimit() to restrict dynamic memory
+// 2) set_memory_limits()
+// set_memory_limits() uses setrlimit() to restrict dynamic memory
// allocation. We provide a default memory limit if none is passed by the
-// calling application. The argument to __set_testsuite_memlimit() is the
+// calling application. The argument to set_memory_limits() is the
// limit in megabytes (a floating-point number). If _GLIBCPP_MEM_LIMITS is
// not #defined before including this header, then no limiting is attempted.
//
-// 3) gnu_counting_struct
+// 3) counter
// This is a POD with a static data member, gnu_counting_struct::count,
// which starts at zero, increments on instance construction, and decrements
// on instance destruction. "assert_count(n)" can be called to VERIFY()
// that the count equals N.
//
-// 4) gnu_copy_tracker, from Stephen M. Webb <stephen@bregmasoft.com>.
+// 4) copy_tracker, from Stephen M. Webb <stephen@bregmasoft.com>.
// A class with nontrivial ctor/dtor that provides the ability to track the
// number of copy ctors and dtors, and will throw on demand during copy.
//
-// 5) gnu_char, gnu_char_traits, abstract character classes and
-// char_traits specializations for testing instantiations.
+// 5) pod_char, pod_int, , abstract character classes and
+// char_traits specializations for testing instantiations.
#ifndef _GLIBCPP_TESTSUITE_HOOKS_H
#define _GLIBCPP_TESTSUITE_HOOKS_H
@@ -60,185 +61,206 @@
#include <bits/c++config.h>
#include <bits/functexcept.h>
#include <cstddef>
-
#ifdef DEBUG_ASSERT
# include <cassert>
# define VERIFY(fn) assert(fn)
#else
# define VERIFY(fn) test &= (fn)
#endif
+#include <list>
-// Defined in GLIBCPP_CONFIGURE_TESTSUITE.
-#ifndef _GLIBCPP_MEM_LIMITS
-// Don't do memory limits.
-extern void
-__set_testsuite_memlimit(float x = 0);
+namespace __gnu_cxx_test
+{
+ // All macros are defined in GLIBCPP_CONFIGURE_TESTSUITE and imported
+ // from c++config.h
+ // Set memory limits if possible, if not set to 0.
+#ifndef _GLIBCPP_MEM_LIMITS
+# define MEMLIMIT_MB 0
#else
-
-// Do memory limits.
-#ifndef MEMLIMIT_MB
-#define MEMLIMIT_MB 16.0
+# ifndef MEMLIMIT_MB
+# define MEMLIMIT_MB 16.0
+# endif
#endif
+ extern void
+ set_memory_limits(float __size = MEMLIMIT_MB);
-extern void
-__set_testsuite_memlimit(float __size = MEMLIMIT_MB);
-#endif
+ // Simple callback structure for variable numbers of tests (all with
+ // same signature). Assume all unit tests are of the signature
+ // void test01();
+ typedef void (*test_func) (void);
+ typedef std::list<test_func> func_callback;
+ // Run select unit tests after setting global locale.
+ void
+ run_tests_wrapped_locale(const char*, const func_callback&);
-struct gnu_counting_struct
-{
+ // Run select unit tests after setting environment variables.
+ void
+ run_tests_wrapped_env(const char*, const char*, const func_callback&);
+
+ // Test data types.
+ struct pod_char
+ {
+ unsigned char c;
+ };
+
+ struct pod_int
+ {
+ int i;
+ };
+
+ struct pod_unsigned_int
+ {
+ unsigned int i;
+ };
+
+ struct pod_long
+ {
+ unsigned long i;
+ };
+
+ struct state
+ {
+ unsigned long l;
+ unsigned long l2;
+ };
+
+ // Counting.
+ struct counter
+ {
// Specifically and glaringly-obviously marked 'signed' so that when
// COUNT mistakenly goes negative, we can track the patterns of
// deletions more easily.
typedef signed int size_type;
static size_type count;
- gnu_counting_struct() { ++count; }
- gnu_counting_struct (const gnu_counting_struct&) { ++count; }
- ~gnu_counting_struct() { --count; }
-};
-
-#define assert_count(n) VERIFY(gnu_counting_struct::count == n)
-
-// A (static) class for counting copy constructors and possibly throwing an
-// exception on a desired count.
-class gnu_copy_constructor
-{
-public:
- static unsigned int
- count()
- { return count_; }
-
- static void
- mark_call()
+ counter() { ++count; }
+ counter (const counter&) { ++count; }
+ ~counter() { --count; }
+ };
+
+#define assert_count(n) VERIFY(__gnu_cxx_test::counter::count == n)
+
+ // A (static) class for counting copy constructors and possibly throwing an
+ // exception on a desired count.
+ class copy_constructor
{
- count_++;
- if (count_ == throw_on_)
+ public:
+ static unsigned int
+ count() { return count_; }
+
+ static void
+ mark_call()
{
- __throw_exception_again "copy constructor exception";
+ count_++;
+ if (count_ == throw_on_)
+ __throw_exception_again "copy constructor exception";
}
- }
+
+ static void
+ reset()
+ {
+ count_ = 0;
+ throw_on_ = 0;
+ }
+
+ static void
+ throw_on(unsigned int count) { throw_on_ = count; }
- static void
- reset()
+ private:
+ static unsigned int count_;
+ static unsigned int throw_on_;
+ };
+
+ // A (static) class for counting assignment operator calls and
+ // possibly throwing an exception on a desired count.
+ class assignment_operator
{
- count_ = 0;
- throw_on_ = 0;
- }
-
- static void
- throw_on(unsigned int count)
- { throw_on_ = count; }
-
-private:
- static unsigned int count_;
- static unsigned int throw_on_;
-};
-
-// A (static) class for counting assignment operator calls and possibly
-// throwing an exception on a desired count.
-class gnu_assignment_operator
-{
-public:
- static unsigned int
- count()
- { return count_; }
+ public:
+ static unsigned int
+ count() { return count_; }
+
+ static void
+ mark_call()
+ {
+ count_++;
+ if (count_ == throw_on_)
+ __throw_exception_again "assignment operator exception";
+ }
- static void
- mark_call()
- {
- count_++;
- if (count_ == throw_on_)
+ static void
+ reset()
{
- __throw_exception_again "assignment operator exception";
+ count_ = 0;
+ throw_on_ = 0;
}
- }
- static void
- reset()
- {
- count_ = 0;
- throw_on_ = 0;
- }
+ static void
+ throw_on(unsigned int count) { throw_on_ = count; }
- static void
- throw_on(unsigned int count)
- { throw_on_ = count; }
+ private:
+ static unsigned int count_;
+ static unsigned int throw_on_;
+ };
+
+ // A (static) class for tracking calls to an object's destructor.
+ class destructor
+ {
+ public:
+ static unsigned int
+ count() { return _M_count; }
+
+ static void
+ mark_call() { _M_count++; }
-private:
- static unsigned int count_;
- static unsigned int throw_on_;
-};
+ static void
+ reset() { _M_count = 0; }
-// A (static) class for tracking calls to an object's destructor.
-class gnu_destructor
-{
-public:
- static unsigned int
- count()
- { return count_; }
-
- static void
- mark_call()
- { count_++; }
-
- static void
- reset()
- { count_ = 0; }
-
-private:
- static unsigned int count_;
-};
-
-// An class of objects that can be used for validating various behaviours and
-// guarantees of containers and algorithms defined in the standard library.
-class gnu_copy_tracker
-{
+ private:
+ static unsigned int _M_count;
+ };
+
+ // An class of objects that can be used for validating various
+ // behaviours and guarantees of containers and algorithms defined in
+ // the standard library.
+ class copy_tracker
+ {
public:
- // Creates a copy-tracking object with the given ID number.
- // If "throw_on_copy" is set, an exception will be thrown if
- // an attempt is made to copy this object.
- gnu_copy_tracker(int id = next_id_--, bool throw_on_copy = false)
- : id_(id)
- , throw_on_copy_(throw_on_copy)
- {
- }
+ // Creates a copy-tracking object with the given ID number. If
+ // "throw_on_copy" is set, an exception will be thrown if an
+ // attempt is made to copy this object.
+ copy_tracker(int id = next_id_--, bool throw_on_copy = false)
+ : id_(id) , throw_on_copy_(throw_on_copy) { }
// Copy-constructs the object, marking a call to the copy
// constructor and forcing an exception if indicated.
- gnu_copy_tracker(const gnu_copy_tracker& rhs)
+ copy_tracker(const copy_tracker& rhs)
: id_(rhs.id()), throw_on_copy_(rhs.throw_on_copy_)
{
int kkk = throw_on_copy_;
if (throw_on_copy_)
- {
- gnu_copy_constructor::throw_on(gnu_copy_constructor::count() + 1);
- }
- gnu_copy_constructor::mark_call();
+ copy_constructor::throw_on(copy_constructor::count() + 1);
+ copy_constructor::mark_call();
}
// Assigns the value of another object to this one, tracking the
// number of times this member function has been called and if the
// other object is supposed to throw an exception when it is
// copied, well, make it so.
- gnu_copy_tracker&
- operator=(const gnu_copy_tracker& rhs)
+ copy_tracker&
+ operator=(const copy_tracker& rhs)
{
id_ = rhs.id();
if (rhs.throw_on_copy_)
- {
- gnu_assignment_operator::throw_on(gnu_assignment_operator::count()
- + 1);
- }
- gnu_assignment_operator::mark_call();
+ assignment_operator::throw_on(assignment_operator::count() + 1);
+ assignment_operator::mark_call();
}
- ~gnu_copy_tracker()
- { gnu_destructor::mark_call(); }
+ ~copy_tracker()
+ { destructor::mark_call(); }
int
- id() const
- { return id_; }
+ id() const { return id_; }
private:
int id_;
@@ -248,59 +270,44 @@ class gnu_copy_tracker
static void
reset()
{
- gnu_copy_constructor::reset();
- gnu_assignment_operator::reset();
- gnu_destructor::reset();
+ copy_constructor::reset();
+ assignment_operator::reset();
+ destructor::reset();
}
// for backwards-compatibility
static int
copyCount()
- { return gnu_copy_constructor::count(); }
+ { return copy_constructor::count(); }
// for backwards-compatibility
static int
dtorCount()
- { return gnu_destructor::count(); }
+ { return destructor::count(); }
private:
static int next_id_;
-};
-
-inline bool
-operator==(const gnu_copy_tracker& lhs, const gnu_copy_tracker& rhs)
-{ return lhs.id() == rhs.id(); }
-
-struct gnu_char
-{
- unsigned long c;
-};
+ };
-struct gnu_int
-{
- unsigned long i;
-};
-
-struct gnu_state
-{
- unsigned long l;
- unsigned long l2;
-};
+ inline bool
+ operator==(const copy_tracker& lhs, const copy_tracker& rhs)
+ { return lhs.id() == rhs.id(); }
+}; // namespace __gnu_cxx_test
-// char_traits specialization
namespace std
{
template<class _CharT>
struct char_traits;
+ // char_traits specialization
template<>
- struct char_traits<gnu_char>
+ struct char_traits<__gnu_cxx_test::pod_char>
{
- typedef gnu_char char_type;
- typedef gnu_int int_type;
- typedef long pos_type;
- typedef unsigned long off_type;
- typedef gnu_state state_type;
+ typedef __gnu_cxx_test::pod_char char_type;
+ typedef __gnu_cxx_test::pod_int int_type;
+ typedef long pos_type;
+ typedef unsigned long off_type;
+ typedef __gnu_cxx_test::state state_type;
static void
assign(char_type& __c1, const char_type& __c2);