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