diff options
Diffstat (limited to 'libcxx/test/containers/sequences/deque/deque.modifiers/push_back.pass.cpp')
-rw-r--r-- | libcxx/test/containers/sequences/deque/deque.modifiers/push_back.pass.cpp | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/push_back.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/push_back.pass.cpp index 056ee5568a1..cb7155a59f4 100644 --- a/libcxx/test/containers/sequences/deque/deque.modifiers/push_back.pass.cpp +++ b/libcxx/test/containers/sequences/deque/deque.modifiers/push_back.pass.cpp @@ -16,7 +16,10 @@ #include <deque> #include <cassert> -std::deque<int> +#include "../../../min_allocator.h" + +template <class C> +C make(int size, int start = 0 ) { const int b = 4096 / sizeof(int); @@ -27,7 +30,7 @@ make(int size, int start = 0 ) init *= b; --init; } - std::deque<int> c(init, 0); + C c(init, 0); for (int i = 0; i < init-start; ++i) c.pop_back(); for (int i = 0; i < size; ++i) @@ -37,14 +40,15 @@ make(int size, int start = 0 ) return c; }; +template <class C> void test(int size) { int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2046, 2047, 2048, 2049}; const int N = sizeof(rng)/sizeof(rng[0]); for (int j = 0; j < N; ++j) { - std::deque<int> c = make(size, rng[j]); - std::deque<int>::const_iterator it = c.begin(); + C c = make<C>(size, rng[j]); + typename C::const_iterator it = c.begin(); for (int i = 0; i < size; ++i, ++it) assert(*it == i); } @@ -52,8 +56,18 @@ void test(int size) int main() { + { + int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2046, 2047, 2048, 2049, 4094, 4095, 4096}; + const int N = sizeof(rng)/sizeof(rng[0]); + for (int j = 0; j < N; ++j) + test<std::deque<int> >(rng[j]); + } +#if __cplusplus >= 201103L + { int rng[] = {0, 1, 2, 3, 1023, 1024, 1025, 2046, 2047, 2048, 2049, 4094, 4095, 4096}; const int N = sizeof(rng)/sizeof(rng[0]); for (int j = 0; j < N; ++j) - test(rng[j]); + test<std::deque<int, min_allocator<int>> >(rng[j]); + } +#endif } |