#include "llvm/ADT/simple_ilist.h"
#include "llvm/ADT/STLExtras.h"
#include "gtest/gtest.h"
usingnamespacellvm;
namespace {
struct Node : ilist_node<Node> { … };
bool operator<(const Node &L, const Node &R) { … }
bool makeFalse(const Node &, const Node &) { … }
struct deleteNode : std::default_delete<Node> { … };
void doNothing(Node *) { … }
TEST(SimpleIListTest, DefaultConstructor) { … }
TEST(SimpleIListTest, pushPopFront) { … }
TEST(SimpleIListTest, pushPopBack) { … }
TEST(SimpleIListTest, swap) { … }
TEST(SimpleIListTest, insertEraseAtEnd) { … }
TEST(SimpleIListTest, insertAtBegin) { … }
TEST(SimpleIListTest, remove) { … }
TEST(SimpleIListTest, removeAndDispose) { … }
TEST(SimpleIListTest, removeAndDisposeNullDeleter) { … }
TEST(SimpleIListTest, erase) { … }
TEST(SimpleIListTest, reverse_iterator) { … }
TEST(SimpleIListTest, eraseAndDispose) { … }
TEST(SimpleIListTest, eraseAndDisposeNullDeleter) { … }
TEST(SimpleIListTest, eraseRange) { … }
TEST(SimpleIListTest, eraseAndDisposeRange) { … }
TEST(SimpleIListTest, eraseAndDisposeRangeNullDeleter) { … }
TEST(SimpleIListTest, clear) { … }
TEST(SimpleIListTest, clearAndDispose) { … }
TEST(SimpleIListTest, clearAndDisposeNullDeleter) { … }
TEST(SimpleIListTest, spliceList) { … }
TEST(SimpleIListTest, spliceSingle) { … }
TEST(SimpleIListTest, spliceRange) { … }
TEST(SimpleIListTest, merge) { … }
TEST(SimpleIListTest, mergeIsStable) { … }
TEST(SimpleIListTest, mergeEmpty) { … }
TEST(SimpleIListTest, mergeBothEmpty) { … }
TEST(SimpleIListTest, sort) { … }
TEST(SimpleIListTest, sortIsStable) { … }
TEST(SimpleIListTest, sortEmpty) { … }
struct Tag1 { … };
struct Tag2 { … };
struct DoubleNode : ilist_node<DoubleNode, ilist_tag<Tag1>>,
ilist_node<DoubleNode, ilist_tag<Tag2>> { … };
TaggedList1Type;
TaggedList2Type;
TEST(SimpleIListTest, TaggedLists) { … }
}