Home | History | Annotate | Download | only in tests

Lines Matching refs:OSet

85 void example1singleset(OSet* oset, char *descr)
92 // Try some operations on an empty OSet to ensure they don't screw up.
93 vg_assert( ! VG_(OSetGen_Contains)(oset, &v) );
94 vg_assert( ! VG_(OSetGen_Lookup)(oset, &v) );
95 vg_assert( ! VG_(OSetGen_Remove)(oset, &v) );
96 vg_assert( ! VG_(OSetGen_Next)(oset) );
97 vg_assert( 0 == VG_(OSetGen_Size)(oset) );
102 vs[i] = VG_(OSetGen_AllocNode)(oset, sizeof(Word));
116 VG_(OSetGen_Insert)(oset, vs[i]);
120 vg_assert( NN == VG_(OSetGen_Size)(oset) );
124 assert( VG_(OSetGen_Contains)(oset, vs[i]) );
130 assert( ! VG_(OSetGen_Contains)(oset, &v) );
133 assert( ! VG_(OSetGen_Contains)(oset, &v) );
136 assert( ! VG_(OSetGen_Contains)(oset, &v) );
141 assert( vs[i] == VG_(OSetGen_Lookup)(oset, vs[i]) );
144 // Check that we can iterate over the OSet elements in sorted order, and
149 VG_(OSetGen_ResetIter)(oset);
150 while ( (pv = VG_(OSetGen_Next)(oset)) ) {
157 vg_assert( ! VG_(OSetGen_Next)(oset) );
158 vg_assert( ! VG_(OSetGen_Next)(oset) );
163 assert( pv = VG_(OSetGen_Remove)(oset, vs[i]) );
168 vg_assert( NN/2 == VG_(OSetGen_Size)(oset) );
172 assert( pv = VG_(OSetGen_LookupWithCmp)(oset, vs[i], NULL) );
178 assert( ! VG_(OSetGen_Contains)(oset, vs[i]) );
184 assert( pv = VG_(OSetGen_Remove)(oset, vs[i]) );
188 // Try some more operations on the empty OSet to ensure they don't screw up.
189 vg_assert( ! VG_(OSetGen_Contains)(oset, &v) );
190 vg_assert( ! VG_(OSetGen_Lookup)(oset, &v) );
191 vg_assert( ! VG_(OSetGen_Remove)(oset, &v) );
192 vg_assert( ! VG_(OSetGen_Next)(oset) );
193 vg_assert( 0 == VG_(OSetGen_Size)(oset) );
196 VG_(OSetGen_FreeNode)(oset, vs[0]);
197 VG_(OSetGen_FreeNode)(oset, vs[1]);
198 VG_(OSetGen_FreeNode)(oset, vs[2]);
203 VG_(OSetGen_Insert)(oset, vs[i]);
207 OSet_Print(oset, descr, wordToStr);
213 OSet *oset, *oset_empty_clone;
215 // Create a static OSet of Ints. This one uses fast (built-in)
218 // First a single oset, no pool allocator.
219 oset = VG_(OSetGen_Create)(0,
222 example1singleset(oset, "single oset, no pool allocator");
224 // Destroy the OSet
225 VG_(OSetGen_Destroy)(oset);
228 oset = VG_(OSetGen_Create_With_Pool)(0,
233 example1singleset(oset, "single oset, pool allocator");
235 // Destroy the OSet
236 VG_(OSetGen_Destroy)(oset);
240 oset = VG_(OSetGen_Create_With_Pool)
245 oset_empty_clone = VG_(OSetGen_EmptyClone) (oset);
246 example1singleset(oset, "oset, shared pool");
247 example1singleset(oset_empty_clone, "cloned oset, shared pool");
248 // Destroy both OSet
251 VG_(OSetGen_Destroy)(oset);
261 // Create a static OSet of Ints. This one uses fast (built-in)
263 OSet* oset = VG_(OSetWord_Create)(allocate_node, "oset_test.2", free_node);
265 // Try some operations on an empty OSet to ensure they don't screw up.
266 vg_assert( ! VG_(OSetWord_Contains)(oset, v) );
267 vg_assert( ! VG_(OSetWord_Remove)(oset, v) );
268 vg_assert( ! VG_(OSetWord_Next)(oset, &v) );
269 vg_assert( 0 == VG_(OSetWord_Size)(oset) );
287 VG_(OSetWord_Insert)(oset, vs[i]);
291 vg_assert( NN == VG_(OSetWord_Size)(oset) );
295 assert( VG_(OSetWord_Contains)(oset, vs[i]) );
301 assert( ! VG_(OSetWord_Contains)(oset, v) );
304 assert( ! VG_(OSetWord_Contains)(oset, v) );
307 assert( ! VG_(OSetWord_Contains)(oset, v) );
311 assert( VG_(OSetWord_Contains)(oset, vs[i]) );
314 // Check that we can iterate over the OSet elements in sorted order, and
318 VG_(OSetWord_ResetIter)(oset);
319 while ( VG_(OSetWord_Next)(oset, &v) ) {
326 vg_assert( ! VG_(OSetWord_Next)(oset, &v) );
327 vg_assert( ! VG_(OSetWord_Next)(oset, &v) );
331 assert( VG_(OSetWord_Remove)(oset, vs[i]) );
335 vg_assert( NN/2 == VG_(OSetWord_Size)(oset) );
339 assert( VG_(OSetWord_Contains)(oset, vs[i]) );
344 assert( ! VG_(OSetWord_Contains)(oset, vs[i]) );
349 assert( VG_(OSetWord_Remove)(oset, vs[i]) );
352 // Try some more operations on the empty OSet to ensure they don't screw up.
353 vg_assert( ! VG_(OSetWord_Contains)(oset, v) );
354 vg_assert( ! VG_(OSetWord_Remove)(oset, v) );
355 vg_assert( ! VG_(OSetWord_Next)(oset, &v) );
356 vg_assert( 0 == VG_(OSetWord_Size)(oset) );
361 VG_(OSetWord_Insert)(oset, vs[i]);
365 OSet_Print(oset, "oset1b", wordToStr);
367 // Destroy the OSet
368 VG_(OSetWord_Destroy)(oset);
378 // also demonstrates how an OSet can be used to implement a list of
417 // Create a dynamic OSet of Blocks. This one uses slow (custom)
419 OSet* oset = VG_(OSetGen_Create)(offsetof(Block, first),
423 // Try some operations on an empty OSet to ensure they don't screw up.
424 vg_assert( ! VG_(OSetGen_Contains)(oset, &v) );
425 vg_assert( ! VG_(OSetGen_Lookup)(oset, &v) );
426 vg_assert( ! VG_(OSetGen_Remove)(oset, &v) );
427 vg_assert( ! VG_(OSetGen_Next)(oset) );
428 vg_assert( 0 == VG_(OSetGen_Size)(oset) );
433 vs[i] = VG_(OSetGen_AllocNode)(oset, sizeof(Block));
450 VG_(OSetGen_Insert)(oset, vs[i]);
454 vg_assert( NN == VG_(OSetGen_Size)(oset) );
459 a = vs[i]->first + 0; assert( VG_(OSetGen_Contains)(oset, &a) );
460 a = vs[i]->first + 1; assert( VG_(OSetGen_Contains)(oset, &a) );
461 a = vs[i]->first + 2; assert( VG_(OSetGen_Contains)(oset, &a) );
467 assert( ! VG_(OSetGen_Contains)(oset, &a) );
469 a = vs[i]->first - 1; assert( ! VG_(OSetGen_Contains)(oset, &a) );
470 a = vs[i]->first + 3; assert( ! VG_(OSetGen_Contains)(oset, &a) );
476 a = vs[i]->first + 0; assert( vs[i] == VG_(OSetGen_Lookup)(oset, &a) );
477 a = vs[i]->first + 1; assert( vs[i] == VG_(OSetGen_Lookup)(oset, &a) );
478 a = vs[i]->first + 2; assert( vs[i] == VG_(OSetGen_Lookup)(oset, &a) );
479 assert( vs[i] == VG_(OSetGen_LookupWithCmp)(oset, &a, blockCmp) );
482 // Check that we can iterate over the OSet elements in sorted order, and
487 VG_(OSetGen_ResetIter)(oset);
488 while ( (pv = VG_(OSetGen_Next)(oset)) ) {
495 vg_assert( ! VG_(OSetGen_Next)(oset) );
496 vg_assert( ! VG_(OSetGen_Next)(oset) );
501 a = vs[i]->first; assert( vs[i] == VG_(OSetGen_Remove)(oset, &a) );
505 vg_assert( NN/2 == VG_(OSetGen_Size)(oset) );
509 a = vs[i]->first + 0; assert( vs[i] == VG_(OSetGen_Lookup)(oset, &a) );
510 a = vs[i]->first + 1; assert( vs[i] == VG_(OSetGen_Lookup)(oset, &a) );
511 a = vs[i]->first + 2; assert( vs[i] == VG_(OSetGen_Lookup)(oset, &a) );
516 a = vs[i]->first + 0; assert( ! VG_(OSetGen_Contains)(oset, &a) );
517 a = vs[i]->first + 1; assert( ! VG_(OSetGen_Contains)(oset, &a) );
518 a = vs[i]->first + 2; assert( ! VG_(OSetGen_Contains)(oset, &a) );
524 a = vs[i]->first; assert( vs[i] == VG_(OSetGen_Remove)(oset, &a) );
527 // Try some more operations on the empty OSet to ensure they don't screw up.
528 vg_assert( ! VG_(OSetGen_Contains)(oset, &v) );
529 vg_assert( ! VG_(OSetGen_Lookup)(oset, &v) );
530 vg_assert( ! VG_(OSetGen_Remove)(oset, &v) );
531 vg_assert( ! VG_(OSetGen_Next)(oset) );
532 vg_assert( 0 == VG_(OSetGen_Size)(oset) );
536 oset, vs[i]);
539 // Destroy the OSet
540 VG_(OSetGen_Destroy)(oset);