ReactOS  0.4.15-dev-509-g96a357b
CAtlList.cpp File Reference
#include "atltest.h"
#include <atlbase.h>
#include <atlcoll.h>
Include dependency graph for CAtlList.cpp:

Go to the source code of this file.

Functions

 START_TEST (CAtlList)
 

Function Documentation

◆ START_TEST()

START_TEST ( CAtlList  )

Definition at line 19 of file CAtlList.cpp.

20 {
21  CAtlList<int> list1;
22 
23  ok_size_t(list1.GetCount(), 0);
24  list1.AddTail(56);
25  ok_size_t(list1.GetCount(), 1);
26  POSITION head = list1.AddHead(12);
27  ok_size_t(list1.GetCount(), 2);
28  POSITION tail = list1.AddTail(90);
29  ok_size_t(list1.GetCount(), 3);
30 
31  list1.InsertBefore(head, -123);
32  list1.InsertAfter(head, 34); // no longer head, but the POSITION should still be valid..
33 
34  list1.InsertBefore(tail, 78);
35  list1.InsertAfter(tail, -44);
36 
37  int expected[] = {-123, 12, 34, 56, 78, 90, -44 };
38  int expected_size = sizeof(expected) / sizeof(expected[0]);
39  int index = 0;
40  POSITION it = list1.GetHeadPosition();
41  while (it != NULL)
42  {
43  ok(index < expected_size, "Too many items, expected %d, got %d!\n", expected_size, (index+1));
44  int value = list1.GetNext(it);
45  if (index < expected_size)
46  {
47  ok(value == expected[index], "Wrong value, got %d, expected %d\n", value, expected[index]);
48  }
49  else
50  {
51  ok(0, "Extra value: %d\n", value);
52  }
53  index++;
54  }
55  ok(it == NULL, "it does still point to something!\n");
56 }
POSITION GetHeadPosition() const
Definition: atlcoll.h:549
struct outqueuenode * tail
Definition: adnsresfilter.c:66
struct outqueuenode * head
Definition: adnsresfilter.c:66
POSITION InsertBefore(_In_ POSITION pos, INARGTYPE element)
Definition: atlcoll.h:681
smooth NULL
Definition: ftsmooth.c:416
size_t GetCount() const
Definition: atlcoll.h:537
GLuint index
Definition: glext.h:6031
E & GetNext(_Inout_ POSITION &pos)
Definition: atlcoll.h:561
#define ok_size_t(expression, result)
Definition: atltest.h:115
POSITION InsertAfter(_In_ POSITION pos, INARGTYPE element)
Definition: atlcoll.h:703
POSITION AddTail(INARGTYPE element)
Definition: atlcoll.h:624
#define ok(value,...)
Definition: atltest.h:57
POSITION AddHead(INARGTYPE element)
Definition: atlcoll.h:607
BOOL expected
Definition: store.c:2063