[libcxx] r273394 - Finish converting list _LIBCPP_DEBUG tests.
Eric Fiselier via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 22 01:47:44 PDT 2016
Author: ericwf
Date: Wed Jun 22 03:47:43 2016
New Revision: 273394
URL: http://llvm.org/viewvc/llvm-project?rev=273394&view=rev
Log:
Finish converting list _LIBCPP_DEBUG tests.
Added:
libcxx/trunk/test/libcxx/containers/sequences/list/list.cons/
libcxx/trunk/test/libcxx/containers/sequences/list/list.cons/db_copy.pass.cpp
libcxx/trunk/test/libcxx/containers/sequences/list/list.cons/db_move.pass.cpp
libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/
libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list.pass.cpp
libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter.pass.cpp
libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter_iter.pass.cpp
libcxx/trunk/test/libcxx/containers/sequences/list/list.special/db_swap_2.pass.cpp
Modified:
libcxx/trunk/test/libcxx/containers/sequences/list/list.special/db_swap_1.pass.cpp
libcxx/trunk/test/std/containers/sequences/list/list.cons/move.pass.cpp
libcxx/trunk/test/std/containers/sequences/list/list.ops/splice_pos_list.pass.cpp
libcxx/trunk/test/std/containers/sequences/list/list.ops/splice_pos_list_iter.pass.cpp
libcxx/trunk/test/std/containers/sequences/list/list.ops/splice_pos_list_iter_iter.pass.cpp
libcxx/trunk/test/std/containers/sequences/list/list.special/swap.pass.cpp
Added: libcxx/trunk/test/libcxx/containers/sequences/list/list.cons/db_copy.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/containers/sequences/list/list.cons/db_copy.pass.cpp?rev=273394&view=auto
==============================================================================
--- libcxx/trunk/test/libcxx/containers/sequences/list/list.cons/db_copy.pass.cpp (added)
+++ libcxx/trunk/test/libcxx/containers/sequences/list/list.cons/db_copy.pass.cpp Wed Jun 22 03:47:43 2016
@@ -0,0 +1,30 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++98, c++03
+
+// <list>
+
+// list(list&& c);
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <list>
+#include <cstdlib>
+#include <cassert>
+
+int main()
+{
+ std::list<int> l1 = {1, 2, 3};
+ std::list<int>::iterator i = l1.begin();
+ std::list<int> l2 = l1;
+ l2.erase(i);
+ assert(false);
+}
Added: libcxx/trunk/test/libcxx/containers/sequences/list/list.cons/db_move.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/containers/sequences/list/list.cons/db_move.pass.cpp?rev=273394&view=auto
==============================================================================
--- libcxx/trunk/test/libcxx/containers/sequences/list/list.cons/db_move.pass.cpp (added)
+++ libcxx/trunk/test/libcxx/containers/sequences/list/list.cons/db_move.pass.cpp Wed Jun 22 03:47:43 2016
@@ -0,0 +1,32 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++98, c++03
+
+// <list>
+
+// list(list&& c);
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(1))
+
+#include <list>
+#include <cstdlib>
+#include <cassert>
+#include "MoveOnly.h"
+#include "test_allocator.h"
+#include "min_allocator.h"
+
+int main()
+{
+ std::list<int> l1 = {1, 2, 3};
+ std::list<int>::iterator i = l1.begin();
+ std::list<int> l2 = std::move(l1);
+ assert(*l2.erase(i) == 2);
+}
Added: libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list.pass.cpp?rev=273394&view=auto
==============================================================================
--- libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list.pass.cpp (added)
+++ libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list.pass.cpp Wed Jun 22 03:47:43 2016
@@ -0,0 +1,29 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <list>
+
+// void splice(const_iterator position, list& x);
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <list>
+#include <cstdlib>
+#include <cassert>
+
+int main()
+{
+ {
+ std::list<int> v1(3);
+ std::list<int> v2(3);
+ v1.splice(v2.begin(), v2);
+ assert(false);
+ }
+}
Added: libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter.pass.cpp?rev=273394&view=auto
==============================================================================
--- libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter.pass.cpp (added)
+++ libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter.pass.cpp Wed Jun 22 03:47:43 2016
@@ -0,0 +1,29 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <list>
+
+// void splice(const_iterator position, list<T,Allocator>& x, iterator i);
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <list>
+#include <cstdlib>
+#include <cassert>
+
+int main()
+{
+ {
+ std::list<int> v1(3);
+ std::list<int> v2(3);
+ v1.splice(v1.begin(), v2, v1.begin());
+ assert(false);
+ }
+}
Added: libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter_iter.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter_iter.pass.cpp?rev=273394&view=auto
==============================================================================
--- libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter_iter.pass.cpp (added)
+++ libcxx/trunk/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter_iter.pass.cpp Wed Jun 22 03:47:43 2016
@@ -0,0 +1,29 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <list>
+
+// void splice(const_iterator position, list& x, iterator first, iterator last);
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <list>
+#include <cstdlib>
+#include <cassert>
+
+int main()
+{
+ {
+ std::list<int> v1(3);
+ std::list<int> v2(3);
+ v1.splice(v1.begin(), v2, v2.begin(), v1.end());
+ assert(false);
+ }
+}
Modified: libcxx/trunk/test/libcxx/containers/sequences/list/list.special/db_swap_1.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/containers/sequences/list/list.special/db_swap_1.pass.cpp?rev=273394&r1=273393&r2=273394&view=diff
==============================================================================
--- libcxx/trunk/test/libcxx/containers/sequences/list/list.special/db_swap_1.pass.cpp (original)
+++ libcxx/trunk/test/libcxx/containers/sequences/list/list.special/db_swap_1.pass.cpp Wed Jun 22 03:47:43 2016
@@ -12,48 +12,25 @@
// template <class T, class Alloc>
// void swap(list<T,Alloc>& x, list<T,Alloc>& y);
-#if _LIBCPP_DEBUG >= 1
+#define _LIBCPP_DEBUG 1
#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
#include <list>
+#include <cstdlib>
#include <cassert>
-#include <__debug>
-#include "min_allocator.h"
-
int main()
{
-#if _LIBCPP_DEBUG >= 1
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::list<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::list<int> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- std::list<int>::iterator i1 = c1.begin();
- std::list<int>::iterator i2 = c2.begin();
- swap(c1, c2);
- c1.erase(i2);
- c2.erase(i1);
- std::list<int>::iterator j = i1;
- c1.erase(i1);
- assert(false);
- }
-#if __cplusplus >= 201103L
- {
- int a1[] = {1, 3, 7, 9, 10};
- int a2[] = {0, 2, 4, 5, 6, 8, 11};
- std::list<int, min_allocator<int>> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
- std::list<int, min_allocator<int>> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
- std::list<int, min_allocator<int>>::iterator i1 = c1.begin();
- std::list<int, min_allocator<int>>::iterator i2 = c2.begin();
- swap(c1, c2);
- c1.erase(i2);
- c2.erase(i1);
- std::list<int, min_allocator<int>>::iterator j = i1;
- c1.erase(i1);
- assert(false);
- }
-#endif
-#endif
+ int a1[] = {1, 3, 7, 9, 10};
+ int a2[] = {0, 2, 4, 5, 6, 8, 11};
+ std::list<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0]));
+ std::list<int> c2(a2, a2+sizeof(a2)/sizeof(a2[0]));
+ std::list<int>::iterator i1 = c1.begin();
+ std::list<int>::iterator i2 = c2.begin();
+ swap(c1, c2);
+ c1.erase(i2);
+ c2.erase(i1);
+ std::list<int>::iterator j = i1;
+ c1.erase(i1); // called with iterator not refering to list.
+ assert(false);
}
Added: libcxx/trunk/test/libcxx/containers/sequences/list/list.special/db_swap_2.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/containers/sequences/list/list.special/db_swap_2.pass.cpp?rev=273394&view=auto
==============================================================================
--- libcxx/trunk/test/libcxx/containers/sequences/list/list.special/db_swap_2.pass.cpp (added)
+++ libcxx/trunk/test/libcxx/containers/sequences/list/list.special/db_swap_2.pass.cpp Wed Jun 22 03:47:43 2016
@@ -0,0 +1,36 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <list>
+
+// template <class T, class Alloc>
+// void swap(list<T,Alloc>& x, list<T,Alloc>& y);
+
+
+#define _LIBCPP_DEBUG 1
+#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
+
+#include <list>
+#include <cassert>
+#include "test_allocator.h"
+#include "min_allocator.h"
+
+int main()
+{
+ // allocators do not compare equal
+ {
+ int a1[] = {1, 3, 7, 9, 10};
+ int a2[] = {0, 2, 4, 5, 6, 8, 11};
+ typedef test_allocator<int> A;
+ std::list<int, A> c1(a1, a1+sizeof(a1)/sizeof(a1[0]), A(1));
+ std::list<int, A> c2(a2, a2+sizeof(a2)/sizeof(a2[0]), A(2));
+ swap(c1, c2);
+ assert(false);
+ }
+}
Modified: libcxx/trunk/test/std/containers/sequences/list/list.cons/move.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/list/list.cons/move.pass.cpp?rev=273394&r1=273393&r2=273394&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/sequences/list/list.cons/move.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/sequences/list/list.cons/move.pass.cpp Wed Jun 22 03:47:43 2016
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03
+
// <list>
// list(list&& c);
@@ -19,7 +21,6 @@
int main()
{
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
{
std::list<MoveOnly, test_allocator<MoveOnly> > l(test_allocator<MoveOnly>(5));
std::list<MoveOnly, test_allocator<MoveOnly> > lo(test_allocator<MoveOnly>(5));
@@ -46,7 +47,6 @@ int main()
assert(l.empty());
assert(l2.get_allocator() == lo.get_allocator());
}
-#if TEST_STD_VER >= 11
{
std::list<MoveOnly, min_allocator<MoveOnly> > l(min_allocator<MoveOnly>{});
std::list<MoveOnly, min_allocator<MoveOnly> > lo(min_allocator<MoveOnly>{});
@@ -60,15 +60,4 @@ int main()
assert(l.empty());
assert(l2.get_allocator() == lo.get_allocator());
}
-#endif
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int> l1 = {1, 2, 3};
- std::list<int>::iterator i = l1.begin();
- std::list<int> l2 = std::move(l1);
- assert(*l2.erase(i) == 2);
- assert(l2.size() == 2);
- }
-#endif
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
}
Modified: libcxx/trunk/test/std/containers/sequences/list/list.ops/splice_pos_list.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/list/list.ops/splice_pos_list.pass.cpp?rev=273394&r1=273393&r2=273394&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/sequences/list/list.ops/splice_pos_list.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/sequences/list/list.ops/splice_pos_list.pass.cpp Wed Jun 22 03:47:43 2016
@@ -11,13 +11,10 @@
// void splice(const_iterator position, list& x);
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
#include <list>
#include <cassert>
+#include "test_macros.h"
#include "min_allocator.h"
int main()
@@ -403,14 +400,6 @@ int main()
++i;
assert(*i == 6);
}
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int> v1(3);
- std::list<int> v2(3);
- v1.splice(v2.begin(), v2);
- assert(false);
- }
-#endif
#if TEST_STD_VER >= 11
{
std::list<int, min_allocator<int>> l1;
@@ -791,13 +780,5 @@ int main()
++i;
assert(*i == 6);
}
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int, min_allocator<int>> v1(3);
- std::list<int, min_allocator<int>> v2(3);
- v1.splice(v2.begin(), v2);
- assert(false);
- }
-#endif
#endif
}
Modified: libcxx/trunk/test/std/containers/sequences/list/list.ops/splice_pos_list_iter.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/list/list.ops/splice_pos_list_iter.pass.cpp?rev=273394&r1=273393&r2=273394&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/sequences/list/list.ops/splice_pos_list_iter.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/sequences/list/list.ops/splice_pos_list_iter.pass.cpp Wed Jun 22 03:47:43 2016
@@ -11,13 +11,10 @@
// void splice(const_iterator position, list<T,Allocator>& x, iterator i);
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
#include <list>
#include <cassert>
+#include "test_macros.h"
#include "min_allocator.h"
int main()
@@ -180,14 +177,6 @@ int main()
++i;
assert(*i == 2);
}
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int> v1(3);
- std::list<int> v2(3);
- v1.splice(v1.begin(), v2, v1.begin());
- assert(false);
- }
-#endif
#if TEST_STD_VER >= 11
{
std::list<int, min_allocator<int>> l1;
@@ -345,13 +334,5 @@ int main()
++i;
assert(*i == 2);
}
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int, min_allocator<int>> v1(3);
- std::list<int, min_allocator<int>> v2(3);
- v1.splice(v1.begin(), v2, v1.begin());
- assert(false);
- }
-#endif
#endif
}
Modified: libcxx/trunk/test/std/containers/sequences/list/list.ops/splice_pos_list_iter_iter.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/list/list.ops/splice_pos_list_iter_iter.pass.cpp?rev=273394&r1=273393&r2=273394&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/sequences/list/list.ops/splice_pos_list_iter_iter.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/sequences/list/list.ops/splice_pos_list_iter_iter.pass.cpp Wed Jun 22 03:47:43 2016
@@ -11,13 +11,10 @@
// void splice(const_iterator position, list& x, iterator first, iterator last);
-#if _LIBCPP_DEBUG >= 1
-#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0))
-#endif
-
#include <list>
#include <cassert>
+#include "test_macros.h"
#include "min_allocator.h"
int main()
@@ -120,14 +117,6 @@ int main()
i = l2.begin();
assert(*i == 4);
}
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int> v1(3);
- std::list<int> v2(3);
- v1.splice(v1.begin(), v2, v2.begin(), v1.end());
- assert(false);
- }
-#endif
#if TEST_STD_VER >= 11
{
std::list<int, min_allocator<int>> l1(a1, a1+3);
@@ -225,13 +214,5 @@ int main()
i = l2.begin();
assert(*i == 4);
}
-#if _LIBCPP_DEBUG >= 1
- {
- std::list<int, min_allocator<int>> v1(3);
- std::list<int, min_allocator<int>> v2(3);
- v1.splice(v1.begin(), v2, v2.begin(), v1.end());
- assert(false);
- }
-#endif
#endif
}
Modified: libcxx/trunk/test/std/containers/sequences/list/list.special/swap.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/sequences/list/list.special/swap.pass.cpp?rev=273394&r1=273393&r2=273394&view=diff
==============================================================================
--- libcxx/trunk/test/std/containers/sequences/list/list.special/swap.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/sequences/list/list.special/swap.pass.cpp Wed Jun 22 03:47:43 2016
@@ -59,21 +59,18 @@ int main()
assert(c2.empty());
assert(distance(c2.begin(), c2.end()) == 0);
}
-#ifndef _LIBCPP_DEBUG_LEVEL
-// This test known to result in undefined behavior detected by _LIBCPP_DEBUG_LEVEL >= 1
{
int a1[] = {1, 3, 7, 9, 10};
int a2[] = {0, 2, 4, 5, 6, 8, 11};
typedef test_allocator<int> A;
std::list<int, A> c1(a1, a1+sizeof(a1)/sizeof(a1[0]), A(1));
- std::list<int, A> c2(a2, a2+sizeof(a2)/sizeof(a2[0]), A(2));
+ std::list<int, A> c2(a2, a2+sizeof(a2)/sizeof(a2[0]), A(1));
swap(c1, c2);
assert((c1 == std::list<int, A>(a2, a2+sizeof(a2)/sizeof(a2[0]))));
assert(c1.get_allocator() == A(1));
assert((c2 == std::list<int, A>(a1, a1+sizeof(a1)/sizeof(a1[0]))));
- assert(c2.get_allocator() == A(2));
+ assert(c2.get_allocator() == A(1));
}
-#endif
{
int a1[] = {1, 3, 7, 9, 10};
int a2[] = {0, 2, 4, 5, 6, 8, 11};
@@ -127,8 +124,6 @@ int main()
assert(c2.empty());
assert(distance(c2.begin(), c2.end()) == 0);
}
-#ifndef _LIBCPP_DEBUG_LEVEL
-// This test known to result in undefined behavior detected by _LIBCPP_DEBUG_LEVEL >= 1
{
int a1[] = {1, 3, 7, 9, 10};
int a2[] = {0, 2, 4, 5, 6, 8, 11};
@@ -142,5 +137,4 @@ int main()
assert(c2.get_allocator() == A());
}
#endif
-#endif
}
More information about the cfe-commits
mailing list