Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Unified Diff: gcc/libstdc++-v3/testsuite/23_containers/vector/cons/4.cc

Issue 3050029: [gcc] GCC 4.5.0=>4.5.1 (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/nacl-toolchain.git
Patch Set: Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gcc/libstdc++-v3/testsuite/23_containers/vector/cons/4.cc
diff --git a/gcc/libstdc++-v3/testsuite/23_containers/vector/cons/4.cc b/gcc/libstdc++-v3/testsuite/23_containers/vector/cons/4.cc
deleted file mode 100644
index 0c3dcf3b4692569181937f4cc0c25db9ebeba976..0000000000000000000000000000000000000000
--- a/gcc/libstdc++-v3/testsuite/23_containers/vector/cons/4.cc
+++ /dev/null
@@ -1,583 +0,0 @@
-// 1999-06-29 bkoz
-
-// Copyright (C) 1999-2001, 2002, 2003, 2009 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
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3. If not see
-// <http://www.gnu.org/licenses/>.
-
-// 23.2.4.1 vector constructors, copy, and assignment
-
-#include <vector>
-#include <string>
-#include <testsuite_allocator.h>
-#include <testsuite_hooks.h>
-
-using __gnu_test::copy_tracker;
-using __gnu_test::tracker_allocator_counter;
-using __gnu_test::tracker_allocator;
-using __gnu_test::copy_constructor;
-using __gnu_test::assignment_operator;
-
-// @fn test_default_ctor_exception_gurantee This test verifies that if
-// one of the vector's contained objects throws an exception from its
-// constructor while the vector is being constructed and filled with
-// default values, all memory is returned to the allocator whence it
-// came.
-void
-test_default_ctor_exception_gurantee()
-{
- // setup
- bool test __attribute__((unused)) = true;
- typedef copy_tracker T;
- typedef std::vector<T, tracker_allocator<T> > X;
-
- copy_tracker::reset();
- copy_constructor::throw_on(3);
- tracker_allocator_counter::reset();
-
- // run test
- try
- {
- X a(7);
- VERIFY(false);
- }
- catch (...)
- {
- }
-
- // assert postconditions
- VERIFY( tracker_allocator_counter::get_allocation_count() == tracker_allocator_counter::get_deallocation_count() );
-
- // teardown
-}
-
-// @fn test_copy_ctor_exception_gurantee This test verifies that if
-// one of the vector's contained objects throws an exception from its
-// constructor while the vector is being copy constructed, all memory
-// is returned to the allocator whence it came.
-void
-test_copy_ctor_exception_gurantee()
-{
- // setup
- bool test __attribute__((unused)) = true;
- typedef copy_tracker T;
- typedef std::vector<T, tracker_allocator<T> > X;
-
- tracker_allocator_counter::reset();
- {
- X a(7);
- copy_tracker::reset();
- copy_constructor::throw_on(3);
-
- // run test
- try
- {
- X u(a);
- VERIFY(false);
- }
- catch (...)
- {
- }
- }
-
- // assert postconditions
- VERIFY(tracker_allocator_counter::get_allocation_count() == tracker_allocator_counter::get_deallocation_count());
-
- // teardown
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-}
-
-// operator=()
-//
-// case 1: lhs.size() > rhs.size()
-// case 2: lhs.size() < rhs.size() < lhs.capacity()
-// case 3: lhs.capacity() < rhs.size()
-//
-void
-test_assignment_operator_1()
-{
- // setup
- bool test __attribute__((unused)) = true;
- typedef copy_tracker T;
- typedef std::vector<T, tracker_allocator<T> > X;
-
- X r(9);
- X a(r.size() - 2);
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-
- // preconditions
- VERIFY(r.size() > a.size());
-
- // run test
- r = a;
-
- // assert postconditions
- VERIFY(r == a);
- VERIFY(tracker_allocator_counter::get_allocation_count() == 0);
-
- // teardown
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-}
-
-void
-test_assignment_operator_2()
-{
- // setup
- bool test __attribute__((unused)) = true;
- typedef copy_tracker T;
- typedef std::vector<T, tracker_allocator<T> > X;
-
- X r(1);
- r.reserve(17);
- X a(r.size() + 7);
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-
- // preconditions
- VERIFY(r.size() < a.size());
- VERIFY(a.size() < r.capacity());
-
- // run test
- r = a;
-
- // assert postconditions
- VERIFY(r == a);
- VERIFY(tracker_allocator_counter::get_allocation_count() == 0);
-
- // teardown
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-}
-
-void
-test_assignment_operator_3()
-{
- // setup
- bool test __attribute__((unused)) = true;
- typedef copy_tracker T;
- typedef std::vector<T, tracker_allocator<T> > X;
-
- tracker_allocator_counter::reset();
- {
- X r(1);
- X a(r.capacity() + 7);
- copy_tracker::reset();
-
- // preconditions
- VERIFY(r.capacity() < a.size());
-
- // run test
- r = a;
-
- // assert postconditions
- VERIFY(r == a);
- }
- VERIFY(tracker_allocator_counter::get_allocation_count() == tracker_allocator_counter::get_deallocation_count());
-
- // teardown
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-}
-
-void
-test_assignment_operator_3_exception_guarantee()
-{
- // setup
- bool test __attribute__((unused)) = true;
- typedef copy_tracker T;
- typedef std::vector<T, tracker_allocator<T> > X;
-
- tracker_allocator_counter::reset();
- {
- X r(1);
- X a(r.capacity() + 7);
- copy_tracker::reset();
- copy_constructor::throw_on(3);
-
- // preconditions
- VERIFY(r.capacity() < a.size());
-
- // run test
- try
- {
- r = a;
- VERIFY(false);
- }
- catch (...)
- {
- }
- }
-
- // assert postconditions
- VERIFY(tracker_allocator_counter::get_allocation_count() == tracker_allocator_counter::get_deallocation_count());
-
- // teardown
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-}
-
-// fill assign()
-//
-// case 1: [23.2.4.1 (3)] n <= size()
-// case 2: [23.2.4.1 (3)] size() < n <= capacity()
-// case 3: [23.2.4.1 (3)] n > capacity()
-// case 4: [23.2.4.1 (3)] n > capacity(), exception guarantees
-// case 5: [23.1.1 (9)] fill assign disguised as a range assign
-//
-void
-test_fill_assign_1()
-{
- // setup
- bool test __attribute__((unused)) = true;
- typedef copy_tracker T;
- typedef std::vector<T, tracker_allocator<T> > X;
-
- X a(7);
- X::size_type old_size = a.size();
- X::size_type new_size = old_size - 2;
- const T t;
-
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-
- // run test
- a.assign(new_size, t);
-
- // assert postconditions
- VERIFY(a.size() == new_size);
- VERIFY(tracker_allocator_counter::get_allocation_count() == 0);
-
- // teardown
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-}
-
-void
-test_fill_assign_2()
-{
- // setup
- bool test __attribute__((unused)) = true;
- typedef copy_tracker T;
- typedef std::vector<T, tracker_allocator<T> > X;
-
- X a(7);
- a.reserve(11);
- X::size_type old_size = a.size();
- X::size_type old_capacity = a.capacity();
- X::size_type new_size = old_size + 2;
- const T t;
-
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-
- // assert preconditions
- VERIFY(old_size < new_size);
- VERIFY(new_size <= old_capacity);
-
- // run test
- a.assign(new_size, t);
-
- // assert postconditions
- VERIFY(a.size() == new_size);
- VERIFY(tracker_allocator_counter::get_allocation_count() == 0);
-
- // teardown
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-}
-
-void
-test_fill_assign_3()
-{
- // setup
- bool test __attribute__((unused)) = true;
- typedef copy_tracker T;
- typedef std::vector<T, tracker_allocator<T> > X;
-
- tracker_allocator_counter::reset();
- {
- X a(7);
- X::size_type old_capacity = a.capacity();
- X::size_type new_size = old_capacity + 4;
- const T t;
-
- copy_tracker::reset();
-
- // assert preconditions
- VERIFY(new_size > old_capacity);
-
- // run test
- a.assign(new_size, t);
-
- // assert postconditions
- VERIFY(a.size() == new_size);
- }
-
- VERIFY(tracker_allocator_counter::get_allocation_count() > 0);
- VERIFY(tracker_allocator_counter::get_allocation_count() == tracker_allocator_counter::get_deallocation_count());
-
- // teardown
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-}
-
-void
-test_fill_assign_3_exception_guarantee()
-{
- // setup
- bool test __attribute__((unused)) = true;
- typedef copy_tracker T;
- typedef std::vector<T, tracker_allocator<T> > X;
-
- tracker_allocator_counter::reset();
- {
- X a(7);
- X::size_type old_size = a.size();
- X::size_type old_capacity = a.capacity();
- X::size_type new_size = old_capacity + 4;
- const T t;
-
- copy_tracker::reset();
- copy_constructor::throw_on(3);
-
- // assert preconditions
- VERIFY(new_size > old_capacity);
-
- // run test
- try
- {
- a.assign(new_size, t);
- VERIFY(false);
- }
- catch (...)
- {
- }
-
- // assert postconditions
- VERIFY(a.size() == old_size);
- VERIFY(a.capacity() == old_capacity);
- }
-
- VERIFY(tracker_allocator_counter::get_allocation_count() > 0);
- VERIFY(tracker_allocator_counter::get_allocation_count() == tracker_allocator_counter::get_deallocation_count());
-
- // teardown
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-}
-
-void
-test_fill_assign_4()
-{
- // setup
- bool test __attribute__((unused)) = true;
- typedef copy_tracker T;
- typedef std::vector<T, tracker_allocator<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;
-
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-
- // run test
- a.assign(new_size, new_value);
-
- // assert postconditions
- VERIFY(a.size() == new_size);
- VERIFY(tracker_allocator_counter::get_allocation_count() == 0);
-
- // teardown
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-}
-
-// range assign()
-//
-// case 1: [23.2.4.1 (2)] input iterator
-// case 2: [23.2.4.1 (2)] forward iterator, distance(first, last) <= size()
-// case 3: [23.2.4.1 (2)]
-// forward iterator, size() < distance(first, last) <= capacity()
-// case 4: [23.2.4.1 (2)] forward iterator, distance(first, last) > capacity()
-// case 5: [23.2.4.1 (2)]
-// forward iterator, distance(first, last) > capacity(),
-// exception guarantees
-void
-test_range_assign_1()
-{
- // @TODO
-}
-
-void
-test_range_assign_2()
-{
- // setup
- bool test __attribute__((unused)) = true;
- typedef copy_tracker T;
- typedef std::vector<T, tracker_allocator<T> > X;
-
- X a(7);
- X b(3);
-
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-
- // assert preconditions
- VERIFY(b.size() < a.capacity());
-
- // run test
- a.assign(b.begin(), b.end());
-
- // assert postconditions
- VERIFY(a.size() == b.size());
- VERIFY(a == b);
- VERIFY(tracker_allocator_counter::get_allocation_count() == 0);
-
- // teardown
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-}
-
-void
-test_range_assign_3()
-{
- // setup
- bool test __attribute__((unused)) = true;
- typedef copy_tracker T;
- typedef std::vector<T, tracker_allocator<T> > X;
-
- X a(7);
- a.reserve(a.size() + 7);
- X b(a.size() + 3);
-
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-
- // assert preconditions
- VERIFY(a.size() < b.size());
- VERIFY(b.size() < a.capacity());
-
- // run test
- a.assign(b.begin(), b.end());
-
- // assert postconditions
- VERIFY(a.size() == b.size());
- VERIFY(a == b);
- VERIFY(tracker_allocator_counter::get_allocation_count() == 0);
-
- // teardown
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-}
-
-void
-test_range_assign_4()
-{
- // setup
- bool test __attribute__((unused)) = true;
- typedef copy_tracker T;
- typedef std::vector<T, tracker_allocator<T> > X;
-
- tracker_allocator_counter::reset();
- {
- X a(7);
- X b(a.capacity() + 7);
-
- copy_tracker::reset();
-
- // assert preconditions
- VERIFY(b.size() > a.capacity());
-
- // run test
- a.assign(b.begin(), b.end());
-
- // assert postconditions
- VERIFY(a.size() == b.size());
- VERIFY(a == b);
- }
- VERIFY(tracker_allocator_counter::get_allocation_count() > 0);
- VERIFY(tracker_allocator_counter::get_allocation_count() == tracker_allocator_counter::get_deallocation_count());
-
- // teardown
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-}
-
-void
-test_range_assign_4_exception_guarantee()
-{
- // setup
- bool test __attribute__((unused)) = true;
- typedef copy_tracker T;
- typedef std::vector<T, tracker_allocator<T> > X;
-
- tracker_allocator_counter::reset();
- {
- X a(7);
- X b(a.capacity() + 7);
-
- copy_tracker::reset();
- copy_constructor::throw_on(3);
-
- // assert preconditions
- VERIFY(b.size() > a.capacity());
-
- // run test
- try
- {
- a.assign(b.begin(), b.end());
- VERIFY(false);
- }
- catch (...)
- {
- }
- }
-
- // assert postconditions
- VERIFY(tracker_allocator_counter::get_allocation_count() > 0);
- VERIFY(tracker_allocator_counter::get_allocation_count() == tracker_allocator_counter::get_deallocation_count());
-
- // teardown
- copy_tracker::reset();
- tracker_allocator_counter::reset();
-}
-
-
-int main()
-{
- test_default_ctor_exception_gurantee();
- test_copy_ctor_exception_gurantee();
- test_assignment_operator_1();
- test_assignment_operator_2();
- test_assignment_operator_3();
- test_assignment_operator_3_exception_guarantee();
- test_fill_assign_1();
- test_fill_assign_2();
- test_fill_assign_3();
- test_fill_assign_3_exception_guarantee();
- test_fill_assign_4();
- test_range_assign_1();
- test_range_assign_2();
- test_range_assign_3();
- test_range_assign_4();
- test_range_assign_4_exception_guarantee();
-
- return 0;
-}

Powered by Google App Engine
This is Rietveld 408576698