1981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans#include "test/jemalloc_test.h"
2981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
3981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans/* Number of ring entries, in [2..26]. */
4981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans#define	NENTRIES 9
5981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans/* Split index, in [1..NENTRIES). */
6981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans#define	SPLIT_INDEX 5
7981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
8981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evanstypedef struct ring_s ring_t;
9981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
10981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evansstruct ring_s {
11981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	qr(ring_t) link;
12981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	char id;
13981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans};
14981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
15981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evansstatic void
16981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evansinit_entries(ring_t *entries)
17981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans{
18981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	unsigned i;
19981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
20981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 0; i < NENTRIES; i++) {
21981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		qr_new(&entries[i], link);
22981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		entries[i].id = 'a' + i;
23981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	}
24981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans}
25981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
26981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evansstatic void
27981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evanstest_independent_entries(ring_t *entries)
28981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans{
29981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	ring_t *t;
30981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	unsigned i, j;
31981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
32981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 0; i < NENTRIES; i++) {
33981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		j = 0;
34981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		qr_foreach(t, &entries[i], link) {
35981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			j++;
36981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		}
37981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		assert_u_eq(j, 1,
38981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		    "Iteration over single-element ring should visit precisely "
39981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		    "one element");
40981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	}
41981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 0; i < NENTRIES; i++) {
42981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		j = 0;
43981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		qr_reverse_foreach(t, &entries[i], link) {
44981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			j++;
45981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		}
46981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		assert_u_eq(j, 1,
47981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		    "Iteration over single-element ring should visit precisely "
48981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		    "one element");
49981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	}
50981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 0; i < NENTRIES; i++) {
51981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		t = qr_next(&entries[i], link);
52981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		assert_ptr_eq(t, &entries[i],
53981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		    "Next element in single-element ring should be same as "
54981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		    "current element");
55981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	}
56981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 0; i < NENTRIES; i++) {
57981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		t = qr_prev(&entries[i], link);
58981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		assert_ptr_eq(t, &entries[i],
59981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		    "Previous element in single-element ring should be same as "
60981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		    "current element");
61981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	}
62981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans}
63981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
64981bb499d92fee940d5be79cec3abdd3de3891b8Jason EvansTEST_BEGIN(test_qr_one)
65981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans{
66981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	ring_t entries[NENTRIES];
67981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
68981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	init_entries(entries);
69981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	test_independent_entries(entries);
70981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans}
71981bb499d92fee940d5be79cec3abdd3de3891b8Jason EvansTEST_END
72981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
73981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evansstatic void
74981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evanstest_entries_ring(ring_t *entries)
75981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans{
76981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	ring_t *t;
77981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	unsigned i, j;
78981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
79981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 0; i < NENTRIES; i++) {
80981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		j = 0;
81981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		qr_foreach(t, &entries[i], link) {
82981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			assert_c_eq(t->id, entries[(i+j) % NENTRIES].id,
83981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			    "Element id mismatch");
84981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			j++;
85981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		}
86981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	}
87981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 0; i < NENTRIES; i++) {
88981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		j = 0;
89981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		qr_reverse_foreach(t, &entries[i], link) {
90981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			assert_c_eq(t->id, entries[(NENTRIES+i-j-1) %
91981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			    NENTRIES].id, "Element id mismatch");
92981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			j++;
93981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		}
94981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	}
95981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 0; i < NENTRIES; i++) {
96981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		t = qr_next(&entries[i], link);
97981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		assert_c_eq(t->id, entries[(i+1) % NENTRIES].id,
98981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		    "Element id mismatch");
99981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	}
100981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 0; i < NENTRIES; i++) {
101981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		t = qr_prev(&entries[i], link);
102981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		assert_c_eq(t->id, entries[(NENTRIES+i-1) % NENTRIES].id,
103981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		    "Element id mismatch");
104981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	}
105981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans}
106981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
107981bb499d92fee940d5be79cec3abdd3de3891b8Jason EvansTEST_BEGIN(test_qr_after_insert)
108981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans{
109981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	ring_t entries[NENTRIES];
110981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	unsigned i;
111981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
112981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	init_entries(entries);
113981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 1; i < NENTRIES; i++)
114981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		qr_after_insert(&entries[i - 1], &entries[i], link);
115981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	test_entries_ring(entries);
116981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans}
117981bb499d92fee940d5be79cec3abdd3de3891b8Jason EvansTEST_END
118981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
119981bb499d92fee940d5be79cec3abdd3de3891b8Jason EvansTEST_BEGIN(test_qr_remove)
120981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans{
121981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	ring_t entries[NENTRIES];
122981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	ring_t *t;
123981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	unsigned i, j;
124981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
125981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	init_entries(entries);
126981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 1; i < NENTRIES; i++)
127981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		qr_after_insert(&entries[i - 1], &entries[i], link);
128981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
129981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 0; i < NENTRIES; i++) {
130981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		j = 0;
131981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		qr_foreach(t, &entries[i], link) {
132981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			assert_c_eq(t->id, entries[i+j].id,
133981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			    "Element id mismatch");
134981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			j++;
135981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		}
136981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		j = 0;
137981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		qr_reverse_foreach(t, &entries[i], link) {
138981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			assert_c_eq(t->id, entries[NENTRIES - 1 - j].id,
139981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			"Element id mismatch");
140981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			j++;
141981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		}
142981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		qr_remove(&entries[i], link);
143981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	}
144981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	test_independent_entries(entries);
145981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans}
146981bb499d92fee940d5be79cec3abdd3de3891b8Jason EvansTEST_END
147981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
148981bb499d92fee940d5be79cec3abdd3de3891b8Jason EvansTEST_BEGIN(test_qr_before_insert)
149981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans{
150981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	ring_t entries[NENTRIES];
151981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	ring_t *t;
152981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	unsigned i, j;
153981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
154981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	init_entries(entries);
155981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 1; i < NENTRIES; i++)
156981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		qr_before_insert(&entries[i - 1], &entries[i], link);
157981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 0; i < NENTRIES; i++) {
158981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		j = 0;
159981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		qr_foreach(t, &entries[i], link) {
160981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			assert_c_eq(t->id, entries[(NENTRIES+i-j) %
161981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			    NENTRIES].id, "Element id mismatch");
162981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			j++;
163981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		}
164981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	}
165981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 0; i < NENTRIES; i++) {
166981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		j = 0;
167981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		qr_reverse_foreach(t, &entries[i], link) {
168981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			assert_c_eq(t->id, entries[(i+j+1) % NENTRIES].id,
169981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			    "Element id mismatch");
170981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			j++;
171981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		}
172981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	}
173981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 0; i < NENTRIES; i++) {
174981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		t = qr_next(&entries[i], link);
175981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		assert_c_eq(t->id, entries[(NENTRIES+i-1) % NENTRIES].id,
176981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		    "Element id mismatch");
177981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	}
178981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 0; i < NENTRIES; i++) {
179981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		t = qr_prev(&entries[i], link);
180981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		assert_c_eq(t->id, entries[(i+1) % NENTRIES].id,
181981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		    "Element id mismatch");
182981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	}
183981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans}
184981bb499d92fee940d5be79cec3abdd3de3891b8Jason EvansTEST_END
185981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
186981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evansstatic void
187981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evanstest_split_entries(ring_t *entries)
188981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans{
189981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	ring_t *t;
190981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	unsigned i, j;
191981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
192981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 0; i < NENTRIES; i++) {
193981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		j = 0;
194981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		qr_foreach(t, &entries[i], link) {
195981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			if (i < SPLIT_INDEX) {
196981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans				assert_c_eq(t->id,
197981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans				    entries[(i+j) % SPLIT_INDEX].id,
198981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans				    "Element id mismatch");
199981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			} else {
200981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans				assert_c_eq(t->id, entries[(i+j-SPLIT_INDEX) %
201981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans				    (NENTRIES-SPLIT_INDEX) + SPLIT_INDEX].id,
202981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans				    "Element id mismatch");
203981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			}
204981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans			j++;
205981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		}
206981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	}
207981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans}
208981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
209981bb499d92fee940d5be79cec3abdd3de3891b8Jason EvansTEST_BEGIN(test_qr_meld_split)
210981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans{
211981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	ring_t entries[NENTRIES];
212981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	unsigned i;
213981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
214981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	init_entries(entries);
215981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	for (i = 1; i < NENTRIES; i++)
216981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans		qr_after_insert(&entries[i - 1], &entries[i], link);
217981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
218981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	qr_split(&entries[0], &entries[SPLIT_INDEX], link);
219981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	test_split_entries(entries);
220981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
221981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	qr_meld(&entries[0], &entries[SPLIT_INDEX], link);
222981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	test_entries_ring(entries);
223981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
224981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	qr_meld(&entries[0], &entries[SPLIT_INDEX], link);
225981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	test_split_entries(entries);
226981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
227981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	qr_split(&entries[0], &entries[SPLIT_INDEX], link);
228981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	test_entries_ring(entries);
229981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
230981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	qr_split(&entries[0], &entries[0], link);
231981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	test_entries_ring(entries);
232981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
233981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	qr_meld(&entries[0], &entries[0], link);
234981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	test_entries_ring(entries);
235981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans}
236981bb499d92fee940d5be79cec3abdd3de3891b8Jason EvansTEST_END
237981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
238981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evansint
239981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evansmain(void)
240981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans{
241981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans
242981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	return (test(
243981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	    test_qr_one,
244981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	    test_qr_after_insert,
245981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	    test_qr_remove,
246981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	    test_qr_before_insert,
247981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans	    test_qr_meld_split));
248981bb499d92fee940d5be79cec3abdd3de3891b8Jason Evans}
249